Generic resource API DG catch up 39/57739/1
authorBrandon, Bruce (bb2697) <bb2697@att.com>
Thu, 26 Jul 2018 18:10:42 +0000 (18:10 +0000)
committerBrandon, Bruce (bb2697) <bb2697@att.com>
Thu, 26 Jul 2018 18:10:42 +0000 (18:10 +0000)
Generic resource API DG catch up with several new capabilities

Change-Id: I6ba4a1716693a2fb0ba5314f60038277a50249a3
Issue-ID: SDNC-403
Signed-off-by: Brandon, Bruce (bb2697) <bb2697@att.com>
Former-commit-id: dd97cf829ce1c0b3bbb0e98e93a2e6619d945beb

287 files changed:
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-aic-zone.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-network-instance-group.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_assign-vlan-tags.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_auto-ip-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-create.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-delete.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_contrail-route-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_create-l3-subnet.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-allocate-network-role-subnet.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-create-generic-pool.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-create-network-role-pool.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-FQPN.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-allottedresource-id.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-l3network-network-id.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-panorama-name.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-subnets-subnet-id.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-unique-name.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-vpn-binding-id.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-activate.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-assign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-topology-operation.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-complex-resource-service-model.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-data-from-policy.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-name.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-changeassign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_policy-manager-create-policy.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_policy-manager-delete-policy.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_policy-update-notify-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-get-policy.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-network-topology-operation.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_process-eipam-pools.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_process-generic-eipam-pools.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-generated-names.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-create.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-delete.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_security-zone-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-alts-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-FQPN.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-name.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mac-address-assign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-assign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-unassign.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-changeassign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-delete.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-api-contrail-route-input.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-contrail-route-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-generic-configuration-input.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-getpathsegment-input.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-network-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-security-zone-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-service-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-vf-module-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-vnf-input.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-get-resource-request.json [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-activate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-assign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-deactivate.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-unassign.json
platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation.json
platform-logic/generic-resource-api/src/main/json/SUBNET-API_managed-network-notification.json
platform-logic/generic-resource-api/src/main/json/SUBNET-API_subnet-allocated-notification.json
platform-logic/generic-resource-api/src/main/resources/graph.versions [changed mode: 0644->0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-aic-zone.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-network-instance-group.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_assign-vlan-tags.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_auto-ip-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-create.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-delete.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_contrail-route-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-l3-subnet.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-allocate-network-role-subnet.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-create-generic-pool.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-create-network-role-pool.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-FQPN.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-allottedresource-id.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-l3network-network-id.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-panorama-name.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-subnets-subnet-id.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-unique-name.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-vpn-binding-id.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-activate.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-assign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-topology-operation.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-complex-resource-service-model.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-data-from-policy.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-name.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-changeassign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_policy-manager-create-policy.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_policy-manager-delete-policy.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_policy-update-notify-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-get-policy.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-network-topology-operation.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-eipam-pools.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-generic-eipam-pools.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-generated-names.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-create.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-delete.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_security-zone-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-alts-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-FQPN.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-name.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mac-address-assign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-assign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-unassign.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-changeassign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-delete.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-api-contrail-route-input.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-contrail-route-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-generic-configuration-input.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-getpathsegment-input.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-network-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-security-zone-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-service-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-vf-module-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-vnf-input.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-get-resource-request.xml [new file with mode: 0644]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-activate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-assign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml [new file with mode: 0755]
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-deactivate.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-unassign.xml
platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation.xml
platform-logic/generic-resource-api/src/main/xml/SUBNET-API_managed-network-notification.xml
platform-logic/generic-resource-api/src/main/xml/SUBNET-API_subnet-allocated-notification.xml

diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-aic-zone.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-aic-zone.json
new file mode 100755 (executable)
index 0000000..ed4a532
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"b3991b61.976178","type":"dgstart","name":"DGSTART","outputs":1,"x":215.00390625,"y":136.00390625,"z":"58df01c0.f4ce1","wires":[["3df31865.df33c8"]]},{"id":"3df31865.df33c8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":426.86101722717285,"y":241.4801082611084,"z":"58df01c0.f4ce1","wires":[["b710e6a7.b77ac8"]]},{"id":"b710e6a7.b77ac8","type":"method","name":"aai-get-aic-zone","xml":"<method rpc='aai-get-aic-zone' mode='sync'>\n","comments":"","outputs":1,"x":404.77781677246094,"y":322.99200439453125,"z":"58df01c0.f4ce1","wires":[["b2a9af7.4b45d5"]]},{"id":"44822186.7c8d5","type":"switchNode","name":"switch aaiapi.input.cloud-owner","xml":"<switch test='`$aaiapi.input.cloud-owner`'>\n","comments":"","outputs":1,"x":692.5753479003906,"y":409.2896385192871,"z":"58df01c0.f4ce1","wires":[["1255367.966edca"]]},{"id":"b2a9af7.4b45d5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":430.7181854248047,"y":410.2896385192871,"z":"58df01c0.f4ce1","wires":[["44822186.7c8d5","d0853696.4e9ec8","79c31fe7.a9df7","ce3898e3.1e1888","36587093.62e9c","284effd4.0325b","33e1dacc.79a006","af00f1bf.451d7"]]},{"id":"1255367.966edca","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":962.7182006835938,"y":409.0039176940918,"z":"58df01c0.f4ce1","wires":[["6e7dbda.1dfa844"]]},{"id":"6e7dbda.1dfa844","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"Error aaiapi.input.network-instance-group-id is NULL\" />\n","comments":"","x":1173.0039291381836,"y":409.0039339065552,"z":"58df01c0.f4ce1","wires":[]},{"id":"d0853696.4e9ec8","type":"set","name":"clear output variables","xml":"<set>\n<parameter name='aaiapi.output.cloud-zone' value='' />\n<parameter name='aaiapi.output.complex-name' value='' />\n<parameter name='aaiapi.output.aic-clli' value='' />\n\n","comments":"","x":661.8610687255859,"y":378.86112213134766,"z":"58df01c0.f4ce1","wires":[]},{"id":"1cf77eaa.c12641","type":"comment","name":"Input/Output","info":"Input:\n\taaiapi.input.cloud-owner\n\taaiapi.input.cloud-region-id\nOutput:\n\taaiapi.output.cloud-zone","comments":"","x":414.14508056640625,"y":171.71651458740234,"z":"58df01c0.f4ce1","wires":[]},{"id":"79c31fe7.a9df7","type":"switchNode","name":"switch aaiapi.input.cloud-region-id","xml":"<switch test='`$aaiapi.input.cloud-region-id`'>\n","comments":"","outputs":1,"x":699.0039215087891,"y":443.0039339065552,"z":"58df01c0.f4ce1","wires":[["1255367.966edca"]]},{"id":"ce3898e3.1e1888","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $aaiapi.input.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $aaiapi.input.cloud-region-id AND \n\t\t     depth = '0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":674.00390625,"y":488.00390625,"z":"58df01c0.f4ce1","wires":[["9b95689a.708798","928f15d3.960de8"]]},{"id":"928f15d3.960de8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":896.3930130004883,"y":524.72607421875,"z":"58df01c0.f4ce1","wires":[["92d2316.c22efd"]]},{"id":"9b95689a.708798","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":902.893009185791,"y":488.72613525390625,"z":"58df01c0.f4ce1","wires":[["181e9426.a181ac"]]},{"id":"181e9426.a181ac","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1108.2246704101562,"y":485.0920696258545,"z":"58df01c0.f4ce1","wires":[["7e3472e1.aa065c","19d6391e.6cdb97"]]},{"id":"92d2316.c22efd","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1104.4746704101562,"y":525.0920696258545,"z":"58df01c0.f4ce1","wires":[["46bacc5d.a28ef4","19d6391e.6cdb97"]]},{"id":"7e3472e1.aa065c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Cloud region not found in AAI\"/>","comments":"","x":1336.9748992919922,"y":482.8420991897583,"z":"58df01c0.f4ce1","wires":[]},{"id":"46bacc5d.a28ef4","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error retrieving cloud region from AAI\"/>","comments":"","x":1341.9748229980469,"y":525.0919666290283,"z":"58df01c0.f4ce1","wires":[]},{"id":"19d6391e.6cdb97","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`$tmp.error-message`\" />\n","comments":"","x":1308.0039520263672,"y":571.0039129257202,"z":"58df01c0.f4ce1","wires":[]},{"id":"36587093.62e9c","type":"set","name":"set cloud zone and complex-name","xml":"<set>\n<parameter name='aaiapi.output.cloud-zone' value='`$aai.cloud-region.cloud-zone`' />\n<parameter name='aaiapi.output.complex-name' value='`$aai.cloud-region.complex-name`' />\n\n","comments":"","x":672.0039672851562,"y":882.003927230835,"z":"58df01c0.f4ce1","wires":[]},{"id":"18df9acc.21d935","type":"get-resource","name":"get-resource complex","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"complex\" \n\t\tkey=\"complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value\"\n        pfx='aai.complex' local-only='false' >\n        \n\n\n","comments":"","outputs":1,"x":1747.4483261108398,"y":740.1151838302612,"z":"58df01c0.f4ce1","wires":[[]]},{"id":"33e1dacc.79a006","type":"for","name":"for relationship list","xml":"<for silentFailure='false' index='ridx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship_length`\" >\n","comments":"","outputs":1,"x":623.4210357666016,"y":695.2343463897705,"z":"58df01c0.f4ce1","wires":[["c402b857.f2fac8"]]},{"id":"77105e7.0dbf6a","type":"switchNode","name":"switch","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1028.9207000732422,"y":698.9484577178955,"z":"58df01c0.f4ce1","wires":[["c3e2ce03.285be"]]},{"id":"c402b857.f2fac8","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":846.3374786376953,"y":696.198579788208,"z":"58df01c0.f4ce1","wires":[["77105e7.0dbf6a"]]},{"id":"c3e2ce03.285be","type":"other","name":"complex.physical-location-id","xml":"<outcome value='complex.physical-location-id'>\n","comments":"","outputs":1,"x":1251.4207611083984,"y":697.365083694458,"z":"58df01c0.f4ce1","wires":[["c83e8f8b.573a1"]]},{"id":"c83e8f8b.573a1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1490.8370819091797,"y":695.1152057647705,"z":"58df01c0.f4ce1","wires":[["18df9acc.21d935","49f9ce98.59417","b52fe5e8.aafe28"]]},{"id":"49f9ce98.59417","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='aaiapi.output.aic-clli' value='`$aai.complex.physical-location-id`' />\n\n","comments":"","x":1715.3376388549805,"y":702.059591293335,"z":"58df01c0.f4ce1","wires":[]},{"id":"284effd4.0325b","type":"switchNode","name":"switch relationship_length","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":653.4484710693359,"y":618.2817707061768,"z":"58df01c0.f4ce1","wires":[["bd9af3be.4abcb","5fc7e377.df64dc"]]},{"id":"bd9af3be.4abcb","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":847.4485431247285,"y":617.281859503852,"z":"58df01c0.f4ce1","wires":[["ba47e05c.cb65e"]]},{"id":"5fc7e377.df64dc","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":849.4485397338867,"y":656.2818908691406,"z":"58df01c0.f4ce1","wires":[["ba47e05c.cb65e"]]},{"id":"b52fe5e8.aafe28","type":"set","name":"set tmp.complex-found","xml":"<set>\n<parameter name='tmp.complex-found' value='true' />\n\n","comments":"","x":1753.6706466674805,"y":670.3929653167725,"z":"58df01c0.f4ce1","wires":[]},{"id":"af00f1bf.451d7","type":"switchNode","name":"switch tmp.complex-found","xml":"<switch test='`$tmp.complex-found`'>\n","comments":"","outputs":1,"x":651.4485931396484,"y":778.503999710083,"z":"58df01c0.f4ce1","wires":[["f21da410.59bab8"]]},{"id":"f21da410.59bab8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":868.9485931396484,"y":777.865083694458,"z":"58df01c0.f4ce1","wires":[["dd940e48.7c569"]]},{"id":"ba47e05c.cb65e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1042.4745712280273,"y":634.8421478271484,"z":"58df01c0.f4ce1","wires":[["4e451cb5.795ce4","a26309a3.69ff38"]]},{"id":"4e451cb5.795ce4","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Cloud region missing relationships in AAI\"/>","comments":"","x":1285.974697113037,"y":615.592173576355,"z":"58df01c0.f4ce1","wires":[]},{"id":"dd940e48.7c569","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1057.4745712280273,"y":777.3421478271484,"z":"58df01c0.f4ce1","wires":[["3b8c939e.d0ca5c","a93a33d9.e9c42"]]},{"id":"3b8c939e.d0ca5c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Complex not found in AAI\"/>","comments":"","x":1289.9747161865234,"y":777.342188835144,"z":"58df01c0.f4ce1","wires":[]},{"id":"a26309a3.69ff38","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`$tmp.error-message`\" />\n","comments":"","x":1249.00390625,"y":647.00390625,"z":"58df01c0.f4ce1","wires":[]},{"id":"a93a33d9.e9c42","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`$tmp.error-message`\" />\n","comments":"","x":1267.00390625,"y":811.00390625,"z":"58df01c0.f4ce1","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-network-instance-group.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_aai-get-network-instance-group.json
new file mode 100755 (executable)
index 0000000..2a91ce4
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"9ad18084.8f1ee8","type":"dgstart","name":"DGSTART","outputs":1,"x":190.88333129882812,"y":107.60000610351562,"z":"2508f1db.655a56","wires":[["4f01b94e.c013e8"]]},{"id":"4f01b94e.c013e8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":402.740442276001,"y":213.07620811462402,"z":"2508f1db.655a56","wires":[["70d2221e.01a9e4"]]},{"id":"70d2221e.01a9e4","type":"method","name":"aai-get-network-instance-group","xml":"<method rpc='aai-get-network-instance-group' mode='sync'>\n","comments":"","outputs":1,"x":380.65724182128906,"y":294.5881042480469,"z":"2508f1db.655a56","wires":[["7c43646c.8c064c"]]},{"id":"79c12641.7dfb3","type":"comment","name":"Called from assign when network instance group passed in from mso","info":"","comments":"","x":567.0261993408203,"y":175.40953731536865,"z":"2508f1db.655a56","wires":[]},{"id":"f6fc9d5e.8e0928","type":"get-resource","name":"get AnAI - network-instance-group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"instance-group\" \n\t\tkey=\"instance-group.id = $aaiapi.input.network-instance-group-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.AnAI.networkInstanceGroup\">\n","comments":"","outputs":1,"x":1458.4553527832031,"y":424.4572649002075,"z":"2508f1db.655a56","wires":[["5b8f7866.b10508","889712b1.a290a"]]},{"id":"5b8f7866.b10508","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1717.7884559631348,"y":457.50868034362793,"z":"2508f1db.655a56","wires":[["336f9ffe.8b54"]]},{"id":"336f9ffe.8b54","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'network instance group id: ' + $aaiapi.input.network-instance-group-id + 'not found in AnAI'`\" />","comments":"","x":1880.427230834961,"y":457.39766788482666,"z":"2508f1db.655a56","wires":[]},{"id":"889712b1.a290a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1710.7446746826172,"y":416.7072582244873,"z":"2508f1db.655a56","wires":[["6829e606.6b094"]]},{"id":"6829e606.6b094","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving network instance group with id=' + $aaiapi.input.network-instance-group-id + ' from AnAI'`\" />","comments":"","x":1869.8557586669922,"y":416.92948722839355,"z":"2508f1db.655a56","wires":[]},{"id":"d5bad5d7.0f518","type":"switchNode","name":"switch aaiapi.input.network-instance-group-id","xml":"<switch test='`$aaiapi.input.network-instance-group-id`'>\n","comments":"","outputs":1,"x":719.454719543457,"y":381.88575077056885,"z":"2508f1db.655a56","wires":[["907718fa.e5ca3","e088b096.4c1298"]]},{"id":"7c43646c.8c064c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":406.5976104736328,"y":381.88573837280273,"z":"2508f1db.655a56","wires":[["d5bad5d7.0f518","48a34f94.14a79"]]},{"id":"907718fa.e5ca3","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1036.5976257324219,"y":381.5999984741211,"z":"2508f1db.655a56","wires":[["d47beee1.f8027"]]},{"id":"e088b096.4c1298","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1017.2270317077637,"y":416.9240771830082,"z":"2508f1db.655a56","wires":[["c061d212.395e1"]]},{"id":"d47beee1.f8027","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"Error aaiapi.input.network-instance-group-id is NULL\" />\n","comments":"","x":1246.8833541870117,"y":381.6000146865845,"z":"2508f1db.655a56","wires":[]},{"id":"c061d212.395e1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1190.8832702636719,"y":416.1714401245117,"z":"2508f1db.655a56","wires":[["f6fc9d5e.8e0928","6fd71f76.4aad58","56291dcc.a4970c","fcd0b068.87eaa"]]},{"id":"fcd0b068.87eaa","type":"get-resource","name":"get AnAI - collection","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"collection\" \n\t\tkey=\"collection.collection-id = $aaiapi.output.collection.collection-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.AnAI.collection\">\n","comments":"","outputs":1,"x":1442.8839416503906,"y":813.0286903381348,"z":"2508f1db.655a56","wires":[["32942ead.237942","ddc63a84.c2bdc8","917b9591.1fa8f8"]]},{"id":"32942ead.237942","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1721.7885398864746,"y":844.3657636642456,"z":"2508f1db.655a56","wires":[["8b9d327e.c5eb28"]]},{"id":"8b9d327e.c5eb28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'collection: ' + $aaiapi.output.collection.collection-id + 'not found in AnAI'`\" />","comments":"","x":1884.4273147583008,"y":844.2547512054443,"z":"2508f1db.655a56","wires":[]},{"id":"ddc63a84.c2bdc8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1714.744758605957,"y":803.564341545105,"z":"2508f1db.655a56","wires":[["d51e662.b7cc598"]]},{"id":"d51e662.b7cc598","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving collection with id=' + $aaiapi.output.collection.collection-id + ' from AnAI'`\" />","comments":"","x":1873.855842590332,"y":803.7865705490112,"z":"2508f1db.655a56","wires":[]},{"id":"6fd71f76.4aad58","type":"for","name":"for relationship list","xml":"<for silentFailure='true' index='ridx' start='0' end=\"`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship_length`\" >\n","comments":"","outputs":1,"x":1426.5977630615234,"y":574.7429070472717,"z":"2508f1db.655a56","wires":[["e129352e.93c508"]]},{"id":"15033b7f.2625bd","type":"switchNode","name":"switch relationship-key","xml":"<switch test='`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1843.382911682129,"y":573.5998611450195,"z":"2508f1db.655a56","wires":[["8b74e67f.9c834"]]},{"id":"e129352e.93c508","type":"for","name":"for relationship data","xml":"<for silentFailure='true' index='rdidx' start='0' end=\"`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":1635.7998962402344,"y":575.8499984741211,"z":"2508f1db.655a56","wires":[["15033b7f.2625bd"]]},{"id":"8b74e67f.9c834","type":"other","name":"collection.collection-id","xml":"<outcome value='collection.collection-id'>\n","comments":"","outputs":1,"x":2068.8829956054688,"y":574.016471862793,"z":"2508f1db.655a56","wires":[["1465ce62.a01cc2"]]},{"id":"1465ce62.a01cc2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2308.29931640625,"y":571.7665939331055,"z":"2508f1db.655a56","wires":[["13601b4c.2fcf95"]]},{"id":"48a34f94.14a79","type":"set","name":"clear output variables","xml":"<set>\n<parameter name='aaiapi.output.collection-customization-uuid' value='' />\n<parameter name='aaiapi.output.collection-name' value='' />\n<parameter name='aaiapi.output.collection-function' value='' />\n<parameter name='aaiapi.output.collection.collection-id' value='' />","comments":"","x":642.7404632568359,"y":349.45720291137695,"z":"2508f1db.655a56","wires":[]},{"id":"85b4fb43.16fb68","type":"comment","name":"aai-vlan-tagging-1260","info":"","comments":"","x":420.02452087402344,"y":113.31261825561523,"z":"2508f1db.655a56","wires":[]},{"id":"77116df9.651664","type":"comment","name":"Input/Output","info":"Input:\n\taaiapi.input.network-instance-group-id","comments":"","x":390.0245056152344,"y":143.31261444091797,"z":"2508f1db.655a56","wires":[]},{"id":"917b9591.1fa8f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1720.274715423584,"y":886.3127021789551,"z":"2508f1db.655a56","wires":[["203680a4.cac048"]]},{"id":"203680a4.cac048","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1879.2746200561523,"y":886.3126602172852,"z":"2508f1db.655a56","wires":[["8660bd01.9728d8","13c8d78f.45d018"]]},{"id":"8660bd01.9728d8","type":"set","name":"set output variables","xml":"<set>\n<parameter name='aaiapi.output.collection-customization-uuid' value='`$tmp.AnAI.collection.collection-customization-id`' />\n<parameter name='aaiapi.output.collection-name' value='`$tmp.AnAI.collection.collection-name`' />\n<parameter name='aaiapi.output.collection-function' value='`$tmp.AnAI.collection.collection-function`' />\n","comments":"","x":2083.274726867676,"y":885.3127174377441,"z":"2508f1db.655a56","wires":[]},{"id":"13c8d78f.45d018","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":2071.2747535705566,"y":922.3126726150513,"z":"2508f1db.655a56","wires":[]},{"id":"13601b4c.2fcf95","type":"set","name":"set collection id","xml":"<set>\n<parameter name='aaiapi.output.collection.collection-id' value='`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\n\n\n","comments":"","x":2519.5246505737305,"y":571.3126363754272,"z":"2508f1db.655a56","wires":[]},{"id":"56291dcc.a4970c","type":"switchNode","name":"switch collection-id","xml":"<switch test='`$aaiapi.output.collection.collection-id`'>\n","comments":"","outputs":1,"x":1442.5246047973633,"y":694.3126230239868,"z":"2508f1db.655a56","wires":[["b72f0133.30d35"]]},{"id":"b72f0133.30d35","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1673.667465209961,"y":693.0268650054932,"z":"2508f1db.655a56","wires":[["505c16e2.9377b"]]},{"id":"505c16e2.9377b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'network instance group id: ' + $aaiapi.input.network-instance-group-id + ' collection not found in AnAI'`\" />","comments":"","x":1879.5246963500977,"y":693.3127098083496,"z":"2508f1db.655a56","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.json
new file mode 100644 (file)
index 0000000..826a62b
--- /dev/null
@@ -0,0 +1,1792 @@
+[
+    {
+        "id": "fbf8fafe.8924a8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 117.00390625,
+        "y": 101.00390625,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "ddbd49c0.51ec78"
+            ]
+        ]
+    },
+    {
+        "id": "ddbd49c0.51ec78",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 262.24205017089844,
+        "y": 173.95630741119385,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a91124c9.ea56d8"
+            ]
+        ]
+    },
+    {
+        "id": "a91124c9.ea56d8",
+        "type": "method",
+        "name": "api-contrail-route-topology-operation-activate",
+        "xml": "<method rpc='api-contrail-route-topology-operation-activate' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 343.1587562561035,
+        "y": 245.1943483352661,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "1232d48a.c84e2b"
+            ]
+        ]
+    },
+    {
+        "id": "1232d48a.c84e2b",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 251.4800910949707,
+        "y": 388.527690410614,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a7c33159.020f2",
+                "71348154.08357",
+                "de0622d4.cc88e",
+                "b926e867.47b478",
+                "5b0f0e89.fff95",
+                "bfffed8.eb42f1",
+                "c1894c85.76c23",
+                "a45921e6.ad3ef",
+                "e8418233.d69da",
+                "23cc061.9b89efa",
+                "2a87adce.093512",
+                "23d1f196.7dcfee",
+                "a4376ac0.5f7af8",
+                "3d7a5aa5.9e14c6",
+                "f859e910.363bc8",
+                "e0de1bea.e06568",
+                "bc9568bb.e6eb78",
+                "142c8365.56afed",
+                "38b3f506.22440a",
+                "ec219e57.3542d",
+                "88c586db.eb3e18",
+                "bf9b56b5.b3a1e8",
+                "fe97c2ba.c5f5d",
+                "3f9cc8d6.fcda48",
+                "74c07074.b9b6c",
+                "ef4ae829.eade68",
+                "defcda34.247b28",
+                "7e31f809.4e76e8"
+            ]
+        ]
+    },
+    {
+        "id": "71348154.08357",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 532.9920654296875,
+        "y": 554.3372249603271,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "a7c33159.020f2",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$cto-api.contrail-route-allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$cto-api.parent-service-instance-id`' />\n\n\n\n",
+        "comments": "",
+        "x": 571.7514038085938,
+        "y": 466.09673595428467,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "de0622d4.cc88e",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 599.3545074462891,
+        "y": 590.2354888916016,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5b0f0e89.fff95",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 601.6655883789062,
+        "y": 743.7134675979614,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "d443ea24.922b58",
+                "fb1bb5f8.e95f28"
+            ]
+        ]
+    },
+    {
+        "id": "b926e867.47b478",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 563.3187942504883,
+        "y": 665.2711420059204,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d443ea24.922b58",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 855.461727142334,
+        "y": 740.0213012695312,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "3d1387c8.400188"
+            ]
+        ]
+    },
+    {
+        "id": "3d1387c8.400188",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1024.4617309570312,
+        "y": 738.5212020874023,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "2516635.614c89c"
+            ]
+        ]
+    },
+    {
+        "id": "2516635.614c89c",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1212.8189811706543,
+        "y": 736.8903217315674,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "514a86f5.812698",
+                "339ac5bc.d5e83a"
+            ]
+        ]
+    },
+    {
+        "id": "514a86f5.812698",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1392.1524467468262,
+        "y": 738.1403217315674,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "797cc731.3341e8"
+            ]
+        ]
+    },
+    {
+        "id": "609fa81b.43f0b8",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1792.9501419067383,
+        "y": 678.3785338401794,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "797cc731.3341e8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1581.4262981414795,
+        "y": 644.5451211929321,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "609fa81b.43f0b8",
+                "1b5999de.c1e766",
+                "9213e2d9.8bc42"
+            ]
+        ]
+    },
+    {
+        "id": "6cc7076e.1cb1a8",
+        "type": "comment",
+        "name": "GET contrail-route-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 619.0687980651855,
+        "y": 709.5925989151001,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "1b5999de.c1e766",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1808.9499244689941,
+        "y": 709.3784890174866,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "b809025c.a4d3d",
+                "69b030e.9be7ed"
+            ]
+        ]
+    },
+    {
+        "id": "b809025c.a4d3d",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2030.7878799438477,
+        "y": 693.473792552948,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "5d75aafd.69a114"
+            ]
+        ]
+    },
+    {
+        "id": "69b030e.9be7ed",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2025.5977592468262,
+        "y": 720.8072423934937,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "2ba82db5.eb58c2"
+            ]
+        ]
+    },
+    {
+        "id": "2ba82db5.eb58c2",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + ', expecting Created.'`\" />\n",
+        "comments": "",
+        "x": 2236.7164573669434,
+        "y": 724.4617581367493,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "9213e2d9.8bc42",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1880.8071937561035,
+        "y": 645.1880259513855,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "8487ec3d.0bea",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 534.2116012573242,
+        "y": 634.8782691955566,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "7ece8ede.79816",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1605.921157836914,
+        "y": 840.5873985290527,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "fb1bb5f8.e95f28",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 847.3135299682617,
+        "y": 775.0873861312866,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "59c76443.5ea54c"
+            ]
+        ]
+    },
+    {
+        "id": "59c76443.5ea54c",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1027.3134803771973,
+        "y": 775.7539367675781,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "7ece8ede.79816"
+            ]
+        ]
+    },
+    {
+        "id": "339ac5bc.d5e83a",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1380.4804000854492,
+        "y": 775.4206819534302,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "7ece8ede.79816"
+            ]
+        ]
+    },
+    {
+        "id": "5d75aafd.69a114",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2214.33748626709,
+        "y": 691.4206805229187,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "49a6403a.c8105",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 831.2895660400391,
+        "y": 1026.7183133363724,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a766ad78.04e4e"
+            ]
+        ]
+    },
+    {
+        "id": "e0de1bea.e06568",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 565.7379760742188,
+        "y": 1040.4649600982666,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "c8ed4496.b74a88",
+                "49a6403a.c8105",
+                "d63abbe9.2b3e68"
+            ]
+        ]
+    },
+    {
+        "id": "c8ed4496.b74a88",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 824.0116729736328,
+        "y": 1061.2029172182083,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a766ad78.04e4e"
+            ]
+        ]
+    },
+    {
+        "id": "a766ad78.04e4e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 976.1226348876953,
+        "y": 1057.4251462221146,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "d63abbe9.2b3e68",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 829.2896270751953,
+        "y": 1092.7183133363724,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "c2c4bb65.8ad1d8"
+            ]
+        ]
+    },
+    {
+        "id": "c2c4bb65.8ad1d8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 981.9561920166016,
+        "y": 1091.0516415834427,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b3798a7c.d13bf8",
+        "type": "comment",
+        "name": "GET source network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 535.9681777954102,
+        "y": 1005.9683332443237,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "a45921e6.ad3ef",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 654.6180572509766,
+        "y": 1357.9513778686523,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "19d85634.c917ea",
+                "3a9f4e83.0014d2"
+            ]
+        ]
+    },
+    {
+        "id": "19d85634.c917ea",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1022.2842788696289,
+        "y": 1355.379361152649,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "95b88f2.7fbc67"
+            ]
+        ]
+    },
+    {
+        "id": "3a9f4e83.0014d2",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1020.3796005249023,
+        "y": 1388.37930091843,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "abb85b0d.789338"
+            ]
+        ]
+    },
+    {
+        "id": "abb85b0d.789338",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to source network\" />\n",
+        "comments": "",
+        "x": 1180.2843704223633,
+        "y": 1387.71266746521,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "95b88f2.7fbc67",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1174.4747619628906,
+        "y": 1356.0460861586034,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bfffed8.eb42f1",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n",
+        "comments": "",
+        "x": 519.0039672851562,
+        "y": 834.0040140151978,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "c1894c85.76c23",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$ar-assignments.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 555.5039672851562,
+        "y": 942.0039577484131,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "6d551f8f.357b",
+                "812fe09f.e6513"
+            ]
+        ]
+    },
+    {
+        "id": "6d551f8f.357b",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 915.0041236877441,
+        "y": 940.6702857017517,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "dc661073.9c1b9"
+            ]
+        ]
+    },
+    {
+        "id": "812fe09f.e6513",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 910.6709403991699,
+        "y": 903.6700859069824,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "d6f57d04.58e7e"
+            ]
+        ]
+    },
+    {
+        "id": "dc661073.9c1b9",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1049.115379333496,
+        "y": 941.1146903038025,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d6f57d04.58e7e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1064.8044052124023,
+        "y": 904.3369884490967,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "438362ca.c4fb1c",
+        "type": "comment",
+        "name": "Find tenant id/cloud region from source network",
+        "info": "",
+        "comments": "",
+        "x": 596.4042282104492,
+        "y": 908.6702222824097,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "12975148.308cdf",
+        "type": "comment",
+        "name": "Apply the policy to source network",
+        "info": "",
+        "comments": "",
+        "x": 558.0039825439453,
+        "y": 1093.003999710083,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "e8418233.d69da",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 470.004207611084,
+        "y": 2616.9808492660522,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "23cc061.9b89efa",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 530.4249496459961,
+        "y": 2438.484212875366,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "2a87adce.093512",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 558.5334243774414,
+        "y": 2512.5337057113647,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "86fe624a.9f769",
+                "c15082cc.e45ed",
+                "73ea0483.537b4c"
+            ]
+        ]
+    },
+    {
+        "id": "86fe624a.9f769",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 828.8414421081543,
+        "y": 2565.5319065079093,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "b34f6a16.4d5698"
+            ]
+        ]
+    },
+    {
+        "id": "c15082cc.e45ed",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 819.8414916992188,
+        "y": 2534.031932257116,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "b34f6a16.4d5698"
+            ]
+        ]
+    },
+    {
+        "id": "73ea0483.537b4c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 823.5915298461914,
+        "y": 2504.389037132263,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "cd864e8c.2ab94"
+            ]
+        ]
+    },
+    {
+        "id": "82666aa6.c56cb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1187.5915756225586,
+        "y": 2546.7821083068848,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "cd864e8c.2ab94",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 993.2475204467773,
+        "y": 2502.5816679000854,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "23d1f196.7dcfee",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 481.24754333496094,
+        "y": 2404.9143447875977,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "17748471.05b93c",
+        "type": "comment",
+        "name": "Need to rollback aai here",
+        "info": "",
+        "comments": "",
+        "x": 1380.6708450317383,
+        "y": 2480.0996432304382,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "14c283bc.16080c",
+        "type": "comment",
+        "name": "Create  network policy in AAI",
+        "info": "",
+        "comments": "",
+        "x": 515.0040664672852,
+        "y": 2354.0994386672974,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "a4376ac0.5f7af8",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"in-service-path\" />\n\t<parameter name=\"orchestration-status\" value=\"activated\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 519.6231384277344,
+        "y": 2316.0520610809326,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "e26ff95b.191f28",
+                "5b810143.7cfe6"
+            ]
+        ]
+    },
+    {
+        "id": "e26ff95b.191f28",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 787.3850555419922,
+        "y": 2293.290114402771,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a1025836.ec58f8"
+            ]
+        ]
+    },
+    {
+        "id": "5b810143.7cfe6",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 792.6944847106934,
+        "y": 2328.8615322113037,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a1025836.ec58f8"
+            ]
+        ]
+    },
+    {
+        "id": "81d4f66a.d1c928",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1157.4802894592285,
+        "y": 2309.909327507019,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "59f5f19c.2c2bf",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 472.96598052978516,
+        "y": 2275.480383872986,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "a1ff339e.3748d",
+        "type": "comment",
+        "name": "Update network policy in AAI - relationship to networks",
+        "info": "",
+        "comments": "",
+        "x": 595.004150390625,
+        "y": 2174.004216194153,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "3d7a5aa5.9e14c6",
+        "type": "save",
+        "name": "save AnAI - network-policy relationship to source and destination network",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" \nvalue=\"`'/aai/v$/network/l3-networks/l3-network/' + $ar-assignments.source-network.network-id`\" />\n<parameter name=\"relationship-list.relationship[1].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[1].related-link\" \nvalue=\"`'/aai/v$/network/l3-networks/l3-network/' + $ar-assignments.dest-network.network-id`\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 666.381103515625,
+        "y": 2220.071865081787,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "9a52b1cf.1510d",
+                "60b38365.bf508c"
+            ]
+        ]
+    },
+    {
+        "id": "ec62599e.16b9b8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n",
+        "comments": "",
+        "x": 1646.7267532348633,
+        "y": 2195.3538751602173,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "9a52b1cf.1510d",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1065.15523147583,
+        "y": 2190.3694381713867,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "e25e5b70.f65028"
+            ]
+        ]
+    },
+    {
+        "id": "60b38365.bf508c",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1071.9648513793945,
+        "y": 2220.845724582672,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "e25e5b70.f65028"
+            ]
+        ]
+    },
+    {
+        "id": "df841654.7038a8",
+        "type": "comment",
+        "name": "Parameters",
+        "info": "INPUT:\n\ncto-api.default-domain\ncto-api.default-project\ncto-api.cloud-region-id\ncto-api.contrail-route-allotted-resource-id\ncto-api.src-contrail-network-fqdn\ncto-api.collector-contrail-network-fqdn",
+        "comments": "",
+        "x": 625.3373031616211,
+        "y": 92.67058181762695,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "f859e910.363bc8",
+        "type": "call",
+        "name": "call validate-api-contrail-route-input",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 578.3372192382812,
+        "y": 432.0039372444153,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bc9568bb.e6eb78",
+        "type": "set",
+        "name": "set cloud-region-id for input to contrail",
+        "xml": "<set>\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n",
+        "comments": "",
+        "x": 578.00390625,
+        "y": 1146.674747467041,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "8553ed76.ca7a",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 822.504264831543,
+        "y": 1480.3410449028015,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "ddb9ca6f.61d5a8"
+            ]
+        ]
+    },
+    {
+        "id": "2ab2cf3c.7cbb2",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 818.1710815429688,
+        "y": 1443.3408451080322,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "7f5db074.60a8"
+            ]
+        ]
+    },
+    {
+        "id": "ddb9ca6f.61d5a8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 956.6155204772949,
+        "y": 1480.7854495048523,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7f5db074.60a8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Destination network not found\" />\n",
+        "comments": "",
+        "x": 972.3045463562012,
+        "y": 1444.0077476501465,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "e73a4573.fde828",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 885.0039978027344,
+        "y": 1524.4330253601074,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "30c22905.3a4936"
+            ]
+        ]
+    },
+    {
+        "id": "142c8365.56afed",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by dest network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 605.6308746337891,
+        "y": 1531.9652662277222,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "e73a4573.fde828",
+                "d1a7593e.2315a8",
+                "512d25e0.f1767c"
+            ]
+        ]
+    },
+    {
+        "id": "d1a7593e.2315a8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 877.7261047363281,
+        "y": 1558.9176292419434,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "30c22905.3a4936"
+            ]
+        ]
+    },
+    {
+        "id": "30c22905.3a4936",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1029.8370666503906,
+        "y": 1555.1398582458496,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "512d25e0.f1767c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 887.5755081176758,
+        "y": 1593.2900938987732,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "c41d8742.6e9888"
+            ]
+        ]
+    },
+    {
+        "id": "c41d8742.6e9888",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1040.242073059082,
+        "y": 1591.6234221458435,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7f8f58d7.90bc28",
+        "type": "comment",
+        "name": "GET dest network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 562.4325408935547,
+        "y": 1423.1471500396729,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "38b3f506.22440a",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to destination network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 668.0042114257812,
+        "y": 1910.0046558380127,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "96c79b36.154138",
+                "79421533.4e5ecc"
+            ]
+        ]
+    },
+    {
+        "id": "96c79b36.154138",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1004.6706390380859,
+        "y": 1881.4327244758606,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "871ab29c.61b02"
+            ]
+        ]
+    },
+    {
+        "id": "79421533.4e5ecc",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1002.7659606933594,
+        "y": 1914.4326642416418,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "e2d4bff5.4d172"
+            ]
+        ]
+    },
+    {
+        "id": "56199f14.af432",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to destination network\" />\n",
+        "comments": "",
+        "x": 1372.6709747314453,
+        "y": 1916.7664680480957,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "871ab29c.61b02",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1156.8611221313477,
+        "y": 1882.099449481815,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8c596cbe.dd753",
+        "type": "comment",
+        "name": "Apply the policy to dest network",
+        "info": "",
+        "comments": "",
+        "x": 561.3903503417969,
+        "y": 1877.057378768921,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "ec219e57.3542d",
+        "type": "switchNode",
+        "name": "switch dest-network.network-id",
+        "xml": "<switch test='`$ar-assignments.dest-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 569.0039825439453,
+        "y": 1463.674859046936,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "8553ed76.ca7a",
+                "2ab2cf3c.7cbb2"
+            ]
+        ]
+    },
+    {
+        "id": "88c586db.eb3e18",
+        "type": "execute",
+        "name": "execute Contrail API fqname to uuid for source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='fqname-to-uuid' />\n<parameter name='api-action' value='get' />\n<parameter name='resp-prefix' value='uuidresp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='fqname-type' value='virtual-network' />\n<parameter name='policy-name' value='`$src-virtual-network-fqname`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 639.0039978027344,
+        "y": 1281.674801826477,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "7a1c57b0.a74188",
+                "df772c1b.3fd3f"
+            ]
+        ]
+    },
+    {
+        "id": "7a1c57b0.a74188",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 971.0039367675781,
+        "y": 1290.6745529174805,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "8bb3dc75.04d83"
+            ]
+        ]
+    },
+    {
+        "id": "df772c1b.3fd3f",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 974.0992736816406,
+        "y": 1325.6744497679174,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "30c79ae1.56e5e6"
+            ]
+        ]
+    },
+    {
+        "id": "30c79ae1.56e5e6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to find network uuid for Contrail to source network\" />\n",
+        "comments": "",
+        "x": 1134.0040435791016,
+        "y": 1325.0078163146973,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "8bb3dc75.04d83",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1114.1943969726562,
+        "y": 1287.3412857055664,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bf9b56b5.b3a1e8",
+        "type": "execute",
+        "name": "execute Contrail API fqname to uuid for dest network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='fqname-to-uuid' />\n<parameter name='api-action' value='get' />\n<parameter name='resp-prefix' value='uuidresp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$dest-default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='fqname-type' value='virtual-network' />\n<parameter name='policy-name' value='`$dest-virtual-network-fqname`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 630.0040893554688,
+        "y": 1803.6749420166016,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "d3a9b3b.a55135",
+                "4c6855f7.9d9f3c"
+            ]
+        ]
+    },
+    {
+        "id": "d3a9b3b.a55135",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 971.0040740966797,
+        "y": 1770.6746549606323,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "b7013ec1.476c6"
+            ]
+        ]
+    },
+    {
+        "id": "4c6855f7.9d9f3c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 969.0993499755859,
+        "y": 1806.6747187040746,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a6d24134.4d78e"
+            ]
+        ]
+    },
+    {
+        "id": "a6d24134.4d78e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to find network uuid for Contrail to destination network\" />\n",
+        "comments": "",
+        "x": 1129.0041198730469,
+        "y": 1806.0080852508545,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "b7013ec1.476c6",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1123.1945571899414,
+        "y": 1771.3413799665868,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3f9cc8d6.fcda48",
+        "type": "execute",
+        "name": "execute Split to get contrail virtual network fqname without defaults",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />\n   <parameter name='original_string' value='`$aai.src-network.contrail-network-fqdn`' />\n   <parameter name='regex' value=':' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 671.0039215087891,
+        "y": 1188.6746273040771,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5caffa4d.c36db4",
+        "type": "set",
+        "name": "set src-virtual-network-fqdn",
+        "xml": "<set>\n<parameter name='src-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />\n",
+        "comments": "",
+        "x": 1193.6705474853516,
+        "y": 1245.3414163589478,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "fe97c2ba.c5f5d",
+        "type": "switchNode",
+        "name": "switch virtual-network-fqdn-split length",
+        "xml": "<switch test='`$virtual-network-fqdn-split_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 583.6706848144531,
+        "y": 1228.6743993759155,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "3df80ebf.7bf7a2",
+                "4cdce0e8.bafeb"
+            ]
+        ]
+    },
+    {
+        "id": "3df80ebf.7bf7a2",
+        "type": "outcome",
+        "name": "outcome 0",
+        "xml": "<outcome value='0'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1009.0040435791016,
+        "y": 1209.6746559143066,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "4a934e0.2948ab4"
+            ]
+        ]
+    },
+    {
+        "id": "4cdce0e8.bafeb",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 996.6706123352051,
+        "y": 1245.0078945159912,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "5caffa4d.c36db4"
+            ]
+        ]
+    },
+    {
+        "id": "4a934e0.2948ab4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />\n",
+        "comments": "",
+        "x": 1174.3374366760254,
+        "y": 1208.008044242859,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "74c07074.b9b6c",
+        "type": "execute",
+        "name": "execute Split to get contrail virtual network fqname from contrail-network-fqdn",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />\n   <parameter name='original_string' value='`$aai.dest-network.contrail-network-fqdn`' />\n   <parameter name='regex' value=':' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 720.0038757324219,
+        "y": 1646.6749620437622,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "471ff7c8.22f108",
+        "type": "set",
+        "name": "set dest-virtual-network-fqname",
+        "xml": "<set>\n<parameter name='dest-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />\n<parameter name='dest-default-project' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 2]`' />\n",
+        "comments": "",
+        "x": 1205.6704864501953,
+        "y": 1719.3413534164429,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "ef4ae829.eade68",
+        "type": "switchNode",
+        "name": "switch virtual-network-fqdn-split length",
+        "xml": "<switch test='`$virtual-network-fqdn-split_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 587.6706237792969,
+        "y": 1735.6746196746826,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "28174afe.44eb26",
+                "20116195.80bece"
+            ]
+        ]
+    },
+    {
+        "id": "28174afe.44eb26",
+        "type": "outcome",
+        "name": "outcome 0",
+        "xml": "<outcome value='0'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1021.0039825439453,
+        "y": 1683.6745929718018,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "949e42d4.3282b"
+            ]
+        ]
+    },
+    {
+        "id": "20116195.80bece",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1008.6705513000488,
+        "y": 1719.0078315734863,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "471ff7c8.22f108"
+            ]
+        ]
+    },
+    {
+        "id": "949e42d4.3282b",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />\n",
+        "comments": "",
+        "x": 1186.3373756408691,
+        "y": 1682.007981300354,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "ad550ebe.97e4c",
+        "type": "execute",
+        "name": "execute Contrail API remove network policy to destination network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1892.0041198730469,
+        "y": 2082.004141807556,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "9240f23d.7f049"
+            ]
+        ]
+    },
+    {
+        "id": "a38a02dd.b8f9d",
+        "type": "execute",
+        "name": "execute Contrail API remove network policy to source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$src-uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1910.0042572021484,
+        "y": 1811.004051208496,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "9240f23d.7f049"
+            ]
+        ]
+    },
+    {
+        "id": "9240f23d.7f049",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2287.5040283203125,
+        "y": 1856.0040197372437,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "93d636b9.8b55b8"
+            ]
+        ]
+    },
+    {
+        "id": "93d636b9.8b55b8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2421.6152839660645,
+        "y": 1856.4484243392944,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "defcda34.247b28",
+        "type": "set",
+        "name": "set src-uuid",
+        "xml": "<set>\n<parameter name='src-uuid' value='`$uuidresp.uuid`' />",
+        "comments": "",
+        "x": 510.0039939880371,
+        "y": 1322.0040254592896,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "7e31f809.4e76e8",
+        "type": "set",
+        "name": "set dest-uuid",
+        "xml": "<set>\n<parameter name='dest-uuid' value='`$uuidresp.uuid`' />",
+        "comments": "",
+        "x": 510.00390625,
+        "y": 1847.00390625,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "c4498fac.a299f",
+        "type": "comment",
+        "name": "If we hit an error, attempt to clean up contrail",
+        "info": "",
+        "comments": "",
+        "x": 1854.0041046142578,
+        "y": 1772.004108428955,
+        "z": "433d56b8.8f2a38",
+        "wires": []
+    },
+    {
+        "id": "e2d4bff5.4d172",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1157.2539596557617,
+        "y": 1915.0039901733398,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "a38a02dd.b8f9d",
+                "56199f14.af432"
+            ]
+        ]
+    },
+    {
+        "id": "e25e5b70.f65028",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1267.2539138793945,
+        "y": 2206.0039615631104,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "ec62599e.16b9b8",
+                "a38a02dd.b8f9d",
+                "ad550ebe.97e4c"
+            ]
+        ]
+    },
+    {
+        "id": "a1025836.ec58f8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 951.25390625,
+        "y": 2306.00390625,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "81d4f66a.d1c928",
+                "a38a02dd.b8f9d",
+                "ad550ebe.97e4c"
+            ]
+        ]
+    },
+    {
+        "id": "b34f6a16.4d5698",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 992.25390625,
+        "y": 2547.00390625,
+        "z": "433d56b8.8f2a38",
+        "wires": [
+            [
+                "82666aa6.c56cb8",
+                "a38a02dd.b8f9d",
+                "ad550ebe.97e4c"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.json
new file mode 100644 (file)
index 0000000..d26c5be
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"73e0c5c4.0e65fc","type":"dgstart","name":"DGSTART","outputs":1,"x":194.75,"y":111.75,"z":"fd8223be.2936e","wires":[["7f1aae85.46fc5"]]},{"id":"7f1aae85.46fc5","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":300.98807525634766,"y":190.45239543914795,"z":"fd8223be.2936e","wires":[["2dca365b.8949fa"]]},{"id":"2dca365b.8949fa","type":"method","name":"api-contrail-route-topology-operation-create","xml":"<method rpc='api-contrail-route-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":279.23817443847656,"y":287.60711765289307,"z":"fd8223be.2936e","wires":[["71de5a8a.06d68c"]]},{"id":"71de5a8a.06d68c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":329.2261848449707,"y":399.273784160614,"z":"fd8223be.2936e","wires":[["37d1d007.e441d","7599d396.fab11c","5487e8c6.2ce188","90603bb4.644bf","bcff5d22.739c18","973bba6f.6e0248","7a30a7f9.6e1ae8","6e678b74.303c34","84c0d39e.e63c5","c015b9b7.736d8","b57c7a1.51b0008","88bf8b92.12a5e","64edc8a3.a7d48","e60b2fce.554fe","e2f5e253.1b2318","6d7d1582.92029c","59f0019d.e27e5","8a4f8bfb.56fa78","416a3007.88306","803a97d9.066c3","724e650c.59b494","7f28e1e1.db86f8","b09a986c.221fa8","5172899d.b7464","e9d9ba39.43f818","3d247334.a1372c","f255c05d.7948a","7213d545.2b0f9c","37ded934.68fab6","4c419af6.dc942c","2e387eee.1a638a","c5de323f.f81938","7cae277d.772588","c3814cf0.0b0738","6c53e4ce.fecfe4","4a08ade2.d13b7c","910ed547.3ffca","948c94af.a879","dfa7d0a5.73fd4","326513f8.a01924","82250dcd.64764","2ed539df.fbd8ce","17c62791.e0bba","1e7787ad.0d68a8","778c350c.8dd8e4","672a2172.2f5058"]]},{"id":"7599d396.fab11c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":582.0835952758789,"y":4812.631404876709,"z":"fd8223be.2936e","wires":[]},{"id":"37d1d007.e441d","type":"set","name":"set output to caller","xml":"<set>\n<parameter name='cto-api.contrail-route-allotted-instance-id' value='`$tmp.ar.allotted-resource-id`' />\n\n \n","comments":"","x":595.8374938964844,"y":4717.801609992981,"z":"fd8223be.2936e","wires":[]},{"id":"88bf8b92.12a5e","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":711.1708831787109,"y":3266.468216896057,"z":"fd8223be.2936e","wires":[]},{"id":"5487e8c6.2ce188","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":750.0121307373047,"y":1818.3691606521606,"z":"fd8223be.2936e","wires":[]},{"id":"90603bb4.644bf","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":818.9341888427734,"y":1861.9338998794556,"z":"fd8223be.2936e","wires":[[]]},{"id":"973bba6f.6e0248","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":802.1262435913086,"y":2133.828694343567,"z":"fd8223be.2936e","wires":[["ed128194.abfb6","db13b017.ab15b"]]},{"id":"bcff5d22.739c18","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":792.6722106933594,"y":1905.7197103500366,"z":"fd8223be.2936e","wires":[[]]},{"id":"ed128194.abfb6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1191.0890617370605,"y":2131.9697785377502,"z":"fd8223be.2936e","wires":[["b5310c26.f565d8"]]},{"id":"c015b9b7.736d8","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":676.0415382385254,"y":4578.041424751282,"z":"fd8223be.2936e","wires":[["852d43ca.478d68","dc3e6244.b22628","51fd5b3b.c2a0dc"]]},{"id":"852d43ca.478d68","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":943.0162200927734,"y":4609.373085021973,"z":"fd8223be.2936e","wires":[["c445da3e.4e161"]]},{"id":"dc3e6244.b22628","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":937.349609375,"y":4577.87292098999,"z":"fd8223be.2936e","wires":[["c445da3e.4e161"]]},{"id":"b87f121d.e891","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back\" />\n","comments":"","x":1279.4329414367676,"y":4623.956533432007,"z":"fd8223be.2936e","wires":[]},{"id":"b5310c26.f565d8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1320.0890464782715,"y":2128.8030405044556,"z":"fd8223be.2936e","wires":[["efb8d6d3.a0fa4"]]},{"id":"efb8d6d3.a0fa4","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1530.9462890625,"y":2128.4221696853638,"z":"fd8223be.2936e","wires":[["47489607.a87a28"]]},{"id":"47489607.a87a28","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1720.2795944213867,"y":2128.422127723694,"z":"fd8223be.2936e","wires":[["b6498b3f.f4a89"]]},{"id":"e07680f5.890c28","type":"comment","name":"Save consumed-allotted-resources to mdsal","info":"","comments":"","x":693.9935455322266,"y":3937.4700117111206,"z":"fd8223be.2936e","wires":[]},{"id":"d60bc376.6aa18","type":"comment","name":"GET contrail-route-allotted-resource from mdsal","info":"","comments":"","x":823.0888977050781,"y":2081.1362199783325,"z":"fd8223be.2936e","wires":[]},{"id":"7a30a7f9.6e1ae8","type":"set","name":"set ar-request-information","xml":"<set>\n<parameter name='ar-request-information.source' value=\"SDNC\" />\n\n\n","comments":"","x":775.9936828613281,"y":1644.3269243240356,"z":"fd8223be.2936e","wires":[]},{"id":"dd0f18a6.2957a8","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":766.6127777099609,"y":2243.0409364700317,"z":"fd8223be.2936e","wires":[]},{"id":"64edc8a3.a7d48","type":"set","name":"set identifiers in overal structure","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' \nvalue=\"`$ar-identifiers.`\" />\n\n\n","comments":"","x":730.3745155334473,"y":2838.7555561065674,"z":"fd8223be.2936e","wires":[]},{"id":"644ccc60.4a1004","type":"set","name":"set ar_name","xml":"<set>\n<parameter name='tmp.ar-name' value='$source-network-name_$cloud-region-id_$source-network-role_$collector-network-role _policy_' />\n","comments":"","x":978.3746719360352,"y":2449.1364755630493,"z":"fd8223be.2936e","wires":[]},{"id":"207be70c.805438","type":"execute","name":"execute SliStringUtils - replace $source-network-name","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$source-network-name\"/>\n    <parameter name=\"replacement\" value=\"`$ctotmp.s-l3-network.network-name`\"/>\n\n","comments":"","outputs":1,"x":1103.5179138183594,"y":2489.326988220215,"z":"fd8223be.2936e","wires":[[]]},{"id":"ca12d338.3af09","type":"execute","name":"execute SliStringUtils - replace collector-network-role","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$collector-network-role\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.collector-network-role`\"/>\n\n","comments":"","outputs":1,"x":1091.8511505126953,"y":2588.4696521759033,"z":"fd8223be.2936e","wires":[[]]},{"id":"2ed539df.fbd8ce","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":708.0414085388184,"y":2449.8029142320156,"z":"fd8223be.2936e","wires":[["644ccc60.4a1004","207be70c.805438","ca12d338.3af09","264ea65f.c1daa2","43ac428a.dc5c34","3d9c9398.344a14","9e2a16a6.a13cb8","3f03ddb7.9a84f2","ce6205d7.9406b8"]]},{"id":"264ea65f.c1daa2","type":"set","name":"set identifiers.allotted-resource-name","xml":"<set>\n<parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\n","comments":"","x":1043.0412788391113,"y":2736.7553153932095,"z":"fd8223be.2936e","wires":[]},{"id":"e60b2fce.554fe","type":"set","name":"set assignments in overal structure","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' \nvalue=\"`$ar-assignments.`\" />\n\n\n","comments":"","x":705.9459533691406,"y":3481.0422582626343,"z":"fd8223be.2936e","wires":[]},{"id":"6d7d1582.92029c","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.source-network.network-id' value=\"`$ctotmp.s-l3-network.network-id` \" />\n<parameter name='ar-assignments.source-network.network-role' value=\"`$cto-api.source-network-role` \" />\n<parameter name='ar-assignments.dest-network.network-id' value=\"`$ctotmp.c-l3-network.network-id` \" />\n<parameter name='ar-assignments.dest-network.network-role' value=\"`$cto-api.collector-network-role` \" />\n\n\n","comments":"","x":686.755500793457,"y":2873.8030004501343,"z":"fd8223be.2936e","wires":[]},{"id":"9e272ec7.04769","type":"for","name":"for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]","xml":"<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n","comments":"","outputs":1,"x":1573.5654296875,"y":4012.374701499939,"z":"fd8223be.2936e","wires":[["2a65ff.8d7fda02"]]},{"id":"6e678b74.303c34","type":"switchNode","name":"switch service-data.consumed-allotted-resources_length","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n","comments":"","outputs":1,"x":741.5648803710938,"y":3970.0887699127197,"z":"fd8223be.2936e","wires":[["2ca2838e.661a44","674d770a.b887e"]]},{"id":"2ca2838e.661a44","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1053.707763671875,"y":3972.9461851119995,"z":"fd8223be.2936e","wires":[["5e15905d.5fd038"]]},{"id":"674d770a.b887e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1041.7077674865723,"y":4015.946186542511,"z":"fd8223be.2936e","wires":[["106d14da.f2f283"]]},{"id":"2a65ff.8d7fda02","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n","comments":"","outputs":1,"x":2003.660629272461,"y":4014.43434381485,"z":"fd8223be.2936e","wires":[["f00c83a.815be"]]},{"id":"f00c83a.815be","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2208.4706268310547,"y":4014.898920059204,"z":"fd8223be.2936e","wires":[["23dd8766.297268"]]},{"id":"106d14da.f2f283","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1201.8348579406738,"y":4014.072163105011,"z":"fd8223be.2936e","wires":[["9e272ec7.04769","b4720284.921fa"]]},{"id":"23dd8766.297268","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2399.2314453125,"y":4014.7560930252075,"z":"fd8223be.2936e","wires":[["48b3fee5.6ccd8","d4e53b54.a15808"]]},{"id":"5e15905d.5fd038","type":"set","name":"set cidx","xml":"<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n","comments":"","x":1212.5647354125977,"y":3972.6602478027344,"z":"fd8223be.2936e","wires":[]},{"id":"48b3fee5.6ccd8","type":"set","name":"set tmp.cidx and ctx.consumed-ar","xml":"<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\n<parameter name='tmp.found-cidx' value='true' />","comments":"","x":2645.088876724243,"y":3971.994129180908,"z":"fd8223be.2936e","wires":[]},{"id":"84c0d39e.e63c5","type":"set","name":"set consumed allotted resources","xml":"<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$tmp.ar.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n","comments":"","x":665.4222869873047,"y":4010.6603050231934,"z":"fd8223be.2936e","wires":[]},{"id":"abf7f200.f83fc8","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":753.5650177001953,"y":1961.9933624267578,"z":"fd8223be.2936e","wires":[]},{"id":"b09a986c.221fa8","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.fq-name' value=\"`$tmp.fq-name` \" />\n\n\n\n","comments":"","x":680.0888290405273,"y":3091.9469709396362,"z":"fd8223be.2936e","wires":[]},{"id":"35bec61.b93bbba","type":"comment","name":"Add AR to md-sal","info":"","comments":"","x":597.3270835876465,"y":4550.89836025238,"z":"fd8223be.2936e","wires":[]},{"id":"b57c7a1.51b0008","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":666.6600646972656,"y":3227.2319765090942,"z":"fd8223be.2936e","wires":[[]]},{"id":"b6498b3f.f4a89","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Existing contrail route allotted resource\" />\n    \n","comments":"","x":1900.6075477600098,"y":2126.369183063507,"z":"fd8223be.2936e","wires":[]},{"id":"db13b017.ab15b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1187.940845489502,"y":2165.3692865371704,"z":"fd8223be.2936e","wires":[["c478d043.0bfbb"]]},{"id":"c478d043.0bfbb","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1322.9407958984375,"y":2166.0357751846313,"z":"fd8223be.2936e","wires":[[]]},{"id":"e2f5e253.1b2318","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<!--\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n-->","comments":"","x":718.2740936279297,"y":2189.702548980713,"z":"fd8223be.2936e","wires":[]},{"id":"43ac428a.dc5c34","type":"execute","name":"execute SliStringUtils - replace $cloud-region-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$cloud-region-id\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.cloud-region-id`\"/>\n\n","comments":"","outputs":1,"x":1081.8927841186523,"y":2521.7025747299194,"z":"fd8223be.2936e","wires":[[]]},{"id":"3d9c9398.344a14","type":"execute","name":"execute SliStringUtils - replace $source-network-role","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$source-network-role\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.source-network-role`\"/>\n\n","comments":"","outputs":1,"x":1085.2736053466797,"y":2549.035895347595,"z":"fd8223be.2936e","wires":[[]]},{"id":"3f03ddb7.9a84f2","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1101.6071472167969,"y":2696.3691416978836,"z":"fd8223be.2936e","wires":[["b548b1f6.a326a","2e1da622.231e42"]]},{"id":"b548b1f6.a326a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1436.321792602539,"y":2694.2263759970665,"z":"fd8223be.2936e","wires":[["ed374845.ee4bb"]]},{"id":"2e1da622.231e42","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1441.6550369262695,"y":2725.8930765092373,"z":"fd8223be.2936e","wires":[["5f3684b9.b9797c"]]},{"id":"9e2a16a6.a13cb8","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$tmp.ar-name`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n","comments":"","x":1063.2741470336914,"y":2626.035841912031,"z":"fd8223be.2936e","wires":[]},{"id":"5f3684b9.b9797c","type":"set","name":"set tmp.ar-name to generated name","xml":"<set>\n<parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":1688.845199584961,"y":2726.3691568374634,"z":"fd8223be.2936e","wires":[]},{"id":"ed374845.ee4bb","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1610.1787147521973,"y":2693.6548896729946,"z":"fd8223be.2936e","wires":[]},{"id":"59f0019d.e27e5","type":"set","name":"set fq_name","xml":"<set>\n<parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />\n","comments":"","x":668.4166259765625,"y":2958.083620071411,"z":"fd8223be.2936e","wires":[]},{"id":"8a4f8bfb.56fa78","type":"execute","name":"execute SliStringUtils - replace $defaultDomain","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultDomain\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.default-domain`\"/>\n\n","comments":"","outputs":1,"x":775.7500152587891,"y":2988.0835410654545,"z":"fd8223be.2936e","wires":[[]]},{"id":"416a3007.88306","type":"execute","name":"execute SliStringUtils - replace $defaultProject","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultProject\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.default-project`\"/>\n\n","comments":"","outputs":1,"x":775.7500076293945,"y":3021.417103767395,"z":"fd8223be.2936e","wires":[[]]},{"id":"bd3fa69c.30dc4","type":"comment","name":"generate fqname","info":"","comments":"","x":677.4166717529297,"y":2931.416926383972,"z":"fd8223be.2936e","wires":[]},{"id":"803a97d9.066c3","type":"execute","name":"execute SliStringUtils - replace $sdncNetworkPolicy","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$sdncNetworkPolicy\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar-name`\"/>\n\n","comments":"","outputs":1,"x":786.7499618530273,"y":3054.749886661768,"z":"fd8223be.2936e","wires":[[]]},{"id":"724e650c.59b494","type":"update","name":"save AAI allotted-resource","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $cto-api.service-type AND\n\t\t\tservice-instance.service-instance-id = $cto-api.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n    <parameter name=\"id\" value=\"`$tmp.ar.allotted-resource-id`\" />\n\t<parameter name=\"description\" value=\"`$tmp.ar.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n\t<parameter name=\"order-status\" value=\"Created\" />","comments":"","outputs":1,"x":658.3690795898438,"y":3697.9887590408325,"z":"fd8223be.2936e","wires":[["1ded98d5.9cb767","26bf7392.67e7a4","e80c53f2.a704a"]]},{"id":"1ded98d5.9cb767","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":907.0357131958008,"y":3670.226936817169,"z":"fd8223be.2936e","wires":[["3b1f3b10.705a0c"]]},{"id":"26bf7392.67e7a4","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":912.345142364502,"y":3705.798354625702,"z":"fd8223be.2936e","wires":[["3b1f3b10.705a0c"]]},{"id":"ce6205d7.9406b8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"tmp.ar-name=\"/>\n<parameter name=\"field3\" value=\"`$tmp.ar-name`\"/>\n<parameter name=\"field4\" value=\"generate-unique-name-input.prefix\" />\n<parameter name=\"field5\" value=\"`$generate-unique-name-input.prefix`\" />","comments":"","outputs":1,"x":954.4739456176758,"y":2661.0359387099743,"z":"fd8223be.2936e","wires":[[]]},{"id":"7f28e1e1.db86f8","type":"execute","name":"generate parent-network url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-parentnetwork-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":768.2741546630859,"y":2034.7022666931152,"z":"fd8223be.2936e","wires":[[]]},{"id":"c3a420b2.5783a","type":"comment","name":"Update AAI AR","info":"","comments":"","x":614.6166381835938,"y":3656.417206287384,"z":"fd8223be.2936e","wires":[]},{"id":"5172899d.b7464","type":"execute","name":"execute RestApiCallNode - Update parent provided service AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n","comments":"","outputs":1,"x":745.6167144775391,"y":4148.750764369965,"z":"fd8223be.2936e","wires":[["e59c42d5.79faf8","422ff4ec.a8a394","e613335b.7c4aa8"]]},{"id":"e59c42d5.79faf8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1066.2580795288086,"y":4197.08226108551,"z":"fd8223be.2936e","wires":[["10882401.6b38ec"]]},{"id":"422ff4ec.a8a394","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1058.9247817993164,"y":4162.249007701874,"z":"fd8223be.2936e","wires":[["10882401.6b38ec"]]},{"id":"e613335b.7c4aa8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1062.674819946289,"y":4132.606112577021,"z":"fd8223be.2936e","wires":[["60a1a7d3.34c4b8"]]},{"id":"60a1a7d3.34c4b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1204.3307876586914,"y":4128.798281766474,"z":"fd8223be.2936e","wires":[[]]},{"id":"f83ef61.b139408","type":"comment","name":"Put the parent allotted resource in mdsal","info":"","comments":"","x":672.6166801452637,"y":4116.750589847565,"z":"fd8223be.2936e","wires":[]},{"id":"b4720284.921fa","type":"switchNode","name":"switch tmp.found-cidx","xml":"<switch test='`$tmp.found-cidx`'>\n","comments":"","outputs":1,"x":1390.9499244689941,"y":4077.7504601478577,"z":"fd8223be.2936e","wires":[["970f80eb.52fe4"]]},{"id":"970f80eb.52fe4","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1580.949878692627,"y":4077.750397205353,"z":"fd8223be.2936e","wires":[["b15e15ed.cb123"]]},{"id":"b15e15ed.cb123","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1746.949878692627,"y":4077.750397205353,"z":"fd8223be.2936e","wires":[["7f6380dc.838d4"]]},{"id":"7f6380dc.838d4","type":"set","name":"set tmp.cidx ","xml":"<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n","comments":"","x":1992.807207107544,"y":4078.32187128067,"z":"fd8223be.2936e","wires":[]},{"id":"d4e53b54.a15808","type":"break","name":"break","xml":"<break>\n","comments":"","x":2561.9498291015625,"y":4000.7501294612885,"z":"fd8223be.2936e","wires":[]},{"id":"e9d9ba39.43f818","type":"execute","name":"generate parent-ar url - replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":841.140869140625,"y":1993.369249343872,"z":"fd8223be.2936e","wires":[[]]},{"id":"3d247334.a1372c","type":"execute","name":"generate parent-ar url - replace allotted-resource-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":829.4740142822266,"y":2278.369143486023,"z":"fd8223be.2936e","wires":[[]]},{"id":"2f969250.766e46","type":"execute","name":"execute RestApiCallNode - Update parent provided service AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n","comments":"","outputs":1,"x":1436.4169578552246,"y":4589.750328063965,"z":"fd8223be.2936e","wires":[["cacefbda.c09118","a4a8e124.abfb98","a90079c7.306d8"]]},{"id":"48cc2493.a0fe6c","type":"comment","name":"Rollback parent","info":"","comments":"","x":1280.4168853759766,"y":4559.41695857048,"z":"fd8223be.2936e","wires":[]},{"id":"c445da3e.4e161","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1089.0834884643555,"y":4589.083631515503,"z":"fd8223be.2936e","wires":[["2f969250.766e46","76e9e56c.5f957c"]]},{"id":"cacefbda.c09118","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1807.7250061035156,"y":4650.415294408798,"z":"fd8223be.2936e","wires":[["772f3e20.3729e8"]]},{"id":"a4a8e124.abfb98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1798.72505569458,"y":4618.915320158005,"z":"fd8223be.2936e","wires":[["772f3e20.3729e8"]]},{"id":"a90079c7.306d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1802.4750938415527,"y":4589.272425033152,"z":"fd8223be.2936e","wires":[["772f3e20.3729e8"]]},{"id":"772f3e20.3729e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1944.131061553955,"y":4585.464594222605,"z":"fd8223be.2936e","wires":[[]]},{"id":"f255c05d.7948a","type":"execute","name":"generate network-ar url - replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":831.2739562988281,"y":2318.368896484375,"z":"fd8223be.2936e","wires":[[]]},{"id":"4bc63892.dc826","type":"comment","name":"allotted resource already exists- no op","info":"","comments":"","x":2516.7498817443848,"y":3931.4163995981216,"z":"fd8223be.2936e","wires":[]},{"id":"80af03e.6ba0e8","type":"comment","name":"Other Rollbacks? ","info":"","comments":"","x":1286.0832328796387,"y":4651.416703224182,"z":"fd8223be.2936e","wires":[]},{"id":"358b2d3.80d5a52","type":"comment","name":"MDSal adaptor only saves consuming service so parent service and AR are done by Rest api calls","info":"","comments":"","x":678.7499389648438,"y":69.74998950958252,"z":"fd8223be.2936e","wires":[]},{"id":"1b0fea44.83ef26","type":"comment","name":"Parameter names","info":"INPUT:\ncto-api.parent-service-instance-id\ncto-api.port-mirror-configuration-instance-id\ncto-api.source-network-role\ncto-api.collector-network-role\ncto-api.default-domain\ncto-api.default-project\ncto-api.cloud-region-id\ncto-api.service-type\nOUTPUT:\ncto-api.contrail-route-allotted-resource-id\n","comments":"","x":425.75,"y":102.75000476837158,"z":"fd8223be.2936e","wires":[]},{"id":"7213d545.2b0f9c","type":"save","name":"Get network from AAI for source network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"ctotmp.aai.source-network\">\n      <parameter name=\"start[0]\" value=\"`'/cloud-infrastructure/cloud-regions/cloud-region/' + $cto-api.cloud-owner + '/'  + $cto-api.cloud-region-id`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/network-name-fromNetwork-role?networkRole='  + $cto-api.source-network-role`\" /> \n","comments":"","outputs":1,"x":835.4283599853516,"y":476.65470790863037,"z":"fd8223be.2936e","wires":[["f489a184.f63528","90317c35.5ed19"]]},{"id":"f489a184.f63528","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1107.5712089538574,"y":446.6548328399658,"z":"fd8223be.2936e","wires":[["b7191164.dbdd18"]]},{"id":"b7191164.dbdd18","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1276.8093223571777,"y":437.13086891174316,"z":"fd8223be.2936e","wires":[["4e660df0.8c2e1c"]]},{"id":"90317c35.5ed19","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1109.3568572998047,"y":476.71428298950195,"z":"fd8223be.2936e","wires":[["23eddc08.e69244"]]},{"id":"23eddc08.e69244","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1273.6425666809082,"y":475.28576469421387,"z":"fd8223be.2936e","wires":[["7fc789ae.200978"]]},{"id":"2e387eee.1a638a","type":"configure","name":"set default values","xml":"<set>\n<parameter name=\"ctotmp.s-l3-network\" value=\"\" />\n<parameter name=\"ctotmp.num-s-network\" value=\"0\" />\n<parameter name=\"ctotmp.s-network-policy\" value=\"\" />\n<parameter name=\"ctotmp.num-s-np\" value=\"0\" />\n<parameter name=\"ctotmp.c-l3-network\" value=\"\" />\n<parameter name=\"ctotmp.num-c-network\" value=\"0\" />\n<parameter name=\"ctotmp.c-network-policy\" value=\"\" />\n<parameter name=\"ctotmp.num-c-np\" value=\"0\" />\n<parameter name=\"ctotmp.s-network-policy-list_length\" value=\"0\" />\n<parameter name=\"ctotmp.c-network-policy-list_length\" value=\"0\" />\n<parameter name=\"ctotmp.network-policy-id\" value=\"\" />\n<parameter name=\"ctotmp.action\" value=\"create\" />\n","comments":"","outputs":1,"x":774.4165954589844,"y":314.2737703323364,"z":"fd8223be.2936e","wires":[[]]},{"id":"527138b.89bd148","type":"comment","name":"Get l3-network/policy for source network role","info":"","comments":"","x":837.5117034912109,"y":446.65477657318115,"z":"fd8223be.2936e","wires":[]},{"id":"4e660df0.8c2e1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Failed to get source network from aai\" />\n","comments":"","x":1449.4166374206543,"y":439.2737159729004,"z":"fd8223be.2936e","wires":[]},{"id":"7fc789ae.200978","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Source network not found in AAI\" />\n","comments":"","x":1447.9878578186035,"y":473.5594291687012,"z":"fd8223be.2936e","wires":[]},{"id":"37ded934.68fab6","type":"for","name":"for each src network","xml":"<for index='ctotmp.sidx' start='0' end='`$ctotmp.aai.source-network.results_length`' >\n","comments":"","outputs":1,"x":772.7499237060547,"y":551.416615486145,"z":"fd8223be.2936e","wires":[["b901219f.362c48"]]},{"id":"62ec4e1c.4e5e1","type":"switchNode","name":"check for network-policy","xml":"<switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`'>\n","comments":"","outputs":1,"x":1189.4167175292969,"y":551.0831060409546,"z":"fd8223be.2936e","wires":[["82e974a5.880ec","ab575fe2.1a7378"]]},{"id":"82e974a5.880ec","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1379.4165573120117,"y":533.0831651687622,"z":"fd8223be.2936e","wires":[["b8c1cb2a.2baaa"]]},{"id":"ab575fe2.1a7378","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1382.7498397827148,"y":569.5118780136108,"z":"fd8223be.2936e","wires":[["fdc0d899.f8967"]]},{"id":"b8c1cb2a.2baaa","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1541.0832214355469,"y":533.797441482544,"z":"fd8223be.2936e","wires":[[]]},{"id":"fdc0d899.f8967","type":"switchNode","name":"switch network-policy-id","xml":"<switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`'>\n","comments":"","outputs":1,"x":1569.416763305664,"y":568.0834722518921,"z":"fd8223be.2936e","wires":[["9a0326c9.066d","f2d265f2.4447a8"]]},{"id":"9a0326c9.066d","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1794.4165344238281,"y":541.4164571762085,"z":"fd8223be.2936e","wires":[["924c99f0.70c"]]},{"id":"f2d265f2.4447a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1792.7497596740723,"y":569.5117740631104,"z":"fd8223be.2936e","wires":[["d577bcf4.265fc8"]]},{"id":"d577bcf4.265fc8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1957.749843597412,"y":578.0831642150879,"z":"fd8223be.2936e","wires":[["ecf1fa5d.04cc2","cbfccf94.e608c8","400312fa.149e74"]]},{"id":"ecf1fa5d.04cc2","type":"configure","name":"set ctotmp.num-s-np","xml":"<set>\n<parameter name=\"ctotmp.num-s-np\" value=\"`$ctotmp.num-s-np+1`\" />\n","comments":"","outputs":1,"x":2189.9881744384766,"y":569.4641437530518,"z":"fd8223be.2936e","wires":[[]]},{"id":"924c99f0.70c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1962.7498626708984,"y":543.083291053772,"z":"fd8223be.2936e","wires":[[]]},{"id":"5abec00b.b100b","type":"switchNode","name":"check for l3-network","xml":"<switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.network-id`'>\n","comments":"","outputs":1,"x":1179.416648864746,"y":629.7497749328613,"z":"fd8223be.2936e","wires":[["e1486c36.e9aba8","7fb419d1.9615e8"]]},{"id":"e1486c36.e9aba8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1386.0831832885742,"y":614.7498550415039,"z":"fd8223be.2936e","wires":[["83b5f616.98f4c"]]},{"id":"7fb419d1.9615e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1389.4164657592773,"y":652.8451910018921,"z":"fd8223be.2936e","wires":[["1db68be1.b1d39c"]]},{"id":"83b5f616.98f4c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1547.749813079834,"y":615.1308164596558,"z":"fd8223be.2936e","wires":[[]]},{"id":"1db68be1.b1d39c","type":"switchNode","name":"switch network-id","xml":"<switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.network-id`'>\n","comments":"","outputs":1,"x":1561.083351135254,"y":653.0834550857544,"z":"fd8223be.2936e","wires":[["63feb3f3.840974","5823b7ec.89fb68"]]},{"id":"63feb3f3.840974","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1799.4164924621582,"y":631.4164018630981,"z":"fd8223be.2936e","wires":[["a870e259.8f814"]]},{"id":"5823b7ec.89fb68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1801.0830917358398,"y":676.1784429550171,"z":"fd8223be.2936e","wires":[["d04fa4d.65ff158"]]},{"id":"d04fa4d.65ff158","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1959.4165344238281,"y":674.7497701644897,"z":"fd8223be.2936e","wires":[["f43dcd75.cd43d8"]]},{"id":"a870e259.8f814","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1969.4164562225342,"y":631.4166040420532,"z":"fd8223be.2936e","wires":[[]]},{"id":"b901219f.362c48","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":977.7498626708984,"y":551.4166040420532,"z":"fd8223be.2936e","wires":[["62ec4e1c.4e5e1","5abec00b.b100b"]]},{"id":"f43dcd75.cd43d8","type":"configure","name":"set s-l3-network and num-s-network","xml":"<set>\n<parameter name=\"ctotmp.s-l3-network.\" value=\"`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.`\" />\n<parameter name=\"ctotmp.num-s-network\" value=\"`$ctotmp.num-s-network+1`\" />\n\n","comments":"","outputs":1,"x":2214.0830078125,"y":673.0832681655884,"z":"fd8223be.2936e","wires":[[]]},{"id":"4c419af6.dc942c","type":"configure","name":"clear internal data","xml":"<set>\n<parameter name=\"ctotmp.\" value=\"\" />\n<parameter name=\"ar-request-information.\" value=\"\" />\n<parameter name=\"ar-created\" value=\"\" />\n<parameter name=\"ar-aai-created\" value=\"\" />\n<parameter name=\"np-aai-created\" value=\"\" />\n<parameter name=\"contrail-created\" value=\"\" />\n","comments":"","outputs":1,"x":771.0833129882812,"y":279.7499985694885,"z":"fd8223be.2936e","wires":[[]]},{"id":"948c94af.a879","type":"set","name":"set ar-contrail-route=request-input","xml":"<set>\n<parameter name='ar-contrail-route-request-input.source-network.network-role' value=\"`$cto-api.source-network-role`\" />\n<parameter name='ar-contrail-route-request-input.source-network.network-id' value=\"`$ctotmp.source-network.network-id`\" />\n<parameter name='ar-contrail-route-request-input.dest-network.network-role' value=\"`$cto-api.collector-network-role`\" />\n<parameter name='ar-contrail-route-request-input.dest-network.network-id' value=\"`$ctotmp.dest-network.network-id`\" />\n\n","comments":"","x":799.4167327880859,"y":1686.7498121261597,"z":"fd8223be.2936e","wires":[]},{"id":"c5de323f.f81938","type":"switchNode","name":"switch num-s-network","xml":"<switch test='`$ctotmp.num-s-network`'>\n","comments":"","outputs":1,"x":774.4166107177734,"y":723.0831327438354,"z":"fd8223be.2936e","wires":[["64a3201b.dafe8","48b7d85e.afa768","ec81d452.09a2b8"]]},{"id":"48b7d85e.afa768","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":971.0833282470703,"y":761.4166269302368,"z":"fd8223be.2936e","wires":[["8202168f.6d8d48"]]},{"id":"64a3201b.dafe8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":971.0832405090332,"y":692.7498483657837,"z":"fd8223be.2936e","wires":[["3828f995.1688fe"]]},{"id":"ec81d452.09a2b8","type":"other","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":969.4166107177734,"y":728.0831747055054,"z":"fd8223be.2936e","wires":[["7c1e2f87.932f5"]]},{"id":"3828f995.1688fe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Source network not found from aai\" />\n","comments":"","x":1134.4165534973145,"y":692.7498826980591,"z":"fd8223be.2936e","wires":[]},{"id":"8202168f.6d8d48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Too many networks returned for source network from aai\" />\n","comments":"","x":1130.7498970031738,"y":761.7498617172241,"z":"fd8223be.2936e","wires":[]},{"id":"7c1e2f87.932f5","type":"configure","name":"set source network-id","xml":"<set>\n<parameter name=\"ctotmp.source-network.network-id\" value=\"`$ctotmp.s-l3-network.network-id`\" />\n\n\n","comments":"","outputs":1,"x":1157.75,"y":731.0833024978638,"z":"fd8223be.2936e","wires":[[]]},{"id":"c3814cf0.0b0738","type":"save","name":"Get network from AAI for collector network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"ctotmp.aai.collector-network\">\n      <parameter name=\"start[0]\" value=\"`'/cloud-infrastructure/cloud-regions/cloud-region/' + $cto-api.cloud-owner + '/'  + $cto-api.cloud-region-id`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/network-name-fromNetwork-role?networkRole='  + $cto-api.collector-network-role`\" /> \n","comments":"","outputs":1,"x":844.4166564941406,"y":864.7499113082886,"z":"fd8223be.2936e","wires":[["bb88165.d1937e8","7f15d0fc.069948"]]},{"id":"bb88165.d1937e8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1116.5595054626465,"y":834.750036239624,"z":"fd8223be.2936e","wires":[["bde8dca0.2e98d"]]},{"id":"bde8dca0.2e98d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1285.7976188659668,"y":825.2260723114014,"z":"fd8223be.2936e","wires":[["f2f89124.07b14"]]},{"id":"7f15d0fc.069948","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1118.3451538085938,"y":864.8094863891602,"z":"fd8223be.2936e","wires":[["716be41c.d6d394"]]},{"id":"716be41c.d6d394","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1282.6308631896973,"y":863.3809680938721,"z":"fd8223be.2936e","wires":[["ffe76153.cabf68"]]},{"id":"56ea117c.705cb8","type":"comment","name":"Get l3-network/policy for collector network role","info":"","comments":"","x":846.5,"y":834.7499799728394,"z":"fd8223be.2936e","wires":[]},{"id":"f2f89124.07b14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Failed to get collector network from aai\" />\n","comments":"","x":1458.4049339294434,"y":827.3689193725586,"z":"fd8223be.2936e","wires":[]},{"id":"ffe76153.cabf68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Collector network not found in AAI\" />\n","comments":"","x":1456.9761543273926,"y":861.6546325683594,"z":"fd8223be.2936e","wires":[]},{"id":"7cae277d.772588","type":"for","name":"for each collector network","xml":"<for index='ctotmp.cidx' start='0' end='`$ctotmp.aai.collector-network.results_length`' >\n","comments":"","outputs":1,"x":771.4049072265625,"y":952.5117797851562,"z":"fd8223be.2936e","wires":[["f0662510.4e8fb8"]]},{"id":"230f1cfd.35f71c","type":"switchNode","name":"check for l3-network","xml":"<switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.network-id`'>\n","comments":"","outputs":1,"x":1208.0716552734375,"y":954.1781616210938,"z":"fd8223be.2936e","wires":[["fbe44b80.49bb3","578fb4d0.480724"]]},{"id":"fbe44b80.49bb3","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1415.0714111328125,"y":953.1783447265625,"z":"fd8223be.2936e","wires":[["b5d85abf.060458"]]},{"id":"578fb4d0.480724","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1418.4046936035156,"y":991.2736806869507,"z":"fd8223be.2936e","wires":[["9d0af548.8c9958"]]},{"id":"9d0af548.8c9958","type":"switchNode","name":"switch network-id","xml":"<switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.network-id`'>\n","comments":"","outputs":1,"x":1590.0715789794922,"y":991.511944770813,"z":"fd8223be.2936e","wires":[["643bc785.a07d5","a9f3513.8d7ddb"]]},{"id":"643bc785.a07d5","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1777.7381591796875,"y":992.511474609375,"z":"fd8223be.2936e","wires":[["26d45d59.14ab12"]]},{"id":"a9f3513.8d7ddb","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1779.4047584533691,"y":1037.273515701294,"z":"fd8223be.2936e","wires":[["ba7314d9.3de7b8"]]},{"id":"ba7314d9.3de7b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1937.7382011413574,"y":1035.8448429107666,"z":"fd8223be.2936e","wires":[["fbe27f49.91dd28","94eb59a2.0945b"]]},{"id":"26d45d59.14ab12","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1947.7381229400635,"y":992.5116767883301,"z":"fd8223be.2936e","wires":[[]]},{"id":"f0662510.4e8fb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":996.7381973266602,"y":952.8450679779053,"z":"fd8223be.2936e","wires":[["230f1cfd.35f71c"]]},{"id":"fbe27f49.91dd28","type":"configure","name":"set c-l3-network and num-c-network","xml":"<set>\n<parameter name=\"ctotmp.c-l3-network.\" value=\"`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.`\" />\n<parameter name=\"ctotmp.num-c-network\" value=\"`$ctotmp.num-c-network+1`\" />\n\n","comments":"","outputs":1,"x":2215.40478515625,"y":999.1783447265625,"z":"fd8223be.2936e","wires":[[]]},{"id":"810fdfd4.2afd5","type":"comment","name":"Do we need to check for > 1","info":"","comments":"","x":791.0833168029785,"y":678.0833911895752,"z":"fd8223be.2936e","wires":[]},{"id":"cbfccf94.e608c8","type":"configure","name":"add s-network-policy-id to list","xml":"<set>\n<parameter name=\"ctotmp.s-network-policy-list[$ctotmp.num-s-np].network-policy-id\" value=\"`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`\" />\n\n","comments":"","outputs":1,"x":2212.749931335449,"y":543.0833034515381,"z":"fd8223be.2936e","wires":[[]]},{"id":"400312fa.149e74","type":"configure","name":"set s-network-policy-list_length","xml":"<set>\n<parameter name=\"ctotmp.s-network-policy-list_length\" value=\"`$ctotmp.num-s-np`\" />\n","comments":"","outputs":1,"x":2214.4168434143066,"y":604.7499723434448,"z":"fd8223be.2936e","wires":[[]]},{"id":"4a08ade2.d13b7c","type":"for","name":"for each source-network-policy","xml":"<for index='ctotmp.spidx' start='0' end='`$ctotmp.s-network-policy-list_length`' >\n","comments":"","outputs":1,"x":783.0833384394646,"y":1349.749788761139,"z":"fd8223be.2936e","wires":[["6b08e08e.3836b"]]},{"id":"6b08e08e.3836b","type":"for","name":"for each collector-network-policy","xml":"<for index='ctotmp.cpidx' start='0' end='`$ctotmp.c-network-policy-list_length`' >\n","comments":"","outputs":1,"x":1089.7500101923943,"y":1348.0831761360168,"z":"fd8223be.2936e","wires":[["3578a521.ca3c32"]]},{"id":"3578a521.ca3c32","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1348.0832774043083,"y":1348.0831627845764,"z":"fd8223be.2936e","wires":[["3948c7e7.d3adb8"]]},{"id":"1433c949.6a3ddf","type":"comment","name":"Check if the source and collector network tied to same network policy","info":"","comments":"","x":903.0833231806755,"y":1313.083164691925,"z":"fd8223be.2936e","wires":[]},{"id":"6c53e4ce.fecfe4","type":"switchNode","name":"switch num-c-network","xml":"<switch test='`$ctotmp.num-c-network`'>\n","comments":"","outputs":1,"x":768.083273589611,"y":1201.4165048599243,"z":"fd8223be.2936e","wires":[["57594924.deefc8","9e18ade.cd92a5","fdd09fb3.c645a"]]},{"id":"9e18ade.cd92a5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":964.7499694824219,"y":1239.749945640564,"z":"fd8223be.2936e","wires":[["9edabcd2.3b55a8"]]},{"id":"57594924.deefc8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":966.4165954589844,"y":1176.083170890808,"z":"fd8223be.2936e","wires":[["388cf1b9.8ef3a6"]]},{"id":"fdd09fb3.c645a","type":"other","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":963.083251953125,"y":1206.4164934158325,"z":"fd8223be.2936e","wires":[["cad12ae1.434178"]]},{"id":"388cf1b9.8ef3a6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Collector network not found from aai\" />\n","comments":"","x":1121.7498779296875,"y":1177.083251953125,"z":"fd8223be.2936e","wires":[]},{"id":"9edabcd2.3b55a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Too many networks returned for collector network from aai\" />\n","comments":"","x":1124.4165382385254,"y":1240.0831804275513,"z":"fd8223be.2936e","wires":[]},{"id":"cad12ae1.434178","type":"configure","name":"set collector network-id","xml":"<set>\n<parameter name=\"ctotmp.dest-network.network-id\" value=\"`$ctotmp.c-l3-network.network-id`\" />\n\n\n","comments":"","outputs":1,"x":1151.4166412353516,"y":1208.4166345596313,"z":"fd8223be.2936e","wires":[[]]},{"id":"928568b8.42cae","type":"comment","name":"Do we need to check for > 1","info":"","comments":"","x":786.4167391657829,"y":1163.0834650993347,"z":"fd8223be.2936e","wires":[]},{"id":"3948c7e7.d3adb8","type":"switchNode","name":"switch source policy = collector policy","xml":"<switch test='`$ctotmp.s-network-policy-list[$ctotmp.spidx].network-policy-id == $ctotmp.c-network-policy-list[$ctotmp.cpidx].network-policy-id`'>\n","comments":"","outputs":1,"x":1622.4166259765625,"y":1350.08336353302,"z":"fd8223be.2936e","wires":[["d30cdd30.d5a818"]]},{"id":"4a42aa8b.83e934","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2055.7499771118164,"y":1348.4166588783264,"z":"fd8223be.2936e","wires":[["2e7bff75.08d278","a90dd523.58d14"]]},{"id":"2e7bff75.08d278","type":"configure","name":"set ctotmp.network-policy-id","xml":"<set>\n<parameter name=\"ctotmp.network-policy-id\" value=\"`$ctotmp.s-network-policy-list[$ctotmp.spidx].network-policy-id`\" />\n<parameter name=\"ctotmp.existing-network-policy-found\" value=\"true\" />","comments":"","outputs":1,"x":2310.7499771118164,"y":1348.4166588783264,"z":"fd8223be.2936e","wires":[[]]},{"id":"a90dd523.58d14","type":"break","name":"break","xml":"<break>\n","comments":"","x":2249.083236694336,"y":1425.08340549469,"z":"fd8223be.2936e","wires":[]},{"id":"d30cdd30.d5a818","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1870.7499732971191,"y":1348.4166555404663,"z":"fd8223be.2936e","wires":[["4a42aa8b.83e934"]]},{"id":"fd2ab770.01bd18","type":"comment","name":"if network policy found, get AR and return to calling method","info":"","comments":"","x":876.4166628718376,"y":1458.4165740013123,"z":"fd8223be.2936e","wires":[]},{"id":"910ed547.3ffca","type":"switchNode","name":"switch network-policy-id","xml":"<switch test='`$ctotmp.network-policy-id`'>\n","comments":"","outputs":1,"x":773.0833498835564,"y":1493.0831999778748,"z":"fd8223be.2936e","wires":[["dc9f60fd.a57cb","ef776953.3d7ee8"]]},{"id":"dc9f60fd.a57cb","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":979.7500101923943,"y":1491.4167160987854,"z":"fd8223be.2936e","wires":[["931d7263.438eb"]]},{"id":"ef776953.3d7ee8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":983.0833422541618,"y":1524.7500100135803,"z":"fd8223be.2936e","wires":[["4fb26c91.499a04"]]},{"id":"931d7263.438eb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1144.7499606013298,"y":1491.4165968894958,"z":"fd8223be.2936e","wires":[[]]},{"id":"4fb26c91.499a04","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1154.749912917614,"y":1524.749927997589,"z":"fd8223be.2936e","wires":[["e80a0448.c77ed"]]},{"id":"e80a0448.c77ed","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"existing policy - error\" />\n","comments":"","x":1388.0832964777946,"y":1524.7498869895935,"z":"fd8223be.2936e","wires":[]},{"id":"218546c.191c6ba","type":"comment","name":"Flow to create the allotted resource","info":"","comments":"","x":791.0833129882812,"y":1557.4167375564575,"z":"fd8223be.2936e","wires":[]},{"id":"f542c02a.d7178","type":"comment","name":"Flow to use the existing allotted resource - TBD","info":"","comments":"","x":1467.7498779296875,"y":1409.749927520752,"z":"fd8223be.2936e","wires":[]},{"id":"bbda49e2.2a06b8","type":"comment","name":"Begin setup of new Allotted Resource","info":"","comments":"","x":802.7500457763672,"y":1591.416841506958,"z":"fd8223be.2936e","wires":[]},{"id":"dfa7d0a5.73fd4","type":"set","name":"set ar-identifiers","xml":"<set>\n<parameter name='ar-identifiers.allotted-resource-id' value=\"`$tmp.return.generate-allottedresource-id.id`\" />\n<parameter name='ar-identifiers.allotted-resource-type' value=\"contrail-route\" />\n<parameter name='ar-identifiers.parent-service-instance-id' value=\"`$cto-api.parent-service-instance-id`\" />\n<parameter name='ar-identifiers.consuming-service-instance-id' value=\"`$cto-api.service-instance-id` \" />\n<parameter name=\"tmp.ar.allotted-resource-id\" value=\"`$tmp.return.generate-allottedresource-id.id`\" />\n<parameter name='tmp.ar.allotted-resource-type' value=\"contrail-route\" />\n<parameter name='tmp.ar.parent-service-instance-id' value=\"`$cto-api.parent-service-instance-id`\" />\n<!-- <parameter name='tmp.ar.contrail-applied-service-instance-id' value='' />  -->\n","comments":"","x":742.4166717529297,"y":1771.4163599014282,"z":"fd8223be.2936e","wires":[]},{"id":"326513f8.a01924","type":"call","name":"call generate-allottedresource-id","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-allottedresource-id' mode='sync' >\n","comments":"","outputs":1,"x":793.2258377075195,"y":1723.8451147079468,"z":"fd8223be.2936e","wires":[[]]},{"id":"82250dcd.64764","type":"call","name":"call validate-api-contrail-route-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' >\n","comments":"","outputs":1,"x":831.0832824707031,"y":346.41666889190674,"z":"fd8223be.2936e","wires":[[]]},{"id":"4b4507fd.641f08","type":"comment","name":"Generate contrail-route-allotted-resource-name","info":"","comments":"","x":806.0833129882812,"y":2394.7499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"dfce0d66.98785","type":"execute","name":"execute Contrail API create network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='create' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='policy-name' value='`$tmp.fq-name`' />\n<parameter name='default-project' value='`$cto-api.default-project`' /> \n<!-- <parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' /> -->\n<parameter name='dst-virtual-network' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\n<parameter name='src-virtual-network' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\n<parameter name='direction' value='&lt;&gt;' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n\n","comments":"","outputs":1,"x":1486.0832824707031,"y":3370.1665449142456,"z":"fd8223be.2936e","wires":[["92f7cb34.8d741","f883d241.386fa8"]]},{"id":"92f7cb34.8d741","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1767.464126586914,"y":3339.5587922669947,"z":"fd8223be.2936e","wires":[["76c29cb0.6bee94"]]},{"id":"f883d241.386fa8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1765.5594482421875,"y":3372.558732032776,"z":"fd8223be.2936e","wires":[["bc08711f.026b2"]]},{"id":"bc08711f.026b2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":1925.464256286621,"y":3371.8921794891357,"z":"fd8223be.2936e","wires":[]},{"id":"22859f1a.190d08","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create\"/>\n<parameter name='field3' value='network-policy' />\n<parameter name='field4' value='create' />\n<parameter name='field5' value='contrailResp' />\n<parameter name='field6' value='`$cto-api.default-domain`' />\n<parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='field8' value='`$cto-api.default-project`' />\n<parameter name='field9' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\n<parameter name='field10' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\n<parameter name='field11' value='&lt;&gt;' />\n<parameter name='field12' value='`$cto-api.cloud-region-id`' />\n\n\n\n","comments":"","outputs":1,"x":1374.1784362792969,"y":3341.177879333496,"z":"fd8223be.2936e","wires":[[]]},{"id":"76c29cb0.6bee94","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1919.6546096801758,"y":3340.225517272949,"z":"fd8223be.2936e","wires":[["ec5e5cc0.84dc"]]},{"id":"b797c1f1.3a6cd","type":"comment","name":"Create contrail network policy","info":"","comments":"","x":1439.416618347168,"y":3303.083293914795,"z":"fd8223be.2936e","wires":[]},{"id":"d9ba8a84.a48ee8","type":"set","name":"set ar-assignments.contrail-id","xml":"<set>\n<parameter name='ar-assignments.contrail-id' value=\"`$contrailResp.network-policy.uuid`\" />\n\n\n\n","comments":"","x":1444.7498779296875,"y":3401.7499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"17c62791.e0bba","type":"switchNode","name":"switch cto-api.isTest","xml":"<switch test='`$cto-api.isTest`'>\n","comments":"","outputs":1,"x":682.7500076293945,"y":3339.749550819397,"z":"fd8223be.2936e","wires":[["7f3a60.3bfda5a","21cedbd5.f69f9c","71aa4797.6d83f8"]]},{"id":"7f3a60.3bfda5a","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":882.7500534057617,"y":3343.083215713501,"z":"fd8223be.2936e","wires":[["4847b370.9b6efc"]]},{"id":"21cedbd5.f69f9c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":881.0833435058594,"y":3379.7496404647827,"z":"fd8223be.2936e","wires":[["cea0da6e.4187f8"]]},{"id":"71aa4797.6d83f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":887.7500343322754,"y":3418.08305644989,"z":"fd8223be.2936e","wires":[["4847b370.9b6efc"]]},{"id":"4847b370.9b6efc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1101.083251953125,"y":3343.0832414627075,"z":"fd8223be.2936e","wires":[["22859f1a.190d08","dfce0d66.98785","d9ba8a84.a48ee8"]]},{"id":"7fc0fc65.5a5e64","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create\"/>\n<parameter name='field3' value='network-policy' />\n<parameter name='field4' value='TESTcreate' />\n<parameter name='field5' value='contrailResp' />\n<parameter name='field6' value='`$cto-api.default-domain`' />\n<parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='field8' value='`$cto-api.default-project`' />\n<parameter name='field10' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\n<parameter name='field11' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\n<parameter name='field12' value='&lt;&gt;' />\n<parameter name='field13' value='`$cto-api.cloud-region-id`' />\n\n\n\n","comments":"","outputs":1,"x":1380.5117874145508,"y":3441.8444213867188,"z":"fd8223be.2936e","wires":[[]]},{"id":"81e3b72c.ed4c2","type":"set","name":"set ar-assignments.contrail-id","xml":"<set>\n<parameter name='ar-assignments.contrail-id' value=\"dummy12345\" />\n\n\n\n","comments":"","x":1447.7498779296875,"y":3476.7497453689575,"z":"fd8223be.2936e","wires":[]},{"id":"cea0da6e.4187f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1100.083251953125,"y":3439.0832414627075,"z":"fd8223be.2936e","wires":[["7fc0fc65.5a5e64","81e3b72c.ed4c2"]]},{"id":"e040148a.f082c","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":662.7499747872353,"y":3536.4164934158325,"z":"fd8223be.2936e","wires":[]},{"id":"1e7787ad.0d68a8","type":"save","name":"save AnAI - network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<!-- Create network-policy object -->\n<parameter name=\"network-policy-id\" value=\"`$ar-assignments.contrail-id`\" />\n<parameter name=\"network-policy-fqdn\" value=\"`$ar-assignments.fq-name`\" />\n\n\n","comments":"","outputs":1,"x":669.7935333251953,"y":3571.817353248596,"z":"fd8223be.2936e","wires":[["fcabb970.d046e","fb253b0.c7b5ec8","ec0a2bbf.24a89"]]},{"id":"fcabb970.d046e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":921.9009757637978,"y":3562.781409263611,"z":"fd8223be.2936e","wires":[["2e92d1d0.b575ce"]]},{"id":"fb253b0.c7b5ec8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":925.7104735970497,"y":3592.2578258514404,"z":"fd8223be.2936e","wires":[["2e92d1d0.b575ce"]]},{"id":"3b1f3b10.705a0c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1117.4166259765625,"y":3677.4164934158325,"z":"fd8223be.2936e","wires":[["975d575f.5bd068","76e9e56c.5f957c"]]},{"id":"e4cbef08.1b2cb8","type":"comment","name":"DESCOPED: CR177011 - network policy - set relationship to collector service instance -id","info":"","comments":"","x":830.75,"y":3773.749755859375,"z":"fd8223be.2936e","wires":[]},{"id":"1efde37a.eba0f5","type":"save","name":"save AnAI - network-policy relationship to service instances","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n\t\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n\t\t<parameter name=\"relationship-list.relationship[0].related-link\"\n\t\t\tvalue=\"`'/aai/v$/business/customers/customer/' + $service-data.service-information.global-customer-id + '/service-subscriptions/service-subscription/' + $cto-api.service-type + '/service-instances/service-instance/' + $collector-service-instance-id`\" />\n               \n                \n\n","comments":"","outputs":1,"x":762.1268920898438,"y":3814.8171281814575,"z":"fd8223be.2936e","wires":[["b76203a8.07925","5b1ac74f.e6a31"]]},{"id":"b76203a8.07925","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1214.9010009765625,"y":3814.1149797439575,"z":"fd8223be.2936e","wires":[["76ce4e27.d59ec8"]]},{"id":"5b1ac74f.e6a31","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1218.7104988098145,"y":3842.591396331787,"z":"fd8223be.2936e","wires":[["76ce4e27.d59ec8"]]},{"id":"778c350c.8dd8e4","type":"set","name":"Clear tmp data","xml":"<set>\n<parameter name='ctotmp.' value='' />\n\n \n","comments":"","x":591.0833129882812,"y":4748.083022117615,"z":"fd8223be.2936e","wires":[]},{"id":"672a2172.2f5058","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create\"/>\n<parameter name='field3' value='cto-api.parent-service-instance-id' />\n<parameter name='field4' value='`$cto-api.parent-service-instance-id`' />\n<parameter name='field5' value='cto-api.default-domain' />\n<parameter name='field6' value='`$cto-api.default-domain`' />\n<parameter name='field7' value='cto-api.port-mirror-configuration-instance-id' />\n<parameter name='field8' value='`$cto-api.port-mirror-configuration-instance-id`' />\n<parameter name='field9' value='cto-api.service-type' />\n<parameter name='field10' value='`$cto-api.service-type`' />\n<parameter name='field11' value='cto-api.source-network-role' />\n<parameter name='field12' value='`$cto-api.source-network-fole`' />\n<parameter name='field13' value='cto-api.collector-network-role' />\n<parameter name='field14' value='`$cto-api.collector-network-4ole`' />\n<parameter name='field15' value='cto-api.default-project' />\n<parameter name='field16' value='`$cto-api.default-project`' />\n<parameter name='field17' value='cto-api.cloud-region-id' />\n<parameter name='field18' value='`$cto-api.cloud-region-id`' />\n<parameter name='field19' value='cto-api.cloud-owner' />\n<parameter name='field20' value='`$cto-api.cloud-owner`' />\n<parameter name='field21' value='cto-api.isTest' />\n<parameter name='field22' value='`$cto-api.isTest`' />\n<parameter name='field23' value='cto-api.owning-entity' />\n<parameter name='field24' value='`$cto-api.owning-entity`' />\n","comments":"","outputs":1,"x":738.1785659790039,"y":249.4642686843872,"z":"fd8223be.2936e","wires":[[]]},{"id":"76ce4e27.d59ec8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1412.75,"y":3818.7499895095825,"z":"fd8223be.2936e","wires":[["890d32.ed09ead","76e9e56c.5f957c"]]},{"id":"4d7901ed.ca6fb8","type":"update","name":"delete AAI allotted-resource","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $cto-api.contrail-route-allotted-resource-id\">\n\n","comments":"","outputs":1,"x":1799.5,"y":5123.9999895095825,"z":"fd8223be.2936e","wires":[["dc1a9d38.d97ca","531a6c1a.e19374"]]},{"id":"dc1a9d38.d97ca","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2053.1508026123047,"y":5102.460497379303,"z":"fd8223be.2936e","wires":[[]]},{"id":"531a6c1a.e19374","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2058.460231781006,"y":5138.031915187836,"z":"fd8223be.2936e","wires":[[]]},{"id":"139d91c1.e6a6be","type":"comment","name":"Update AAI AR","info":"","comments":"","x":1760.7317276000977,"y":5088.650766849518,"z":"fd8223be.2936e","wires":[]},{"id":"ec5f0e07.a1f8c8","type":"save","name":"delete AnAI - network-policy","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n\n\n\n","comments":"","outputs":1,"x":1793.5,"y":4924.2499895095825,"z":"fd8223be.2936e","wires":[["b7a00272.5b5f","c5732bd5.d065d"]]},{"id":"b7a00272.5b5f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2040.750072479248,"y":4894.750135421753,"z":"fd8223be.2936e","wires":[[]]},{"id":"c5732bd5.d065d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2044.5595703125,"y":4924.2265520095825,"z":"fd8223be.2936e","wires":[[]]},{"id":"651e0a3a.ba13e4","type":"comment","name":"Call contrail api here","info":"","comments":"","x":1771.2500228881836,"y":4980.7500931322575,"z":"fd8223be.2936e","wires":[]},{"id":"b22dc036.227bf8","type":"execute","name":"execute Contrail API delete network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n\n","comments":"","outputs":1,"x":1843.2579345703125,"y":5012.7265520095825,"z":"fd8223be.2936e","wires":[["6ac63408.baa50c","d216f91d.6fa1a8","6b2140a3.641028"]]},{"id":"6ac63408.baa50c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2144.638885498047,"y":4978.7577374614775,"z":"fd8223be.2936e","wires":[[]]},{"id":"d216f91d.6fa1a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2146.067543029785,"y":5049.535438209772,"z":"fd8223be.2936e","wires":[[]]},{"id":"6b2140a3.641028","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2147.3531646728516,"y":5011.639142662287,"z":"fd8223be.2936e","wires":[[]]},{"id":"48bf8bcb.6c23b4","type":"comment","name":"Consilidate the rollback","info":"","comments":"","x":1194.75,"y":4811.4999895095825,"z":"fd8223be.2936e","wires":[]},{"id":"975d575f.5bd068","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Failed to save allotted resource in AAI\"/>","comments":"","x":1338.75,"y":3677.7499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"76e9e56c.5f957c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":870.75,"y":4972.2499895095825,"z":"fd8223be.2936e","wires":[["908cdbbc.fcfad","f0f708f9.48ace8","be261c82.caf37","ea1c5d0f.4a65f8","fcc7ec18.4965b","8e7b341.ec30848"]]},{"id":"908cdbbc.fcfad","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error creating contrail route - ' + $tmp.error-message`\"/>","comments":"","x":1170.75,"y":5294.7499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"6506a4f5.c15bac","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Failed to save network-policy in AAI\"/>","comments":"","x":1346.75,"y":3566.2499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"2e92d1d0.b575ce","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1106.75,"y":3565.2499895095825,"z":"fd8223be.2936e","wires":[["6506a4f5.c15bac","76e9e56c.5f957c"]]},{"id":"f0f708f9.48ace8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"ROLLING BACK the create due to error\"/>\n","comments":"","outputs":1,"x":1157.75,"y":4845.4999895095825,"z":"fd8223be.2936e","wires":[[]]},{"id":"ec5e5cc0.84dc","type":"set","name":"set contrail-created - true","xml":"<set>\n<parameter name=\"contrail-created\" value=\"true\" />","comments":"","x":2124,"y":3339.4999895095825,"z":"fd8223be.2936e","wires":[]},{"id":"7803f431.03b724","type":"set","name":"set np-aai-created - true","xml":"<set>\n<parameter name=\"np-aai-created\" value=\"\" />\n","comments":"","x":1289,"y":3529.4999895095825,"z":"fd8223be.2936e","wires":[]},{"id":"ec0a2bbf.24a89","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":927,"y":3528.4999895095825,"z":"fd8223be.2936e","wires":[["2f05fc17.424bb4"]]},{"id":"2f05fc17.424bb4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1086,"y":3529.4999895095825,"z":"fd8223be.2936e","wires":[["7803f431.03b724"]]},{"id":"1fca8b85.38bd4c","type":"set","name":"set ar-aai-created - true","xml":"<set>\n<parameter name=\"ar-aai-created\" value=\"\" />","comments":"","x":1277,"y":3636.4999895095825,"z":"fd8223be.2936e","wires":[]},{"id":"e80c53f2.a704a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":915,"y":3635.4999895095825,"z":"fd8223be.2936e","wires":[["146837ae.85637"]]},{"id":"146837ae.85637","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1074,"y":3636.4999895095825,"z":"fd8223be.2936e","wires":[["1fca8b85.38bd4c"]]},{"id":"116fe1e8.80164e","type":"set","name":"set ar-created - true","xml":"<set>\n<parameter name=\"ar-created\" value=\"true\" />","comments":"","x":1306,"y":4539.4999895095825,"z":"fd8223be.2936e","wires":[]},{"id":"51fd5b3b.c2a0dc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":944,"y":4538.4999895095825,"z":"fd8223be.2936e","wires":[["322e5dfb.34bfe2"]]},{"id":"322e5dfb.34bfe2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1103,"y":4539.4999895095825,"z":"fd8223be.2936e","wires":[["116fe1e8.80164e"]]},{"id":"be261c82.caf37","type":"switchNode","name":"switch np-aai-created","xml":"<switch test='`$np-aai-created`'>\n","comments":"","outputs":1,"x":1204.75,"y":4888.4999895095825,"z":"fd8223be.2936e","wires":[["8c52ad11.a1c0e","9040dc3c.a5a528"]]},{"id":"8c52ad11.a1c0e","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1404.7500457763672,"y":4891.8336544036865,"z":"fd8223be.2936e","wires":[[]]},{"id":"9040dc3c.a5a528","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1407.0833740234375,"y":4926.4999895095825,"z":"fd8223be.2936e","wires":[["9c1b45b6.b3144"]]},{"id":"9c1b45b6.b3144","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1573.083251953125,"y":4924.8334856033325,"z":"fd8223be.2936e","wires":[["ec5f0e07.a1f8c8"]]},{"id":"ea1c5d0f.4a65f8","type":"switchNode","name":"switch contrail-created","xml":"<switch test='`$contrail-created`'>\n","comments":"","outputs":1,"x":1200.25,"y":4977.9999895095825,"z":"fd8223be.2936e","wires":[["b2997208.7a8af","607d5a5a.f07054"]]},{"id":"b2997208.7a8af","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1400.2500457763672,"y":4981.3336544036865,"z":"fd8223be.2936e","wires":[[]]},{"id":"607d5a5a.f07054","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1402.5833740234375,"y":5015.9999895095825,"z":"fd8223be.2936e","wires":[["acea7ab2.ddb138"]]},{"id":"acea7ab2.ddb138","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1568.583251953125,"y":5014.3334856033325,"z":"fd8223be.2936e","wires":[["b22dc036.227bf8"]]},{"id":"fcc7ec18.4965b","type":"switchNode","name":"switch ar-aai-created","xml":"<switch test='`$ar-aai-created`'>\n","comments":"","outputs":1,"x":1198,"y":5087.7499895095825,"z":"fd8223be.2936e","wires":[["eada59bc.798f18","fb9f19d2.609ec8"]]},{"id":"eada59bc.798f18","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1398.0000457763672,"y":5091.0836544036865,"z":"fd8223be.2936e","wires":[[]]},{"id":"fb9f19d2.609ec8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1400.3333740234375,"y":5125.7499895095825,"z":"fd8223be.2936e","wires":[["2cd682e1.7c396e"]]},{"id":"2cd682e1.7c396e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1566.333251953125,"y":5124.0834856033325,"z":"fd8223be.2936e","wires":[["4d7901ed.ca6fb8"]]},{"id":"8e7b341.ec30848","type":"switchNode","name":"switch ar-created","xml":"<switch test='`$ar-created`'>\n","comments":"","outputs":1,"x":1201.25,"y":5203.4999895095825,"z":"fd8223be.2936e","wires":[["8b1db97b.6e8948","e4b97998.57d95"]]},{"id":"8b1db97b.6e8948","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1401.2500457763672,"y":5206.8336544036865,"z":"fd8223be.2936e","wires":[[]]},{"id":"e4b97998.57d95","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1403.5833740234375,"y":5241.4999895095825,"z":"fd8223be.2936e","wires":[["a6a522a1.9de19"]]},{"id":"a6a522a1.9de19","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1569.583251953125,"y":5239.8334856033325,"z":"fd8223be.2936e","wires":[["7c35b738.cd6098"]]},{"id":"7c35b738.cd6098","type":"execute","name":"execute RestApiCallNode - DELETE AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":1839.5,"y":5236.2499895095825,"z":"fd8223be.2936e","wires":[["86fb884b.0720f","31a6b86d.d51c48"]]},{"id":"86fb884b.0720f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2116.5,"y":5235.2499895095825,"z":"fd8223be.2936e","wires":[[]]},{"id":"31a6b86d.d51c48","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2121.809429168701,"y":5270.821407318115,"z":"fd8223be.2936e","wires":[[]]},{"id":"890d32.ed09ead","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Failed to save network policy relationship to port mirror service and parent service in AAI\"/>","comments":"","x":1638,"y":3818.2499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"9703e7ab.bcf26","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\"/>","comments":"","x":1410,"y":4176.7499895095825,"z":"fd8223be.2936e","wires":[]},{"id":"10882401.6b38ec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1210,"y":4178.7499895095825,"z":"fd8223be.2936e","wires":[["9703e7ab.bcf26","76e9e56c.5f957c"]]},{"id":"b5d85abf.060458","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create: Collector network not found from aai\" />\n","comments":"","x":1583.75,"y":952.75,"z":"fd8223be.2936e","wires":[]},{"id":"94eb59a2.0945b","type":"for","name":"for each relationship","xml":"<for index='ridx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":2166.5,"y":1038.75,"z":"fd8223be.2936e","wires":[["9b2fcf60.76ea18"]]},{"id":"9b2fcf60.76ea18","type":"switchNode","name":"switch related-to","xml":"<switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].related-to`'>\n","comments":"","outputs":1,"x":2381.178466796875,"y":1038.4998779296875,"z":"fd8223be.2936e","wires":[["347998a7.5c8ed","cb6fc427.9ea1d8"]]},{"id":"347998a7.5c8ed","type":"outcome","name":"service-instance","xml":"<outcome value='service-instance'>\n","comments":"","outputs":1,"x":2574.642822265625,"y":1037.8927612304688,"z":"fd8223be.2936e","wires":[["fee79290.82309"]]},{"id":"fee79290.82309","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2753.40478515625,"y":1038.9880981445312,"z":"fd8223be.2936e","wires":[["e5e787d0.c4657"]]},{"id":"4f621b29.09adec","type":"configure","name":"set collector service instance id","xml":"<set>\n<parameter name=\"collector-service-instance-id\" value=\"`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`\" />\n\n","comments":"","outputs":1,"x":3965.25,"y":1037.7499389648438,"z":"fd8223be.2936e","wires":[[]]},{"id":"e5e787d0.c4657","type":"for","name":"for each relationship data","xml":"<for index='rdidx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data_length`' >\n","comments":"","outputs":1,"x":2969.75,"y":1038,"z":"fd8223be.2936e","wires":[["393822bb.644d6e"]]},{"id":"393822bb.644d6e","type":"switchNode","name":"switch relationship-key","xml":"<switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":3205.428466796875,"y":1037.7498779296875,"z":"fd8223be.2936e","wires":[["7c9ef3ae.b747f4"]]},{"id":"7c9ef3ae.b747f4","type":"outcome","name":"service-instance.service-instance-id","xml":"<outcome value='service-instance.service-instance-id'>\n","comments":"","outputs":1,"x":3484.892822265625,"y":1037.142822265625,"z":"fd8223be.2936e","wires":[["f1dcb03d.c2cd4"]]},{"id":"f1dcb03d.c2cd4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3727.65478515625,"y":1038.238037109375,"z":"fd8223be.2936e","wires":[["4f621b29.09adec"]]},{"id":"cb6fc427.9ea1d8","type":"outcome","name":"network-policy","xml":"<outcome value='network-policy'>\n","comments":"","outputs":1,"x":2580.5,"y":1101.25,"z":"fd8223be.2936e","wires":[["48d9f017.24fff8"]]},{"id":"48d9f017.24fff8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2759.261962890625,"y":1102.3453369140625,"z":"fd8223be.2936e","wires":[["40c1b7bc.2f5e88"]]},{"id":"40c1b7bc.2f5e88","type":"for","name":"for each relationship data","xml":"<for index='rdidx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data_length`' >\n","comments":"","outputs":1,"x":2975.607177734375,"y":1101.3572387695312,"z":"fd8223be.2936e","wires":[["163ead0a.7302ab"]]},{"id":"163ead0a.7302ab","type":"switchNode","name":"switch relationship-key","xml":"<switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":3211.28564453125,"y":1101.1071166992188,"z":"fd8223be.2936e","wires":[["b60cc617.96d9f"]]},{"id":"b60cc617.96d9f","type":"outcome","name":"network-policy.network-policy-id","xml":"<outcome value='network-policy.network-policy-id'>\n","comments":"","outputs":1,"x":3490.75,"y":1100.5000610351562,"z":"fd8223be.2936e","wires":[["a3b2831.7275e"]]},{"id":"a3b2831.7275e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3733.511962890625,"y":1101.5952758789062,"z":"fd8223be.2936e","wires":[["902a0d6f.7b879","504ee0c3.1648b8","205a6ec0.806dea"]]},{"id":"504ee0c3.1648b8","type":"configure","name":"set ctotmp.num-c-np","xml":"<set>\n<parameter name=\"ctotmp.num-c-np\" value=\"`$ctotmp.num-c-np+1`\" />\n","comments":"","outputs":1,"x":3966.5,"y":1127.25,"z":"fd8223be.2936e","wires":[[]]},{"id":"902a0d6f.7b879","type":"configure","name":"add c-network-policy-id to list","xml":"<set>\n<parameter name=\"ctotmp.c-network-policy-list[$ctotmp.num-c-np].network-policy-id\" value=\"`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`\" />\n\n","comments":"","outputs":1,"x":3989.2617568969727,"y":1100.8691596984863,"z":"fd8223be.2936e","wires":[[]]},{"id":"205a6ec0.806dea","type":"configure","name":"set c-network-policy-list_length","xml":"<set>\n<parameter name=\"ctotmp.c-network-policy-list_length\" value=\"`$ctotmp.num-c-np`\" />\n","comments":"","outputs":1,"x":3991.9286403656006,"y":1164.5358610153198,"z":"fd8223be.2936e","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.json
new file mode 100644 (file)
index 0000000..8334c78
--- /dev/null
@@ -0,0 +1,1846 @@
+[
+    {
+        "id": "53d16eb.3d9c19",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 147.00390625,
+        "y": 91.66666734218597,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "25de91ce.b5fd3e"
+            ]
+        ]
+    },
+    {
+        "id": "25de91ce.b5fd3e",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 293.24200439453125,
+        "y": 165.61906814575195,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "e1dc9e95.202cd"
+            ]
+        ]
+    },
+    {
+        "id": "e1dc9e95.202cd",
+        "type": "method",
+        "name": "api-contrail-route-topology-operation-deactivate",
+        "xml": "<method rpc='api-contrail-route-topology-operation-deactivate' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 370.15875244140625,
+        "y": 252.8571262359619,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "6e723a37.5fb414"
+            ]
+        ]
+    },
+    {
+        "id": "6e723a37.5fb414",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 281.4800910949707,
+        "y": 379.1904515028,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "db65c59e.74b7a8",
+                "cdda444b.68b9e8",
+                "12ebac6c.60c404",
+                "304813c4.78d06c",
+                "24a1e3b8.72820c",
+                "917d9ac2.daff68",
+                "c9cc6752.6dade8",
+                "f000cefd.dc0b3",
+                "90ac8599.5b3ae8",
+                "4b7740d3.fc61b",
+                "21e2e99a.b2c5f6",
+                "f7ee430b.8143b",
+                "d5ee6347.74eeb",
+                "1755b0ad.40d95f",
+                "d622c4ae.e4c078",
+                "3cffa7a5.824108",
+                "eaf9a24a.34c19",
+                "5fd1bc26.619354",
+                "5a6539af.a4eef8",
+                "97ba91e7.6ad5a",
+                "7089138.b1a97ec",
+                "94758d7.de9a07",
+                "d5fd35ad.ade908",
+                "15b849c5.50cd26",
+                "e7dae05c.bc65f",
+                "e4f9d349.fde5f",
+                "56153950.54ad38",
+                "b739671e.70ddd8"
+            ]
+        ]
+    },
+    {
+        "id": "db65c59e.74b7a8",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 465.0040092468262,
+        "y": 2449.214762687683,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "f000cefd.dc0b3",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 528.7580795288086,
+        "y": 2272.3847150802612,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "cdda444b.68b9e8",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 582.9920043945312,
+        "y": 517.0000739097595,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "12ebac6c.60c404",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 648.2474060058594,
+        "y": 552.8983492851257,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "24a1e3b8.72820c",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 658.0227127075195,
+        "y": 719.6262936592102,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "654fd033.2374d",
+                "5baf96ad.89c9b8"
+            ]
+        ]
+    },
+    {
+        "id": "304813c4.78d06c",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 628.5688323974609,
+        "y": 640.183976650238,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "654fd033.2374d",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 903.3188171386719,
+        "y": 720.4341073036194,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "3df8944b.0fdb1c"
+            ]
+        ]
+    },
+    {
+        "id": "917d9ac2.daff68",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 556.8665466308594,
+        "y": 2346.4342346191406,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "a132d913.f96618",
+                "4e2f6479.132e3c",
+                "8f713fc1.307d3"
+            ]
+        ]
+    },
+    {
+        "id": "a132d913.f96618",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 827.1745643615723,
+        "y": 2399.432435415685,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "42ff2a69.2ea5e4"
+            ]
+        ]
+    },
+    {
+        "id": "4e2f6479.132e3c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 818.1746139526367,
+        "y": 2367.9324611648917,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "42ff2a69.2ea5e4"
+            ]
+        ]
+    },
+    {
+        "id": "8f713fc1.307d3",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 821.9246520996094,
+        "y": 2338.289566040039,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "eefff8f0.c4e068"
+            ]
+        ]
+    },
+    {
+        "id": "ebb7c978.74fc68",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1201.924690246582,
+        "y": 2390.682702064514,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "3df8944b.0fdb1c",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1072.3188209533691,
+        "y": 718.9340081214905,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "fe4125ac.e2a618"
+            ]
+        ]
+    },
+    {
+        "id": "fe4125ac.e2a618",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1283.1760635375977,
+        "y": 718.5531373023987,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "c1828e09.7c766",
+                "39f2e04d.45825"
+            ]
+        ]
+    },
+    {
+        "id": "c1828e09.7c766",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1475.0094146728516,
+        "y": 708.5529913902283,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "1075f3bd.78220c"
+            ]
+        ]
+    },
+    {
+        "id": "761ce19c.f38bd",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1910.7001266479492,
+        "y": 640.5411952733994,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "1075f3bd.78220c",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1622.033197402954,
+        "y": 674.2078136205673,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "761ce19c.f38bd",
+                "3afefdf5.e26e02",
+                "47365a0f.ec0b44"
+            ]
+        ]
+    },
+    {
+        "id": "a52395f3.775018",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 671.3187599182129,
+        "y": 686.9339966773987,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "47365a0f.ec0b44",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1925.4498958587646,
+        "y": 674.0411601066589,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "27cedd03.00f992",
+                "24005d3f.56b7f2"
+            ]
+        ]
+    },
+    {
+        "id": "27cedd03.00f992",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2162.3475799560547,
+        "y": 685.9698594808578,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "c35abdc0.fb371"
+            ]
+        ]
+    },
+    {
+        "id": "c35abdc0.fb371",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n",
+        "comments": "",
+        "x": 2402.966470718384,
+        "y": 683.8744969367981,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "ef7d2a57.a57ab8",
+        "type": "set",
+        "name": "unset ar-assignments.vlan-tag",
+        "xml": "<set>\n<parameter name='ar-assignments.vlan-tag' value=\"\" />\n\n\n\n",
+        "comments": "",
+        "x": 527.8663635253906,
+        "y": 2117.7200841903687,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "3afefdf5.e26e02",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1998.5571784973145,
+        "y": 607.3506873846054,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "a0f9f9b2.6dea88",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 599.4616394042969,
+        "y": 609.7911038398743,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "eefff8f0.c4e068",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 963.5806198120117,
+        "y": 2334.481735229492,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c9cc6752.6dade8",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 479.5806655883789,
+        "y": 2238.8148736953735,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7eec538d.ff920c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1698.4211654663086,
+        "y": 836.250256061554,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "5baf96ad.89c9b8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 895.1706199645996,
+        "y": 755.5001921653748,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "c0b50cc8.0305c"
+            ]
+        ]
+    },
+    {
+        "id": "c0b50cc8.0305c",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1075.1705703735352,
+        "y": 756.1667428016663,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "7eec538d.ff920c"
+            ]
+        ]
+    },
+    {
+        "id": "39f2e04d.45825",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1471.3372955322266,
+        "y": 758.0834441184998,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "7eec538d.ff920c"
+            ]
+        ]
+    },
+    {
+        "id": "8148b606.b5c048",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2386.837516784668,
+        "y": 649.583414554596,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "471309fc.092828",
+        "type": "comment",
+        "name": "Need to rollback aai here",
+        "info": "",
+        "comments": "",
+        "x": 1457.0040893554688,
+        "y": 2374.0000858306885,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "24005d3f.56b7f2",
+        "type": "outcome",
+        "name": "outcome Active",
+        "xml": "<outcome value='Active'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2177.1092224121094,
+        "y": 654.2078708410263,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "8148b606.b5c048"
+            ]
+        ]
+    },
+    {
+        "id": "90ac8599.5b3ae8",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n\t<parameter name=\"orchestration-status\" value=\"deactivated\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 513.3372497558594,
+        "y": 2198.333420753479,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "927b7e29.3db75",
+                "e2f7efc5.ee287"
+            ]
+        ]
+    },
+    {
+        "id": "927b7e29.3db75",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 769.0991821289062,
+        "y": 2175.5715951919556,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "5ffafd8c.fe0b24"
+            ]
+        ]
+    },
+    {
+        "id": "e2f7efc5.ee287",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 774.4086112976074,
+        "y": 2211.1430130004883,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "5ffafd8c.fe0b24"
+            ]
+        ]
+    },
+    {
+        "id": "84e2dba0.6f81c8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1189.1944961547852,
+        "y": 2180.190938949585,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "b2f1d1d9.c33eb",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 476.6801071166992,
+        "y": 2161.7618646621704,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "4b7740d3.fc61b",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n",
+        "comments": "",
+        "x": 595.5039672851562,
+        "y": 784.1667847633362,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "bdfabc43.1fa35",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 919.1942672729492,
+        "y": 938.7144109010696,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "7d9f0d21.7d4054"
+            ]
+        ]
+    },
+    {
+        "id": "21e2e99a.b2c5f6",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 642.3926086425781,
+        "y": 949.9609279632568,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "102d56af.96fb69",
+                "bdfabc43.1fa35",
+                "71792be9.fe8114"
+            ]
+        ]
+    },
+    {
+        "id": "102d56af.96fb69",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 911.916374206543,
+        "y": 973.1990147829056,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "7d9f0d21.7d4054"
+            ]
+        ]
+    },
+    {
+        "id": "7d9f0d21.7d4054",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1064.0273361206055,
+        "y": 969.4212437868118,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "71792be9.fe8114",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 917.1943283081055,
+        "y": 1004.7144109010696,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "e45895d6.2a9618"
+            ]
+        ]
+    },
+    {
+        "id": "e45895d6.2a9618",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1069.8608932495117,
+        "y": 1003.04773914814,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "36beda8e.435b36",
+        "type": "comment",
+        "name": "GET source network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 620.6228256225586,
+        "y": 918.7144050598145,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "35892e52.03d1d2",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.9085998535156,
+        "y": 1550.4287673830986,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "f782658b.df7a58"
+            ]
+        ]
+    },
+    {
+        "id": "1755b0ad.40d95f",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 628.5355224609375,
+        "y": 1557.961028277874,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "929dab66.defa08",
+                "35892e52.03d1d2",
+                "eccf34c6.ec9728"
+            ]
+        ]
+    },
+    {
+        "id": "929dab66.defa08",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 892.6307067871094,
+        "y": 1584.9133712649345,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "f782658b.df7a58"
+            ]
+        ]
+    },
+    {
+        "id": "25536135.8ba92e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1298.7418670654297,
+        "y": 1571.1360874176025,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "eccf34c6.ec9728",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 900.480110168457,
+        "y": 1626.2858138084412,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "9532d76.7c12f28"
+            ]
+        ]
+    },
+    {
+        "id": "9532d76.7c12f28",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1053.1466751098633,
+        "y": 1624.6191420555115,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "82b74742.3fb438",
+        "type": "comment",
+        "name": "GET dest network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 601.3371429443359,
+        "y": 1526.1430203318596,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "f7ee430b.8143b",
+        "type": "set",
+        "name": "set cloud-region-id for input to contrail",
+        "xml": "<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n",
+        "comments": "",
+        "x": 653.331916809082,
+        "y": 1029.9470138549805,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "d5ee6347.74eeb",
+        "type": "execute",
+        "name": "execute Contrail API remove network policy to source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 699.5225219726562,
+        "y": 1361.9473094940186,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "ecc68255.1d081",
+                "d43b6488.136558"
+            ]
+        ]
+    },
+    {
+        "id": "ecc68255.1d081",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1053.1889877319336,
+        "y": 1362.375388622284,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "ea841139.28697"
+            ]
+        ]
+    },
+    {
+        "id": "d43b6488.136558",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1051.284309387207,
+        "y": 1395.375328388065,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "1dbc7790.e7ae58"
+            ]
+        ]
+    },
+    {
+        "id": "1dbc7790.e7ae58",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from source network\" />\n",
+        "comments": "",
+        "x": 1211.189079284668,
+        "y": 1394.708694934845,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "ea841139.28697",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1205.3794708251953,
+        "y": 1363.0421136282384,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "aa7b29ba.46e3f8",
+        "type": "comment",
+        "name": "Apply the policy to source network",
+        "info": "",
+        "comments": "",
+        "x": 615.9086761474609,
+        "y": 1329.999993801117,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "d622c4ae.e4c078",
+        "type": "execute",
+        "name": "execute Contrail API remove network policy to destination network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 630.9087524414062,
+        "y": 1993.0005702972412,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "d7319da9.6f11f",
+                "6527b311.a1725c"
+            ]
+        ]
+    },
+    {
+        "id": "d7319da9.6f11f",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 978.5752029418945,
+        "y": 1940.4285743236542,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "79c0bf3e.8f161"
+            ]
+        ]
+    },
+    {
+        "id": "6527b311.a1725c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 971.6705017089844,
+        "y": 2000.4286079406738,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "d1acf48f.1528d8"
+            ]
+        ]
+    },
+    {
+        "id": "48db747b.77152c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from dest network\" />\n",
+        "comments": "",
+        "x": 1324.575210571289,
+        "y": 1999.7620124816895,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "79c0bf3e.8f161",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1130.7656631469727,
+        "y": 1940.0952320098877,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e59fc471.19e8d8",
+        "type": "comment",
+        "name": "Apply the policy to dest network",
+        "info": "",
+        "comments": "",
+        "x": 527.2948684692383,
+        "y": 1962.053059577942,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "532f22ba.12601c",
+        "type": "comment",
+        "name": "Update network policy in AAI - relationship to networks",
+        "info": "",
+        "comments": "",
+        "x": 590.9087066650391,
+        "y": 2038.9999990463257,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "3cffa7a5.824108",
+        "type": "save",
+        "name": "delete AnAI - network-policy relationship to source/dest network",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' \" >\n\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 628.2856140136719,
+        "y": 2072.0676736831665,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "769c8a99.b4b644",
+                "edbcd523.680bd8"
+            ]
+        ]
+    },
+    {
+        "id": "667534.67f40acc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n",
+        "comments": "",
+        "x": 1300.6311531066895,
+        "y": 2089.3492336273193,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "769c8a99.b4b644",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 941.0597457885742,
+        "y": 2051.365255355835,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "6815d49e.d4968c"
+            ]
+        ]
+    },
+    {
+        "id": "edbcd523.680bd8",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 949.8692474365234,
+        "y": 2083.841604232788,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "6815d49e.d4968c"
+            ]
+        ]
+    },
+    {
+        "id": "b36a3a75.c03f18",
+        "type": "comment",
+        "name": "Paramaters",
+        "info": "INPUT:\ncto-api.default-domain\ncto-api.default-project\ncto-api.cloud-region-id\ncto-api.contrail-route-allotted-resource-id\ncto-api.rollback-flag\ncto-api.src-contrail-network-fqdn\ncto-api.collector-contrail-network-fqdn\n",
+        "comments": "",
+        "x": 125.0039291381836,
+        "y": 55,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "eaf9a24a.34c19",
+        "type": "call",
+        "name": "call validate-api-contrail-route-input",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 648.0039520263672,
+        "y": 417.6667326026509,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5fd1bc26.619354",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$cto-api.contrail-route-allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$cto-api.parent-service-instance-id`' />\n\n\n\n",
+        "comments": "",
+        "x": 637.00390625,
+        "y": 453.75488233566284,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "5a6539af.a4eef8",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$ar-assignments.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 641.9086380004883,
+        "y": 881.9999370574951,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "c16d9d8f.2f742",
+                "b4ab046c.7bbdd8"
+            ]
+        ]
+    },
+    {
+        "id": "c16d9d8f.2f742",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 995.908863067627,
+        "y": 882.6663212776184,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "1fdb4c68.9dcdd4"
+            ]
+        ]
+    },
+    {
+        "id": "b4ab046c.7bbdd8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 991.5756797790527,
+        "y": 845.6661214828491,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "47d494e.8feca6c"
+            ]
+        ]
+    },
+    {
+        "id": "1fdb4c68.9dcdd4",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1130.020118713379,
+        "y": 883.1107258796692,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "47d494e.8feca6c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1145.7091445922852,
+        "y": 846.3330240249634,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "adbc3d8f.4c88c",
+        "type": "comment",
+        "name": "Validate source network exists",
+        "info": "",
+        "comments": "",
+        "x": 622.3090057373047,
+        "y": 848.6662721633911,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "97ba91e7.6ad5a",
+        "type": "switchNode",
+        "name": "switch dest-network.network-id",
+        "xml": "<switch test='`$ar-assignments.dest-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 621.0039978027344,
+        "y": 1493.00412940979,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "86591e48.8b912",
+                "2d369d82.a15852"
+            ]
+        ]
+    },
+    {
+        "id": "86591e48.8b912",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 987.0041847229004,
+        "y": 1496.670422077179,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "6424c74c.6bf1b8"
+            ]
+        ]
+    },
+    {
+        "id": "2d369d82.a15852",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 982.6710014343262,
+        "y": 1459.6702222824097,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "b0ad8b07.b6b7a8"
+            ]
+        ]
+    },
+    {
+        "id": "6424c74c.6bf1b8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1121.1154403686523,
+        "y": 1497.1148266792297,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b0ad8b07.b6b7a8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Dest network not found\" />\n",
+        "comments": "",
+        "x": 1136.8044662475586,
+        "y": 1460.337124824524,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "34108a7a.83c866",
+        "type": "comment",
+        "name": "Validate dest network exists",
+        "info": "",
+        "comments": "",
+        "x": 613.4043273925781,
+        "y": 1462.6703729629517,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "e4f9d349.fde5f",
+        "type": "execute",
+        "name": "execute Contrail API fqname to uuid for source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='fqname-to-uuid' />\n<parameter name='api-action' value='get' />\n<parameter name='resp-prefix' value='uuidresp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='fqname-type' value='virtual-network' />\n<parameter name='policy-name' value='`$src-virtual-network-fqname`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 701.0039825439453,
+        "y": 1207.0039501190186,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "d6f6c55b.f02538",
+                "403f3b66.46ae04"
+            ]
+        ]
+    },
+    {
+        "id": "d6f6c55b.f02538",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1033.003921508789,
+        "y": 1184.0037670135498,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "b2bec48b.7b25f8"
+            ]
+        ]
+    },
+    {
+        "id": "403f3b66.46ae04",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1036.0992584228516,
+        "y": 1219.0036638639867,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "bd482d4e.9ce62"
+            ]
+        ]
+    },
+    {
+        "id": "bd482d4e.9ce62",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to find network uuid for Contrail to source network\" />\n",
+        "comments": "",
+        "x": 1196.0040283203125,
+        "y": 1218.3370304107666,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "b2bec48b.7b25f8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1176.1943817138672,
+        "y": 1180.6704998016357,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "15b849c5.50cd26",
+        "type": "execute",
+        "name": "execute Split to get contrail virtual network fqname without defaults",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />\n   <parameter name='original_string' value='`$aai.src-network.contrail-network-fqdn`' />\n   <parameter name='regex' value=':' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 733.00390625,
+        "y": 1082.0038414001465,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ce7dd724.3acf18",
+        "type": "set",
+        "name": "set src-virtual-network-fqname",
+        "xml": "<set>\n<parameter name='src-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />\n",
+        "comments": "",
+        "x": 1255.6705322265625,
+        "y": 1138.670630455017,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "e7dae05c.bc65f",
+        "type": "switchNode",
+        "name": "switch virtual-network-fqdn-split length",
+        "xml": "<switch test='`$virtual-network-fqdn-split_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 645.6706695556641,
+        "y": 1122.0036134719849,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "22a0284e.af4fa8",
+                "172bcac1.b14ca5"
+            ]
+        ]
+    },
+    {
+        "id": "22a0284e.af4fa8",
+        "type": "outcome",
+        "name": "outcome 0",
+        "xml": "<outcome value='0'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1071.0040283203125,
+        "y": 1103.003870010376,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "3a81459a.53c3ca"
+            ]
+        ]
+    },
+    {
+        "id": "172bcac1.b14ca5",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1058.670597076416,
+        "y": 1138.3371086120605,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "ce7dd724.3acf18"
+            ]
+        ]
+    },
+    {
+        "id": "3a81459a.53c3ca",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />\n",
+        "comments": "",
+        "x": 1236.3374214172363,
+        "y": 1101.3372583389282,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "d5fd35ad.ade908",
+        "type": "execute",
+        "name": "execute Contrail API fqname to uuid for dest network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='fqname-to-uuid' />\n<parameter name='api-action' value='get' />\n<parameter name='resp-prefix' value='uuidresp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$dest-default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='fqname-type' value='virtual-network' />\n<parameter name='policy-name' value='`$dest-virtual-network-fqname`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 666.7540435791016,
+        "y": 1857.004072189331,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "6705929e.e0e77c",
+                "c2d11fad.9664b"
+            ]
+        ]
+    },
+    {
+        "id": "6705929e.e0e77c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1012.7540740966797,
+        "y": 1815.0038328170776,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "a622e69d.cbb0c8"
+            ]
+        ]
+    },
+    {
+        "id": "c2d11fad.9664b",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1010.8493499755859,
+        "y": 1851.00389656052,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "b72968fd.8211a8"
+            ]
+        ]
+    },
+    {
+        "id": "3a2af246.f1c3be",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to find network uuid for Contrail to destination network\" />\n",
+        "comments": "",
+        "x": 1336.7541999816895,
+        "y": 1850.3376598358154,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "a622e69d.cbb0c8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1164.9445571899414,
+        "y": 1815.6705578230321,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7089138.b1a97ec",
+        "type": "execute",
+        "name": "execute Split to get contrail virtual network fqname from contrail-network-fqdn",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />\n   <parameter name='original_string' value='`$aai.dest-network.contrail-network-fqdn`' />\n   <parameter name='regex' value=':' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 748.7538528442383,
+        "y": 1669.0042209625244,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a6c01b92.c4b048",
+        "type": "set",
+        "name": "set dest-virtual-network-fqname",
+        "xml": "<set>\n<parameter name='dest-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />\n<parameter name='dest-default-project' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 2]`' />\n",
+        "comments": "",
+        "x": 1247.4204864501953,
+        "y": 1763.6705312728882,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "94758d7.de9a07",
+        "type": "switchNode",
+        "name": "switch virtual-network-fqdn-split length",
+        "xml": "<switch test='`$virtual-network-fqdn-split_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 624.4206771850586,
+        "y": 1775.0039176940918,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "64135014.1484c",
+                "78fd4449.d5663c"
+            ]
+        ]
+    },
+    {
+        "id": "64135014.1484c",
+        "type": "outcome",
+        "name": "outcome 0",
+        "xml": "<outcome value='0'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1062.7539825439453,
+        "y": 1728.003770828247,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "30e65481.3602fc"
+            ]
+        ]
+    },
+    {
+        "id": "78fd4449.d5663c",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1050.4205513000488,
+        "y": 1763.3370094299316,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "a6c01b92.c4b048"
+            ]
+        ]
+    },
+    {
+        "id": "da434e7c.51705",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />\n",
+        "comments": "",
+        "x": 1392.0874862670898,
+        "y": 1729.3372602462769,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "9c989359.3958a",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to destination network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1952.254035949707,
+        "y": 1987.0046873092651,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "b2e4ce3a.78ab"
+            ]
+        ]
+    },
+    {
+        "id": "2b256c3a.a1ee64",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$src-uuid`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1955.2542667388916,
+        "y": 1436.004343032837,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "b2e4ce3a.78ab"
+            ]
+        ]
+    },
+    {
+        "id": "b2e4ce3a.78ab",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2367.7539672851562,
+        "y": 1600.004165649414,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "be4c8985.5285d8"
+            ]
+        ]
+    },
+    {
+        "id": "be4c8985.5285d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2501.865222930908,
+        "y": 1600.4485702514648,
+        "z": "9891698.5acc798",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b739671e.70ddd8",
+        "type": "set",
+        "name": "set dest-uuid",
+        "xml": "<set>\n<parameter name='dest-uuid' value='`$uuidresp.uuid`' />",
+        "comments": "",
+        "x": 536.00390625,
+        "y": 1896.00390625,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "56153950.54ad38",
+        "type": "set",
+        "name": "set src-uuid",
+        "xml": "<set>\n<parameter name='src-uuid' value='`$uuidresp.uuid`' />",
+        "comments": "",
+        "x": 567.00390625,
+        "y": 1244.00390625,
+        "z": "9891698.5acc798",
+        "wires": []
+    },
+    {
+        "id": "f782658b.df7a58",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1061.003921508789,
+        "y": 1571.003975868225,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "2b256c3a.a1ee64",
+                "25536135.8ba92e"
+            ]
+        ]
+    },
+    {
+        "id": "30e65481.3602fc",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1220.00390625,
+        "y": 1728.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "2b256c3a.a1ee64",
+                "da434e7c.51705"
+            ]
+        ]
+    },
+    {
+        "id": "b72968fd.8211a8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1167.00390625,
+        "y": 1850.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "3a2af246.f1c3be",
+                "2b256c3a.a1ee64"
+            ]
+        ]
+    },
+    {
+        "id": "d1acf48f.1528d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1121.00390625,
+        "y": 2000.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "2b256c3a.a1ee64",
+                "48db747b.77152c"
+            ]
+        ]
+    },
+    {
+        "id": "6815d49e.d4968c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1114.00390625,
+        "y": 2067.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "667534.67f40acc",
+                "2b256c3a.a1ee64",
+                "9c989359.3958a"
+            ]
+        ]
+    },
+    {
+        "id": "5ffafd8c.fe0b24",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 954.75390625,
+        "y": 2181.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "84e2dba0.6f81c8",
+                "2b256c3a.a1ee64",
+                "9c989359.3958a"
+            ]
+        ]
+    },
+    {
+        "id": "42ff2a69.2ea5e4",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 968.75390625,
+        "y": 2389.00390625,
+        "z": "9891698.5acc798",
+        "wires": [
+            [
+                "ebb7c978.74fc68",
+                "2b256c3a.a1ee64",
+                "9c989359.3958a"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.json
new file mode 100644 (file)
index 0000000..c349466
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"61a70c97.efc834","type":"dgstart","name":"DGSTART","outputs":1,"x":161.00390625,"y":105.00390625,"z":"acd0c78c.bb62e8","wires":[["73f36b80.f8a324"]]},{"id":"73f36b80.f8a324","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":307.2419891357422,"y":179.95629978179932,"z":"acd0c78c.bb62e8","wires":[["e68bdf6.a51192"]]},{"id":"e68bdf6.a51192","type":"method","name":"api-contrail-route-topology-operation-delete","xml":"<method rpc='api-contrail-route-topology-operation-delete' mode='sync'>\n","comments":"","outputs":1,"x":390.15875244140625,"y":251.19435119628906,"z":"acd0c78c.bb62e8","wires":[["68557c6f.3d98b4"]]},{"id":"68557c6f.3d98b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":295.4800910949707,"y":392.527690410614,"z":"acd0c78c.bb62e8","wires":[["4dccc38d.50c1ec","77305c3a.fe80b4","1f152a99.aefc55","8defc197.03c7a","9837507d.5e562","9a411e15.bf46b","3de233c4.6fac7c","43cb307a.cfcb8","f05071e8.780e8","e593c8f2.2a5ff8","5abb2222.b9ba9c","dedf0ab6.f5b128","cde9b970.2c92c8","ad4477f0.5d3e18","3ece0b18.49a894","7037b385.0ac9bc","ee15fb5f.5b4598","afb658db.c39db8","ab27f8b1.93ed18","4a8ac268.7ab68c"]]},{"id":"77305c3a.fe80b4","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":537.4405555725098,"y":2056.218755722046,"z":"acd0c78c.bb62e8","wires":[]},{"id":"4dccc38d.50c1ec","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":573.9722633361816,"y":1942.0079102516174,"z":"acd0c78c.bb62e8","wires":[]},{"id":"1f152a99.aefc55","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":645.2196044921875,"y":877.513220667839,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"9837507d.5e562","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":647.85595703125,"y":1016.5745363235474,"z":"acd0c78c.bb62e8","wires":[["1661bdc8.0a2b92","975f2e0a.d7a79"]]},{"id":"8defc197.03c7a","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$cto-api.contrail-route-allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":617.0688018798828,"y":909.5211448669434,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"1661bdc8.0a2b92","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":899.8187484741211,"y":1016.27126121521,"z":"acd0c78c.bb62e8","wires":[["e698baad.280c78"]]},{"id":"9a411e15.bf46b","type":"execute","name":"execute RestApiCallNode - DELETE AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":637.0808944702148,"y":1895.1048922538757,"z":"acd0c78c.bb62e8","wires":[["a39d7238.5addd","f12b94d3.d7c948","ccc9df04.890e"]]},{"id":"a39d7238.5addd","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":907.3889122009277,"y":1948.1030930504203,"z":"acd0c78c.bb62e8","wires":[["4545393.1007bc8"]]},{"id":"f12b94d3.d7c948","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":898.3889617919922,"y":1916.6031187996268,"z":"acd0c78c.bb62e8","wires":[["4545393.1007bc8"]]},{"id":"ccc9df04.890e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":902.1389999389648,"y":1886.9602236747742,"z":"acd0c78c.bb62e8","wires":[["8d97422c.4c6cb"]]},{"id":"4545393.1007bc8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1068.1389999389648,"y":1917.3531426414847,"z":"acd0c78c.bb62e8","wires":[]},{"id":"e698baad.280c78","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1068.8187522888184,"y":1016.771162033081,"z":"acd0c78c.bb62e8","wires":[["800ee936.b357a8"]]},{"id":"800ee936.b357a8","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1280.787094116211,"y":1016.1680688858032,"z":"acd0c78c.bb62e8","wires":[["da78c574.203dc8","82434a72.be2b18"]]},{"id":"da78c574.203dc8","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1469.0093002319336,"y":1015.3902492523193,"z":"acd0c78c.bb62e8","wires":[["880f9967.435d78"]]},{"id":"9fa15375.21583","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1873.3111991882324,"y":1048.961757659912,"z":"acd0c78c.bb62e8","wires":[]},{"id":"880f9967.435d78","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1653.5331897735596,"y":1015.2950830459595,"z":"acd0c78c.bb62e8","wires":[["9fa15375.21583","39470ed.b4c13f2"]]},{"id":"600fa9.8962e058","type":"comment","name":"GET allotted-resource from mdsal","info":"","comments":"","x":628.9297943115234,"y":981.660099029541,"z":"acd0c78c.bb62e8","wires":[]},{"id":"39470ed.b4c13f2","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":1961.1682510375977,"y":1015.7712497711182,"z":"acd0c78c.bb62e8","wires":[]},{"id":"9efe32c3.53db7","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":590.1838531494141,"y":842.4615592956543,"z":"acd0c78c.bb62e8","wires":[]},{"id":"8d97422c.4c6cb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1043.7949676513672,"y":1883.1523928642273,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"11ed6847.6c3d48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found in md-sal\" />\n    \n","comments":"","x":1643.6708984375,"y":1116.670654296875,"z":"acd0c78c.bb62e8","wires":[]},{"id":"975f2e0a.d7a79","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":891.6705513000488,"y":1061.3373460769653,"z":"acd0c78c.bb62e8","wires":[["d1490590.66c948"]]},{"id":"d1490590.66c948","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1071.6705017089844,"y":1062.0038967132568,"z":"acd0c78c.bb62e8","wires":[["11ed6847.6c3d48"]]},{"id":"82434a72.be2b18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1457.3372535705566,"y":1061.6706094741821,"z":"acd0c78c.bb62e8","wires":[["11ed6847.6c3d48"]]},{"id":"5e073c9a.767304","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1294.21826171875,"y":1916.6707377433777,"z":"acd0c78c.bb62e8","wires":[]},{"id":"3de233c4.6fac7c","type":"update","name":"delete AAI allotted-resource","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $cto-api.contrail-route-allotted-resource-id\">\n\n","comments":"","outputs":1,"x":601.3293151855469,"y":1425.4483642578125,"z":"acd0c78c.bb62e8","wires":[["72c218dc.e955e8","c8538b20.b36578"]]},{"id":"72c218dc.e955e8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":854.9801177978516,"y":1403.908872127533,"z":"acd0c78c.bb62e8","wires":[["9f923a84.255f98"]]},{"id":"c8538b20.b36578","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":860.2895469665527,"y":1439.4802899360657,"z":"acd0c78c.bb62e8","wires":[["9f923a84.255f98"]]},{"id":"9f923a84.255f98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1070.0753326416016,"y":1405.527916431427,"z":"acd0c78c.bb62e8","wires":[]},{"id":"94f72e7.09c52d","type":"comment","name":"Update AAI AR","info":"","comments":"","x":562.5610427856445,"y":1390.0991415977478,"z":"acd0c78c.bb62e8","wires":[]},{"id":"43cb307a.cfcb8","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":583.8134613037109,"y":1064.7976627349854,"z":"acd0c78c.bb62e8","wires":[]},{"id":"dd2f0fb4.446b5","type":"comment","name":"Call contrail api here","info":"","comments":"","x":585.0118789672852,"y":1144.4483318328857,"z":"acd0c78c.bb62e8","wires":[]},{"id":"f05071e8.780e8","type":"execute","name":"execute Contrail API delete network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\n<parameter name='default-project' value='`$cto-api.default-project`' />\n<parameter name='default-domain' value='`$cto-api.default-domain`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n\n","comments":"","outputs":1,"x":657.0197906494141,"y":1176.4247907102108,"z":"acd0c78c.bb62e8","wires":[["36885bb9.ecffb4","9c0c9f05.069f8","ae08dc29.839a9"]]},{"id":"36885bb9.ecffb4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":958.4007415771484,"y":1142.4559761621058,"z":"acd0c78c.bb62e8","wires":[["f8c315fc.947f48"]]},{"id":"9c0c9f05.069f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":959.8293991088867,"y":1213.2336769104004,"z":"acd0c78c.bb62e8","wires":[["96604a61.b70c28"]]},{"id":"96604a61.b70c28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to create policy in Contrail\" />\n","comments":"","x":1107.511875152588,"y":1211.4559516906738,"z":"acd0c78c.bb62e8","wires":[]},{"id":"f8c315fc.947f48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1110.5912246704102,"y":1143.1227011680603,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"cbf2095a.459bd8","type":"comment","name":"Delete network policy in AAI","info":"","comments":"","x":601.559455871582,"y":1259.0039682388306,"z":"acd0c78c.bb62e8","wires":[]},{"id":"e593c8f2.2a5ff8","type":"save","name":"delete AnAI - network-policy","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n\n\n\n","comments":"","outputs":1,"x":616.9363403320312,"y":1295.071533203125,"z":"acd0c78c.bb62e8","wires":[["2b7b8642.61c14a","aea7e9d.fa22618"]]},{"id":"2eda7861.67cc88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":1089.2818489074707,"y":1286.3531465530396,"z":"acd0c78c.bb62e8","wires":[]},{"id":"2b7b8642.61c14a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":860.7104568481445,"y":1285.368884086609,"z":"acd0c78c.bb62e8","wires":[["2eda7861.67cc88"]]},{"id":"aea7e9d.fa22618","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":864.5199546813965,"y":1314.8453006744385,"z":"acd0c78c.bb62e8","wires":[["2eda7861.67cc88"]]},{"id":"d153dfd9.6ceb","type":"comment","name":"Parameters","info":"INPUT:\ncto-api.default-domain\ncto-api.default-project\ncto-api.cloud-region-id\ncto-api.contrail-route-allotted-resource-id\ncto-api.rollback-flag\ncto-api.configuration-id\n","comments":"","x":425.3372497558594,"y":101.33724212646484,"z":"acd0c78c.bb62e8","wires":[]},{"id":"5abb2222.b9ba9c","type":"configure","name":"set default values","xml":"<set>\n<parameter name=\"ctotmp.action\" value=\"delete\" />\n<parameter name=\"ctotmp.config-count\" value=\"0\" />\n<parameter name=\"ctotmp.config-found\" value=\"true\" />","comments":"","outputs":1,"x":601.8927230834961,"y":391.00390815734863,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"dedf0ab6.f5b128","type":"call","name":"call validate-api-contrail-route-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' >\n","comments":"","outputs":1,"x":654.1150207519531,"y":424.89282608032227,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"cde9b970.2c92c8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.api-contrail-route-topology-operation-delete\"/>\n<parameter name='field3' value='cto-api.parent-service-instance-id' />\n<parameter name='field4' value='`$cto-api.parent-service-instance-id`' />\n<parameter name='field5' value='cto-api.default-domain' />\n<parameter name='field6' value='`$cto-api.default-domain`' />\n<parameter name='field7' value='cto-api.port-mirror-configuration-instance-id' />\n<parameter name='field8' value='`$cto-api.port-mirror-configuration-instance-id`' />\n<parameter name='field9' value='cto-api.service-type' />\n<parameter name='field10' value='`$cto-api.service-type`' />\n<parameter name='field11' value='cto-api.source-network-role' />\n<parameter name='field12' value='`$cto-api.source-network-fole`' />\n<parameter name='field13' value='cto-api.collector-network-role' />\n<parameter name='field14' value='`$cto-api.collector-network-4ole`' />\n<parameter name='field15' value='cto-api.default-project' />\n<parameter name='field16' value='`$cto-api.default-project`' />\n<parameter name='field17' value='cto-api.cloud-region-id' />\n<parameter name='field18' value='`$cto-api.cloud-region-id`' />\n<parameter name='field19' value='cto-api.cloud-owner' />\n<parameter name='field20' value='`$cto-api.cloud-owner`' />\n<parameter name='field21' value='cto-api.isTest' />\n<parameter name='field22' value='`$cto-api.isTest`' />\n<parameter name='field23' value='service-data.service-information.global-customer-id' />\n<parameter name='field24' value='`$service-data.service-information.global-customer-id`' />\n","comments":"","outputs":1,"x":571.1150131225586,"y":324.0673894882202,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"3ece0b18.49a894","type":"update","name":"get AAI allotted-resource","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $cto-api.contrail-route-allotted-resource-id\"\n        pfx='aai.ar' local-only='false' >\n\n","comments":"","outputs":1,"x":627.3054656982422,"y":498.5118417739868,"z":"acd0c78c.bb62e8","wires":[["daefeb15.c24db8","3fc58d3f.3e9ec2","4dba1ed0.34e1d"]]},{"id":"daefeb15.c24db8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":855.7658081054688,"y":500.3532962799072,"z":"acd0c78c.bb62e8","wires":[["e44d36ff.11d408"]]},{"id":"3fc58d3f.3e9ec2","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":866.6307067871094,"y":533.7024536132812,"z":"acd0c78c.bb62e8","wires":[["c1460143.958"]]},{"id":"e44d36ff.11d408","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1793.0832443237305,"y":496.41676330566406,"z":"acd0c78c.bb62e8","wires":[]},{"id":"ad4477f0.5d3e18","type":"configure","name":"clear internal data","xml":"<set>\n<parameter name=\"ctotmp.\" value=\"\" />\n","comments":"","outputs":1,"x":603.3372421264648,"y":354.78173065185547,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"b1f5380.5058ac8","type":"switchNode","name":"switch rollback-flag","xml":"<switch test='`$cto-api.rollback-flag`'>\n","comments":"","outputs":1,"x":1242.226173400879,"y":533.4483261108398,"z":"acd0c78c.bb62e8","wires":[["44f9073.69dd0f8","db2036f0.9f3f98"]]},{"id":"c1460143.958","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1038.8927993774414,"y":534.4483699798584,"z":"acd0c78c.bb62e8","wires":[["b1f5380.5058ac8"]]},{"id":"44f9073.69dd0f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1427.7817115783691,"y":533.1149997711182,"z":"acd0c78c.bb62e8","wires":[["69bfd3fa.1266fc"]]},{"id":"677c1bb2.e607a4","type":"comment","name":"check if AR exists in AAI","info":"","comments":"","x":622.2261276245117,"y":460.8928050994873,"z":"acd0c78c.bb62e8","wires":[]},{"id":"db2036f0.9f3f98","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1432.2260208129883,"y":565.3371620178223,"z":"acd0c78c.bb62e8","wires":[["e44d36ff.11d408"]]},{"id":"7037b385.0ac9bc","type":"for","name":"for relationship list","xml":"<for silentFailure='true' index='ridx' start='0' end=\"`$aai.ar.relationship-list.relationship_length`\" >\n","comments":"","outputs":1,"x":588.3372192382812,"y":693.7896327972412,"z":"acd0c78c.bb62e8","wires":[["ac766870.610d88"]]},{"id":"6738258f.ebb92c","type":"switchNode","name":"switch","xml":"<switch test='`$aai.ar.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":989.3923759460449,"y":696.3926191329956,"z":"acd0c78c.bb62e8","wires":[["d94e5918.3adb18"]]},{"id":"ac766870.610d88","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":804.5869674682617,"y":694.753867149353,"z":"acd0c78c.bb62e8","wires":[["6738258f.ebb92c"]]},{"id":"d94e5918.3adb18","type":"other","name":"configuration.configuration-id","xml":"<outcome value='configuration.configuration-id'>\n","comments":"","outputs":1,"x":1214.114631652832,"y":697.0314674377441,"z":"acd0c78c.bb62e8","wires":[["e843c380.38e87"]]},{"id":"e843c380.38e87","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1437.9755783081055,"y":697.0037984848022,"z":"acd0c78c.bb62e8","wires":[["7ec5d4de.1b732c","5e618e69.a6b5c"]]},{"id":"7ec5d4de.1b732c","type":"switchNode","name":"switch relationship_value","xml":"<switch test='`$aai.ar.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $cto-api.configuration-id`'>\n","comments":"","outputs":1,"x":1665.5596008300781,"y":734.0038890838623,"z":"acd0c78c.bb62e8","wires":[["7b706944.bee888"]]},{"id":"5e618e69.a6b5c","type":"set","name":"increment config count","xml":"<set>\n<parameter name='ctotmp.config-count' value='`$ctotmp.config-count+1`' />\n","comments":"","x":1660.0039367675781,"y":698.6705403327942,"z":"acd0c78c.bb62e8","wires":[]},{"id":"7b706944.bee888","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1888.78173828125,"y":733.4483642578125,"z":"acd0c78c.bb62e8","wires":[["618b247f.ec0adc"]]},{"id":"1b0a300d.af90e","type":"set","name":"set config found","xml":"<set>\n<parameter name='ctotmp.config-found' value='true' />\n","comments":"","x":2247.6707496643066,"y":733.2261562347412,"z":"acd0c78c.bb62e8","wires":[]},{"id":"618b247f.ec0adc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2049.892749786377,"y":733.2261476516724,"z":"acd0c78c.bb62e8","wires":[["1b0a300d.af90e"]]},{"id":"ee15fb5f.5b4598","type":"switchNode","name":"switch config count is 1 and found is true","xml":"<switch test=\"`$ctotmp.config-count == 1 and $ctotmp.config-found == 'true'`\">\n","comments":"","outputs":1,"x":650.2895660400391,"y":796.3689441680908,"z":"acd0c78c.bb62e8","wires":[["e3751519.b5fa78","2532dd48.58b4c2"]]},{"id":"2532dd48.58b4c2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":903.781689961751,"y":819.892750846015,"z":"acd0c78c.bb62e8","wires":[["4987883.5dcdb78"]]},{"id":"e3751519.b5fa78","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":901.5595092773438,"y":789.8927612304688,"z":"acd0c78c.bb62e8","wires":[["a47d6831.c78e18"]]},{"id":"4987883.5dcdb78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1067.1149597167969,"y":818.7816028594971,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"3df15db8.b50a82","type":"comment","name":"check if there is > 1 relationship to configuration id for this AR","info":"","comments":"","x":711.1150360107422,"y":656.4483337402344,"z":"acd0c78c.bb62e8","wires":[]},{"id":"a47d6831.c78e18","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1066.0038375854492,"y":786.5594444274902,"z":"acd0c78c.bb62e8","wires":[["65ba4449.71906c"]]},{"id":"69bfd3fa.1266fc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1591.114995956421,"y":534.2261009216309,"z":"acd0c78c.bb62e8","wires":[["6f25db72.fdc6e4"]]},{"id":"4dba1ed0.34e1d","type":"failure","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":863.337251663208,"y":564.2261352539062,"z":"acd0c78c.bb62e8","wires":[["737512e9.21501c"]]},{"id":"737512e9.21501c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1044.4483032226562,"y":563.114990234375,"z":"acd0c78c.bb62e8","wires":[[]]},{"id":"6f25db72.fdc6e4","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":1797.7816162109375,"y":530.8927612304688,"z":"acd0c78c.bb62e8","wires":[]},{"id":"ae08dc29.839a9","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":961.1150207519531,"y":1175.337381362915,"z":"acd0c78c.bb62e8","wires":[["f8c315fc.947f48"]]},{"id":"65ba4449.71906c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI Allotted resource is not tied to configuration object\" />\n","comments":"","x":1257.0039138793945,"y":786.0038928985596,"z":"acd0c78c.bb62e8","wires":[]},{"id":"4a8ac268.7ab68c","type":"switchNode","name":"switch config count is > 1","xml":"<switch test=\"`$ctotmp.config-count > 1`\">\n","comments":"","outputs":1,"x":604.00390625,"y":755.00390625,"z":"acd0c78c.bb62e8","wires":[["7ca6c92f.9d8cf8"]]},{"id":"7ca6c92f.9d8cf8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":816.00390625,"y":755.00390625,"z":"acd0c78c.bb62e8","wires":[["dd2966aa.9faf08"]]},{"id":"dd2966aa.9faf08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":970.337158203125,"y":754.8927612304688,"z":"acd0c78c.bb62e8","wires":[["b64f1cd1.ca635"]]},{"id":"b64f1cd1.ca635","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI Allotted Resource is tied to more than one configuration object\" />\n","comments":"","x":1162.22607421875,"y":755.1150512695312,"z":"acd0c78c.bb62e8","wires":[]},{"id":"80b1dad4.0b67a8","type":"for","name":"for snidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]","xml":"<for silentFailure='true' index='snidx' start='`$tmp.sdidx + 1`' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n","comments":"","outputs":1,"x":1651.7339401245117,"y":1792.003807067871,"z":"acd0c78c.bb62e8","wires":[["d3096568.793e08"]]},{"id":"ac7e844b.3ab3d8","type":"comment","name":"Remove CAR from service data","info":"","comments":"","x":610.7181777954102,"y":1643.6708612442017,"z":"acd0c78c.bb62e8","wires":[]},{"id":"afb658db.c39db8","type":"switchNode","name":"switch $service-data.consumed-allotted-resource.length","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n","comments":"","outputs":1,"x":687.4839477539062,"y":1676.1234045028687,"z":"acd0c78c.bb62e8","wires":[["4e05c574.7f2a6c","7e94621b.90f6ec"]]},{"id":"4e05c574.7f2a6c","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1043.8647842407227,"y":1682.7898206710815,"z":"acd0c78c.bb62e8","wires":[["9470fb8c.394018"]]},{"id":"9df7ca02.4ab8a8","type":"set","name":"Remove AR","xml":"<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.\" value=\"\"/>\n\n","comments":"","x":1432.039161682129,"y":1685.3455448150635,"z":"acd0c78c.bb62e8","wires":[]},{"id":"7e94621b.90f6ec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1049.4520893096924,"y":1746.710368156433,"z":"acd0c78c.bb62e8","wires":[["d6dd9fbe.3094c"]]},{"id":"41dc3f34.bcd87","type":"set","name":"set new CAR length","xml":"<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource_length\" value=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`\"/>\n\n\t\n","comments":"","x":1457.8594360351562,"y":1820.9962944984436,"z":"acd0c78c.bb62e8","wires":[]},{"id":"fb8c8284.58099","type":"set","name":"Remove CAR","xml":"<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.new_length].\" value=\"\"/>\n\n","comments":"","x":1439.9280967712402,"y":1852.2975249290466,"z":"acd0c78c.bb62e8","wires":[]},{"id":"d6dd9fbe.3094c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1229.388557434082,"y":1748.027732849121,"z":"acd0c78c.bb62e8","wires":[["80b1dad4.0b67a8","fb8c8284.58099","41dc3f34.bcd87","11d3acc3.77f3e3"]]},{"id":"591202ad.d5cf3c","type":"set","name":"set new consumed allotted resource length","xml":"<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource_length\" value=\"0\"/>\n\n\t\n","comments":"","x":1528.3726654052734,"y":1716.715853691101,"z":"acd0c78c.bb62e8","wires":[]},{"id":"9470fb8c.394018","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1223.198097229004,"y":1683.4936170578003,"z":"acd0c78c.bb62e8","wires":[["9df7ca02.4ab8a8","591202ad.d5cf3c"]]},{"id":"68ca596.6a009a8","type":"comment","name":"If only one remove all networks","info":"","comments":"","x":1115.2351455688477,"y":1647.3825941085815,"z":"acd0c78c.bb62e8","wires":[]},{"id":"11d3acc3.77f3e3","type":"set","name":"Set new length","xml":"<set>\n\t<parameter name=\"tmp.new_length\" value=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`\"/>\n\t\n\t\n","comments":"","x":1441.8064727783203,"y":1759.4776282310486,"z":"acd0c78c.bb62e8","wires":[]},{"id":"29d74fbe.37102","type":"set","name":"move CAR to remove one","xml":"<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.newidx].\" value=\"$service-data.consumed-allotted-resources.consumed-allotted-resource[$snidx].\" />\n\t\n","comments":"","x":2318.5753860473633,"y":1817.7182006835938,"z":"acd0c78c.bb62e8","wires":[]},{"id":"d3096568.793e08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2079.1311416625977,"y":1794.4959087371826,"z":"acd0c78c.bb62e8","wires":[["29d74fbe.37102","b6552632.ac4f58"]]},{"id":"b6552632.ac4f58","type":"set","name":"Set new index","xml":"<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n","comments":"","x":2282.723617553711,"y":1787.310863494873,"z":"acd0c78c.bb62e8","wires":[]},{"id":"ab27f8b1.93ed18","type":"for","name":"for snidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]","xml":"<for silentFailure='true' index='snidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n","comments":"","outputs":1,"x":755.71826171875,"y":1547.7180786132812,"z":"acd0c78c.bb62e8","wires":[["11bf7633.28d41a"]]},{"id":"11bf7633.28d41a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1191.686897277832,"y":1545.9244289398193,"z":"acd0c78c.bb62e8","wires":[["39cd84a6.e50b6c"]]},{"id":"39cd84a6.e50b6c","type":"switchNode","name":"switch AR found","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$sdix].allotted-resource-id == $cto-api.contrail-route-allotted-resource-id`'>\n","comments":"","outputs":1,"x":1394.2896156311035,"y":1546.2895069122314,"z":"acd0c78c.bb62e8","wires":[["63a8d9b7.9647c8"]]},{"id":"ed567b8f.022118","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1771.432518005371,"y":1544.8610582351685,"z":"acd0c78c.bb62e8","wires":[["cd740813.79bfd8","2e7160ae.30f4a"]]},{"id":"cd740813.79bfd8","type":"set","name":"Set sdidx","xml":"<set>\n\t<parameter name=\"tmp.sdidx\" value=\"`$snidx`\"/>\n\t\n\t\n","comments":"","x":1985.7182273864746,"y":1509.1468420028687,"z":"acd0c78c.bb62e8","wires":[]},{"id":"2e7160ae.30f4a","type":"break","name":"break","xml":"<break>\n","comments":"","x":1977.1467475891113,"y":1543.4325561523438,"z":"acd0c78c.bb62e8","wires":[]},{"id":"757a5151.5bcb2","type":"comment","name":"Find AR idx in consumed allotted resource list","info":"","comments":"","x":672.8610229492188,"y":1513.4324703216553,"z":"acd0c78c.bb62e8","wires":[]},{"id":"63a8d9b7.9647c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1582.860969543457,"y":1544.8610758781433,"z":"acd0c78c.bb62e8","wires":[["ed567b8f.022118"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_assign-vlan-tags.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_assign-vlan-tags.json
new file mode 100755 (executable)
index 0000000..b84aa6c
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"652accf8.af78f4","type":"dgstart","name":"DGSTART","outputs":1,"x":115,"y":100,"z":"9a9cdd56.ab0e8","wires":[["245d2ed1.72c402"]]},{"id":"245d2ed1.72c402","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":228.85713958740234,"y":139.8095464706421,"z":"9a9cdd56.ab0e8","wires":[["8126c279.7385a"]]},{"id":"8126c279.7385a","type":"method","name":"method assign-vlan-tags","xml":"<method rpc='assign-vlan-tags' mode='sync'>\n","comments":"","outputs":1,"x":161.42861938476562,"y":179.99999618530273,"z":"9a9cdd56.ab0e8","wires":[["2b22e267.5880ce"]]},{"id":"a1ecd56f.4f7138","type":"comment","name":"assign-vlan-tags","info":"","comments":"","x":520.3210983276367,"y":42.97569942474365,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"2b22e267.5880ce","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":119.66666412353516,"y":1345,"z":"9a9cdd56.ab0e8","wires":[["2c244a0a.2f99a6","36cbdffa.88e67","e6dec19f.663c6","222c19b3.ff2636","811ae3a3.5562b","7c36bb21.e49e84","e5a5c2b7.e4596","ab38927e.7993a","e6008238.aa9a3","3b356a3d.30f4c6","5f217817.0236f8","3fd9412f.cfb7ae","4f6273f9.020e6c","f6eaa086.ac557","4a7282d1.a2361c","770d61b0.03e07","8518fce8.71575","33171a53.f82ee6","c5f0bc7b.328f2","65087d58.1bcb14","d92f8c4a.771eb","b8e066e.4d27d98","5d9fa9f6.6b9a18","f9e63e02.6c242","de447fe4.4319f","28ce36b5.91d29a","30b583e4.f4ac8c"]]},{"id":"36cbdffa.88e67","type":"set","name":"copy to tmp.vlan-vnics (to work in)","xml":"<set>\n<parameter name='tmp.vlan-vnics.'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.`' />\n","comments":"","x":463.3333854675293,"y":334.99997901916504,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"7c36bb21.e49e84","type":"whileNode","name":"while total-subs > 0","xml":"<while test='`$total-subs &gt; 0`'>\n","comments":"","outputs":1,"x":418.333309173584,"y":688.3333053588867,"z":"9a9cdd56.ab0e8","wires":[["41193025.7a02d"]]},{"id":"2c244a0a.2f99a6","type":"set","name":"set total-subs","xml":"<set>\n<parameter name='total-subs' value='`$get-data-from-policy-output.precreate-sub-intf-num`' />\n","comments":"","x":396.66670989990234,"y":378.3333377838135,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"811ae3a3.5562b","type":"set","name":"set sub-index, and vnic-index to 0","xml":"<set>\n<parameter name='sub-index' value='0' />\n<parameter name='vnic-index' value='0' />\n","comments":"","x":456.66675567626953,"y":514.9999523162842,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"84ee47a3.5e24c8","type":"set","name":"set vlan-tag-id","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id'\n  value='`$cur-tag-id`' />\n","comments":"","x":801.6667861938477,"y":545,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"222c19b3.ff2636","type":"set","name":"set cur-tag-id","xml":"<set>\n<parameter name='cur-tag-id' value='`$get-data-from-policy-output.vlan-tag-start + $get-data-from-policy-output.vlan-tag-offset`' />\n","comments":"","x":395.0000648498535,"y":471.6666069030762,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"f1e94268.d9f41","type":"set","name":"increment cur-tag-id","xml":"<set>\n<parameter name='cur-tag-id' value='`$cur-tag-id + 1`' />\n","comments":"","x":818.3333702087402,"y":645.0000743865967,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"42a5d8f7.b5c068","type":"set","name":"increment vnic-index","xml":"<set>\n<parameter name='vnic-index' value='`$vnic-index + 1`' />\n","comments":"","x":818.333309173584,"y":693.3333683013916,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"fc80639f.54e36","type":"switchNode","name":"switch vnic-index == vnic length?","xml":"<switch test='`$vnic-index == $tmp.vlan-vnics.vlan-vnic_length`'>\n","comments":"","outputs":1,"x":860.0000762939453,"y":751.6667718887329,"z":"9a9cdd56.ab0e8","wires":[["8011b82e.664018"]]},{"id":"1c586522.eb984b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1204.99995803833,"y":748.3333721160889,"z":"9a9cdd56.ab0e8","wires":[["cb730d93.9895e","15998ce6.1407d3"]]},{"id":"cb730d93.9895e","type":"set","name":"set vnic-index to 0","xml":"<set>\n<parameter name='vnic-index' value='0' />\n","comments":"","x":1371.6667251586914,"y":720.000078201294,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"15998ce6.1407d3","type":"set","name":"increment sub-index","xml":"<set>\n<parameter name='sub-index' value='`$sub-index + 1`' />\n","comments":"","x":1378.3331909179688,"y":775.0001201629639,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"2d0797cd.e719b8","type":"set","name":"decrement total-subs","xml":"<set>\n<parameter name='total-subs' value='`$total-subs - 1`' />\n","comments":"","x":819.9999542236328,"y":813.3334627151489,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"e6dec19f.663c6","type":"switchNode","name":"switch total-subs > (vlan-vnics_length * max per VNIC)","xml":"<switch test='`$total-subs &gt; ( $tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf )`'>\n","comments":"","outputs":1,"x":523.333423614502,"y":425.0000162124634,"z":"9a9cdd56.ab0e8","wires":[["2849b86f.6f5298"]]},{"id":"1fe6d488.c1b37b","type":"set","name":"set total-subs = vlan-vnics_length * max per VNIC","xml":"<set>\n<parameter name='total-subs' value='`$tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf`' />\n","comments":"","x":1054.9999961853027,"y":424.9999952316284,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"80411e6d.8bfb1","type":"set","name":"set sub interface length","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length'\n  value='`$sub-index + 1`' />\n","comments":"","x":828.3333892822266,"y":595.0001430511475,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"2849b86f.6f5298","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":796.6666984558105,"y":424.99999618530273,"z":"9a9cdd56.ab0e8","wires":[["1fe6d488.c1b37b"]]},{"id":"41193025.7a02d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":608.333324432373,"y":686.666675567627,"z":"9a9cdd56.ab0e8","wires":[["84ee47a3.5e24c8","80411e6d.8bfb1","f1e94268.d9f41","42a5d8f7.b5c068","fc80639f.54e36","2d0797cd.e719b8"]]},{"id":"8011b82e.664018","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1068.3333282470703,"y":750.0000381469727,"z":"9a9cdd56.ab0e8","wires":[["1c586522.eb984b"]]},{"id":"e5a5c2b7.e4596","type":"set","name":"copy back tmp.vlan-vnics","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.'\n  value='`$tmp.vlan-vnics.`' />\n","comments":"","x":420.50000381469727,"y":2816.499797821045,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"ab38927e.7993a","type":"set","name":"clear tmp.vlan-vnics","xml":"<set>\n<parameter name='tmp.vlan-vnics.' value='' />\n","comments":"","x":420.0000419616699,"y":288.3333511352539,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"e6008238.aa9a3","type":"for","name":"for each vlan-vnic","xml":"<for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":414.16661834716797,"y":1465.000072479248,"z":"9a9cdd56.ab0e8","wires":[["8ec558ca.ea5e38"]]},{"id":"8ec558ca.ea5e38","type":"for","name":"for each subinterface","xml":"<for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":620.8332824707031,"y":1465.000093460083,"z":"9a9cdd56.ab0e8","wires":[["4c6946af.e71148"]]},{"id":"4c6946af.e71148","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":827.4999694824219,"y":1463.33345413208,"z":"9a9cdd56.ab0e8","wires":[["23d29721.ac5b48","81b844d1.ae00d8","96cbf0d4.4b3ef"]]},{"id":"26c4311.85447ce","type":"comment","name":"First loop through networks looking for this vlan-tag-id","info":"","comments":"","x":1100.8333740234375,"y":1363.3334684371948,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"23d29721.ac5b48","type":"set","name":"set network-index, and unassigned-network-index to -1","xml":"<set>\n<parameter name='network-index' value='-1' />\n<parameter name='unassigned-network-index' value='-1' />\n","comments":"","x":1147.5000762939453,"y":1405.0001482963562,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"81b844d1.ae00d8","type":"for","name":"for each network","xml":"<for index='n-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network_length`' >\n","comments":"","outputs":1,"x":1035.8332595825195,"y":1461.6668577194214,"z":"9a9cdd56.ab0e8","wires":[["99af6510.a954e8"]]},{"id":"3b356a3d.30f4c6","type":"set","name":"set network-instance-group-id","xml":"<set>\n<parameter name='network-instance-group-id' value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id'\n  value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\n","comments":"","x":450.8333435058594,"y":1098.3333721160889,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"34d50f05.68416","type":"comment","name":"Assign vlan tag ids","info":"","comments":"","x":396.66668701171875,"y":243.33334732055664,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"c415275f.5939e8","type":"comment","name":"Find the network instance group","info":"","comments":"","x":462.5000228881836,"y":1161.6667041778564,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"5f217817.0236f8","type":"set","name":"set network-instance-group-index to -1","xml":"<set>\n<parameter name='network-instance-group-index' value='-1' />\n","comments":"","x":480.83335876464844,"y":1208.333351135254,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"3fd9412f.cfb7ae","type":"for","name":"for each network-instance-group","xml":"<for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":459.1667022705078,"y":1254.9999389648438,"z":"9a9cdd56.ab0e8","wires":[["40199d4d.bebbb4"]]},{"id":"40199d4d.bebbb4","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$network-instance-group-id\n== $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":760.8333435058594,"y":1253.3331909179688,"z":"9a9cdd56.ab0e8","wires":[["a53c53b3.4e3b2"]]},{"id":"a53c53b3.4e3b2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":980.8334007263184,"y":1252.3332719802856,"z":"9a9cdd56.ab0e8","wires":[["90bd0614.2b8f68"]]},{"id":"90bd0614.2b8f68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1114.1666984558105,"y":1251.6666870117188,"z":"9a9cdd56.ab0e8","wires":[["eef79ff5.34e3","a063161.08833e8"]]},{"id":"eef79ff5.34e3","type":"set","name":"set network-instance-group-index","xml":"<set>\n<parameter name='network-instance-group-index' value='`$nig-index`' />\n","comments":"","x":1332.499912261963,"y":1224.99995803833,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"a063161.08833e8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1252.5000343322754,"y":1268.3332328796387,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4f6273f9.020e6c","type":"switchNode","name":"switch network-instance-group-index","xml":"<switch test='`$network-instance-group-index`'>\n","comments":"","outputs":1,"x":470.8333740234375,"y":1310.0000629425049,"z":"9a9cdd56.ab0e8","wires":[["2acd473f.1481d8"]]},{"id":"2acd473f.1481d8","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":689.1666984558105,"y":1308.9998598098755,"z":"9a9cdd56.ab0e8","wires":[["3e46fcba.683d84"]]},{"id":"3e46fcba.683d84","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find network instance group ID '\n  + $network-instance-group-id\n  + ' in network-instance-groups'`\" />\n","comments":"","x":839.1667404174805,"y":1308.3333148956299,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"99af6510.a954e8","type":"switchNode","name":"vlan-tag-ids match?","xml":"<switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id\n  == $service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].vlan-tag-id`'>\n","comments":"","outputs":1,"x":1240.833366394043,"y":1461.6666145324707,"z":"9a9cdd56.ab0e8","wires":[["87e84e53.ace3e","4f742575.5d294c"]]},{"id":"87e84e53.ace3e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1409.1666679382324,"y":1424.9999465942383,"z":"9a9cdd56.ab0e8","wires":[["b93b3695.96b0a8"]]},{"id":"b93b3695.96b0a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1545.833236694336,"y":1423.3331890106201,"z":"9a9cdd56.ab0e8","wires":[["702e077b.b74c88","4d366511.05eb1c"]]},{"id":"702e077b.b74c88","type":"set","name":"set network-index","xml":"<set>\n<parameter name='network-index' value='`$n-index`' />\n","comments":"","x":1720.8331413269043,"y":1394.9997415542603,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4d366511.05eb1c","type":"break","name":"break","xml":"<break>\n","comments":"","x":1684.1665725708008,"y":1439.99973487854,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"96cbf0d4.4b3ef","type":"switchNode","name":"switch network-index","xml":"<switch test='`$network-index`'>\n","comments":"","outputs":1,"x":1042.5001068115234,"y":1648.3332471847534,"z":"9a9cdd56.ab0e8","wires":[["6ec24dcf.1760e4","fee6142c.9a6e38"]]},{"id":"6ec24dcf.1760e4","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1224.166618347168,"y":1588.3332052230835,"z":"9a9cdd56.ab0e8","wires":[["af21836d.750cb"]]},{"id":"fee6142c.9a6e38","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1220.8334884643555,"y":1712.3333311080933,"z":"9a9cdd56.ab0e8","wires":[["17a81eee.7b05e1"]]},{"id":"17a81eee.7b05e1","type":"set","name":"set network-id in subinterface","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'\n  value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$network-index].network-id`' />\n","comments":"","x":1429.1665496826172,"y":1711.6665019989014,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"6be392b3.eb74ec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1802.4998931884766,"y":1641.6666622161865,"z":"9a9cdd56.ab0e8","wires":[["15321738.385e99","724ea597.a1b9bc"]]},{"id":"724ea597.a1b9bc","type":"set","name":"set this network as assigned to this vlan","xml":"<set>\n<parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].vlan-tag-id'\n  value='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id`' />\n<parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-status'\n  value='assigned' />\n","comments":"","x":2027.499984741211,"y":1663.3333530426025,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4f742575.5d294c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1410.8334159851074,"y":1503.333402633667,"z":"9a9cdd56.ab0e8","wires":[["c0cf0c09.a1be"]]},{"id":"c0cf0c09.a1be","type":"switchNode","name":"switch unassigned-network-index","xml":"<switch test=\"`$unassigned-network-index`\">\n","comments":"","outputs":1,"x":1630.833251953125,"y":1501.666696548462,"z":"9a9cdd56.ab0e8","wires":[["973e08b7.3ab268"]]},{"id":"973e08b7.3ab268","type":"outcomeTrue","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1842.499984741211,"y":1499.9998970031738,"z":"9a9cdd56.ab0e8","wires":[["8e8a8630.715dd8"]]},{"id":"445cd8d3.d38e48","type":"set","name":"set unassigned-network-index","xml":"<set>\n<parameter name='unassigned-network-index' value='`$n-index`' />\n","comments":"","x":2427.4997940063477,"y":1496.6666564941406,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"8e8a8630.715dd8","type":"switchNode","name":"switch network-status","xml":"<switch test='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].network-status`'>\n","comments":"","outputs":1,"x":2022.500144958496,"y":1498.3332414627075,"z":"9a9cdd56.ab0e8","wires":[["11b8e83.0200718"]]},{"id":"11b8e83.0200718","type":"outcome","name":"unassigned","xml":"<outcome value='unassigned'>\n","comments":"","outputs":1,"x":2214.1664543151855,"y":1498.3332815170288,"z":"9a9cdd56.ab0e8","wires":[["445cd8d3.d38e48"]]},{"id":"af21836d.750cb","type":"switchNode","name":"switch unassigned-network-index","xml":"<switch test='`$unassigned-network-index`'>\n","comments":"","outputs":1,"x":1439.1666641235352,"y":1588.3334074020386,"z":"9a9cdd56.ab0e8","wires":[["63c42993.468758","c210e058.f7fab"]]},{"id":"63c42993.468758","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1667.4999771118164,"y":1566.6666593551636,"z":"9a9cdd56.ab0e8","wires":[["739c22d8.39741c"]]},{"id":"c210e058.f7fab","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1669.1668815612793,"y":1641.9999952316284,"z":"9a9cdd56.ab0e8","wires":[["6be392b3.eb74ec"]]},{"id":"739c22d8.39741c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"L3-network not found\" />\n","comments":"","x":1820.833236694336,"y":1564.9998970031738,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"15321738.385e99","type":"set","name":"set network-id in subinterface","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'\n  value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-id`' />\n","comments":"","x":1997.4999084472656,"y":1613.3333282470703,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"f6eaa086.ac557","type":"for","name":"for each vlan-nvic","xml":"<for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":400.8333282470703,"y":1819.9998970031738,"z":"9a9cdd56.ab0e8","wires":[["3e87d92c.aa7e66"]]},{"id":"3e87d92c.aa7e66","type":"for","name":"for each subinterface","xml":"<for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":607.4999923706055,"y":1819.9999179840088,"z":"9a9cdd56.ab0e8","wires":[["5fd8a0cb.1af52"]]},{"id":"5fd8a0cb.1af52","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":805.8333282470703,"y":1818.333293914795,"z":"9a9cdd56.ab0e8","wires":[["a0a5a2fe.8466"]]},{"id":"a0a5a2fe.8466","type":"for","name":"for each network in service-data","xml":"<for index='n-index' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1037.5,"y":1819.9998397827148,"z":"9a9cdd56.ab0e8","wires":[["7f9b587d.8b8bc8"]]},{"id":"7f9b587d.8b8bc8","type":"switchNode","name":"switch network-ids match?","xml":"<switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id\n  == $service-data.networks.network[$n-index].network-id`'>\n","comments":"","outputs":1,"x":1312.5000305175781,"y":1818.3334169387817,"z":"9a9cdd56.ab0e8","wires":[["852afd7c.6b077"]]},{"id":"7bb29eb5.ce2aa","type":"set","name":"set network-name & role","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name'\n  value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-name`' />\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-role'\n  value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-role`' />\n","comments":"","x":1819.1666412353516,"y":1791.6669521331787,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"489e8171.fadb3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1634.1667594909668,"y":1815.0001640319824,"z":"9a9cdd56.ab0e8","wires":[["7bb29eb5.ce2aa","28e49c4e.dfc374"]]},{"id":"28e49c4e.dfc374","type":"break","name":"break","xml":"<break>\n","comments":"","x":1762.500057220459,"y":1838.3334999084473,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4a7282d1.a2361c","type":"switchNode","name":"switch network-name","xml":"<switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name`'>\n","comments":"","outputs":1,"x":407.50001525878906,"y":1904.9999656677246,"z":"9a9cdd56.ab0e8","wires":[["83949a40.48e068"]]},{"id":"83949a40.48e068","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":589.1666717529297,"y":1904.9998970031738,"z":"9a9cdd56.ab0e8","wires":[["31e77c14.ce4c94"]]},{"id":"31e77c14.ce4c94","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to find a network name for network id '\n  + $service-data.networks.network[$n-index].network-id`\" />\n","comments":"","x":747.5000381469727,"y":1903.333257675171,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"770d61b0.03e07","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":385.50001525878906,"y":2881.4997596740723,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"852afd7c.6b077","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1504.1666107177734,"y":1816.6665229797363,"z":"9a9cdd56.ab0e8","wires":[["489e8171.fadb3"]]},{"id":"8518fce8.71575","type":"get-resource","name":"get-resource instance group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n  resource=\"instance-groups\" \n  key=\"instance-group.instance-group-function = $db.group-uuids[$group-index].network-collection-function\n    AND instance-group.instance-group-type = 'L3-NETWORK'\"\n  pfx='aai.instance-group' local-only='false' >\n\n","comments":"","outputs":1,"x":448.3333511352539,"y":884.1666851043701,"z":"9a9cdd56.ab0e8","wires":[["9849af35.9608f","b9bb3c76.ee6f1"]]},{"id":"b9bb3c76.ee6f1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":662.5794792175293,"y":907.3175296783447,"z":"9a9cdd56.ab0e8","wires":[["b3bb7492.879b88"]]},{"id":"9849af35.9608f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":671.5081405639648,"y":860.603274345398,"z":"9a9cdd56.ab0e8","wires":[["33fbf4ac.607d1c"]]},{"id":"33fbf4ac.607d1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Unable to find AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].network-collection-function\n        + ' and instance-group-type L3-NETWORK'`\" />\n","comments":"","x":829.6667175292969,"y":859.1671562194824,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"b3bb7492.879b88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'System error getting AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].network-collection-function\n        + ' and instance-group-type L3-NETWORK'`\" />\n","comments":"","x":829.6666526794434,"y":907.1671447753906,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"c5f0bc7b.328f2","type":"for","name":"for each returned instance-group","xml":"<for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\n","comments":"","outputs":1,"x":464.3335189819336,"y":996.1671514511108,"z":"9a9cdd56.ab0e8","wires":[["59617a69.dbc4a4"]]},{"id":"59617a69.dbc4a4","type":"for","name":"for each relationship","xml":"<for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":716.0001602172852,"y":995.1671504974365,"z":"9a9cdd56.ab0e8","wires":[["c1083251.cc8c1"]]},{"id":"c1083251.cc8c1","type":"for","name":"for each relationship-data","xml":"<for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":942.6668319702148,"y":994.500524520874,"z":"9a9cdd56.ab0e8","wires":[["2a508b7f.bacb04"]]},{"id":"2a508b7f.bacb04","type":"switchNode","name":"switch relationship-key == service-instance.service-instance-id","xml":"<switch test=\"`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\n  == 'service-instance.service-instance-id'`\">\n","comments":"","outputs":1,"x":1301.0004196166992,"y":994.5004434585571,"z":"9a9cdd56.ab0e8","wires":[["13249590.69991a"]]},{"id":"13249590.69991a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1597.666877746582,"y":994.5004758834839,"z":"9a9cdd56.ab0e8","wires":[["d4256ecd.7fa88"]]},{"id":"d4256ecd.7fa88","type":"switchNode","name":"switch relationship-value == this service-instance-id","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\n  == $service-data.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":1862.6667022705078,"y":994.5004453659058,"z":"9a9cdd56.ab0e8","wires":[["a421e2d3.74531"]]},{"id":"33171a53.f82ee6","type":"set","name":"set found-instance-group to false","xml":"<set>\n<parameter name='found-instance-group' value='false' />\n","comments":"","x":464.33343505859375,"y":952.8336544036865,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"389120a7.29c36","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2249.3333892822266,"y":994.5004434585571,"z":"9a9cdd56.ab0e8","wires":[["a346204.a5f1be","2d1acd3b.a9b922","65d1ae7d.131c9"]]},{"id":"a346204.a5f1be","type":"set","name":"set found-instance-group to true","xml":"<set>\n<parameter name='found-instance-group' value='true' />\n","comments":"","x":2450.9999771118164,"y":951.1671094894409,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"2d1acd3b.a9b922","type":"set","name":"set aai-ig-index","xml":"<set>\n<parameter name='aai-ig-index' value='`$ig-index`' />\n","comments":"","x":2400.999813079834,"y":994.5005254745483,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"65d1ae7d.131c9","type":"break","name":"break","xml":"<break>\n","comments":"","x":2372.6668853759766,"y":1037.8338193893433,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"65087d58.1bcb14","type":"switchNode","name":"switch found-instance-group","xml":"<switch test='`$found-instance-group`'>\n","comments":"","outputs":1,"x":449.3335189819336,"y":1046.1672763824463,"z":"9a9cdd56.ab0e8","wires":[["886eaa87.ffc188"]]},{"id":"886eaa87.ffc188","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":646.0001564025879,"y":1046.1670751571655,"z":"9a9cdd56.ab0e8","wires":[["d4044e60.f7584"]]},{"id":"d4044e60.f7584","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Unable to find AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].vfc-instance-group-function\n        + ' and instance-group-type VNFC'`\" />\n","comments":"","x":796.0000457763672,"y":1044.5004358291626,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"a421e2d3.74531","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2122.6666717529297,"y":994.5004358291626,"z":"9a9cdd56.ab0e8","wires":[["389120a7.29c36"]]},{"id":"85eb004c.66119","type":"comment","name":"Assign floating addresses","info":"","comments":"","x":370.83350372314453,"y":1962.0000457763672,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"b8e066e.4d27d98","type":"for","name":"for each vnf-network-collection","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length`' >\n","comments":"","outputs":1,"x":432.50025939941406,"y":2050.500108718872,"z":"9a9cdd56.ab0e8","wires":[["74b16895.a08878"]]},{"id":"d92f8c4a.771eb","type":"set","name":"set found-collection to false","xml":"<set>\n<parameter name='found-collection' value='false' />\n","comments":"","x":424.1669235229492,"y":2004.5000247955322,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"74b16895.a08878","type":"switchNode","name":"network-instance-group-functions match?","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$idx].network-instance-group-function\n  == $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\n","comments":"","outputs":1,"x":750.8335571289062,"y":2049.8334016799927,"z":"9a9cdd56.ab0e8","wires":[["faaf1332.7d76d"]]},{"id":"faaf1332.7d76d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":989.1670722961426,"y":2049.5000677108765,"z":"9a9cdd56.ab0e8","wires":[["975615df.39d208"]]},{"id":"975615df.39d208","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1119.1667518615723,"y":2047.833360671997,"z":"9a9cdd56.ab0e8","wires":[["7828863b.a6d328","8d6f3a41.20ed28","6d574b94.f3f394"]]},{"id":"7828863b.a6d328","type":"set","name":"set found-collection to true","xml":"<set>\n<parameter name='found-collection' value='true' />\n","comments":"","x":1299.1667556762695,"y":2001.1668548583984,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"de447fe4.4319f","type":"for","name":"for each network-instance-group","xml":"<for index='idx' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":432.50010681152344,"y":2191.1667013168335,"z":"9a9cdd56.ab0e8","wires":[["917af37.8643b1"]]},{"id":"917af37.8643b1","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\n  == $service-data.network-instance-groups.network-instance-group[$idx].network-instance-group-id`'>\n","comments":"","outputs":1,"x":730.8332824707031,"y":2189.5000858306885,"z":"9a9cdd56.ab0e8","wires":[["31f04a0f.57f536"]]},{"id":"31f04a0f.57f536","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":952.5000534057617,"y":2188.1668643951416,"z":"9a9cdd56.ab0e8","wires":[["ef7bae7e.384a9"]]},{"id":"8d6f3a41.20ed28","type":"break","name":"break","xml":"<break>\n","comments":"","x":1239.166919708252,"y":2089.500068664551,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"5d9fa9f6.6b9a18","type":"switchNode","name":"switch found-collection","xml":"<switch test='`$found-collection`'>\n","comments":"","outputs":1,"x":404.1669616699219,"y":2097.8334436416626,"z":"9a9cdd56.ab0e8","wires":[["381c3f44.23f99"]]},{"id":"381c3f44.23f99","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":577.5003108978271,"y":2097.8334436416626,"z":"9a9cdd56.ab0e8","wires":[["d682f9e9.9b2f58"]]},{"id":"d682f9e9.9b2f58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find vnf-network-collection for network-instance-group-function '\n  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`\" />\n","comments":"","x":720.8334808349609,"y":2097.8333673477173,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"6d574b94.f3f394","type":"set","name":"set vnc-index","xml":"<set>\n<parameter name='vnc-index' value='`$idx`' />\n","comments":"","x":1262.5004959106445,"y":2046.166693687439,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"f9e63e02.6c242","type":"set","name":"set found-network-instance-group to false","xml":"<set>\n<parameter name='found-network-instance-group' value='false' />\n","comments":"","x":460.8334655761719,"y":2144.500030517578,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"ef7bae7e.384a9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1084.166732788086,"y":2186.1666193008423,"z":"9a9cdd56.ab0e8","wires":[["1c1479c5.0e3596","44374f33.c4d29","ca9bcaba.3c7cb8"]]},{"id":"1c1479c5.0e3596","type":"set","name":"set found-network-instance-group to true","xml":"<set>\n<parameter name='found-network-instance-group' value='true' />\n","comments":"","x":1312.5001678466797,"y":2139.500153541565,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"44374f33.c4d29","type":"break","name":"break","xml":"<break>\n","comments":"","x":1204.1669006347656,"y":2227.833327293396,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"ca9bcaba.3c7cb8","type":"set","name":"set nig-index","xml":"<set>\n<parameter name='nig-index' value='`$idx`' />\n","comments":"","x":1227.5004768371582,"y":2184.499952316284,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"28ce36b5.91d29a","type":"switchNode","name":"switch found-network-instance-group","xml":"<switch test='`$found-network-instance-group`'>\n","comments":"","outputs":1,"x":445.83343505859375,"y":2239.499831199646,"z":"9a9cdd56.ab0e8","wires":[["9c5a7f75.31353"]]},{"id":"9c5a7f75.31353","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":665.8336448669434,"y":2237.833409309387,"z":"9a9cdd56.ab0e8","wires":[["c0ff935e.ce4da"]]},{"id":"c0ff935e.ce4da","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find network-instance-group for network-instance-group-id '\n  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`\" />\n","comments":"","x":809.1668148040771,"y":2237.833333015442,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"30b583e4.f4ac8c","type":"for","name":"for each subnet","xml":"<for silentFailure='true' index='subnet-index' start='0'\n  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\n","comments":"","outputs":1,"x":380.83331298828125,"y":2536.1669960021973,"z":"9a9cdd56.ab0e8","wires":[["c35334b3.d58d88"]]},{"id":"c35334b3.d58d88","type":"switchNode","name":"switch ip-version","xml":"<switch test='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`'>\n","comments":"","outputs":1,"x":564.1666488647461,"y":2536.1669149398804,"z":"9a9cdd56.ab0e8","wires":[["3089a3c3.ba118c","b9ee7c6.9b83c8"]]},{"id":"3089a3c3.ba118c","type":"outcome","name":"ipv4","xml":"<outcome value='ipv4'>\n","comments":"","outputs":1,"x":727.5001564025879,"y":2421.166756629944,"z":"9a9cdd56.ab0e8","wires":[["4f0afcd5.e043f4"]]},{"id":"b9ee7c6.9b83c8","type":"outcome","name":"ipv6","xml":"<outcome value='ipv6'>\n","comments":"","outputs":1,"x":729.1667709350586,"y":2657.83327960968,"z":"9a9cdd56.ab0e8","wires":[["76c81b8.f9018e4"]]},{"id":"f9ac0c48.bea23","type":"switchNode","name":"switch network collection vipv4-address","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address`'>\n","comments":"","outputs":1,"x":1087.5005798339844,"y":2354.500081062317,"z":"9a9cdd56.ab0e8","wires":[["b6283c51.9a1"]]},{"id":"b6283c51.9a1","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1322.5003280639648,"y":2352.833245277405,"z":"9a9cdd56.ab0e8","wires":[["4d266e16.60cc6"]]},{"id":"a968161.37c5ae8","type":"set","name":"set variables for EIPAM calls","xml":"<set>\n<parameter name='tmp.vt-ip.network-instance-group-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\n<parameter name='tmp.vt-ip.network-instance-group-function'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\n<parameter name='tmp.vt-ip.nf-role'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\n<parameter name='tmp.vt-ip.vm-type'\n  value='`$db.group-uuids[$group-index].vm-type`' />\n<parameter name='tmp.vt-ip.vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\n<parameter name='tmp.vt-ip.type'\n  value='VIP' />\n<parameter name='tmp.vt-ip.vf-module-id'\n  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vt-ip.ip-version'\n  value='ipv4' />\n<parameter name='tmp.vt-ip.network-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />\n","comments":"","x":1644.166862487793,"y":2294.5000791549683,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4d266e16.60cc6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1447.5003280639648,"y":2352.833245277405,"z":"9a9cdd56.ab0e8","wires":[["a968161.37c5ae8","b44508ed.c8e008","174299a1.3bc446","e48077b.3ea7a88"]]},{"id":"b44508ed.c8e008","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-ip-addresses","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\n","comments":"","outputs":1,"x":1799.1668319702148,"y":2341.166741371155,"z":"9a9cdd56.ab0e8","wires":[["3f1cec1d.1871f4"]]},{"id":"3f1cec1d.1871f4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2152.500186920166,"y":2339.500075340271,"z":"9a9cdd56.ab0e8","wires":[["a2851cad.d2b5d"]]},{"id":"a2851cad.d2b5d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":2300.833610534668,"y":2337.8332147598267,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"174299a1.3bc446","type":"set","name":"set test EIPAM response","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='2' />\n<parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\n<parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value=\"`'34.52.87.1' + $counter`\" />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />\n","comments":"","x":1630.8335800170898,"y":2389.49999332428,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"e48077b.3ea7a88","type":"set","name":"set network collection vipv4-address","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":1667.5002746582031,"y":2434.5001649856567,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"4f0afcd5.e043f4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":857.5001525878906,"y":2419.4999990463257,"z":"9a9cdd56.ab0e8","wires":[["f9ac0c48.bea23","44e75606.5d9828"]]},{"id":"44e75606.5d9828","type":"for","name":"for each vlan-vnic","xml":"<for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":1024.166732788086,"y":2492.833245277405,"z":"9a9cdd56.ab0e8","wires":[["78c15aef.261da4"]]},{"id":"78c15aef.261da4","type":"for","name":"for each sub-interface","xml":"<for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":1230.8335037231445,"y":2492.8331747055054,"z":"9a9cdd56.ab0e8","wires":[["9cc506c6.cacec8"]]},{"id":"9cc506c6.cacec8","type":"set","name":"set floating-ip-v4","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v4'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":1432.500099182129,"y":2492.8335008621216,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"7b56555a.339a6c","type":"switchNode","name":"switch network collection vipv6-address","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address`'>\n","comments":"","outputs":1,"x":1090.833480834961,"y":2594.49999332428,"z":"9a9cdd56.ab0e8","wires":[["4938431d.a63f9c"]]},{"id":"4938431d.a63f9c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1325.8332290649414,"y":2592.8331575393677,"z":"9a9cdd56.ab0e8","wires":[["2331e3c3.6f45ac"]]},{"id":"cd2467f7.91fd58","type":"set","name":"set variables for EIPAM calls","xml":"<set>\n<parameter name='tmp.vt-ip.network-instance-group-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\n<parameter name='tmp.vt-ip.network-instance-group-function'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\n<parameter name='tmp.vt-ip.nf-role'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\n<parameter name='tmp.vt-ip.vm-type'\n  value='`$db.group-uuids[$group-index].vm-type`' />\n<parameter name='tmp.vt-ip.vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\n<parameter name='tmp.vt-ip.type'\n  value='VIP' />\n<parameter name='tmp.vt-ip.vf-module-id'\n  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vt-ip.ip-version'\n  value='ipv6' />\n<parameter name='tmp.vt-ip.network-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />\n","comments":"","x":1647.4997634887695,"y":2534.499991416931,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"2331e3c3.6f45ac","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1450.8332290649414,"y":2592.8331575393677,"z":"9a9cdd56.ab0e8","wires":[["cd2467f7.91fd58","3a2cb18.85b084e","ad55df13.888ba","593a7f2c.310c7"]]},{"id":"3a2cb18.85b084e","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-ip-addresses","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\n","comments":"","outputs":1,"x":1802.4997329711914,"y":2581.1666536331177,"z":"9a9cdd56.ab0e8","wires":[["a4c5186a.f96208"]]},{"id":"a4c5186a.f96208","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2155.8330879211426,"y":2579.499987602234,"z":"9a9cdd56.ab0e8","wires":[["c8656944.b5e6e8"]]},{"id":"c8656944.b5e6e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":2304.1665115356445,"y":2577.8331270217896,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"ad55df13.888ba","type":"set","name":"set test EIPAM response","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='2' />\n<parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\n<parameter name='eipam-ip-block.plans[0].requests_length' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value=\"`'cafe:1111' + $counter`\" />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='6' />\n","comments":"","x":1634.1664810180664,"y":2629.4999055862427,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"593a7f2c.310c7","type":"set","name":"set network collection vipv6-address","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":1670.8331756591797,"y":2674.5000772476196,"z":"9a9cdd56.ab0e8","wires":[]},{"id":"76c81b8.f9018e4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":862.4998321533203,"y":2656.16659450531,"z":"9a9cdd56.ab0e8","wires":[["7b56555a.339a6c","c214cfe5.d1b16"]]},{"id":"c214cfe5.d1b16","type":"for","name":"for each vlan-vnic","xml":"<for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":1027.4996337890625,"y":2732.8331575393677,"z":"9a9cdd56.ab0e8","wires":[["5eb6afaa.d832"]]},{"id":"5eb6afaa.d832","type":"for","name":"for each sub-interface","xml":"<for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":1234.166404724121,"y":2732.8330869674683,"z":"9a9cdd56.ab0e8","wires":[["f3af3152.84e6"]]},{"id":"f3af3152.84e6","type":"set","name":"set floating-ip-v6","xml":"<set>\n<parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v6'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":1435.8330001831055,"y":2732.8334131240845,"z":"9a9cdd56.ab0e8","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_auto-ip-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_auto-ip-assignment.json
new file mode 100644 (file)
index 0000000..a4a2755
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"bdeaac7e.eeba5","type":"method","name":"method auto-ip-assignment","xml":"<method rpc='auto-ip-assignment' mode='sync'>\n","comments":"","outputs":1,"x":192.5,"y":86.7261734008789,"z":"1fa209ca.68bcc6","wires":[["1d61830a.caff3d"]]},{"id":"1d61830a.caff3d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":174.392822265625,"y":145.4045763015747,"z":"1fa209ca.68bcc6","wires":[["ca6c92f6.15a88","94a73311.17b05","e8373374.eb2ed","e7d10438.f3e268","8054687.0b2de98","311925a8.ed57ea","ebb5bed4.21fe4","92fb65d7.62b1e8","f661c9eb.ebf8b8","9572481d.426008","620ae3a1.712f0c","848cc7f8.6ad808","c539ed02.ba3e4","39576ccf.08aa54"]]},{"id":"6d8f285d.2ee468","type":"dgstart","name":"DGSTART","outputs":1,"x":132.64283752441406,"y":22.61903190612793,"z":"1fa209ca.68bcc6","wires":[["efaaa681.a9adf8"]]},{"id":"ca6c92f6.15a88","type":"get-resource","name":"get-resource VF_MODULE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $auto-ip-assignment-input.vf-module.model-customization-uuid'\n  pfx='db1.vf-module-model'>\n\n","comments":"","outputs":1,"x":483.60704040527344,"y":385.4762716293335,"z":"1fa209ca.68bcc6","wires":[["ec4f7188.2ce47","e3fd6f30.c323f"]]},{"id":"311925a8.ed57ea","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$db1.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":400.82141876220703,"y":1281.429196357727,"z":"1fa209ca.68bcc6","wires":[["73db199f.b7b378"]]},{"id":"ec4f7188.2ce47","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":756.5356140136719,"y":365.8571071624756,"z":"1fa209ca.68bcc6","wires":[["382de90f.6812e6"]]},{"id":"e3fd6f30.c323f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":765.1070442199707,"y":410.14282035827637,"z":"1fa209ca.68bcc6","wires":[["65e64946.838a18"]]},{"id":"3593ee13.1daa82","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":836.21435546875,"y":454.01176166534424,"z":"1fa209ca.68bcc6","wires":[["1dbed7a1.44f198"]]},{"id":"d347b8fb.2d6ba8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":844.7857856750488,"y":498.297474861145,"z":"1fa209ca.68bcc6","wires":[["c897c5db.f03b08"]]},{"id":"73db199f.b7b378","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":598.2499160766602,"y":1281.9168405532837,"z":"1fa209ca.68bcc6","wires":[["c18d23f9.dfb6a","69acb259.3743cc","f885dc5b.e1297","2849b46c.06d7ac","39e9f916.d84206","24dba145.3374ae"]]},{"id":"382de90f.6812e6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n","comments":"","x":931.5355453491211,"y":365.00000762939453,"z":"1fa209ca.68bcc6","wires":[]},{"id":"65e64946.838a18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VF module customization UUID ' + $vnf-topology-operation-input.vnf-request-information.model-customization-uuid`\" />\n","comments":"","x":932.1783447265625,"y":409.904748916626,"z":"1fa209ca.68bcc6","wires":[]},{"id":"1dbed7a1.44f198","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_TO_VFC_MAPPING table\" />\n","comments":"","x":1011.2142868041992,"y":453.1546621322632,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c897c5db.f03b08","type":"set","name":"set vf-module-to-vfc-mapping length to 0","xml":"<set>\n<parameter name='db1.vf-module-to-vfc-mapping_length' value='0' />\n","comments":"","x":1098.0000762939453,"y":497.9161376953125,"z":"1fa209ca.68bcc6","wires":[]},{"id":"5a553f67.c7601","type":"switchNode","name":"switch ipv4-ip-version","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n","comments":"","outputs":1,"x":2397.0757217407227,"y":2713.762487888336,"z":"1fa209ca.68bcc6","wires":[["fab0b697.cf8cf8"]]},{"id":"fab0b697.cf8cf8","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":2588.0755157470703,"y":2713.8576607704163,"z":"1fa209ca.68bcc6","wires":[["fe994d35.8cfd5"]]},{"id":"fe994d35.8cfd5","type":"switchNode","name":"switch ipv4-use-dhcp","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\n","comments":"","outputs":1,"x":2783.38077545166,"y":2714.9407086372375,"z":"1fa209ca.68bcc6","wires":[["b3ff62a2.75876"]]},{"id":"b3ff62a2.75876","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":2979.630657196045,"y":2715.2623019218445,"z":"1fa209ca.68bcc6","wires":[["e5e94945.c9a578"]]},{"id":"4b46311e.8a97","type":"comment","name":"REQUIRED INPUTS","info":"auto-ip-assignment-input.vf-module.model-customization-uuid\n - used to get VF_MODULE_MODEL and related vfc-customization-uuids\nauto-ip-assignment-input.vf-module-id\n - pass to include in eipam-ip-block.plans.[].info\nauto-ip-assignment-input.aic-cloud-region\n - pass to generate FQPN to get clli and complex.region\n - pass to query-aai-l3-network-by network-role as 1st filter\nauto-ip-assignment-input.service-instance-id\n - pass to query-aai-l3-network-by network-role as 2nd filter\nauto-ip-assignment-input.vnf-assignments.vnf-vms[].vm-names[].vnfc-names[].vnfc-name\n - pass to use vnfc-name as part of client-key for ip request\n\t","comments":"","x":584.9524536132812,"y":76.84521675109863,"z":"1fa209ca.68bcc6","wires":[]},{"id":"63355749.999f38","type":"comment","name":"Change History","info":"iTrack 8790\n- fix generate-FQPN-input.location-clli8 (8 was missing)\n- fix typo (signular assignment, no s) in eipam-ip-block.plans[].requests[] SUPPLEMENTAL DATA\n- copy generate-FQPN-output. to eipam-ip-block.plans[].requests[] after ading SUPPLEMENTAL DATA\niTrack 9558\n- fix typo in node 95, 282 to test ipv6-ip-version instead of ipv6-use-dhcp\n- initialize pidx before looping vm-type\n- fixed node 105 for loop end index type, db instead of db1\n\n1802\niTrack 10575 \n\t- added property for cloud-owner, added property for cloud-owner, added property for cloud-owner, added property for cloud-owner, added property for cloud-owner, added property for cloud-owner\niTrack 10846\n\t- node 71, added network-role-tag\n\t- node 41, clear tmp.db1.\n\niTrack 10767\n\t- added node 320 to update GENERIC_RESOURCE_NAME.context_id for client-key\n\t\n\tiTrack 11310\n\t- added network-id as FQPN input\n1806\niTrack 13358\n- set service-type to NA if null","comments":"","x":800.25,"y":64.9404525756836,"z":"1fa209ca.68bcc6","wires":[]},{"id":"94a73311.17b05","type":"switchNode","name":"switch: auto-ip-assignment-input.vf-module.model-customization-uuid","xml":"<switch test='`$auto-ip-assignment-input.vf-module.model-customization-uuid`'>\n","comments":"","outputs":1,"x":585.4286193847656,"y":189.61903762817383,"z":"1fa209ca.68bcc6","wires":[["ffb298a5.f0f0e8"]]},{"id":"ffb298a5.f0f0e8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":933.4286193847656,"y":189.6190366744995,"z":"1fa209ca.68bcc6","wires":[["501d7832.b9a1c8"]]},{"id":"501d7832.b9a1c8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"auto-ip-assignment-input.vf-module.model-customization-uuid is null\" />\n","comments":"","x":1095.3452911376953,"y":189.73013544082642,"z":"1fa209ca.68bcc6","wires":[]},{"id":"e8373374.eb2ed","type":"switchNode","name":"switch: auto-ip-assignment-input.aic-cloud-region","xml":"<switch test='`$auto-ip-assignment-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":522.1785888671875,"y":145.61902713775635,"z":"1fa209ca.68bcc6","wires":[["5e6658b7.1d20b8"]]},{"id":"5e6658b7.1d20b8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":785.678596496582,"y":145.11902713775635,"z":"1fa209ca.68bcc6","wires":[["29b82193.3a746e"]]},{"id":"29b82193.3a746e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"auto-ip-assignment-input.aic-cloud-region is null\" />\n","comments":"","x":940.0952644348145,"y":145.23012399673462,"z":"1fa209ca.68bcc6","wires":[]},{"id":"e7d10438.f3e268","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":390.3695297241211,"y":5296.321459770203,"z":"1fa209ca.68bcc6","wires":[["d7916c77.af658"]]},{"id":"8054687.0b2de98","type":"switchNode","name":"switch: auto-ip-assignment-input.vf-module-id","xml":"<switch test='`$auto-ip-assignment-input.vf-module-id`'>\n","comments":"","outputs":1,"x":512.3571472167969,"y":235.47616958618164,"z":"1fa209ca.68bcc6","wires":[["94e19cf2.8369a"]]},{"id":"94e19cf2.8369a","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":806.8571548461914,"y":234.97616958618164,"z":"1fa209ca.68bcc6","wires":[["7f5c15a8.18707c"]]},{"id":"7f5c15a8.18707c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"auto-ip-assignment-input.vf-module-id is null\" />\n","comments":"","x":961.2738227844238,"y":235.0872664451599,"z":"1fa209ca.68bcc6","wires":[]},{"id":"12834db5.591062","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1318.225917816162,"y":1416.6784665584564,"z":"1fa209ca.68bcc6","wires":[["29c73eda.7d05a2"]]},{"id":"29c73eda.7d05a2","type":"set","name":"set vfc-to-network-role-mapping length to 0","xml":"<set>\n<parameter name='db1.vfc-to-network-role-mapping_length' value='0' />\n","comments":"","x":1581.6307373046875,"y":1416.6868569850922,"z":"1fa209ca.68bcc6","wires":[]},{"id":"11c41bfb.ee6444","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1311.345043182373,"y":1461.4404199123383,"z":"1fa209ca.68bcc6","wires":[["552ab56d.0b188c"]]},{"id":"552ab56d.0b188c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1486.3449745178223,"y":1460.5833203792572,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c539ed02.ba3e4","type":"set","name":"set pidx = 0","xml":"<set>\n\t<parameter name='pidx' value = '0' />","comments":"","x":386.44034576416016,"y":1231.1307334899902,"z":"1fa209ca.68bcc6","wires":[]},{"id":"a35d339d.d772a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":904.6986122131348,"y":616.0595092773438,"z":"1fa209ca.68bcc6","wires":[["14b0cd1a.0ef593"]]},{"id":"14b0cd1a.0ef593","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":1079.698585510254,"y":616.0595455169678,"z":"1fa209ca.68bcc6","wires":[]},{"id":"36a9187c.6a9578","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":913.6272087097168,"y":567.3452425003052,"z":"1fa209ca.68bcc6","wires":[["f29043a7.1a8ff"]]},{"id":"f29043a7.1a8ff","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`\" />\n","comments":"","x":1079.9764862060547,"y":566.6508197784424,"z":"1fa209ca.68bcc6","wires":[]},{"id":"51b64b37.cbe814","type":"for","name":"for relationship list","xml":"<for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":645.4286270141602,"y":807.165768623352,"z":"1fa209ca.68bcc6","wires":[["84fdeabe.693e68"]]},{"id":"a2a54490.483078","type":"get-resource","name":"get-resource: AAI cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $auto-ip-assignment-input.aic-cloud-region AND\n\t\t     depth = '0'\"\n        pfx='aai.cloud-region' >\n\n","comments":"","outputs":1,"x":685.2024040222168,"y":590.1586618423462,"z":"1fa209ca.68bcc6","wires":[["36a9187c.6a9578","a35d339d.d772a"]]},{"id":"9cb1a25.f1cd86","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2017.8971519470215,"y":1002.8968086242676,"z":"1fa209ca.68bcc6","wires":[["d3347913.1f4b98"]]},{"id":"d3347913.1f4b98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving complex from AAI\" />\n","comments":"","x":2184.4327964782715,"y":1002.3968486785889,"z":"1fa209ca.68bcc6","wires":[]},{"id":"6df847f.69579b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2024.3971481323242,"y":958.8968696594238,"z":"1fa209ca.68bcc6","wires":[["fe77ab8.ca0aa58"]]},{"id":"fe77ab8.ca0aa58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Complex not found in AAI\" />\n","comments":"","x":2192.175075531006,"y":959.2022171020508,"z":"1fa209ca.68bcc6","wires":[]},{"id":"ee9cbe79.9bd6a","type":"get-resource","name":"get-resource complex","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"complex\" \n\t\tkey=\"complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value\"\n    pfx='aai.complex' >\n        \n\n\n","comments":"","outputs":1,"x":1816.5436248779297,"y":958.8534126281738,"z":"1fa209ca.68bcc6","wires":[["6df847f.69579b8","9cb1a25.f1cd86"]]},{"id":"e028a80d.17a7b8","type":"switchNode","name":"switch: relationship-key","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1095.345344543457,"y":806.9526331424713,"z":"1fa209ca.68bcc6","wires":[["8a4be0cf.c0c4c"]]},{"id":"8a4be0cf.c0c4c","type":"other","name":"complex.physical-location-id","xml":"<outcome value='complex.physical-location-id'>\n","comments":"","outputs":1,"x":1351.2740859985352,"y":807.22642827034,"z":"1fa209ca.68bcc6","wires":[["8f808106.51edd"]]},{"id":"2e362ecc.38ca82","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1763.6426086425781,"y":806.8813190460205,"z":"1fa209ca.68bcc6","wires":[["1cf1acd6.2d9d43","74eb321a.32e84c","fb6c9d13.30d6a"]]},{"id":"1cf1acd6.2d9d43","type":"set","name":"set tmp.aic-clli","xml":"<set>\n<parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\n\n","comments":"","x":1968.6195220947266,"y":805.2423820495605,"z":"1fa209ca.68bcc6","wires":[]},{"id":"9f220722.b9cdc8","type":"switchNode","name":"switch cloud-region.relationship_length","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":710.0356864929199,"y":693.6586618423462,"z":"1fa209ca.68bcc6","wires":[["5b7be5d5.ae6adc","fe44cb88.ada2d8"]]},{"id":"5b7be5d5.ae6adc","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":960.2857585483125,"y":670.1587487326728,"z":"1fa209ca.68bcc6","wires":[["21477cfd.543464"]]},{"id":"fe44cb88.ada2d8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":963.5357551574707,"y":719.1587839126587,"z":"1fa209ca.68bcc6","wires":[["21477cfd.543464"]]},{"id":"21477cfd.543464","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"cloud-region missing relationships in AAI\" />\n","comments":"","x":1135.0357627868652,"y":690.1587829589844,"z":"1fa209ca.68bcc6","wires":[]},{"id":"84fdeabe.693e68","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":870.2500228881836,"y":807.0753405094147,"z":"1fa209ca.68bcc6","wires":[["e028a80d.17a7b8"]]},{"id":"ebb5bed4.21fe4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":409.1666717529297,"y":589.6586980819702,"z":"1fa209ca.68bcc6","wires":[["a2a54490.483078","9f220722.b9cdc8","51b64b37.cbe814","80ea343b.e57cf8"]]},{"id":"74eb321a.32e84c","type":"execute","name":"substring aic-clli to 8 chars","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\n   <parameter name='result' value='tmp.truncated.clli8' />\n   <parameter name='string' value='`$tmp.aic-clli`' />\n   <parameter name='begin-index' value='0' />\n   <parameter name='end-index' value='8' />\n","comments":"","outputs":1,"x":2009.1664810180664,"y":853.3928115367889,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"fb6c9d13.30d6a","type":"set","name":"set generate-FQPN-input.location-clli8","xml":"<set>\n<parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\n","comments":"","x":2046.5555038452148,"y":900.7260100841522,"z":"1fa209ca.68bcc6","wires":[]},{"id":"a9bd2cf.cf2c0d","type":"set","name":"set generate-FQPN-input.complex-region","xml":"<set>\n<parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\n","comments":"","x":1876.5000457763672,"y":1052.3927431106567,"z":"1fa209ca.68bcc6","wires":[]},{"id":"8f808106.51edd","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1584.166576385498,"y":807.0594577789307,"z":"1fa209ca.68bcc6","wires":[["2e362ecc.38ca82","ee9cbe79.9bd6a","a9bd2cf.cf2c0d"]]},{"id":"5b9e9ca4.d8f764","type":"comment","name":"db1.vfc-to-network-role-mapping[]","info":"","comments":"","x":591.3928375244141,"y":1465.6071498394012,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2285643b.9922cc","type":"outcome","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":2583.39310836792,"y":3041.0481295585632,"z":"1fa209ca.68bcc6","wires":[["438426c0.cc0468"]]},{"id":"e5e94945.c9a578","type":"switchNode","name":"switch: ipv4-count > 0","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count &gt; 0`'>\n","comments":"","outputs":1,"x":3175.11922454834,"y":2714.6307187080383,"z":"1fa209ca.68bcc6","wires":[["d2d209d7.8ed748"]]},{"id":"c269e9.de2c4618","type":"switchNode","name":"switch: ipv6-count > 0","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count &gt; 0`'>\n","comments":"","outputs":1,"x":3167.6191329956055,"y":3041.4887051582336,"z":"1fa209ca.68bcc6","wires":[["45ccbd96.e468b4"]]},{"id":"45ccbd96.e468b4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3366.666702270508,"y":3042.012421131134,"z":"1fa209ca.68bcc6","wires":[["c760b117.8b827"]]},{"id":"d2d209d7.8ed748","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3370.02396774292,"y":2714.6788535118103,"z":"1fa209ca.68bcc6","wires":[["4266f4eb.802e3c"]]},{"id":"f85e4bcd.6f1478","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":2974.7621841430664,"y":3041.8219780921936,"z":"1fa209ca.68bcc6","wires":[["c269e9.de2c4618"]]},{"id":"438426c0.cc0468","type":"switchNode","name":"switch ipv6-use-dhcp","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\n","comments":"","outputs":1,"x":2774.762275695801,"y":3041.155140399933,"z":"1fa209ca.68bcc6","wires":[["f85e4bcd.6f1478"]]},{"id":"9fba10d1.1caf7","type":"for","name":"for vm-index in vm-count","xml":"<for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":3806.45263671875,"y":2981.6785564422607,"z":"1fa209ca.68bcc6","wires":[["bfe01ab7.6c8a88"]]},{"id":"bfe01ab7.6c8a88","type":"for","name":"for ipv4-index in ipv4-ip-count","xml":"<for index='ipv4-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' >\n","comments":"","outputs":1,"x":4093.167495727539,"y":2981.3928303718567,"z":"1fa209ca.68bcc6","wires":[["ced3eb0a.3e32f8"]]},{"id":"80ea343b.e57cf8","type":"set","name":"set generate-FQPN-input.aic-cloud-region","xml":"<set>\n<parameter name='generate-FQPN-input.aic-cloud-region' \n\tvalue='`$auto-ip-assignment-input.aic-cloud-region`' />\n","comments":"","x":710.547607421875,"y":972.9165382385254,"z":"1fa209ca.68bcc6","wires":[]},{"id":"28c25d32.2a7872","type":"set","name":"set eipam-ip-block.plans[].requests[] SUPPLEMENTAL DATA","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\n    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\n    value='FIXED' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\n    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\n    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />    ","comments":"","x":4946.429328918457,"y":3501.821168422699,"z":"1fa209ca.68bcc6","wires":[]},{"id":"92fb65d7.62b1e8","type":"set","name":"set qridx = 0","xml":"<set>\n\t<parameter name='qridx' value = '0' />","comments":"","x":391.4166946411133,"y":1181.3452701568604,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b31cbbb7.684048","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4571.095596313477,"y":3439.487681865692,"z":"1fa209ca.68bcc6","wires":[["e83ff5ab.6145c8","b8f985fd.a12bc8","454ab1a0.010a1","28c25d32.2a7872","f04325bc.877968","fad632eb.6a9c1"]]},{"id":"fcd641c6.e94f6","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":3791.381187438965,"y":3105.6790585517883,"z":"1fa209ca.68bcc6","wires":[["b9a7ef28.c44b6"]]},{"id":"b9a7ef28.c44b6","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3987.2264289855957,"y":3106.1195845603943,"z":"1fa209ca.68bcc6","wires":[["ef2f80a6.d9df2"]]},{"id":"ef2f80a6.d9df2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":4148.226428985596,"y":3106.1195845603943,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c760b117.8b827","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3544.5243759155273,"y":3041.821900844574,"z":"1fa209ca.68bcc6","wires":[["fcd641c6.e94f6","a1756b5f.a813c8","f980c3d4.b9fbc","761e238c.5d346c","af240f9.e382ff","c276cfd9.9bcae"]]},{"id":"a1756b5f.a813c8","type":"set","name":"set generate-FQPN-input.plan-name, network-role, subnet-role, vrf-name","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\n<parameter name='generate-FQPN-input.network-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='generate-FQPN-input.subnet-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='generate-FQPN-input.vrf-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\n\n<!--\n<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' />\n<parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\n-->","comments":"","x":3952.66707611084,"y":3041.5838437080383,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f661c9eb.ebf8b8","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$db1.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":419.7501907348633,"y":3852.988638162613,"z":"1fa209ca.68bcc6","wires":[["2b988a1b.7f7bd6"]]},{"id":"13900383.cbb11c","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$db1.vfc-to-network-role-mapping_length`' >\n","comments":"","outputs":1,"x":846.5959014892578,"y":4062.5155210494995,"z":"1fa209ca.68bcc6","wires":[["3ba19fcb.20327"]]},{"id":"3ba19fcb.20327","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1073.4883880615234,"y":4062.1865224838257,"z":"1fa209ca.68bcc6","wires":[["1c79b3e4.57ddbc","e3bac480.22c4f8","b272fd59.bbf0b","91540bf0.cd70b8","b6c1cfe8.74caf"]]},{"id":"3ae51def.6f5252","type":"switchNode","name":"switch ipv4-ip-version","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n","comments":"","outputs":1,"x":2342.576271057129,"y":4877.321943998337,"z":"1fa209ca.68bcc6","wires":[["ba642375.134b4"]]},{"id":"ba642375.134b4","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":2533.5760650634766,"y":4877.417116880417,"z":"1fa209ca.68bcc6","wires":[["770e67e8.a971b8"]]},{"id":"770e67e8.a971b8","type":"switchNode","name":"switch ipv4-use-dhcp","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\n","comments":"","outputs":1,"x":2719.5957794189453,"y":4876.880890607834,"z":"1fa209ca.68bcc6","wires":[["99ffb23a.1b79d"]]},{"id":"99ffb23a.1b79d","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":2915.84566116333,"y":4877.202483892441,"z":"1fa209ca.68bcc6","wires":[["fdc7524b.4f0ae"]]},{"id":"b272fd59.bbf0b","type":"set","name":"set tmp.network-role.found = false","xml":"<set>\n\t<parameter name='tmp.network-role.found' value = 'false' />","comments":"","x":1366.8337860107422,"y":4167.166709899902,"z":"1fa209ca.68bcc6","wires":[]},{"id":"fdc7524b.4f0ae","type":"switchNode","name":"switch: ipv4-floating-count > 0","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-floating-count &gt; 0`'>\n","comments":"","outputs":1,"x":3150.7387886047363,"y":4876.595235586166,"z":"1fa209ca.68bcc6","wires":[["98938161.3fea8"]]},{"id":"98938161.3fea8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3373.786449432373,"y":4876.643157243729,"z":"1fa209ca.68bcc6","wires":[["9dfd2540.737068"]]},{"id":"32938572.9de37a","type":"for","name":"for each q","xml":"<for index='q' start='0' end='`$tmp.network-role-query-results_length`' >\n","comments":"","outputs":1,"x":1670.0479354858398,"y":4277.179706811905,"z":"1fa209ca.68bcc6","wires":[["2b9ad069.c1331","9525c570.063288"]]},{"id":"d16be293.6196a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2180.4646530151367,"y":4323.596601724625,"z":"1fa209ca.68bcc6","wires":[["da60e692.bfb7a8"]]},{"id":"da60e692.bfb7a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2343.2146224975586,"y":4323.596543550491,"z":"1fa209ca.68bcc6","wires":[["b918599d.55a5c8","43751108.a7a64","7a257d71.1b3624","d7779888.5f9488"]]},{"id":"b918599d.55a5c8","type":"set","name":"set generate-FQPN-input.network-name","xml":"<set>\n<parameter name='generate-FQPN-input.network-name' \n\tvalue='`$tmp.network-role-query-results[$q].l3-network.network-name`' />\n<parameter name='generate-FQPN-input.network-id' \n\tvalue='`$tmp.network-role-query-results[$q].l3-network.network-id`' />","comments":"","x":2624.9646224975586,"y":4323.846543550491,"z":"1fa209ca.68bcc6","wires":[]},{"id":"43751108.a7a64","type":"set","name":"set tmp.network-role.found = true","xml":"<set>\n\t<parameter name='tmp.network-role.found' value = 'true' />","comments":"","x":2605.7146072387695,"y":4371.346486330032,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2d94833e.63e13c","type":"switchNode","name":"switch tmp.network-role.found","xml":"<switch test='`$tmp.network-role.found`'>\n","comments":"","outputs":1,"x":1559.1431427001953,"y":4617.822324752808,"z":"1fa209ca.68bcc6","wires":[["b76e9a1f.d92a18","2cf6eef6.fd6c52"]]},{"id":"b76e9a1f.d92a18","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1783.809627532959,"y":4617.822783470154,"z":"1fa209ca.68bcc6","wires":[["5fd32b63.2b9584"]]},{"id":"cbd8150c.f07008","type":"comment","name":"Lopping for floating ips","info":"","comments":"","x":518.2620811462402,"y":3807.9170706272125,"z":"1fa209ca.68bcc6","wires":[]},{"id":"276a3823.9093b8","type":"set","name":"set ridx = 0","xml":"<set>\n<parameter name='ridx' value='0' />\n","comments":"","x":2361.833335876465,"y":2622.7740292549133,"z":"1fa209ca.68bcc6","wires":[]},{"id":"e83ff5ab.6145c8","type":"set","name":"increment ridx","xml":"<set>\n<parameter name='ridx' value='`$ridx + 1`' />\n","comments":"","x":4803.250274658203,"y":3839.4991660118103,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b8f985fd.a12bc8","type":"set","name":"set eipam-ip-block.plans[].requests_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\n","comments":"","x":4890.250595092773,"y":3902.356273174286,"z":"1fa209ca.68bcc6","wires":[]},{"id":"cac0d7fa.ff6178","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":3795.928970336914,"y":4934.489298343658,"z":"1fa209ca.68bcc6","wires":[["8d739f0d.2f3e9"]]},{"id":"8d739f0d.2f3e9","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3991.774211883545,"y":4934.929824352264,"z":"1fa209ca.68bcc6","wires":[["c853a009.e46a3"]]},{"id":"c853a009.e46a3","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":4152.774211883545,"y":4934.929824352264,"z":"1fa209ca.68bcc6","wires":[]},{"id":"9dfd2540.737068","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3545.2148780822754,"y":4876.775269269943,"z":"1fa209ca.68bcc6","wires":[["cac0d7fa.ff6178","1cd5a66.7711b5a","2c1c79b7.b28ea6","267fa7c8.b7bda8","f9459525.385678","c0a42027.da922"]]},{"id":"1cd5a66.7711b5a","type":"set","name":"set generate-FQPN-input.plan-name, network-role, subnet-role, vrf-name","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\n<parameter name='generate-FQPN-input.subnet-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='generate-FQPN-input.network-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='generate-FQPN-input.vrf-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\n\n<!--\n<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' />\n<parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\n-->","comments":"","x":3957.2144775390625,"y":4877.060610294342,"z":"1fa209ca.68bcc6","wires":[]},{"id":"8e6077b8.e4d448","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":3802.5956497192383,"y":5245.894829750061,"z":"1fa209ca.68bcc6","wires":[["9bef6d5.5154c9"]]},{"id":"9bef6d5.5154c9","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3994.440891265869,"y":5246.335355758667,"z":"1fa209ca.68bcc6","wires":[["29bd829e.c1928e"]]},{"id":"29bd829e.c1928e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":4155.440891265869,"y":5246.335355758667,"z":"1fa209ca.68bcc6","wires":[]},{"id":"734bf358.b8c19c","type":"set","name":"set eipam-ip-block.plans[].plan-name, address-family","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].plan-name'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].address-family'\n    value=\"`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`\" />","comments":"","x":3904.2145042419434,"y":5350.704384326935,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b4e09caf.66c66","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3532.2147521972656,"y":5183.18058514595,"z":"1fa209ca.68bcc6","wires":[["8e6077b8.e4d448","b2920be2.27bef8","734bf358.b8c19c","80af71b0.d1d94","f9459525.385678","71ccdccd.6f3db4"]]},{"id":"b2920be2.27bef8","type":"set","name":"set generate-FQPN-input.plan-name, network-role, subnet-role, vrf-name","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\n<parameter name='generate-FQPN-input.vrf-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\n<parameter name='generate-FQPN-input.subnet-role' \n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='generate-FQPN-input.network-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n\n<!--\n<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' />\n<parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\n-->","comments":"","x":3965.214511871338,"y":5184.132459640503,"z":"1fa209ca.68bcc6","wires":[]},{"id":"780bb10d.855f4","type":"set","name":"increment ridx","xml":"<set>\n<parameter name='ridx' value='`$ridx + 1`' />\n","comments":"","x":3982.667449951172,"y":5831.13201212883,"z":"1fa209ca.68bcc6","wires":[]},{"id":"7dfc98af.30f1d8","type":"set","name":"set eipam-ip-block.plans[].requests_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\n","comments":"","x":4069.667434692383,"y":5895.607931852341,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2c1c79b7.b28ea6","type":"set","name":"set ip-version, use-dhcp","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />","comments":"","x":3811.3101196289062,"y":5089.6318254470825,"z":"1fa209ca.68bcc6","wires":[]},{"id":"6c18c680.514658","type":"set","name":"set ridx = 0","xml":"<set>\n<parameter name='ridx' value='0' />\n","comments":"","x":2314.3577880859375,"y":4760.751270055771,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b2c848c5.019c18","type":"switchNode","name":"switch ipv6-ip-version","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n","comments":"","outputs":1,"x":2350.548126220703,"y":5183.489090204239,"z":"1fa209ca.68bcc6","wires":[["e37bbb38.1d0cf8"]]},{"id":"e37bbb38.1d0cf8","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":2541.547920227051,"y":5183.584263086319,"z":"1fa209ca.68bcc6","wires":[["e631b133.609ed"]]},{"id":"e631b133.609ed","type":"switchNode","name":"switch ipv6-use-dhcp","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\n","comments":"","outputs":1,"x":2727.5676345825195,"y":5183.048036813736,"z":"1fa209ca.68bcc6","wires":[["b5b2cf39.285c2"]]},{"id":"b5b2cf39.285c2","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":2923.8175163269043,"y":5183.369630098343,"z":"1fa209ca.68bcc6","wires":[["f59678a.6d15988"]]},{"id":"f59678a.6d15988","type":"switchNode","name":"switch: ipv6-floating-count > 0","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-floating-count &gt; 0`'>\n","comments":"","outputs":1,"x":3151.3773040771484,"y":5182.929894685745,"z":"1fa209ca.68bcc6","wires":[["efdbdf0e.b28f6"]]},{"id":"efdbdf0e.b28f6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3364.424964904785,"y":5182.9778163433075,"z":"1fa209ca.68bcc6","wires":[["b4e09caf.66c66"]]},{"id":"ec903613.4cc188","type":"execute","name":"call EIPAM assignIPAddress","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">","comments":"","outputs":1,"x":1315.5126495361328,"y":5343.618245124817,"z":"1fa209ca.68bcc6","wires":[["4ccc4394.028a0c"]]},{"id":"4ccc4394.028a0c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1529.5126495361328,"y":5343.618245124817,"z":"1fa209ca.68bcc6","wires":[["dccc6100.bb124"]]},{"id":"dccc6100.bb124","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`\" />\n","comments":"","x":1690.5126495361328,"y":5343.618245124817,"z":"1fa209ca.68bcc6","wires":[]},{"id":"d7916c77.af658","type":"switchNode","name":"switch: eipam-ip-block.plans_length >0","xml":"<switch test='`$eipam-ip-block.plans_length &gt; 0`'>\n","comments":"","outputs":1,"x":663.8218536376953,"y":5295.653888702393,"z":"1fa209ca.68bcc6","wires":[["9e541539.767c98"]]},{"id":"9e541539.767c98","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":910.6196784973145,"y":5295.677324295044,"z":"1fa209ca.68bcc6","wires":[["f195efcb.8c3b5"]]},{"id":"37e47319.7ebcac","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":901.7381057739258,"y":991.4879360198975,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f281ac4a.e7a7c","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":2273.1666259765625,"y":891.7261304855347,"z":"1fa209ca.68bcc6","wires":[]},{"id":"a22f243a.0b3c48","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":1976.499870300293,"y":1076.726095199585,"z":"1fa209ca.68bcc6","wires":[]},{"id":"5684a644.981d58","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":2039.5953674316406,"y":2511.7261209487915,"z":"1fa209ca.68bcc6","wires":[]},{"id":"cfd2ef69.0e48f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2150.8570976257324,"y":2565.0676975250244,"z":"1fa209ca.68bcc6","wires":[["5a553f67.c7601","276a3823.9093b8","44068065.7c3bf","99c83f4.d51ddc","4ac0f04f.defe"]]},{"id":"7794aa4e.66c1c4","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":3798.833808898926,"y":2766.6313948631287,"z":"1fa209ca.68bcc6","wires":[["c7e2ac3f.4c94f"]]},{"id":"c7e2ac3f.4c94f","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3993.6790504455566,"y":2767.0719208717346,"z":"1fa209ca.68bcc6","wires":[["b7d8934d.12e39"]]},{"id":"b7d8934d.12e39","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":4154.679050445557,"y":2767.0719208717346,"z":"1fa209ca.68bcc6","wires":[]},{"id":"aeda21f6.f8222","type":"set","name":"set generate-FQPN-input.plan-name, network-role, subnet-role,vrf-name","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\n<parameter name='generate-FQPN-input.network-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='generate-FQPN-input.subnet-role'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='generate-FQPN-input.vrf-name'\n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\n\t\n<!--\n<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' />\n<parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\n-->\n","comments":"","x":3958.5478515625,"y":2713.8689494132996,"z":"1fa209ca.68bcc6","wires":[]},{"id":"4266f4eb.802e3c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3550.9766159057617,"y":2713.440763950348,"z":"1fa209ca.68bcc6","wires":[["aeda21f6.f8222","7794aa4e.66c1c4","9fba10d1.1caf7","b63d91fd.67a5d","86e1d7f6.faf318","b8156cb0.f8602"]]},{"id":"454ab1a0.010a1","type":"set","name":"set pools[] to generate-FQPN-output","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\n    value='generate-FQPN-output.' />\n","comments":"","x":4872.000450134277,"y":3439.821309566498,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f980c3d4.b9fbc","type":"set","name":"set eipam-ip-block.plans[].plan-name, address-family (ipv6)","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].plan-name'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].address-family'\n    value=\"`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`\" />","comments":"","x":3910.3331718444824,"y":3159.0597863197327,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b63d91fd.67a5d","type":"set","name":"set eipam-ip-block.plans[].plan-name, address-family (ipv4)","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].plan-name'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].address-family'\n    value=\"`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`\" />","comments":"","x":3918.5001831054688,"y":2820.059724330902,"z":"1fa209ca.68bcc6","wires":[]},{"id":"761e238c.5d346c","type":"for","name":"for vm-index in vm-count","xml":"<for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":3808.47615814209,"y":3323.6309628486633,"z":"1fa209ca.68bcc6","wires":[["85701c73.74435"]]},{"id":"85701c73.74435","type":"for","name":"for ipv6-index in ipv6-count","xml":"<for index='ipv6-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' >\n","comments":"","outputs":1,"x":4084.1430282592773,"y":3323.8214869499207,"z":"1fa209ca.68bcc6","wires":[["a2a2550d.0dbb68"]]},{"id":"267fa7c8.b7bda8","type":"set","name":"set eipam-ip-block.plans[].plan-name, address-family","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].plan-name'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].address-family'\n    value=\"`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`\" />","comments":"","x":3897.833740234375,"y":4988.060574054718,"z":"1fa209ca.68bcc6","wires":[]},{"id":"ced3eb0a.3e32f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4359.642631530762,"y":2981.0122776031494,"z":"1fa209ca.68bcc6","wires":[["288a64fb.4485cc","b31cbbb7.684048","54f2b045.0b32"]]},{"id":"288a64fb.4485cc","type":"set","name":"set ip-version, use-dhcp","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />","comments":"","x":4598.9763107299805,"y":2981.0122985839844,"z":"1fa209ca.68bcc6","wires":[]},{"id":"4cd8a5e7.d7793c","type":"set","name":"set ip-version, use-dhcp","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />","comments":"","x":4592.33349609375,"y":3323.3930830955505,"z":"1fa209ca.68bcc6","wires":[]},{"id":"a2a2550d.0dbb68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4329.000061035156,"y":3323.3930888175964,"z":"1fa209ca.68bcc6","wires":[["4cd8a5e7.d7793c","b31cbbb7.684048","e26be7e0.c31918"]]},{"id":"4eb81c0f.22ac24","type":"set","name":"set eipam-ip-block.plans[].requests[] SUPPLEMENTAL DATA","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\n    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\n    value='VIP' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].group-number'\n    value='1' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\n    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\n    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />    ","comments":"","x":4125.310096740723,"y":5594.061890363693,"z":"1fa209ca.68bcc6","wires":[]},{"id":"80af71b0.d1d94","type":"set","name":"set ip-version, use-dhcp","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />","comments":"","x":3813.3338890075684,"y":5402.727821826935,"z":"1fa209ca.68bcc6","wires":[]},{"id":"6dd3e67.6311b18","type":"set","name":"set pools[] to generate-FQPN-output","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\n    value='generate-FQPN-output.' />\n","comments":"","x":4051.738525390625,"y":5534.013761281967,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f9459525.385678","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3770.8340377807617,"y":5534.060873746872,"z":"1fa209ca.68bcc6","wires":[["4eb81c0f.22ac24","6dd3e67.6311b18","780bb10d.855f4","7dfc98af.30f1d8","218a8cf.c29d374"]]},{"id":"5fd32b63.2b9584","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1934.9281692504883,"y":2079.250346183777,"z":"1fa209ca.68bcc6","wires":[["6a107bfb.0148f4","d317fff.71254","b3035c24.c4ddd","4a0e7a3a.fe5604","5934557f.f3fedc","cd8de2f4.dd7dd","cfd2ef69.0e48f","de878648.aad968"]]},{"id":"6a107bfb.0148f4","type":"set","name":"set query-aai-l3-network-by-network-role-input","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-input.aic-cloud-region' \n\tvalue='`$auto-ip-assignment-input.aic-cloud-region`' />\n<parameter name='query-aai-l3-network-by-network-role-input.service-instance-id' \n\tvalue='`$auto-ip-assignment-input.service-instance-id`' />\n<parameter name='query-aai-l3-network-by-network-role-input.network-role' \n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n\t\n<!--\nfilter options: service-instance-id, aic-cloud-region, null, Other (or any string)\n    - null or Other will filter by aic-cloud-region first, then service-instance-id\n<parameter name='query-aai-l3-network-by-network-role-input.filter' \n\tvalue='service-instance-id' />\n-->","comments":"","x":2268.2614135742188,"y":2079.05961894989,"z":"1fa209ca.68bcc6","wires":[]},{"id":"d317fff.71254","type":"call","name":"call: query-aai-l3-network-by-network-role","xml":"<call module='GENERIC-RESOURCE-API' rpc='query-aai-l3-network-by-network-role' mode='sync' >","comments":"","outputs":1,"x":2251.5472869873047,"y":2129.6310777664185,"z":"1fa209ca.68bcc6","wires":[["ec951ac8.e48788"]]},{"id":"b3035c24.c4ddd","type":"set","name":"set generate-FQPN-input.network-name","xml":"<set>\n<parameter name='generate-FQPN-input.network-name' \n\tvalue='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\n<parameter name='generate-FQPN-input.network-id' \n\tvalue='`$query-aai-l3-network-by-network-role-output.l3-network.network-id`' />","comments":"","x":2245.7375259399414,"y":2181.440981864929,"z":"1fa209ca.68bcc6","wires":[]},{"id":"4a0e7a3a.fe5604","type":"set","name":"increment qridx","xml":"<set>\n<parameter name='qridx' value='`$qridx + 1`' />\n\t","comments":"","x":2174.7258071899414,"y":2333.2622652053833,"z":"1fa209ca.68bcc6","wires":[]},{"id":"5934557f.f3fedc","type":"set","name":"set eipam-ip-block.plans[$pidx].l3-network","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].l3-network.' \n\tvalue='query-aai-l3-network-by-network-role-output.l3-network.' />","comments":"","x":2253.7375259399414,"y":2282.488363265991,"z":"1fa209ca.68bcc6","wires":[]},{"id":"ec951ac8.e48788","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2514.761459350586,"y":2129.095410346985,"z":"1fa209ca.68bcc6","wires":[["42265866.4df2b8"]]},{"id":"42265866.4df2b8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while querying AAI to retrieve l3-network by network-role: ' + $error-message`\" />\n","comments":"","x":2675.761459350586,"y":2129.095410346985,"z":"1fa209ca.68bcc6","wires":[]},{"id":"cd8de2f4.dd7dd","type":"set","name":"set tmp.network-role-query-results_length","xml":"<set>\n<parameter name='tmp.network-role-query-results_length' value='`$qridx`' />","comments":"","x":2255.8209381103516,"y":2380.500467300415,"z":"1fa209ca.68bcc6","wires":[]},{"id":"9572481d.426008","type":"set","name":"intialize plans_length, query-aai.output","xml":"<set>\n\t<parameter name='eipam-ip-block.plans_length' value = '0' />\n\t<parameter name='query-aai-l3-network-by-network-role-output.' value = '' />","comments":"","x":471.3333282470703,"y":1128.7261352539062,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c18d23f9.dfb6a","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$db1.vfc-to-network-role-mapping_length`' >\n","comments":"","outputs":1,"x":849.2024078369141,"y":1551.5118427276611,"z":"1fa209ca.68bcc6","wires":[["fe724d5a.448e8"]]},{"id":"fe724d5a.448e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1055.6425857543945,"y":1551.5080301761627,"z":"1fa209ca.68bcc6","wires":[["a6c23102.c6382","f7de5d3e.8ee25","ae970313.da058","e47d816b.04ff5","36b7f160.7d80ce","fc0d7098.ec8bd"]]},{"id":"ae970313.da058","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1271.511703491211,"y":1795.1029949188232,"z":"1fa209ca.68bcc6","wires":[["901ab3e6.b6379","ea14bac6.97b598"]]},{"id":"46decb10.a2e294","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1746.4283714294434,"y":2078.4004096090794,"z":"1fa209ca.68bcc6","wires":[["5fd32b63.2b9584"]]},{"id":"901ab3e6.b6379","type":"switchNode","name":"switch tmp.network-role.found","xml":"<switch test='`$tmp.network-role.found`'>\n","comments":"","outputs":1,"x":1520.7619934082031,"y":2078.7333946228027,"z":"1fa209ca.68bcc6","wires":[["46decb10.a2e294","b602289c.28c628"]]},{"id":"debcbc94.182ce","type":"for","name":"for each q","xml":"<for index='q' start='0' end='`$tmp.network-role-query-results_length`' >\n","comments":"","outputs":1,"x":1594.9524002075195,"y":1795.2814807891846,"z":"1fa209ca.68bcc6","wires":[["99f40c66.4c79b","2f21d390.49b6bc"]]},{"id":"1ec2226b.30207e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2112.7024841308594,"y":1873.6029319763184,"z":"1fa209ca.68bcc6","wires":[["30192d9d.398bb2"]]},{"id":"30192d9d.398bb2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2275.4524536132812,"y":1873.602873802185,"z":"1fa209ca.68bcc6","wires":[["d1608cb7.69be1","c6ace3f8.10c9","da17823d.ca396","6082a89a.d21ec8"]]},{"id":"a6c23102.c6382","type":"set","name":"set tmp.network-role.found = false","xml":"<set>\n\t<parameter name='tmp.network-role.found' value = 'false' />","comments":"","x":1335.178337097168,"y":1648.5199508666992,"z":"1fa209ca.68bcc6","wires":[]},{"id":"620ae3a1.712f0c","type":"set","name":"set tmp.network-role-query-results_length = 0","xml":"<set>\n<parameter name='tmp.network-role-query-results_length' value='0' />","comments":"","x":494.1666717529297,"y":1080.0595092773438,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f7de5d3e.8ee25","type":"set","name":"set tmp.plan-index-to-be-incremented = false","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='false' />\n","comments":"","x":1366.630973815918,"y":1597.9882307052612,"z":"1fa209ca.68bcc6","wires":[]},{"id":"86e1d7f6.faf318","type":"set","name":"set tmp.plan-index-to-be-incremented = true","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='true' />\n","comments":"","x":3872.214683532715,"y":2881.4881405830383,"z":"1fa209ca.68bcc6","wires":[]},{"id":"af240f9.e382ff","type":"set","name":"set tmp.plan-index-to-be-incremented = true","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='true' />\n","comments":"","x":3867.07186126709,"y":3211.7737851142883,"z":"1fa209ca.68bcc6","wires":[]},{"id":"e6fa96b7.a2c818","type":"set","name":"increment eipam-ip-block.plans_length","xml":"<set>\n<parameter name=\"eipam-ip-block.plans_length\" value=\"`$pidx`\"/>","comments":"","x":3089.5003356933594,"y":3379.5594997406006,"z":"1fa209ca.68bcc6","wires":[]},{"id":"3b242f42.f792","type":"set","name":"set pidx++","xml":"<set>\n<parameter name='pidx' value='`$pidx + 1`' />\n","comments":"","x":2999.50040435791,"y":3324.559500694275,"z":"1fa209ca.68bcc6","wires":[]},{"id":"540527ff.4b5538","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2836.1670684814453,"y":3324.2264165878296,"z":"1fa209ca.68bcc6","wires":[["3b242f42.f792","e6fa96b7.a2c818"]]},{"id":"44068065.7c3bf","type":"switchNode","name":"switch tmp.plan-index-to-be-incremented","xml":"<switch test='`$tmp.plan-index-to-be-incremented`'>\n","comments":"","outputs":1,"x":2428.071823120117,"y":3325.2736988067627,"z":"1fa209ca.68bcc6","wires":[["ebb68603.fca938"]]},{"id":"ebb68603.fca938","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2683.7860565185547,"y":3324.8452320098877,"z":"1fa209ca.68bcc6","wires":[["540527ff.4b5538"]]},{"id":"c0a42027.da922","type":"set","name":"set tmp.plan-index-to-be-incremented = true","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='true' />\n","comments":"","x":3873.0003051757812,"y":5034.2270402908325,"z":"1fa209ca.68bcc6","wires":[]},{"id":"71ccdccd.6f3db4","type":"set","name":"set tmp.plan-index-to-be-incremented = true","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='true' />\n","comments":"","x":3876.0956077575684,"y":5293.917274951935,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c4017219.98fec","type":"set","name":"increment eipam-ip-block.plans_length","xml":"<set>\n<parameter name=\"eipam-ip-block.plans_length\" value=\"`$pidx`\"/>","comments":"","x":3064.762252807617,"y":5520.989094495773,"z":"1fa209ca.68bcc6","wires":[]},{"id":"d50e10f8.6600e","type":"set","name":"set pidx++","xml":"<set>\n<parameter name='pidx' value='`$pidx + 1`' />\n","comments":"","x":2974.7622680664062,"y":5440.9891221523285,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2bf10e53.549e32","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2811.4289321899414,"y":5440.656038045883,"z":"1fa209ca.68bcc6","wires":[["d50e10f8.6600e","c4017219.98fec"]]},{"id":"3718704a.29e8","type":"switchNode","name":"switch tmp.plan-index-to-be-incremented","xml":"<switch test='`$tmp.plan-index-to-be-incremented`'>\n","comments":"","outputs":1,"x":2396.3336868286133,"y":5441.703320264816,"z":"1fa209ca.68bcc6","wires":[["5a65f76b.f145e8"]]},{"id":"5a65f76b.f145e8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2659.047920227051,"y":5441.274853467941,"z":"1fa209ca.68bcc6","wires":[["2bf10e53.549e32"]]},{"id":"e3bac480.22c4f8","type":"set","name":"set tmp.plan-index-to-be-incremented = false","xml":"<set>\n<parameter name='tmp.plan-index-to-be-incremented' value='false' />\n","comments":"","x":1398.3097915649414,"y":4114.060183525085,"z":"1fa209ca.68bcc6","wires":[]},{"id":"848cc7f8.6ad808","type":"get-resource","name":"get VF_MODULE_TO_VFC_MAPPING (vm_count > 0)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $auto-ip-assignment-input.vf-module.model-customization-uuid \n\t\tAND vm_count > 0'\n  pfx='db1.vf-module-to-vfc-mapping[]'>\n\n","comments":"","outputs":1,"x":538.1666717529297,"y":475.7737865447998,"z":"1fa209ca.68bcc6","wires":[["3593ee13.1daa82","d347b8fb.2d6ba8"]]},{"id":"69acb259.3743cc","type":"get-resource","name":"get VFC_TO_NETWORK_ROLE_MAPPING (ANY ip-count > 0)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db1.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid \n\t\tAND (ipv4_count > 0 OR ipv6_count > 0 OR ipv4_floating_count > 0 OR ipv6_floating_count > 0)'\n\tpfx='db1.vfc-to-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":983.214241027832,"y":1438.1071565151215,"z":"1fa209ca.68bcc6","wires":[["12834db5.591062","11c41bfb.ee6444"]]},{"id":"b602289c.28c628","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1740.4999694824219,"y":2480.0593852996826,"z":"1fa209ca.68bcc6","wires":[["3c27b6b0.8a554a"]]},{"id":"99f40c66.4c79b","type":"switchNode","name":"switch network-role | query-result vs db1","xml":"<switch test='`$tmp.qresult.network-role == $tmp.db1.network-role`' >\n","comments":"","outputs":1,"x":1864.5952758789062,"y":1873.8211879730225,"z":"1fa209ca.68bcc6","wires":[["1ec2226b.30207e"]]},{"id":"3c27b6b0.8a554a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1925.0596618652344,"y":2479.7300453186035,"z":"1fa209ca.68bcc6","wires":[["30580ab3.84dde6","cfd2ef69.0e48f"]]},{"id":"30580ab3.84dde6","type":"set","name":"set eipam-ip-block.plans[$pidx].l3-network","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].l3-network.' \n\tvalue='tmp.network-role-query-results[$query-results-found-index].l3-network.' />","comments":"","x":2217.726173400879,"y":2480.3965520858765,"z":"1fa209ca.68bcc6","wires":[]},{"id":"de878648.aad968","type":"set","name":"set tmp.network-role-query-results","xml":"<set>\n<parameter name='tmp.network-role-query-results[$qridx].l3-network.' \n\tvalue='`$query-aai-l3-network-by-network-role-output.l3-network.`' />\n<parameter name='tmp.network-role-query-results[$qridx].l3-network.network-role-tag' \n\tvalue='`$tmp.db1.network-role-tag`' />\n\n<!--\n<parameter name='tmp.network-role-query-results[$qridx].network-role' \n\tvalue='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='tmp.network-role-query-results[$qridx].network-name' \n\tvalue='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\n-->","comments":"","x":2228.344741821289,"y":2231.802201271057,"z":"1fa209ca.68bcc6","wires":[]},{"id":"7a257d71.1b3624","type":"set","name":"set query-results-found-index","xml":"<set>\n\t<parameter name='query-results-found-index' value = '`$q`' />","comments":"","x":2594.1064682006836,"y":4417.546196222305,"z":"1fa209ca.68bcc6","wires":[]},{"id":"28a8ff1f.90103","type":"set","name":"set eipam-ip-block.plans[$pidx].l3-network","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].l3-network.' \n\tvalue='tmp.network-role-query-results[$query-results-found-index].l3-network.' />","comments":"","x":2191.2733840942383,"y":4698.54718375206,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2cf6eef6.fd6c52","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1781.9399642944336,"y":4699.213690519333,"z":"1fa209ca.68bcc6","wires":[["ff08471b.68c588"]]},{"id":"99c83f4.d51ddc","type":"set","name":"set eipam-ip-block.plans[].network-role, subnet-role","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].network-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].subnet-role'\n    value=\"`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`\" />","comments":"","x":2486.0001831054688,"y":2666.559338092804,"z":"1fa209ca.68bcc6","wires":[]},{"id":"7c6ced48.013ab4","type":"set","name":"set eipam-ip-block.plans[].network-role, subnet-role","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].network-role'\n    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='eipam-ip-block.plans[$pidx].subnet-role'\n    value=\"`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`\" />","comments":"","x":2437.750213623047,"y":4814.560279607773,"z":"1fa209ca.68bcc6","wires":[]},{"id":"4ac0f04f.defe","type":"switchNode","name":"switch ipv6-ip-version","xml":"<switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n","comments":"","outputs":1,"x":2393.1192474365234,"y":3041.4283859729767,"z":"1fa209ca.68bcc6","wires":[["2285643b.9922cc"]]},{"id":"f885dc5b.e1297","type":"set","name":"set tmp.vm-type","xml":"<set>\n<parameter name='vm-type-loop' value = 'START' />\n<parameter name='tmp.vm-type' value = '`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />","comments":"","x":834.535701751709,"y":1281.6668610572815,"z":"1fa209ca.68bcc6","wires":[]},{"id":"e47d816b.04ff5","type":"set","name":"set network-role-loop","xml":"<set>\n<parameter name='network-role-loop' value = 'START' />","comments":"","x":1293.8214263916016,"y":1550.642938375473,"z":"1fa209ca.68bcc6","wires":[]},{"id":"1c79b3e4.57ddbc","type":"set","name":"set network-role-loop","xml":"<set>\n<parameter name='network-role-loop' value = 'START' />","comments":"","x":1325.643081665039,"y":4062.2864615917206,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2b988a1b.7f7bd6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":616.0239105224609,"y":3852.476308822632,"z":"1fa209ca.68bcc6","wires":[["8b36f505.beceb8","13900383.cbb11c","75a1e4eb.e91a0c","6276b052.96bf9","67372ecf.ddecc"]]},{"id":"8b36f505.beceb8","type":"set","name":"set tmp.vm-type","xml":"<set>\n<parameter name='vm-type-floating-loop' value = 'START' />\n<parameter name='tmp.vm-type' value = '`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />","comments":"","x":834.4525146484375,"y":3852.845067024231,"z":"1fa209ca.68bcc6","wires":[]},{"id":"2849b46c.06d7ac","type":"set","name":"clear db1.vfc-to-network-role-mapping[]","xml":"<set>\n<parameter name='db1.vfc-to-network-role-mapping.' value = '' />","comments":"","x":907.2499694824219,"y":1385.0951557159424,"z":"1fa209ca.68bcc6","wires":[]},{"id":"91540bf0.cd70b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1304.2499771118164,"y":4277.28594326973,"z":"1fa209ca.68bcc6","wires":[["2d94833e.63e13c","b70e9260.d4d03"]]},{"id":"ff08471b.68c588","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1929.7024002075195,"y":4699.143431425095,"z":"1fa209ca.68bcc6","wires":[["28a8ff1f.90103","87218db.1c5c87"]]},{"id":"87218db.1c5c87","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2106.5120697021484,"y":4760.35818362236,"z":"1fa209ca.68bcc6","wires":[["6c18c680.514658","7c6ced48.013ab4","3ae51def.6f5252","3718704a.29e8","b2c848c5.019c18"]]},{"id":"b655aea4.094fd","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1314.9282569885254,"y":3935.1539726257324,"z":"1fa209ca.68bcc6","wires":[["659ad3e8.c45b9c"]]},{"id":"659ad3e8.c45b9c","type":"set","name":"set vfc-to-network-role-mapping length to 0","xml":"<set>\n<parameter name='db1.vfc-to-network-role-mapping_length' value='0' />\n","comments":"","x":1578.3330764770508,"y":3935.162363052368,"z":"1fa209ca.68bcc6","wires":[]},{"id":"111e43bd.511ecc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1308.0473823547363,"y":3979.9159259796143,"z":"1fa209ca.68bcc6","wires":[["45895c95.7c67d4"]]},{"id":"45895c95.7c67d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1483.0473136901855,"y":3979.058826446533,"z":"1fa209ca.68bcc6","wires":[]},{"id":"3ddfe7ee.f6d288","type":"comment","name":"db1.vfc-to-network-role-mapping[]","info":"","comments":"","x":582.8571014404297,"y":3956.9397706985474,"z":"1fa209ca.68bcc6","wires":[]},{"id":"6276b052.96bf9","type":"get-resource","name":"get VFC_TO_NETWORK_ROLE_MAPPING (ANY ip-count > 0)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db1.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid \n\t\tAND (ipv4_count > 0 OR ipv6_count > 0 OR ipv4_floating_count > 0 OR ipv6_floating_count > 0)'\n\tpfx='db1.vfc-to-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":979.9165802001953,"y":3956.5826625823975,"z":"1fa209ca.68bcc6","wires":[["b655aea4.094fd","111e43bd.511ecc"]]},{"id":"75a1e4eb.e91a0c","type":"set","name":"clear db1.vfc-to-network-role-mapping[]","xml":"<set>\n<parameter name='db1.vfc-to-network-role-mapping.' value = '' />","comments":"","x":906.9523086547852,"y":3903.5706617832184,"z":"1fa209ca.68bcc6","wires":[]},{"id":"d1608cb7.69be1","type":"set","name":"set tmp.network-role.found = true","xml":"<set>\n\t<parameter name='tmp.network-role.found' value = 'true' />","comments":"","x":2541.952438354492,"y":1921.352816581726,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c6ace3f8.10c9","type":"set","name":"set generate-FQPN-input.network-name","xml":"<set>\n<parameter name='generate-FQPN-input.network-name' \n\tvalue='`$tmp.network-role-query-results[$q].l3-network.network-name`' />\n<parameter name='generate-FQPN-input.network-id' \n\tvalue='`$tmp.network-role-query-results[$q].l3-network.network-id`' />","comments":"","x":2560.773567199707,"y":1873.3927431106567,"z":"1fa209ca.68bcc6","wires":[]},{"id":"da17823d.ca396","type":"set","name":"set query-results-found-index","xml":"<set>\n\t<parameter name='query-results-found-index' value = '`$q`' />","comments":"","x":2530.2498779296875,"y":1967.063325881958,"z":"1fa209ca.68bcc6","wires":[]},{"id":"6082a89a.d21ec8","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>","comments":"","x":2463.392936706543,"y":2016.8570928573608,"z":"1fa209ca.68bcc6","wires":[]},{"id":"ea14bac6.97b598","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1442.82133102417,"y":1795.5714492797852,"z":"1fa209ca.68bcc6","wires":[["debcbc94.182ce","20db49f4.e01796"]]},{"id":"2f21d390.49b6bc","type":"switchNode","name":"set tmp.qresult.network-role","xml":"<set>\n<parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\n","comments":"","outputs":1,"x":1824.5357666015625,"y":1794.8571472167969,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"36b7f160.7d80ce","type":"switchNode","name":"set tmp.db1.network-role","xml":"<set>\n<parameter name='tmp.db1.network-role' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n","comments":"","outputs":1,"x":1307.0000457763672,"y":1696.642921447754,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"20db49f4.e01796","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n","comments":"","x":1609.9642486572266,"y":1954.142910003662,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b6c1cfe8.74caf","type":"switchNode","name":"set tmp.db1.network-role","xml":"<set>\n<parameter name='tmp.db1.network-role' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n","comments":"","outputs":1,"x":1338.5357131958008,"y":4217.9998433589935,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"958cac03.4a9f3","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n","comments":"","x":1686.249755859375,"y":4410.571350097656,"z":"1fa209ca.68bcc6","wires":[]},{"id":"9525c570.063288","type":"switchNode","name":"set tmp.qresult.network-role","xml":"<set>\n<parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\n","comments":"","outputs":1,"x":1897.6784362792969,"y":4276.666721343994,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"2b9ad069.c1331","type":"switchNode","name":"switch network-role | query-result vs db1","xml":"<switch test='`$tmp.qresult.network-role == $tmp.db1.network-role`' >\n","comments":"","outputs":1,"x":1937.7381286621094,"y":4324.297742843628,"z":"1fa209ca.68bcc6","wires":[["d16be293.6196a"]]},{"id":"d7779888.5f9488","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>","comments":"","x":2529.868927001953,"y":4467.3333950042725,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b70e9260.d4d03","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1475.678367614746,"y":4277.428359985352,"z":"1fa209ca.68bcc6","wires":[["32938572.9de37a","958cac03.4a9f3"]]},{"id":"67372ecf.ddecc","type":"switchNode","name":"clear tmp.db1.network-role","xml":"<set>\n<parameter name='tmp.db1.network-role' value = '' />\n","comments":"","outputs":1,"x":864.3928756713867,"y":4007.2858924865723,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"39e9f916.d84206","type":"switchNode","name":"set tmp.qresult.network-role","xml":"<set>\n<parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\n","comments":"","outputs":1,"x":872.8214263916016,"y":1491.285732269287,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"fc0d7098.ec8bd","type":"switchNode","name":"set tmp.db1.network-role-tag","xml":"<set>\n<parameter name='tmp.db1.network-role-tag' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\n","comments":"","outputs":1,"x":1319.5,"y":1740.476173400879,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"24dba145.3374ae","type":"switchNode","name":"clear tmp.db1.","xml":"<set>\n<parameter name='tmp.db1.' value = '' />\n\n","comments":"","outputs":1,"x":827.5000152587891,"y":1329.2261924743652,"z":"1fa209ca.68bcc6","wires":[[]]},{"id":"4af66944.e78d78","type":"get-resource","name":"Update GENERIC_RESOURCE_NAME (client-key)","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey=\"update GENERIC_RESOURCE_NAME set context_id = $auto-ip-assignment-input.vf-module-id \n\t\tWHERE type = $tmp.grn.type.client-key AND context_id = $tmp.context-id.transient\">\n","comments":"","outputs":1,"x":906.0714721679688,"y":5832.441108703613,"z":"1fa209ca.68bcc6","wires":[["674917ce.c46028","ea4f9611.bab028"]]},{"id":"8a6c0049.b30ce","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to '\n\t+ $vnf-topology-operation-input.vnf-request-information.vnf-id \n\t+ ' for generated vm-names. MANUAL clean up is required!'`\" />\n\n","comments":"","x":1379.3574447631836,"y":5831.322142601013,"z":"1fa209ca.68bcc6","wires":[]},{"id":"674917ce.c46028","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1195.9288330078125,"y":5831.39365196228,"z":"1fa209ca.68bcc6","wires":[["8a6c0049.b30ce"]]},{"id":"ea4f9611.bab028","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1202.7742347717285,"y":5877.88179397583,"z":"1fa209ca.68bcc6","wires":[["102700e5.9763cf"]]},{"id":"102700e5.9763cf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'No GENERIC_RESOURCE_NAME found with context_id = TRANSIENT and type = '\n\t+ $vnf-topology-operation-input.vnf-request-information.vnf-id \n\t+ ' for vm-names. MANUAL clean up may be required!'`\" />\n\n","comments":"","x":1375.2144317626953,"y":5878.155340194702,"z":"1fa209ca.68bcc6","wires":[]},{"id":"bda4208a.4eeb9","type":"set","name":"set tmp.grn.type.client-key","xml":"<set>\n<parameter name='tmp.grn.type.client-key' value='VNFAPI_CLIENT_KEY' />\n","comments":"","x":826.7857971191406,"y":5683.154770851135,"z":"1fa209ca.68bcc6","wires":[]},{"id":"efaaa681.a9adf8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":389.07142639160156,"y":20,"z":"1fa209ca.68bcc6","wires":[["bdeaac7e.eeba5"]]},{"id":"5c62b7dd.9563d8","type":"comment","name":"Need to check client-key length <=1000 chars","info":"","comments":"","x":4940.011932373047,"y":3799.393243789673,"z":"1fa209ca.68bcc6","wires":[]},{"id":"54f2b045.0b32","type":"set","name":"set tmp.client-key.seq++","xml":"<set>\n<parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\n","comments":"","x":4603.618713378906,"y":3037.0596923828125,"z":"1fa209ca.68bcc6","wires":[]},{"id":"700ab1d.f3b9c5","type":"switchNode","name":"switch: $tmp.client-key.seq < 10","xml":"<switch test='`$tmp.client-key.seq &lt; 10`'>\n","comments":"","outputs":1,"x":5056.9169273376465,"y":3595.6905097961426,"z":"1fa209ca.68bcc6","wires":[["dbd665a0.1ce068","ab21b7e.f1ec848"]]},{"id":"dbd665a0.1ce068","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5306.964496612549,"y":3595.214225769043,"z":"1fa209ca.68bcc6","wires":[["a9f0a74e.1e2328"]]},{"id":"a9f0a74e.1e2328","type":"set","name":"set tmp.client-key.padding = 000","xml":"<set>\n<parameter name='tmp.client-key.padding' value='000' />\n","comments":"","x":5535.1669273376465,"y":3595.1905097961426,"z":"1fa209ca.68bcc6","wires":[]},{"id":"ab21b7e.f1ec848","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":5311.4169273376465,"y":3641.940510749817,"z":"1fa209ca.68bcc6","wires":[["a7fe81a3.3af48"]]},{"id":"a7fe81a3.3af48","type":"switchNode","name":"switch: $tmp.client-key.seq < 100","xml":"<switch test='`$tmp.client-key.seq &lt; 100`'>\n","comments":"","outputs":1,"x":5550.1669273376465,"y":3642.190511703491,"z":"1fa209ca.68bcc6","wires":[["b5316e27.f6bb8","25c36479.1d6c3c"]]},{"id":"b5316e27.f6bb8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5797.666851043701,"y":3641.690456390381,"z":"1fa209ca.68bcc6","wires":[["1730f02c.72024"]]},{"id":"1730f02c.72024","type":"set","name":"set tmp.client-key.padding = 00","xml":"<set>\n<parameter name='tmp.client-key.padding' value='00' />\n","comments":"","x":6025.869281768799,"y":3641.6667404174805,"z":"1fa209ca.68bcc6","wires":[]},{"id":"25c36479.1d6c3c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":5802.119281768799,"y":3688.416741371155,"z":"1fa209ca.68bcc6","wires":[["5d1a0d73.b3d164"]]},{"id":"5d1a0d73.b3d164","type":"switchNode","name":"switch: $tmp.client-key.seq < 1000","xml":"<switch test='`$tmp.client-key.seq &lt; 1000`'>\n","comments":"","outputs":1,"x":6040.869281768799,"y":3688.666742324829,"z":"1fa209ca.68bcc6","wires":[["4da4ca2e.63bbf4","efbd32d2.a3652"]]},{"id":"4da4ca2e.63bbf4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6283.916851043701,"y":3688.190456390381,"z":"1fa209ca.68bcc6","wires":[["c01a5bcf.9d20d8"]]},{"id":"c01a5bcf.9d20d8","type":"set","name":"set tmp.client-key.padding = 0","xml":"<set>\n<parameter name='tmp.client-key.padding' value='0' />\n","comments":"","x":6507.666851043701,"y":3688.190456390381,"z":"1fa209ca.68bcc6","wires":[]},{"id":"efbd32d2.a3652","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":6287.666851043701,"y":3738.190456390381,"z":"1fa209ca.68bcc6","wires":[["76a6b0b3.36532"]]},{"id":"76a6b0b3.36532","type":"switchNode","name":"switch: $tmp.client-key.seq < 10000","xml":"<switch test='`$tmp.client-key.seq &lt; 10000`'>\n","comments":"","outputs":1,"x":6540.166851043701,"y":3736.940456390381,"z":"1fa209ca.68bcc6","wires":[["7270781f.413b38"]]},{"id":"7270781f.413b38","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":6783.2144203186035,"y":3736.4641704559326,"z":"1fa209ca.68bcc6","wires":[["bd183881.e66208"]]},{"id":"bd183881.e66208","type":"set","name":"set tmp.client-key.padding = null","xml":"<set>\n<parameter name='tmp.client-key.padding' value='' />\n","comments":"","x":7006.9644203186035,"y":3736.4641704559326,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f04325bc.877968","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":4816.833354949951,"y":3596.190212249756,"z":"1fa209ca.68bcc6","wires":[["700ab1d.f3b9c5"]]},{"id":"fad632eb.6a9c1","type":"set","name":"set client-key,  info","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\n   value=\"`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\n\t\t\t$tmp.client-key.padding + $tmp.client-key.seq`\"/>\n\n<!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\n\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\n   value='`$auto-ip-assignment-input.vf-module-id`' />\n","comments":"","x":4828.833534240723,"y":3759.8570518493652,"z":"1fa209ca.68bcc6","wires":[]},{"id":"218a8cf.c29d374","type":"set","name":"set client-key,  info","xml":"<set>\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\n   value=\"`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' + \n\t\t\t$eipam-ip-block.plans[$pidx].requests[$ridx].group-number + '|0001'`\" />\n\n<!-- rdn|data|static|FIXED|4|1|0001 -->\n\n<parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\n   value='`$auto-ip-assignment-input.vf-module-id`' />\n","comments":"","x":3995.499755859375,"y":5663.1901512146,"z":"1fa209ca.68bcc6","wires":[]},{"id":"39576ccf.08aa54","type":"switchNode","name":"switch: auto-ip-assignment-input.service-instance-id","xml":"<switch test='`$auto-ip-assignment-input.service-instance-id`'>","comments":"","outputs":1,"x":531.2500152587891,"y":280.00000381469727,"z":"1fa209ca.68bcc6","wires":[["ed1ef22c.7f465"]]},{"id":"ed1ef22c.7f465","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":825.7500228881836,"y":279.50000381469727,"z":"1fa209ca.68bcc6","wires":[["605ea0e9.015e7"]]},{"id":"605ea0e9.015e7","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"auto-ip-assignment-input.service-instance-id is null\" />\n","comments":"","x":980.166690826416,"y":279.61110067367554,"z":"1fa209ca.68bcc6","wires":[]},{"id":"db49eb6e.176328","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1621.2978401184082,"y":5295.273439407349,"z":"1fa209ca.68bcc6","wires":[["6580bb9b.736154"]]},{"id":"593fe1a1.e7f5c","type":"switchNode","name":"switch: auto-ip-assignment-input.service-type","xml":"<switch test='`$auto-ip-assignment-input.service-type`'>\n","comments":"","outputs":1,"x":1363.750015258789,"y":5295.2500829696655,"z":"1fa209ca.68bcc6","wires":[["db49eb6e.176328"]]},{"id":"6580bb9b.736154","type":"set","name":"set service-data.service-information.service-type","xml":"<set>\n<parameter name='service-data.service-information.service-type' value='NA' />\n","comments":"","x":1897.500015258789,"y":5295.250003814697,"z":"1fa209ca.68bcc6","wires":[]},{"id":"f195efcb.8c3b5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1073.750015258789,"y":5295.250082015991,"z":"1fa209ca.68bcc6","wires":[["593fe1a1.e7f5c","ec903613.4cc188"]]},{"id":"e26be7e0.c31918","type":"set","name":"set tmp.client-key.seq++","xml":"<set>\n<parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\n","comments":"","x":4592.857200622559,"y":3375.7142639160156,"z":"1fa209ca.68bcc6","wires":[]},{"id":"b8156cb0.f8602","type":"set","name":"set tmp.client-key.seq = 0","xml":"<set>\n<parameter name='tmp.client-key.seq' value='0' />\n","comments":"","x":3815.71435546875,"y":2928.571533203125,"z":"1fa209ca.68bcc6","wires":[]},{"id":"c276cfd9.9bcae","type":"set","name":"set tmp.client-key.seq = 0","xml":"<set>\n<parameter name='tmp.client-key.seq' value='0' />\n","comments":"","x":3815.71435546875,"y":3262.857177734375,"z":"1fa209ca.68bcc6","wires":[]}]
\ No newline at end of file
index d8b85dc..157bc26 100755 (executable)
@@ -1 +1 @@
-[{"id":"44e2a591.0adfcc","type":"dgstart","name":"DGSTART","outputs":1,"x":130,"y":65,"z":"64165859.65c218","wires":[["9d11986f.fe6c88"]]},{"id":"9d11986f.fe6c88","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":276.2380828857422,"y":139.95239353179932,"z":"64165859.65c218","wires":[["25a64b97.aaff84"]]},{"id":"25a64b97.aaff84","type":"method","name":"contrail-route-topology-operation-activate","xml":"<method rpc='contrail-route-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":356.1548500061035,"y":209.1904420852661,"z":"64165859.65c218","wires":[["e75d32c1.7f5e3"]]},{"id":"e75d32c1.7f5e3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":264.4761848449707,"y":352.523784160614,"z":"64165859.65c218","wires":[["3c3c6bb5.b74fe4","748de0e2.cf35d","5d6b0eae.8b9ab","7e74e9f3.a6ed98","dd3b156a.4c09b8","a48e302.6f113d","bacf284d.e94b18","e41c133b.c89b1","b10213e8.7105b","6f67eab4.30b314","c4b97b0e.a9a448","82a00528.729748","3396a245.5af4be","4afec706.648e68","6e8ca02f.7313","54889c95.317884","c2672028.9a192","bc559c11.5308","a6675806.e2dc08","f8a3e8b0.ff98a8","f2b08893.418cf8","f43488c4.18e4b8"]]},{"id":"748de0e2.cf35d","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":526.7380561828613,"y":326.3333215713501,"z":"64165859.65c218","wires":[]},{"id":"3c3c6bb5.b74fe4","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n\n","comments":"","x":573.9973182678223,"y":292.5925874710083,"z":"64165859.65c218","wires":[]},{"id":"5d6b0eae.8b9ab","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":595.8505554199219,"y":358.23155403137207,"z":"64165859.65c218","wires":[[]]},{"id":"dd3b156a.4c09b8","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":600.6616058349609,"y":500.45952796936035,"z":"64165859.65c218","wires":[["2d1118d7.ca9798","1d99ce09.530022"]]},{"id":"7e74e9f3.a6ed98","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":561.0648460388184,"y":422.01722526550293,"z":"64165859.65c218","wires":[[]]},{"id":"2d1118d7.ca9798","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":845.9577102661133,"y":501.26734161376953,"z":"64165859.65c218","wires":[["ea375293.82727"]]},{"id":"ea375293.82727","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1014.9577140808105,"y":499.7672424316406,"z":"64165859.65c218","wires":[["d774b31f.c823"]]},{"id":"d774b31f.c823","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1225.814956665039,"y":499.3863716125488,"z":"64165859.65c218","wires":[["3663a4b3.12200c","5fbd0011.d76a1"]]},{"id":"3663a4b3.12200c","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1415.1482620239258,"y":499.3863296508789,"z":"64165859.65c218","wires":[["ef8b2c8f.54ea4"]]},{"id":"5800ba19.309e44","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1891.1962203979492,"y":492.62452602386475,"z":"64165859.65c218","wires":[]},{"id":"ef8b2c8f.54ea4","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1599.6721515655518,"y":496.29116344451904,"z":"64165859.65c218","wires":[["5800ba19.309e44","16951cf9.185633","5548694b.3db0b8","73094ec5.b6eab"]]},{"id":"16951cf9.185633","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1899.1961479187012,"y":556.719669342041,"z":"64165859.65c218","wires":[]},{"id":"4cd61be.86e0ce4","type":"comment","name":"GET contrail-route-allotted-resource from mdsal","info":"","comments":"","x":616.8148498535156,"y":466.3386821746826,"z":"64165859.65c218","wires":[]},{"id":"5548694b.3db0b8","type":"switchNode","name":"switch order-status","xml":"<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1907.196002960205,"y":523.6244812011719,"z":"64165859.65c218","wires":[["3a1379d8.d399a6","b6f3ab65.fc2188"]]},{"id":"3a1379d8.d399a6","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2129.0339584350586,"y":507.7197847366333,"z":"64165859.65c218","wires":[["84ee09a1.dc5b98"]]},{"id":"b6f3ab65.fc2188","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2142.8436737060547,"y":538.0531902313232,"z":"64165859.65c218","wires":[["fcf09d0b.021fd"]]},{"id":"fcf09d0b.021fd","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + ', expecting Created.'`\" />\n","comments":"","x":2383.462423324585,"y":540.9577798843384,"z":"64165859.65c218","wires":[]},{"id":"73094ec5.b6eab","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":1979.0532722473145,"y":459.4340181350708,"z":"64165859.65c218","wires":[]},{"id":"d9e02c4.1b7dcd","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":531.9576530456543,"y":391.62435245513916,"z":"64165859.65c218","wires":[]},{"id":"d9fc2f4b.0e8a1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1601.666997909546,"y":642.3333854675293,"z":"64165859.65c218","wires":[]},{"id":"1d99ce09.530022","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":837.809513092041,"y":536.3334264755249,"z":"64165859.65c218","wires":[["a5703b2e.575d28"]]},{"id":"a5703b2e.575d28","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1017.8094635009766,"y":536.9999771118164,"z":"64165859.65c218","wires":[["d9fc2f4b.0e8a1"]]},{"id":"a48e302.6f113d","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":510.66661071777344,"y":537.5237884521484,"z":"64165859.65c218","wires":[]},{"id":"5fbd0011.d76a1","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1403.4762153625488,"y":536.6666898727417,"z":"64165859.65c218","wires":[["d9fc2f4b.0e8a1"]]},{"id":"84ee09a1.dc5b98","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2367.333469390869,"y":506.66669750213623,"z":"64165859.65c218","wires":[[]]},{"id":"6b294610.d0fca8","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":855.2856597900391,"y":795.7143956422806,"z":"64165859.65c218","wires":[["8bf366e0.30e6f8"]]},{"id":"a68172da.f1ef3","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n","comments":"","outputs":1,"x":578.484001159668,"y":806.9609127044678,"z":"64165859.65c218","wires":[["5f9b62c9.68560c","6b294610.d0fca8","e4999668.493168"]]},{"id":"5f9b62c9.68560c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":848.0077667236328,"y":830.1989995241165,"z":"64165859.65c218","wires":[["8bf366e0.30e6f8"]]},{"id":"8bf366e0.30e6f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1000.1187286376953,"y":826.4212285280228,"z":"64165859.65c218","wires":[]},{"id":"e4999668.493168","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":853.2857208251953,"y":861.7143956422806,"z":"64165859.65c218","wires":[["b98ab8b5.b478e8"]]},{"id":"b98ab8b5.b478e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1005.9522857666016,"y":860.0477238893509,"z":"64165859.65c218","wires":[[]]},{"id":"ff8773cb.3c81e","type":"comment","name":"GET source network from AAI","info":"","comments":"","x":556.7142181396484,"y":775.7143898010254,"z":"64165859.65c218","wires":[]},{"id":"14eb9a5f.2b7306","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":873,"y":1059.4287095069885,"z":"64165859.65c218","wires":[["805cd670.1362a8"]]},{"id":"bacf284d.e94b18","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n","comments":"","outputs":1,"x":601.6269226074219,"y":1066.960970401764,"z":"64165859.65c218","wires":[["89010b42.75b1b8","14eb9a5f.2b7306","e2f3ea25.4379d8"]]},{"id":"89010b42.75b1b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":865.7221069335938,"y":1093.9133133888245,"z":"64165859.65c218","wires":[["805cd670.1362a8"]]},{"id":"805cd670.1362a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1017.8330688476562,"y":1090.1355423927307,"z":"64165859.65c218","wires":[]},{"id":"e2f3ea25.4379d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":875.5715103149414,"y":1128.2857780456543,"z":"64165859.65c218","wires":[["ae8077d1.7e13b8"]]},{"id":"ae8077d1.7e13b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1028.2380752563477,"y":1126.6191062927246,"z":"64165859.65c218","wires":[[]]},{"id":"369a7d5c.fb1bf2","type":"comment","name":"GET dest network from AAI","info":"","comments":"","x":574.4285430908203,"y":1035.1429624557495,"z":"64165859.65c218","wires":[]},{"id":"e41c133b.c89b1","type":"set","name":"set policy fq-name","xml":"<set>\n<parameter name='tmp.fq-name' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` \" />\n","comments":"","x":527.4286270141602,"y":852.8571510314941,"z":"64165859.65c218","wires":[]},{"id":"b10213e8.7105b","type":"set","name":"set cloud-region-id for input to contrail","xml":"<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n","comments":"","x":589.4233093261719,"y":886.9469985961914,"z":"64165859.65c218","wires":[]},{"id":"82a00528.729748","type":"execute","name":"execute Contrail API apply network policy to source network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":665.6138305664062,"y":959.9471964836121,"z":"64165859.65c218","wires":[["bf44764e.6b5a08","d0dde1cb.d90ed"]]},{"id":"bf44764e.6b5a08","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1021.2803268432617,"y":960.3754234313965,"z":"64165859.65c218","wires":[["12a9c022.986f1"]]},{"id":"d0dde1cb.d90ed","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1019.3756484985352,"y":993.3753631971776,"z":"64165859.65c218","wires":[["84f2d70e.48c6a8"]]},{"id":"84f2d70e.48c6a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to source network\" />\n","comments":"","x":1179.280418395996,"y":992.7087297439575,"z":"64165859.65c218","wires":[]},{"id":"12a9c022.986f1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1173.4708099365234,"y":961.042148437351,"z":"64165859.65c218","wires":[[]]},{"id":"6f67eab4.30b314","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":538,"y":572,"z":"64165859.65c218","wires":[]},{"id":"c4b97b0e.a9a448","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":582,"y":732,"z":"64165859.65c218","wires":[["5e9aa570.67bd9c","3c95f25.131720e"]]},{"id":"5e9aa570.67bd9c","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":938.0002174377441,"y":730.6663794517517,"z":"64165859.65c218","wires":[["15e26772.92ed49"]]},{"id":"3c95f25.131720e","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":933.6670341491699,"y":693.6661796569824,"z":"64165859.65c218","wires":[["e75d9c15.8524a"]]},{"id":"c94aaa39.361bb8","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1329.8256530761719,"y":730.6822066307068,"z":"64165859.65c218","wires":[["31d38ee0.d6f1c2","91dd3bf.a1bacc8"]]},{"id":"31d38ee0.d6f1c2","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1618.8256530761719,"y":732.682267665863,"z":"64165859.65c218","wires":[["499747c7.a55a48"]]},{"id":"91dd3bf.a1bacc8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1598.8256530761719,"y":767.682267665863,"z":"64165859.65c218","wires":[["af14b3c3.48097"]]},{"id":"15e26772.92ed49","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1072.111473083496,"y":731.1107840538025,"z":"64165859.65c218","wires":[["c94aaa39.361bb8"]]},{"id":"e75d9c15.8524a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1087.8004989624023,"y":694.3330821990967,"z":"64165859.65c218","wires":[]},{"id":"d046e6f6.0e2458","type":"comment","name":"Find tenant id/cloud region from source network","info":"","comments":"","x":619.4003219604492,"y":698.6663160324097,"z":"64165859.65c218","wires":[]},{"id":"46dda770.da6c38","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2062.0000610351562,"y":768.0000228881836,"z":"64165859.65c218","wires":[["309cdf1e.a7927"]]},{"id":"af14b3c3.48097","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1787.9841003417969,"y":768.1260228157043,"z":"64165859.65c218","wires":[["46dda770.da6c38"]]},{"id":"499747c7.a55a48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1800.4888000488281,"y":732.5555934906006,"z":"64165859.65c218","wires":[]},{"id":"309cdf1e.a7927","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2354.5548706054688,"y":764.8891496658325,"z":"64165859.65c218","wires":[["849d5f32.c0a1d","8e8c972.e2a3368"]]},{"id":"ea225ffd.8fd5c","type":"set","name":"set tenantid and cloud region id","xml":"<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n","comments":"","x":2942.2214736938477,"y":754.8891334533691,"z":"64165859.65c218","wires":[]},{"id":"d4059f44.0d602","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2704.2879848480225,"y":767.8891382217407,"z":"64165859.65c218","wires":[["ea225ffd.8fd5c","22a21cd1.407344"]]},{"id":"849d5f32.c0a1d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2548.821361541748,"y":767.8890008926392,"z":"64165859.65c218","wires":[["d4059f44.0d602"]]},{"id":"8e8c972.e2a3368","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2549.6209716796875,"y":805.8890037536621,"z":"64165859.65c218","wires":[["866adc09.2f017"]]},{"id":"866adc09.2f017","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":2727.6211280822754,"y":805.8890695571899,"z":"64165859.65c218","wires":[]},{"id":"22a21cd1.407344","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":2916.688087463379,"y":790.888822555542,"z":"64165859.65c218","wires":[["9e49f002.0fb2d","9fd3ada.9523b5","38a0e1a6.0275de"]]},{"id":"9e49f002.0fb2d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3153.549415588379,"y":805.4999141693115,"z":"64165859.65c218","wires":[["e5c370f8.6038"]]},{"id":"9fd3ada.9523b5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3148.8824424743652,"y":838.8332281112671,"z":"64165859.65c218","wires":[["e5c370f8.6038"]]},{"id":"e5c370f8.6038","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":3323.058364868164,"y":826.8887872695923,"z":"64165859.65c218","wires":[]},{"id":"38a0e1a6.0275de","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3149.058448791504,"y":773.9258785247803,"z":"64165859.65c218","wires":[["3e857a0c.1c9ed6"]]},{"id":"3e857a0c.1c9ed6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3329.058448791504,"y":771.9258785247803,"z":"64165859.65c218","wires":[["4c618c54.2a14d4"]]},{"id":"4c618c54.2a14d4","type":"set","name":"set tenant name","xml":"<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n","comments":"","x":3516.021553039551,"y":769.5556201934814,"z":"64165859.65c218","wires":[]},{"id":"5cf76218.ae346c","type":"comment","name":"Apply the policy to source network","info":"","comments":"","x":584.0000152587891,"y":928.0000286102295,"z":"64165859.65c218","wires":[]},{"id":"3396a245.5af4be","type":"execute","name":"execute Contrail API apply network policy to destination network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":690.0000610351562,"y":1212.000036239624,"z":"64165859.65c218","wires":[["e17d1029.116eb","5a9c42ae.afc9ac"]]},{"id":"e17d1029.116eb","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1025.6664962768555,"y":1212.4282269477844,"z":"64165859.65c218","wires":[["b46738dd.eae108"]]},{"id":"5a9c42ae.afc9ac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1023.7618179321289,"y":1245.4281667135656,"z":"64165859.65c218","wires":[["7d2e0a11.918714"]]},{"id":"7d2e0a11.918714","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to source network\" />\n","comments":"","x":1183.6665878295898,"y":1244.7615332603455,"z":"64165859.65c218","wires":[]},{"id":"b46738dd.eae108","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1177.8569793701172,"y":1213.094951953739,"z":"64165859.65c218","wires":[[]]},{"id":"b29978f4.4fd1e8","type":"comment","name":"Apply the policy to dest network","info":"","comments":"","x":588.3861846923828,"y":1180.0528321266174,"z":"64165859.65c218","wires":[]},{"id":"4afec706.648e68","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":499.0001792907715,"y":2087.9766874313354,"z":"64165859.65c218","wires":[]},{"id":"6e8ca02f.7313","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":527.7540855407715,"y":2050.4324808120728,"z":"64165859.65c218","wires":[]},{"id":"54889c95.317884","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":559.4209213256836,"y":1909.4800510406494,"z":"64165859.65c218","wires":[]},{"id":"c2672028.9a192","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":587.5293960571289,"y":1983.529543876648,"z":"64165859.65c218","wires":[["e8a6a664.d79298","eabef186.2a8a8","879fe46c.3b2498"]]},{"id":"e8a6a664.d79298","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":857.8374137878418,"y":2036.5277446731925,"z":"64165859.65c218","wires":[["a31c2d71.a08e1"]]},{"id":"eabef186.2a8a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":848.8374633789062,"y":2005.027770422399,"z":"64165859.65c218","wires":[["a31c2d71.a08e1"]]},{"id":"879fe46c.3b2498","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":852.5875015258789,"y":1975.3848752975464,"z":"64165859.65c218","wires":[["bb8e21b5.4f02e"]]},{"id":"a31c2d71.a08e1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1018.5875015258789,"y":2005.777794264257,"z":"64165859.65c218","wires":[]},{"id":"bb8e21b5.4f02e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":994.2434692382812,"y":1971.5770444869995,"z":"64165859.65c218","wires":[[]]},{"id":"bc559c11.5308","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":510.24351501464844,"y":1875.9101829528809,"z":"64165859.65c218","wires":[[]]},{"id":"922d2ffc.4476e","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1244.6667633056638,"y":2005.0953893661497,"z":"64165859.65c218","wires":[]},{"id":"876eb57a.485618","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":544.0000381469727,"y":1825.0952768325806,"z":"64165859.65c218","wires":[]},{"id":"a6675806.e2dc08","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"in-service-path\" />\n","comments":"","outputs":1,"x":548.6191101074219,"y":1787.0478992462158,"z":"64165859.65c218","wires":[["b7633a81.cf12d8","475a5176.80fc4"]]},{"id":"b7633a81.cf12d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":816.3810272216797,"y":1764.2859525680542,"z":"64165859.65c218","wires":[["7dabdf24.12b19"]]},{"id":"475a5176.80fc4","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":821.6904563903809,"y":1799.857370376587,"z":"64165859.65c218","wires":[["7dabdf24.12b19"]]},{"id":"7dabdf24.12b19","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1031.4762420654297,"y":1765.9049968719482,"z":"64165859.65c218","wires":[]},{"id":"c82b30e7.1d586","type":"comment","name":"Update AAI AR","info":"","comments":"","x":501.96195220947266,"y":1746.476222038269,"z":"64165859.65c218","wires":[]},{"id":"3de8fec.d2ae202","type":"comment","name":"Update network policy in AAI - relationship to networks","info":"","comments":"","x":652.0001220703125,"y":1452.0000410079956,"z":"64165859.65c218","wires":[]},{"id":"f8a3e8b0.ff98a8","type":"save","name":"save AnAI - network-policy relationship to source and destination network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`tmp.AnAI-src.related-link`\" />\n<parameter name=\"relationship-list.relationship[1].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[1].related-link\" value=\"`tmp.AnAI-dest.related-link`\" />\n\n\n","comments":"","outputs":1,"x":713.3770179748535,"y":1489.0675249099731,"z":"64165859.65c218","wires":[["f4eee49b.3eb418","96306b55.89f5d8"]]},{"id":"930748bb.7c87d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":1357.7225036621094,"y":1485.3494877815247,"z":"64165859.65c218","wires":[]},{"id":"f4eee49b.3eb418","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1129.1511116027832,"y":1488.365225315094,"z":"64165859.65c218","wires":[["930748bb.7c87d8"]]},{"id":"96306b55.89f5d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1132.9606094360352,"y":1516.8416419029236,"z":"64165859.65c218","wires":[["930748bb.7c87d8"]]},{"id":"f2b08893.418cf8","type":"save","name":"get related-link data for source network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"related-link\"\nkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\"\nlocal-only=\"true\"\npfx=\"tmp.AnAI-src\">\n\n\n\n","comments":"","outputs":1,"x":618.0000152587891,"y":1286.0000371932983,"z":"64165859.65c218","wires":[["1752b575.8c8cbb","cdbec68d.a55978"]]},{"id":"1398e1ba.93427e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to get related link for l3-network in AAI\" />\n","comments":"","x":1262,"y":1292,"z":"64165859.65c218","wires":[]},{"id":"1752b575.8c8cbb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1033.4286079406738,"y":1291.0157375335693,"z":"64165859.65c218","wires":[["1398e1ba.93427e"]]},{"id":"cdbec68d.a55978","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1037.2381057739258,"y":1320.492154121399,"z":"64165859.65c218","wires":[["1398e1ba.93427e"]]},{"id":"f43488c4.18e4b8","type":"save","name":"get related-link data for dest network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"related-link\"\nkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\"\nlocal-only=\"true\"\npfx=\"tmp.AnAI-dest\">\n\n\n\n","comments":"","outputs":1,"x":614,"y":1360,"z":"64165859.65c218","wires":[["91989618.fd4e18","fa09c5bd.ae5068"]]},{"id":"7b92823a.91cf8c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to get related link for l3-network in AAI\" />\n","comments":"","x":1056.0000381469727,"y":1370.0000410079956,"z":"64165859.65c218","wires":[]},{"id":"91989618.fd4e18","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":873.4286422729492,"y":1357.0157642364502,"z":"64165859.65c218","wires":[["7b92823a.91cf8c"]]},{"id":"fa09c5bd.ae5068","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":879.2381210327148,"y":1386.4922285079956,"z":"64165859.65c218","wires":[["7b92823a.91cf8c"]]}]
+[{"id":"2343aa38.ae315e","type":"dgstart","name":"DGSTART","outputs":1,"x":186.75,"y":117.75,"z":"813dcd9a.d3bce","wires":[["913493cf.16963"]]},{"id":"913493cf.16963","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":332.9880828857422,"y":192.70239353179932,"z":"813dcd9a.d3bce","wires":[["514806e9.504f"]]},{"id":"514806e9.504f","type":"method","name":"contrail-route-topology-operation-activate","xml":"<method rpc='contrail-route-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":412.9048500061035,"y":261.9404420852661,"z":"813dcd9a.d3bce","wires":[["fa2967be.15261"]]},{"id":"fa2967be.15261","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":321.2261848449707,"y":405.273784160614,"z":"813dcd9a.d3bce","wires":[["824c9a63.64fca","1dc42b23.680e85","f337c1ee.3a3d8","54e90212.74149c","4015e9a8.6cc8c8","efd1fdfe.31dcd","7fbcf301.da9274","b9d822a8.efbda8","d1f0b04b.3903a8","e1945769.4b158","c88e7d42.8dec2","654c455d.66bcbc","b00f0fb6.47e598","d76d4a4a.711878","4863a49a.47232c","4f9959ff.99f5d","212281cc.a674ae","d2d48767.60437","950cc6c.99f39b8","88a7580.32ec5a8","bf22b626.ac2cc","7e19f3fd.32b57c"]]},{"id":"1dc42b23.680e85","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":583.4880561828613,"y":379.0833215713501,"z":"813dcd9a.d3bce","wires":[]},{"id":"824c9a63.64fca","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n\n","comments":"","x":630.7473182678223,"y":345.3425874710083,"z":"813dcd9a.d3bce","wires":[]},{"id":"f337c1ee.3a3d8","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":652.6005554199219,"y":410.98155403137207,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"4015e9a8.6cc8c8","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":657.4116058349609,"y":553.2095279693604,"z":"813dcd9a.d3bce","wires":[["d9815ba8.9478c","935a116c.d73118"]]},{"id":"54e90212.74149c","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":617.8148460388184,"y":474.76722526550293,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"d9815ba8.9478c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":902.7077102661133,"y":554.0173416137695,"z":"813dcd9a.d3bce","wires":[["8c816029.77b7d"]]},{"id":"8c816029.77b7d","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1071.7077140808105,"y":552.5172424316406,"z":"813dcd9a.d3bce","wires":[["c6cb923e.5c1e18"]]},{"id":"c6cb923e.5c1e18","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1282.564956665039,"y":552.1363716125488,"z":"813dcd9a.d3bce","wires":[["a78a62e1.215ed","fd8c66f.8374618"]]},{"id":"a78a62e1.215ed","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1471.8982620239258,"y":552.1363296508789,"z":"813dcd9a.d3bce","wires":[["67688036.f47e3"]]},{"id":"7ffb3b8e.4eb0f4","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1947.9462203979492,"y":545.3745260238647,"z":"813dcd9a.d3bce","wires":[]},{"id":"67688036.f47e3","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1656.4221515655518,"y":549.041163444519,"z":"813dcd9a.d3bce","wires":[["7ffb3b8e.4eb0f4","25851419.744d64","5cdd13c9.86cf44","9c689889.da3ea8"]]},{"id":"25851419.744d64","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1955.9461479187012,"y":609.469669342041,"z":"813dcd9a.d3bce","wires":[]},{"id":"96c69243.4da77","type":"comment","name":"GET contrail-route-allotted-resource from mdsal","info":"","comments":"","x":673.5648498535156,"y":519.0886821746826,"z":"813dcd9a.d3bce","wires":[]},{"id":"5cdd13c9.86cf44","type":"switchNode","name":"switch order-status","xml":"<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1963.946002960205,"y":576.3744812011719,"z":"813dcd9a.d3bce","wires":[["59a0add2.ea7254","d1f313dd.919bc"]]},{"id":"59a0add2.ea7254","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2185.7839584350586,"y":560.4697847366333,"z":"813dcd9a.d3bce","wires":[["2367cfdb.f8a1"]]},{"id":"d1f313dd.919bc","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2199.5936737060547,"y":590.8031902313232,"z":"813dcd9a.d3bce","wires":[["5f8feb9f.295cf4"]]},{"id":"5f8feb9f.295cf4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + ', expecting Created.'`\" />\n","comments":"","x":2440.212423324585,"y":593.7077798843384,"z":"813dcd9a.d3bce","wires":[]},{"id":"9c689889.da3ea8","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":2035.8032722473145,"y":512.1840181350708,"z":"813dcd9a.d3bce","wires":[]},{"id":"4dccfc3a.7e6a4c","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":588.7076530456543,"y":444.37435245513916,"z":"813dcd9a.d3bce","wires":[]},{"id":"f6d7f132.e76b98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1658.416997909546,"y":695.0833854675293,"z":"813dcd9a.d3bce","wires":[]},{"id":"935a116c.d73118","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":894.559513092041,"y":589.0834264755249,"z":"813dcd9a.d3bce","wires":[["c76dc8b4.875448"]]},{"id":"c76dc8b4.875448","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1074.5594635009766,"y":589.7499771118164,"z":"813dcd9a.d3bce","wires":[["f6d7f132.e76b98"]]},{"id":"efd1fdfe.31dcd","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":567.4166107177734,"y":590.2737884521484,"z":"813dcd9a.d3bce","wires":[]},{"id":"fd8c66f.8374618","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1460.2262153625488,"y":589.4166898727417,"z":"813dcd9a.d3bce","wires":[["f6d7f132.e76b98"]]},{"id":"2367cfdb.f8a1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2424.083469390869,"y":559.4166975021362,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"e6e6b312.9ff66","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":912.0356597900391,"y":848.4643956422806,"z":"813dcd9a.d3bce","wires":[["c9758edd.27c358"]]},{"id":"aab18dd2.ccd71","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n","comments":"","outputs":1,"x":635.234001159668,"y":859.7109127044678,"z":"813dcd9a.d3bce","wires":[["4ad4f4bf.b880f4","e6e6b312.9ff66","1feeeaa4.ceb4fd"]]},{"id":"4ad4f4bf.b880f4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":904.7577667236328,"y":882.9489995241165,"z":"813dcd9a.d3bce","wires":[["c9758edd.27c358"]]},{"id":"c9758edd.27c358","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1056.8687286376953,"y":879.1712285280228,"z":"813dcd9a.d3bce","wires":[]},{"id":"1feeeaa4.ceb4fd","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":910.0357208251953,"y":914.4643956422806,"z":"813dcd9a.d3bce","wires":[["e7887ed9.ffdb8"]]},{"id":"e7887ed9.ffdb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1062.7022857666016,"y":912.7977238893509,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"12c0c74b.daf7b1","type":"comment","name":"GET source network from AAI","info":"","comments":"","x":613.4642181396484,"y":828.4643898010254,"z":"813dcd9a.d3bce","wires":[]},{"id":"b90ed216.18a428","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":929.75,"y":1112.1787095069885,"z":"813dcd9a.d3bce","wires":[["b83d895b.4f291"]]},{"id":"7fbcf301.da9274","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n","comments":"","outputs":1,"x":658.3769226074219,"y":1119.710970401764,"z":"813dcd9a.d3bce","wires":[["b8838c73.a36ad8","b90ed216.18a428","389164df.893924"]]},{"id":"b8838c73.a36ad8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":922.4721069335938,"y":1146.6633133888245,"z":"813dcd9a.d3bce","wires":[["b83d895b.4f291"]]},{"id":"b83d895b.4f291","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1074.5830688476562,"y":1142.8855423927307,"z":"813dcd9a.d3bce","wires":[]},{"id":"389164df.893924","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":932.3215103149414,"y":1181.0357780456543,"z":"813dcd9a.d3bce","wires":[["4306a8fb.a6b5e8"]]},{"id":"4306a8fb.a6b5e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1084.9880752563477,"y":1179.3691062927246,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"7d0a4ab3.6c586c","type":"comment","name":"GET dest network from AAI","info":"","comments":"","x":631.1785430908203,"y":1087.8929624557495,"z":"813dcd9a.d3bce","wires":[]},{"id":"b9d822a8.efbda8","type":"set","name":"set policy fq-name","xml":"<set>\n<parameter name='tmp.fq-name' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` \" />\n","comments":"","x":584.1786270141602,"y":905.6071510314941,"z":"813dcd9a.d3bce","wires":[]},{"id":"d1f0b04b.3903a8","type":"set","name":"set cloud-region-id for input to contrail","xml":"<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n","comments":"","x":646.1733093261719,"y":939.6969985961914,"z":"813dcd9a.d3bce","wires":[]},{"id":"654c455d.66bcbc","type":"execute","name":"execute Contrail API apply network policy to source network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":722.3638305664062,"y":1012.6971964836121,"z":"813dcd9a.d3bce","wires":[["773f5c52.d9a844","65423029.2aa448"]]},{"id":"773f5c52.d9a844","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1078.0303268432617,"y":1013.1254234313965,"z":"813dcd9a.d3bce","wires":[["6efba2cc.644a4c"]]},{"id":"65423029.2aa448","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1076.1256484985352,"y":1046.1253631971776,"z":"813dcd9a.d3bce","wires":[["f8269b33.8f2818"]]},{"id":"f8269b33.8f2818","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to source network\" />\n","comments":"","x":1236.030418395996,"y":1045.4587297439575,"z":"813dcd9a.d3bce","wires":[]},{"id":"6efba2cc.644a4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1230.2208099365234,"y":1013.792148437351,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"e1945769.4b158","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":594.75,"y":624.75,"z":"813dcd9a.d3bce","wires":[]},{"id":"c88e7d42.8dec2","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":638.75,"y":784.75,"z":"813dcd9a.d3bce","wires":[["9f744453.f73d38","731c0d32.4efde4"]]},{"id":"9f744453.f73d38","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":994.7502174377441,"y":783.4163794517517,"z":"813dcd9a.d3bce","wires":[["8990ad.edf7ff5"]]},{"id":"731c0d32.4efde4","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":990.4170341491699,"y":746.4161796569824,"z":"813dcd9a.d3bce","wires":[["ee9e549.5240d28"]]},{"id":"bdbbd6c9.1a2c2","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1386.5756530761719,"y":783.4322066307068,"z":"813dcd9a.d3bce","wires":[["b140a749.4fc48","46a1cf55.e7ba18"]]},{"id":"b140a749.4fc48","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1675.5756530761719,"y":785.432267665863,"z":"813dcd9a.d3bce","wires":[["2aaebe6b.9c4f0a"]]},{"id":"46a1cf55.e7ba18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1655.5756530761719,"y":820.432267665863,"z":"813dcd9a.d3bce","wires":[["2365445.39bcbbc"]]},{"id":"8990ad.edf7ff5","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1128.861473083496,"y":783.8607840538025,"z":"813dcd9a.d3bce","wires":[["bdbbd6c9.1a2c2"]]},{"id":"ee9e549.5240d28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1144.5504989624023,"y":747.0830821990967,"z":"813dcd9a.d3bce","wires":[]},{"id":"5a5383e9.72c19c","type":"comment","name":"Find tenant id/cloud region from source network","info":"","comments":"","x":676.1503219604492,"y":751.4163160324097,"z":"813dcd9a.d3bce","wires":[]},{"id":"70cd42d4.2890fc","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2118.7500610351562,"y":820.7500228881836,"z":"813dcd9a.d3bce","wires":[["f4807d03.933b48"]]},{"id":"2365445.39bcbbc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1844.7341003417969,"y":820.8760228157043,"z":"813dcd9a.d3bce","wires":[["70cd42d4.2890fc"]]},{"id":"2aaebe6b.9c4f0a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1857.2388000488281,"y":785.3055934906006,"z":"813dcd9a.d3bce","wires":[]},{"id":"f4807d03.933b48","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2411.3048706054688,"y":817.6391496658325,"z":"813dcd9a.d3bce","wires":[["436eb069.fa0778","4fbc2bc4.af96fc"]]},{"id":"13f4d129.adecdf","type":"set","name":"set cloud region id","xml":"<set>\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n","comments":"","x":2993.9715118408203,"y":818.6392183303833,"z":"813dcd9a.d3bce","wires":[]},{"id":"a30719a6.edc868","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2761.0379848480225,"y":820.6391382217407,"z":"813dcd9a.d3bce","wires":[["13f4d129.adecdf"]]},{"id":"436eb069.fa0778","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2605.571361541748,"y":820.6390008926392,"z":"813dcd9a.d3bce","wires":[["a30719a6.edc868"]]},{"id":"4fbc2bc4.af96fc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2606.3709716796875,"y":858.6390037536621,"z":"813dcd9a.d3bce","wires":[["387271c4.dfcf4e"]]},{"id":"387271c4.dfcf4e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":2784.3711280822754,"y":858.6390695571899,"z":"813dcd9a.d3bce","wires":[]},{"id":"14b22c6c.fcabfc","type":"comment","name":"Apply the policy to source network","info":"","comments":"","x":640.7500152587891,"y":980.7500286102295,"z":"813dcd9a.d3bce","wires":[]},{"id":"b00f0fb6.47e598","type":"execute","name":"execute Contrail API apply network policy to destination network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='apply' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":746.7500610351562,"y":1264.750036239624,"z":"813dcd9a.d3bce","wires":[["c55c7ba4.af1c78","6f74bbcd.1e8a04"]]},{"id":"c55c7ba4.af1c78","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1082.4164962768555,"y":1265.1782269477844,"z":"813dcd9a.d3bce","wires":[["31c3a18d.c35b96"]]},{"id":"6f74bbcd.1e8a04","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1080.511817932129,"y":1298.1781667135656,"z":"813dcd9a.d3bce","wires":[["b857d4cd.98af18"]]},{"id":"b857d4cd.98af18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to apply policy in Contrail to source network\" />\n","comments":"","x":1240.4165878295898,"y":1297.5115332603455,"z":"813dcd9a.d3bce","wires":[]},{"id":"31c3a18d.c35b96","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1234.6069793701172,"y":1265.844951953739,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"f17083c0.fd25f8","type":"comment","name":"Apply the policy to dest network","info":"","comments":"","x":645.1361846923828,"y":1232.8028321266174,"z":"813dcd9a.d3bce","wires":[]},{"id":"d76d4a4a.711878","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":555.7501792907715,"y":2140.7266874313354,"z":"813dcd9a.d3bce","wires":[]},{"id":"4863a49a.47232c","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":584.5040855407715,"y":2103.1824808120728,"z":"813dcd9a.d3bce","wires":[]},{"id":"4f9959ff.99f5d","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":616.1709213256836,"y":1962.2300510406494,"z":"813dcd9a.d3bce","wires":[]},{"id":"212281cc.a674ae","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":644.2793960571289,"y":2036.279543876648,"z":"813dcd9a.d3bce","wires":[["d4e42d2d.79d87","8d96d215.4633c","51423045.023d"]]},{"id":"d4e42d2d.79d87","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":914.5874137878418,"y":2089.2777446731925,"z":"813dcd9a.d3bce","wires":[["59c58cd2.31ad04"]]},{"id":"8d96d215.4633c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":905.5874633789062,"y":2057.777770422399,"z":"813dcd9a.d3bce","wires":[["59c58cd2.31ad04"]]},{"id":"51423045.023d","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":909.3375015258789,"y":2028.1348752975464,"z":"813dcd9a.d3bce","wires":[["b28af593.fdcef8"]]},{"id":"59c58cd2.31ad04","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1075.337501525879,"y":2058.527794264257,"z":"813dcd9a.d3bce","wires":[]},{"id":"b28af593.fdcef8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1050.9934692382812,"y":2024.3270444869995,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"d2d48767.60437","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":566.9935150146484,"y":1928.6601829528809,"z":"813dcd9a.d3bce","wires":[[]]},{"id":"f8def33f.3a491","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1301.416763305664,"y":2057.84538936615,"z":"813dcd9a.d3bce","wires":[]},{"id":"60c83994.dfd038","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":600.7500381469727,"y":1877.8452768325806,"z":"813dcd9a.d3bce","wires":[]},{"id":"950cc6c.99f39b8","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"in-service-path\" />\n","comments":"","outputs":1,"x":605.3691101074219,"y":1839.7978992462158,"z":"813dcd9a.d3bce","wires":[["efbf0aed.e07788","115125da.13114a"]]},{"id":"efbf0aed.e07788","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":873.1310272216797,"y":1817.0359525680542,"z":"813dcd9a.d3bce","wires":[["cc34374d.c82f98"]]},{"id":"115125da.13114a","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":878.4404563903809,"y":1852.607370376587,"z":"813dcd9a.d3bce","wires":[["cc34374d.c82f98"]]},{"id":"cc34374d.c82f98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1088.2262420654297,"y":1818.6549968719482,"z":"813dcd9a.d3bce","wires":[]},{"id":"eb7af3d8.e2e8d8","type":"comment","name":"Update AAI AR","info":"","comments":"","x":558.7119522094727,"y":1799.226222038269,"z":"813dcd9a.d3bce","wires":[]},{"id":"c5899b4c.6cd78","type":"comment","name":"Update network policy in AAI - relationship to networks","info":"","comments":"","x":708.7501220703125,"y":1504.7500410079956,"z":"813dcd9a.d3bce","wires":[]},{"id":"88a7580.32ec5a8","type":"save","name":"save AnAI - network-policy relationship to source and destination network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`tmp.AnAI-src.related-link`\" />\n<parameter name=\"relationship-list.relationship[1].related-to\" value=\"l3-network\" />\n<parameter name=\"relationship-list.relationship[1].related-link\" value=\"`tmp.AnAI-dest.related-link`\" />\n\n\n","comments":"","outputs":1,"x":770.1270179748535,"y":1541.8175249099731,"z":"813dcd9a.d3bce","wires":[["e5a67b45.20b1c","b871af24.755df8"]]},{"id":"ae7fe4ff.4e4498","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":1414.4725036621094,"y":1538.0994877815247,"z":"813dcd9a.d3bce","wires":[]},{"id":"e5a67b45.20b1c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1185.9011116027832,"y":1541.115225315094,"z":"813dcd9a.d3bce","wires":[["ae7fe4ff.4e4498"]]},{"id":"b871af24.755df8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1189.7106094360352,"y":1569.5916419029236,"z":"813dcd9a.d3bce","wires":[["ae7fe4ff.4e4498"]]},{"id":"bf22b626.ac2cc","type":"save","name":"get related-link data for source network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"related-link\"\nkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\"\nlocal-only=\"true\"\npfx=\"tmp.AnAI-src\">\n\n\n\n","comments":"","outputs":1,"x":674.7500152587891,"y":1338.7500371932983,"z":"813dcd9a.d3bce","wires":[["ab369e17.3ba35","332634da.627144"]]},{"id":"77aaf3ff.eeeb7c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to get related link for l3-network in AAI\" />\n","comments":"","x":1318.75,"y":1344.75,"z":"813dcd9a.d3bce","wires":[]},{"id":"ab369e17.3ba35","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1090.1786079406738,"y":1343.7657375335693,"z":"813dcd9a.d3bce","wires":[["77aaf3ff.eeeb7c"]]},{"id":"332634da.627144","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1093.9881057739258,"y":1373.242154121399,"z":"813dcd9a.d3bce","wires":[["77aaf3ff.eeeb7c"]]},{"id":"7e19f3fd.32b57c","type":"save","name":"get related-link data for dest network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"related-link\"\nkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\"\nlocal-only=\"true\"\npfx=\"tmp.AnAI-dest\">\n\n\n\n","comments":"","outputs":1,"x":670.75,"y":1412.75,"z":"813dcd9a.d3bce","wires":[["6d15b228.6d5114","4640b9d8.04f298"]]},{"id":"ea538b84.fbe59","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to get related link for l3-network in AAI\" />\n","comments":"","x":1112.7500381469727,"y":1422.7500410079956,"z":"813dcd9a.d3bce","wires":[]},{"id":"6d15b228.6d5114","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":930.1786422729492,"y":1409.7657642364502,"z":"813dcd9a.d3bce","wires":[["ea538b84.fbe59"]]},{"id":"4640b9d8.04f298","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":935.9881210327148,"y":1439.2422285079956,"z":"813dcd9a.d3bce","wires":[["ea538b84.fbe59"]]}]
\ No newline at end of file
index e6b621f..52bb36f 100755 (executable)
@@ -1 +1,3396 @@
-[{"id":"4c9f1270.94615c","type":"dgstart","name":"DGSTART","outputs":1,"x":150,"y":88,"z":"4d1b2427.607d4c","wires":[["9e2ac2f1.e6e2"]]},{"id":"9e2ac2f1.e6e2","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":256.23807525634766,"y":162.95240020751953,"z":"4d1b2427.607d4c","wires":[["3916a67.a589d5a"]]},{"id":"3916a67.a589d5a","type":"method","name":"contrail-route-topology-operation-assign","xml":"<method rpc='contrail-route-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":257.82152557373047,"y":262.1904363632202,"z":"4d1b2427.607d4c","wires":[["9cfe2b9e.d58558"]]},{"id":"9cfe2b9e.d58558","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":284.4761848449707,"y":375.523784160614,"z":"4d1b2427.607d4c","wires":[["779e03bd.004a6c","b7d6a7d6.406e68","fb26a2b7.6969f","142b08a1.6d8de7","87a2a4c4.087d48","f3613a51.1c26f8","625eb8ab.21f038","6c13aed7.4f039","1836ca82.75ebe5","9f72a1ac.015ab","d634d1d1.89bbb","69c9d3c4.e9707c","bec92482.90ee38","bbe3aaad.4a5568","6bcbfec7.4a61d","62c0d784.f7e3d8","b6d077f3.00bc38","892a2973.dace48","ac3303.d63e3d","866ca1ea.ff3bc","ea795139.b531a","6a318934.66ddc8","783e64a0.ae3edc","cd01ba46.1664d8","1420897.e40c477","1fa15432.96f97c","af7a877d.eb2d78","843930fc.abe98","fac7c328.21b71","6959d8ae.04d098","b5119828.1d53c8","e6eeaa3.150a058","8211864b.caed98","571268e5.730638","96b047c4.679ec8","5e25bd11.a21d44","e2e2a185.95801","5790ccca.f5ea54","c643b552.15d5b8","e9e426fe.b64fd8","be0b4c28.f1b79"]]},{"id":"b7d6a7d6.406e68","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":519.0002326965332,"y":3227.2144536972046,"z":"4d1b2427.607d4c","wires":[]},{"id":"779e03bd.004a6c","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":547.7541580200195,"y":3199.051257133484,"z":"4d1b2427.607d4c","wires":[]},{"id":"b6d077f3.00bc38","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":584.7542457580566,"y":2376.0512704849243,"z":"4d1b2427.607d4c","wires":[]},{"id":"142b08a1.6d8de7","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":556.7381706237793,"y":325.33333587646484,"z":"4d1b2427.607d4c","wires":[]},{"id":"fb26a2b7.6969f","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.contrail-applied-service-instance-id' value='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`' />\n<parameter name='tmp.ar.allotted-resource-type' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\n\n","comments":"","x":603.9974327087402,"y":291.59260177612305,"z":"4d1b2427.607d4c","wires":[]},{"id":"87a2a4c4.087d48","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":618.9935836791992,"y":357.2315893173218,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"625eb8ab.21f038","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":619.5189018249512,"y":737.4595794677734,"z":"4d1b2427.607d4c","wires":[["b8ba7075.92c81","408b9489.78624c"]]},{"id":"f3613a51.1c26f8","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":591.0649604797363,"y":421.0172395706177,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"b8ba7075.92c81","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":866.8149909973145,"y":732.2673687934875,"z":"4d1b2427.607d4c","wires":[["3a69737a.dd4c0c"]]},{"id":"6bcbfec7.4a61d","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":612.958122253418,"y":2994.291175842285,"z":"4d1b2427.607d4c","wires":[["69575477.9eb00c","215247c4.dbf588"]]},{"id":"69575477.9eb00c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":879.9328575134277,"y":3023.9561338424683,"z":"4d1b2427.607d4c","wires":[["2a4bd3e4.dd179c"]]},{"id":"215247c4.dbf588","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":874.2662467956543,"y":2992.455969810486,"z":"4d1b2427.607d4c","wires":[["2a4bd3e4.dd179c"]]},{"id":"1a4098bb.aead37","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back\" />\n","comments":"","x":1216.3495788574219,"y":3038.5395822525024,"z":"4d1b2427.607d4c","wires":[]},{"id":"3a69737a.dd4c0c","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1035.8149948120117,"y":730.7672696113586,"z":"4d1b2427.607d4c","wires":[["9399d0e2.ddd51"]]},{"id":"9399d0e2.ddd51","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1246.6722373962402,"y":730.3863987922668,"z":"4d1b2427.607d4c","wires":[["4041d430.f6846c"]]},{"id":"4041d430.f6846c","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1436.005542755127,"y":730.3863568305969,"z":"4d1b2427.607d4c","wires":[["e842b5e7.c19358"]]},{"id":"f17d1c78.92f5f","type":"comment","name":"Save consumed-allotted-resources to mdsal","info":"","comments":"","x":619.2436676025391,"y":2185.3863854408264,"z":"4d1b2427.607d4c","wires":[]},{"id":"efe5ed7c.3b0ae","type":"comment","name":"GET contrail-route-allotted-resource from mdsal","info":"","comments":"","x":638.8148880004883,"y":704.7672181129456,"z":"4d1b2427.607d4c","wires":[]},{"id":"6c13aed7.4f039","type":"set","name":"set ar-identifiers","xml":"<set>\n<parameter name='ar-identifiers.consuming-service-instance-id' value=\"`$contrail-route-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='ar-identifiers.parent-service-instance-id' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='ar-identifiers.allotted-resource-type' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n","comments":"","x":545.0531158447266,"y":846.2912406921387,"z":"4d1b2427.607d4c","wires":[]},{"id":"306f9e61.b62042","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":585.6721267700195,"y":816.6720333099365,"z":"4d1b2427.607d4c","wires":[]},{"id":"892a2973.dace48","type":"set","name":"set identifiers in overal structure","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' \nvalue=\"`$ar-identifiers.`\" />\n\n\n","comments":"","x":605.0529861450195,"y":1362.9103206694126,"z":"4d1b2427.607d4c","wires":[]},{"id":"1836ca82.75ebe5","type":"set","name":"set onap model information from input","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.' \nvalue=\"`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.`\" />\n\n\n","comments":"","x":606.7196884155273,"y":930.2436923980713,"z":"4d1b2427.607d4c","wires":[]},{"id":"9f72a1ac.015ab","type":"switchNode","name":"switch model-invariant-uuid is null","xml":"<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\n","comments":"","outputs":1,"x":592.9101486206055,"y":965.9578294754028,"z":"4d1b2427.607d4c","wires":[["a386a341.6a5dc"]]},{"id":"a386a341.6a5dc","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":820.0530281066895,"y":967.3863468170166,"z":"4d1b2427.607d4c","wires":[["f68746c1.bc30f8"]]},{"id":"f68746c1.bc30f8","type":"set","name":"set model-invariant-uuid","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-invariant-uuid' \nvalue=\"`$ar-model.invariant-uuid`\" />\n\n\n","comments":"","x":1021.4816017150879,"y":966.8148994445801,"z":"4d1b2427.607d4c","wires":[]},{"id":"d634d1d1.89bbb","type":"switchNode","name":"switch model-uuid is null","xml":"<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\n","comments":"","outputs":1,"x":564.3387451171875,"y":1000.2435302734375,"z":"4d1b2427.607d4c","wires":[["41ad333e.6ea4ec"]]},{"id":"41ad333e.6ea4ec","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":765.7673110961914,"y":1000.8149518966675,"z":"4d1b2427.607d4c","wires":[["8577b5de.034978"]]},{"id":"8577b5de.034978","type":"set","name":"set model-uuid","xml":"<set>\n<parameter name='sar.allotted-resource-data.contrail-route-topology.onap-model-information.model-uuid' \nvalue=\"`$ar-model.uuid`\" />\n\n\n","comments":"","x":958.6244697570801,"y":1000.8148736953735,"z":"4d1b2427.607d4c","wires":[]},{"id":"69c9d3c4.e9707c","type":"switchNode","name":"switch model-version is null","xml":"<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\n","comments":"","outputs":1,"x":572.9101486206055,"y":1033.1006574630737,"z":"4d1b2427.607d4c","wires":[["a2183382.79fd3"]]},{"id":"a2183382.79fd3","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":822.9101295471191,"y":1033.1006422042847,"z":"4d1b2427.607d4c","wires":[["32b5229d.0cab2e"]]},{"id":"32b5229d.0cab2e","type":"set","name":"set model-version","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-version' \nvalue=\"`$ar-model.version`\" />\n\n\n","comments":"","x":1015.767276763916,"y":1033.1006317138672,"z":"4d1b2427.607d4c","wires":[]},{"id":"866ca1ea.ff3bc","type":"switchNode","name":"switch ar-model.onap-generated-naming","xml":"<switch test='`$ar-model.onap-generated-naming`'>\n","comments":"","outputs":1,"x":633.7196960449219,"y":1279.7672176361084,"z":"4d1b2427.607d4c","wires":[["3948bc2f.f77b54","e707f9ff.d5a678"]]},{"id":"3948bc2f.f77b54","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":910.7197341918945,"y":1275.8624358177185,"z":"4d1b2427.607d4c","wires":[["20908a4f.bf6266"]]},{"id":"20908a4f.bf6266","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":1079.4697761535645,"y":1276.3624243736267,"z":"4d1b2427.607d4c","wires":[["7b9d654d.5be03c"]]},{"id":"e707f9ff.d5a678","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":901.942024230957,"y":1308.8624358177185,"z":"4d1b2427.607d4c","wires":[["29eade88.e64712"]]},{"id":"29eade88.e64712","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in allotted-resource-model data.  Ecomp-generated-naming should be true\" />\n\n","comments":"","x":1079.942024230957,"y":1307.8624358177185,"z":"4d1b2427.607d4c","wires":[]},{"id":"7b9d654d.5be03c","type":"switchNode","name":"switch ar-model.onap-generated-naming","xml":"<switch test='`$ar-model.naming-policy`'>\n","comments":"","outputs":1,"x":1380.7196807861328,"y":1276.433897972107,"z":"4d1b2427.607d4c","wires":[["cef027f.91fdfd8","38b91d73.c94a62"]]},{"id":"cef027f.91fdfd8","type":"other","name":"outcome oam_network_policy","xml":"<outcome value='oam_network_policy'>\n","comments":"","outputs":1,"x":1751.5775146484375,"y":1268.0119352340698,"z":"4d1b2427.607d4c","wires":[["8431f8ba.f08668"]]},{"id":"38b91d73.c94a62","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1676.338981628418,"y":1300.529139995575,"z":"4d1b2427.607d4c","wires":[["8431f8ba.f08668"]]},{"id":"9b97c321.adf0f","type":"set","name":"set ar_name","xml":"<set>\n<parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />\n","comments":"","x":2194.100845336914,"y":1256.1009072959423,"z":"4d1b2427.607d4c","wires":[]},{"id":"b38296e4.3c0ea8","type":"execute","name":"execute SliStringUtils - replace $TenantName","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantName\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.tenant-name`\"/>\n\n","comments":"","outputs":1,"x":2294.244155883789,"y":1294.6247834861279,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"52fb7e92.2cea6","type":"execute","name":"execute SliStringUtils - replace LandingNetworkRole","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`\"/>\n\n","comments":"","outputs":1,"x":2302.577407836914,"y":1398.7676134109497,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"8431f8ba.f08668","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1981.8626976013184,"y":1302.0053367614746,"z":"4d1b2427.607d4c","wires":[["9b97c321.adf0f","b38296e4.3c0ea8","52fb7e92.2cea6","33d9a65.b86135a","70595e41.23774","d7151a9c.c5a358","b85f95cf.56c518","e6c914ff.bbbeb8","a21ede43.fc3e7"]]},{"id":"33d9a65.b86135a","type":"set","name":"set identifiers.allotted-resource-name","xml":"<set>\n<parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\n","comments":"","x":2258.767318725586,"y":1545.3865489661694,"z":"4d1b2427.607d4c","wires":[]},{"id":"ac3303.d63e3d","type":"set","name":"set assignments in overal structure","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' \nvalue=\"`$ar-assignments.`\" />\n\n\n","comments":"","x":593.1960144042969,"y":2152.624861717224,"z":"4d1b2427.607d4c","wires":[]},{"id":"6a318934.66ddc8","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.source-network.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.` \" />\n<parameter name='ar-assignments.dest-network.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.` \" />\n<parameter name='ar-assignments.contrail-applied-service.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.` \" />\n\n\n","comments":"","x":564.529167175293,"y":1399.3863624632359,"z":"4d1b2427.607d4c","wires":[]},{"id":"e9829904.2e77e8","type":"for","name":"for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]","xml":"<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n","comments":"","outputs":1,"x":1498.8155517578125,"y":2260.291075229645,"z":"4d1b2427.607d4c","wires":[["76e1246.58bf5dc"]]},{"id":"bec92482.90ee38","type":"switchNode","name":"switch service-data.consumed-allotted-resources_length","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n","comments":"","outputs":1,"x":656.8150024414062,"y":2218.0051369667053,"z":"4d1b2427.607d4c","wires":[["4dce9f0e.197ca","75705eae.125bb"]]},{"id":"4dce9f0e.197ca","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":978.9578857421875,"y":2220.8625588417053,"z":"4d1b2427.607d4c","wires":[["f9d4ed78.b618a"]]},{"id":"75705eae.125bb","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":966.9578895568848,"y":2263.862560272217,"z":"4d1b2427.607d4c","wires":[["c55c83ec.31bb6"]]},{"id":"76e1246.58bf5dc","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n","comments":"","outputs":1,"x":1928.9107818603516,"y":2262.3508410453796,"z":"4d1b2427.607d4c","wires":[["d664ab8f.6994a8"]]},{"id":"d664ab8f.6994a8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2133.720748901367,"y":2262.81529378891,"z":"4d1b2427.607d4c","wires":[["67045931.262a78"]]},{"id":"c55c83ec.31bb6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1127.0849800109863,"y":2261.988536834717,"z":"4d1b2427.607d4c","wires":[["e9829904.2e77e8","1d1bc1f0.a72b7e"]]},{"id":"67045931.262a78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2305.481700897217,"y":2262.6725223064423,"z":"4d1b2427.607d4c","wires":[["354eaed.bcc7f52","3ad061dc.d44dfe"]]},{"id":"f9d4ed78.b618a","type":"set","name":"set cidx","xml":"<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n","comments":"","x":1137.8148574829102,"y":2220.57662153244,"z":"4d1b2427.607d4c","wires":[]},{"id":"354eaed.bcc7f52","type":"set","name":"set tmp.cidx and ctx.consumed-ar","xml":"<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\n<parameter name='tmp.found-cidx' value='true' />","comments":"","x":2551.339029312134,"y":2263.2439963817596,"z":"4d1b2427.607d4c","wires":[]},{"id":"bbe3aaad.4a5568","type":"set","name":"set consumed allotted resources","xml":"<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n","comments":"","x":580.6723365783691,"y":2308.5766229629517,"z":"4d1b2427.607d4c","wires":[]},{"id":"8d887169.2ecf8","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":561.9577674865723,"y":390.6243667602539,"z":"4d1b2427.607d4c","wires":[]},{"id":"6959d8ae.04d098","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.fq-name' value=\"`$tmp.fq-name` \" />\n\n\n\n","comments":"","x":548.6722793579102,"y":2118.196542739868,"z":"4d1b2427.607d4c","wires":[]},{"id":"8665234a.8510b","type":"comment","name":"Add AR to md-sal","info":"","comments":"","x":534.2437210083008,"y":2965.481409072876,"z":"4d1b2427.607d4c","wires":[]},{"id":"62c0d784.f7e3d8","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":535.2434692382812,"y":2343.4815063476562,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"e842b5e7.c19358","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Existing contrail route allotted resource\" />\n    \n","comments":"","x":1616.33349609375,"y":728.3334121704102,"z":"4d1b2427.607d4c","wires":[]},{"id":"408b9489.78624c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":858.6667938232422,"y":767.3334536552429,"z":"4d1b2427.607d4c","wires":[["94a2f0be.5376d"]]},{"id":"94a2f0be.5376d","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1038.6667442321777,"y":768.0000042915344,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"ea795139.b531a","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":530.6667594909668,"y":771.666675567627,"z":"4d1b2427.607d4c","wires":[]},{"id":"70595e41.23774","type":"execute","name":"execute SliStringUtils - replace $CloudRegionID","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$CloudRegionID\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.cloud-region-id`\"/>\n\n","comments":"","outputs":1,"x":2303.333267211914,"y":1328.6671237945557,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"d7151a9c.c5a358","type":"execute","name":"execute SliStringUtils - replace $TenantNetworkRole","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`\"/>\n\n","comments":"","outputs":1,"x":2312.6664657592773,"y":1362.6670274734497,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"e6c914ff.bbbeb8","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":2317.3332595825195,"y":1503.333630681038,"z":"4d1b2427.607d4c","wires":[["be6042e3.12db","9ef8ef75.f00ad"]]},{"id":"be6042e3.12db","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2627.047782897949,"y":1506.1907633244991,"z":"4d1b2427.607d4c","wires":[["d59007c0.f67198"]]},{"id":"9ef8ef75.f00ad","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2632.3810272216797,"y":1537.85746383667,"z":"4d1b2427.607d4c","wires":[["b0a81ae7.4dfba8"]]},{"id":"b85f95cf.56c518","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$tmp.ar-name`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n","comments":"","x":2279.000259399414,"y":1433.0003308951855,"z":"4d1b2427.607d4c","wires":[]},{"id":"b0a81ae7.4dfba8","type":"set","name":"set tmp.ar-name to generated name","xml":"<set>\n<parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":2879.571189880371,"y":1538.3335467875004,"z":"4d1b2427.607d4c","wires":[]},{"id":"d59007c0.f67198","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":2800.9047050476074,"y":1505.6192770004272,"z":"4d1b2427.607d4c","wires":[]},{"id":"783e64a0.ae3edc","type":"set","name":"set fq_name","xml":"<set>\n<parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />\n","comments":"","x":548.3332748413086,"y":1478.6666288375854,"z":"4d1b2427.607d4c","wires":[]},{"id":"cd01ba46.1664d8","type":"execute","name":"execute SliStringUtils - replace $defaultDomain","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultDomain\"/>\n    <parameter name=\"replacement\" value=\"default-domain\"/>\n\n","comments":"","outputs":1,"x":655.6666259765625,"y":1508.6666717529297,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"1420897.e40c477","type":"execute","name":"execute SliStringUtils - replace $defaultProject","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultProject\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.tenant-name`\"/>\n\n","comments":"","outputs":1,"x":655.6666564941406,"y":1542.0001125335693,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"467969e2.ea3918","type":"comment","name":"generate fqname","info":"","comments":"","x":557.3333206176758,"y":1451.9999351501465,"z":"4d1b2427.607d4c","wires":[]},{"id":"1fa15432.96f97c","type":"execute","name":"execute SliStringUtils - replace $sdncNetworkPolicy","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$sdncNetworkPolicy\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar-name`\"/>\n\n","comments":"","outputs":1,"x":668.9999618530273,"y":1575.333267211914,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"bb5388b.9a34478","type":"comment","name":"Set onap-model-info","info":"","comments":"","x":554.1429672241211,"y":896.5714740753174,"z":"4d1b2427.607d4c","wires":[]},{"id":"af7a877d.eb2d78","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$ar-model.invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$ar-model.uuid`\" />\n\t<parameter name=\"operational-status\" value=\"null\" />\n","comments":"","outputs":1,"x":568.8571891784668,"y":2474.5715532302856,"z":"4d1b2427.607d4c","wires":[["f49edd24.7f19d","22aa6a43.558c86"]]},{"id":"f49edd24.7f19d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":824.6191215515137,"y":2451.809727668762,"z":"4d1b2427.607d4c","wires":[["a2554f1f.b50de"]]},{"id":"22aa6a43.558c86","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":829.9285507202148,"y":2487.381145477295,"z":"4d1b2427.607d4c","wires":[["a2554f1f.b50de"]]},{"id":"a2554f1f.b50de","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1039.7143363952637,"y":2453.4287719726562,"z":"4d1b2427.607d4c","wires":[]},{"id":"a21ede43.fc3e7","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"tmp.ar-name=\"/>\n<parameter name=\"field3\" value=\"`$tmp.ar-name`\"/>\n<parameter name=\"field4\" value=\"generate-unique-name-input.prefix\" />\n<parameter name=\"field5\" value=\"`$generate-unique-name-input.prefix`\" />","comments":"","outputs":1,"x":2170.2000579833984,"y":1468.0004276931286,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"843930fc.abe98","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":601.5997695922852,"y":1155.3336191177368,"z":"4d1b2427.607d4c","wires":[["f66777d8.98ad18","6a87e5bf.61d96c"]]},{"id":"f66777d8.98ad18","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":952.6000289916992,"y":1153.0001316070557,"z":"4d1b2427.607d4c","wires":[["cde00633.b18cb8"]]},{"id":"6a87e5bf.61d96c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":945.2668228149414,"y":1114.9999265670776,"z":"4d1b2427.607d4c","wires":[["44011184.bdb35"]]},{"id":"b7184182.4959f","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2105.7113876342773,"y":1151.444565474987,"z":"4d1b2427.607d4c","wires":[["1c4a61f3.c2849e"]]},{"id":"fbab815c.672c4","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1341.425392150879,"y":1152.0159158706665,"z":"4d1b2427.607d4c","wires":[["140ca41e.1dac4c","97892501.9ff8f8"]]},{"id":"140ca41e.1dac4c","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1630.425392150879,"y":1154.0159769058228,"z":"4d1b2427.607d4c","wires":[["662569df.4978f8"]]},{"id":"97892501.9ff8f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1610.425392150879,"y":1189.0159769058228,"z":"4d1b2427.607d4c","wires":[["c55a8bab.54c1e8"]]},{"id":"cb1b209a.0c898","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2550.1400508880615,"y":1113.6947317123413,"z":"4d1b2427.607d4c","wires":[["6f669f36.77ecf"]]},{"id":"c55a8bab.54c1e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1811.695411682129,"y":1190.5705423355103,"z":"4d1b2427.607d4c","wires":[["b7184182.4959f","74060662.5164e8","4f6aa7ae.9611b8"]]},{"id":"cde00633.b18cb8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1083.7112121582031,"y":1152.4444932937622,"z":"4d1b2427.607d4c","wires":[["fbab815c.672c4"]]},{"id":"44011184.bdb35","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1099.4002304077148,"y":1114.000121831894,"z":"4d1b2427.607d4c","wires":[]},{"id":"662569df.4978f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1820.2001876831055,"y":1152.0001287460327,"z":"4d1b2427.607d4c","wires":[]},{"id":"74a5cd24.86b7f4","type":"set","name":"set tmp vals","xml":"<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n<parameter name='source-network-found' value='true' />\n\n","comments":"","x":3059.2002391815186,"y":1093.0001211166382,"z":"4d1b2427.607d4c","wires":[]},{"id":"7a4f9f18.b1ca8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2869.2666816711426,"y":1106.00013256073,"z":"4d1b2427.607d4c","wires":[["74a5cd24.86b7f4","d9c31b5a.6a4cd8"]]},{"id":"6f669f36.77ecf","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2719.8002071380615,"y":1112.0000047683716,"z":"4d1b2427.607d4c","wires":[["7a4f9f18.b1ca8"]]},{"id":"465f3356.89525c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":2434.5999183654785,"y":1186.0001649856567,"z":"4d1b2427.607d4c","wires":[]},{"id":"23fb5fa1.57992","type":"execute","name":"execute RestApiCallNode - Get Parent service network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-parentnetwork-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"parent-net\" />\n\n","comments":"","outputs":1,"x":1549.0000228881836,"y":1704.000186920166,"z":"4d1b2427.607d4c","wires":[["a3fb960c.d85758","fc9d9601.9e18b8"]]},{"id":"a3fb960c.d85758","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1858.2960777282715,"y":1704.8080496788025,"z":"4d1b2427.607d4c","wires":[["ac20b661.d93d88"]]},{"id":"ac20b661.d93d88","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2027.2960815429688,"y":1703.3079504966736,"z":"4d1b2427.607d4c","wires":[["55142221.a74b4c"]]},{"id":"55142221.a74b4c","type":"switchNode","name":"switch network length","xml":"<switch test='`$parent-net.networks.network_length`'>\n","comments":"","outputs":1,"x":2238.1533241271973,"y":1702.9270796775818,"z":"4d1b2427.607d4c","wires":[["66c12173.13d7","d9862bb8.9cb708"]]},{"id":"66c12173.13d7","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":2447.4865951538086,"y":1702.9269948005676,"z":"4d1b2427.607d4c","wires":[["a8318bf.731e378"]]},{"id":"68b4c2ed.00f22c","type":"comment","name":"GET dest network from mdsal","info":"","comments":"","x":1494.295997619629,"y":1645.3078532218933,"z":"4d1b2427.607d4c","wires":[]},{"id":"fc9d9601.9e18b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1850.1478805541992,"y":1739.8741345405579,"z":"4d1b2427.607d4c","wires":[["8ccfa208.0193"]]},{"id":"8ccfa208.0193","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2030.1478309631348,"y":1740.5406851768494,"z":"4d1b2427.607d4c","wires":[["fa75851f.39e8f8"]]},{"id":"fac7c328.21b71","type":"execute","name":"generate parent-network url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-parentnetwork-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":585.0001220703125,"y":450.0000238418579,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"fa75851f.39e8f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No existing parent netorks\" />\n    \n","comments":"","x":2214.999954223633,"y":1742.0001639127731,"z":"4d1b2427.607d4c","wires":[]},{"id":"d9862bb8.9cb708","type":"other","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2448.999828338623,"y":1738.0000948905945,"z":"4d1b2427.607d4c","wires":[["462e905c.7055"]]},{"id":"462e905c.7055","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Network id not found.  Parent Service should only have one network\" />\n    \n","comments":"","x":2615.3278045654297,"y":1737.9472098350525,"z":"4d1b2427.607d4c","wires":[]},{"id":"a8318bf.731e378","type":"set","name":"set dest network id","xml":"<set>\n<parameter name='ar-assignments.dest-network.network-id' value=\"`$parent-net.networks.network[0].network-id` \" />\n\n\n\n","comments":"","x":2626.5996856689453,"y":1704.000138759613,"z":"4d1b2427.607d4c","wires":[]},{"id":"d30b861c.434bf8","type":"comment","name":"Find tenant/cloud region from source network","info":"","comments":"","x":631.0000610351562,"y":1120.0000252723694,"z":"4d1b2427.607d4c","wires":[]},{"id":"b5119828.1d53c8","type":"execute","name":"generate contrail-applied-service url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-contrailappliedsvc-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.contrail-applied-service-instance-id`\"/>\n","comments":"","outputs":1,"x":612.200122833252,"y":480.00002574920654,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"e6eeaa3.150a058","type":"execute","name":"execute RestApiCallNode - Get vnf","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-contrailappliedsvc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"vnf\" />\n\n","comments":"","outputs":1,"x":598.2000503540039,"y":1835.6668615341187,"z":"4d1b2427.607d4c","wires":[["1fcbedaf.3a00e2","f42d5962.ac9958"]]},{"id":"1fcbedaf.3a00e2","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":977.4961700439453,"y":1828.8080359697342,"z":"4d1b2427.607d4c","wires":[["81eaf91d.91f988"]]},{"id":"81eaf91d.91f988","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1146.4961738586426,"y":1827.3079367876053,"z":"4d1b2427.607d4c","wires":[["2ab7fe69.be87a2"]]},{"id":"2ab7fe69.be87a2","type":"switchNode","name":"switch vnf length","xml":"<switch test='`$vnf.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":1357.353416442871,"y":1826.9270659685135,"z":"4d1b2427.607d4c","wires":[["6ae0da83.aaa4f4","f324301e.0d32b"]]},{"id":"6ae0da83.aaa4f4","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1548.6869087219238,"y":1820.9270491600037,"z":"4d1b2427.607d4c","wires":[["b98f6f34.959f"]]},{"id":"be2cb9a.2505e48","type":"comment","name":"GET contrail vnf for contrail applied service  from mdsal","info":"","comments":"","x":660.8294906616211,"y":1797.6413383483887,"z":"4d1b2427.607d4c","wires":[]},{"id":"f42d5962.ac9958","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":969.347972869873,"y":1863.8741208314896,"z":"4d1b2427.607d4c","wires":[["e17a2bcb.e52fb8"]]},{"id":"e17a2bcb.e52fb8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1149.3479232788086,"y":1864.540671467781,"z":"4d1b2427.607d4c","wires":[["a25cc221.aaa89"]]},{"id":"a25cc221.aaa89","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No existing contrail applied service vnfs\" />\n    \n","comments":"","x":1334.2000465393066,"y":1866.0001502037048,"z":"4d1b2427.607d4c","wires":[]},{"id":"f324301e.0d32b","type":"other","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1550.2001419067383,"y":1856.0001492500305,"z":"4d1b2427.607d4c","wires":[["55da27e9.1a2d18"]]},{"id":"55da27e9.1a2d18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: vnf id not found.  Contrail applied service should only have one vnf\" />\n    \n","comments":"","x":1714.5280456542969,"y":1855.9473118782043,"z":"4d1b2427.607d4c","wires":[]},{"id":"b98f6f34.959f","type":"set","name":"set applied service vnf id","xml":"<set>\n<parameter name='ar-assignments.contrail-applied-service.vnf-id' value=\"`$vnf.vnfs.vnf[0].vnf-id` \" />\n\n\n\n","comments":"","x":1759.8001136779785,"y":1820.0002398490906,"z":"4d1b2427.607d4c","wires":[]},{"id":"c6c2334d.98278","type":"comment","name":"Generate contrail route name","info":"","comments":"","x":583.0000457763672,"y":1244.0000286102295,"z":"4d1b2427.607d4c","wires":[]},{"id":"6add4fcf.7d2a3","type":"comment","name":"GET contrail fqdn from vnf/vf-module","info":"","comments":"","x":613.3333969116211,"y":1938.6669101715088,"z":"4d1b2427.607d4c","wires":[]},{"id":"8211864b.caed98","type":"switchNode","name":"switch contrail-route-request-input.constrail-applied-service-info.contrail-fqdn","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`'>\n","comments":"","outputs":1,"x":719.0000991821289,"y":1980.0002436637878,"z":"4d1b2427.607d4c","wires":[["4525a9a8.0b4468","841c4f89.afe5f"]]},{"id":"4525a9a8.0b4468","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1111.0000648498535,"y":1970.0000656843185,"z":"4d1b2427.607d4c","wires":[["68cb2b70.90a404"]]},{"id":"841c4f89.afe5f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1093.9999923706055,"y":2007.0000529289246,"z":"4d1b2427.607d4c","wires":[["36215833.3a7f48"]]},{"id":"36215833.3a7f48","type":"set","name":"set applied service fqdn","xml":"<set>\n<parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn` \" />\n\n\n\n","comments":"","x":1285.0000076293945,"y":2007.000086903572,"z":"4d1b2427.607d4c","wires":[]},{"id":"68cb2b70.90a404","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1297.0000686645508,"y":1970.0000647306442,"z":"4d1b2427.607d4c","wires":[["bf2bb366.b639d","c7b161a8.2d59d"]]},{"id":"54037341.49dacc","type":"comment","name":"GET dest network from parent service","info":"","comments":"","x":603.666618347168,"y":1676.000069618225,"z":"4d1b2427.607d4c","wires":[]},{"id":"571268e5.730638","type":"switchNode","name":"switch contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id`'>\n","comments":"","outputs":1,"x":795.0000686645508,"y":1704.0000405311584,"z":"4d1b2427.607d4c","wires":[["8bb9d911.861198","a62ad6dd.907908"]]},{"id":"8bb9d911.861198","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1236.9999771118164,"y":1704.0000402927399,"z":"4d1b2427.607d4c","wires":[["23fb5fa1.57992"]]},{"id":"a62ad6dd.907908","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1218.9999809265137,"y":1737.0000410079956,"z":"4d1b2427.607d4c","wires":[["cddb9071.a0335"]]},{"id":"cddb9071.a0335","type":"set","name":"set dest network id","xml":"<set>\n<parameter name='ar-assignments.dest-network.network-id' value=\"`$contrail-route-request-input.dest-network.network-id` \" />\n\n\n\n","comments":"","x":1410.999942779541,"y":1739.9999961853027,"z":"4d1b2427.607d4c","wires":[]},{"id":"bfe89f13.37b26","type":"comment","name":"GET contrail fqdn via AAI","info":"","comments":"","x":1550.2000579833984,"y":1933.9999685287476,"z":"4d1b2427.607d4c","wires":[]},{"id":"bf2bb366.b639d","type":"get-resource","name":"get-resource generic-vnf","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"generic-vnf\" \n\t\tkey=\"generic-vnf.vnf-id = $ar-assignments.contrail-applied-service.vnf-id\"\n        pfx='aai.vnf' local-only='false' >\n        \n\n\n","comments":"","outputs":1,"x":1560.2000579833984,"y":1969.9999694824219,"z":"4d1b2427.607d4c","wires":[["358e578d.2fd368","1096a3e1.ecde4c"]]},{"id":"1096a3e1.ecde4c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1762.8396644592285,"y":1998.805338382721,"z":"4d1b2427.607d4c","wires":[["1005d67c.37828a"]]},{"id":"1005d67c.37828a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving vnf from AAI\" />\n","comments":"","x":1938.7918891906738,"y":2002.1386723518372,"z":"4d1b2427.607d4c","wires":[]},{"id":"358e578d.2fd368","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1765.3394889831543,"y":1968.8054161071777,"z":"4d1b2427.607d4c","wires":[["e73bb580.fac7b8"]]},{"id":"e73bb580.fac7b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Vnf not found in AAI\" />\n","comments":"","x":1933.117374420166,"y":1968.110846042633,"z":"4d1b2427.607d4c","wires":[]},{"id":"6ad7fa83.050644","type":"comment","name":"Loop through vf modeuls looking for contrail fqdn","info":"","comments":"","x":1633.8667068481445,"y":2038.333501815796,"z":"4d1b2427.607d4c","wires":[]},{"id":"57a1c09e.69c79","type":"comment","name":"Update AAI AR","info":"","comments":"","x":532.2000465393066,"y":2437.999997138977,"z":"4d1b2427.607d4c","wires":[]},{"id":"96b047c4.679ec8","type":"execute","name":"execute RestApiCallNode - Update parent provided service AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n","comments":"","outputs":1,"x":674.2001609802246,"y":2570.0002641677856,"z":"4d1b2427.607d4c","wires":[["c1fb6c5e.e721a","e74826b3.4d8b38","d137df8f.0037a"]]},{"id":"c1fb6c5e.e721a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":996.5081787109375,"y":2614.9984817504883,"z":"4d1b2427.607d4c","wires":[["dd5d09e6.0f8e48"]]},{"id":"e74826b3.4d8b38","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":987.508228302002,"y":2583.498507499695,"z":"4d1b2427.607d4c","wires":[["dd5d09e6.0f8e48"]]},{"id":"d137df8f.0037a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":991.2582664489746,"y":2553.855612374842,"z":"4d1b2427.607d4c","wires":[["a297dd7b.aa05c"]]},{"id":"dd5d09e6.0f8e48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1157.2582664489746,"y":2584.2485313415527,"z":"4d1b2427.607d4c","wires":[]},{"id":"a297dd7b.aa05c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1132.914234161377,"y":2550.0477815642953,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"c332fe05.c3ade","type":"comment","name":"Put the parent allotted resource in mdsal","info":"","comments":"","x":601.2001266479492,"y":2538.0000896453857,"z":"4d1b2427.607d4c","wires":[]},{"id":"1d1bc1f0.a72b7e","type":"switchNode","name":"switch tmp.found-cidx","xml":"<switch test='`$tmp.found-cidx`'>\n","comments":"","outputs":1,"x":1316.2000274658203,"y":2294.000059604645,"z":"4d1b2427.607d4c","wires":[["65d66863.2a8258"]]},{"id":"65d66863.2a8258","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1506.1999816894531,"y":2293.99999666214,"z":"4d1b2427.607d4c","wires":[["762eafdc.0bdf2"]]},{"id":"762eafdc.0bdf2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1672.1999816894531,"y":2293.99999666214,"z":"4d1b2427.607d4c","wires":[["63da8f53.b089c"]]},{"id":"63da8f53.b089c","type":"set","name":"set tmp.cidx ","xml":"<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n","comments":"","x":1918.0573101043701,"y":2294.5714707374573,"z":"4d1b2427.607d4c","wires":[]},{"id":"3ad061dc.d44dfe","type":"break","name":"break","xml":"<break>\n","comments":"","x":2468.199981689453,"y":2291.99999666214,"z":"4d1b2427.607d4c","wires":[]},{"id":"5e25bd11.a21d44","type":"execute","name":"generate parent-ar url - replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":656.2001876831055,"y":512.0000591278076,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"e2e2a185.95801","type":"execute","name":"generate parent-ar url - replace allotted-resource-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":661.2000579833984,"y":547.0000600814819,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"3111d761.5e06d8","type":"execute","name":"execute RestApiCallNode - Update parent provided service AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n","comments":"","outputs":1,"x":1373.333595275879,"y":3004.3333768844604,"z":"4d1b2427.607d4c","wires":[["7e416b6f.40fa64","cdcc7917.56abb8","8bd6f68b.5ef6b8"]]},{"id":"521d8bd0.fa7014","type":"comment","name":"Rollback parent","info":"","comments":"","x":1217.3335227966309,"y":2974.000007390976,"z":"4d1b2427.607d4c","wires":[]},{"id":"2a4bd3e4.dd179c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1026.0001258850098,"y":3003.6666803359985,"z":"4d1b2427.607d4c","wires":[["3111d761.5e06d8","1a4098bb.aead37"]]},{"id":"7e416b6f.40fa64","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1744.64164352417,"y":3064.998343229294,"z":"4d1b2427.607d4c","wires":[["3c400d0a.33bc62"]]},{"id":"cdcc7917.56abb8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1735.6416931152344,"y":3033.4983689785004,"z":"4d1b2427.607d4c","wires":[["3c400d0a.33bc62"]]},{"id":"8bd6f68b.5ef6b8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1739.391731262207,"y":3003.8554738536477,"z":"4d1b2427.607d4c","wires":[["3c400d0a.33bc62"]]},{"id":"3c400d0a.33bc62","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1881.0476989746094,"y":3000.047643043101,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"5790ccca.f5ea54","type":"execute","name":"generate network-ar url - replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n","comments":"","outputs":1,"x":663.0000228881836,"y":581.9999942779541,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"c643b552.15d5b8","type":"execute","name":"generate network-ar url - replace network-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$ar-assignments.dest-network.network-id`\"/>\n","comments":"","outputs":1,"x":608.3334274291992,"y":2757.333106994629,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"e9e426fe.b64fd8","type":"execute","name":"execute RestApiCallNode - Update parent network provided AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"net-ar\" />\n\n","comments":"","outputs":1,"x":669.0000686645508,"y":2789.332983970642,"z":"4d1b2427.607d4c","wires":[["5fedcca8.21af14","b88ee5a.8fd2218","945ef6e1.dc3458"]]},{"id":"b88ee5a.8fd2218","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1076.3081321716309,"y":2790.9985933303833,"z":"4d1b2427.607d4c","wires":[["758f2d97.6a46a4"]]},{"id":"945ef6e1.dc3458","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1068.9748420715332,"y":2826.165051460266,"z":"4d1b2427.607d4c","wires":[["758f2d97.6a46a4"]]},{"id":"5fedcca8.21af14","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1071.0581665039062,"y":2756.5221377387643,"z":"4d1b2427.607d4c","wires":[["758f2d97.6a46a4"]]},{"id":"758f2d97.6a46a4","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1242.7140617370605,"y":2761.047921180725,"z":"4d1b2427.607d4c","wires":[["47bc6f66.279f","aed7c269.f7e95"]]},{"id":"5b0d4b89.fa37f4","type":"comment","name":"Add AR to  parent network allotted resource from mdsal","info":"","comments":"","x":636.9999618530273,"y":2717.6666049957275,"z":"4d1b2427.607d4c","wires":[]},{"id":"aed7c269.f7e95","type":"switchNode","name":"switch net-ar_length","xml":"<switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\n","comments":"","outputs":1,"x":1469.3332176208496,"y":2800.3330936431885,"z":"4d1b2427.607d4c","wires":[["28ec3cfa.5c9964","d62a83f8.5e709"]]},{"id":"561e5c25.cb8074","type":"for","name":"for nidx..net-ar[]","xml":"<for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\n","comments":"","outputs":1,"x":2187.6666717529297,"y":2821.3331003189087,"z":"4d1b2427.607d4c","wires":[["a35b9203.161d8"]]},{"id":"28ec3cfa.5c9964","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1752.1422843933105,"y":2755.9044466018677,"z":"4d1b2427.607d4c","wires":[["e0cae091.f6ab5"]]},{"id":"d62a83f8.5e709","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1733.8089332580566,"y":2829.571165084839,"z":"4d1b2427.607d4c","wires":[["8d766915.255368"]]},{"id":"a35b9203.161d8","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test=\"`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`\">\n\n","comments":"","outputs":1,"x":2412.761730194092,"y":2828.3930258750916,"z":"4d1b2427.607d4c","wires":[["bc858023.6898d"]]},{"id":"bc858023.6898d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2595.905242919922,"y":2823.857072353363,"z":"4d1b2427.607d4c","wires":[["f4a2c79.aa6a338"]]},{"id":"8d766915.255368","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1936.2693977355957,"y":2832.36363363266,"z":"4d1b2427.607d4c","wires":[["561e5c25.cb8074","3cebc33.7bab73c"]]},{"id":"f4a2c79.aa6a338","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2762.6662063598633,"y":2825.3809678554535,"z":"4d1b2427.607d4c","wires":[["e9b23d6.001eac","c26f5049.d1dee"]]},{"id":"a0f4304a.2addd","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2366.7178077697754,"y":2865.041989326477,"z":"4d1b2427.607d4c","wires":[["907c3bfc.fa31a8"]]},{"id":"907c3bfc.fa31a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2536.0509071350098,"y":2863.3752422332764,"z":"4d1b2427.607d4c","wires":[["f4d721f4.46f46","fe096059.4ee75","3c945468.bd2a2c"]]},{"id":"f4d721f4.46f46","type":"set","name":"set tmp.nidx ","xml":"<set>\n<parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />\n","comments":"","x":2741.9081535339355,"y":2868.946853160858,"z":"4d1b2427.607d4c","wires":[]},{"id":"6922d49.4d4892c","type":"comment","name":"allotted resource already exists- no op","info":"","comments":"","x":2457.999900817871,"y":2679.333148956299,"z":"4d1b2427.607d4c","wires":[]},{"id":"3cebc33.7bab73c","type":"switchNode","name":"switch tmp.found-nidx","xml":"<switch test='`$tmp.found-nidx`'>\n","comments":"","outputs":1,"x":2196.717716217041,"y":2863.375160217285,"z":"4d1b2427.607d4c","wires":[["a0f4304a.2addd"]]},{"id":"e9b23d6.001eac","type":"set","name":"set tmp.nidx ","xml":"<set>\n<parameter name='tmp.found-nidx' value='true' />","comments":"","x":2974.6665992736816,"y":2816.6662435531616,"z":"4d1b2427.607d4c","wires":[]},{"id":"c26f5049.d1dee","type":"break","name":"break","xml":"<break>\n","comments":"","x":2961.860704421997,"y":2850.0894327163696,"z":"4d1b2427.607d4c","wires":[]},{"id":"fe096059.4ee75","type":"execute","name":"execute RestApiCallNode - Update parent network provided AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"p-network-ar\" />\n\n","comments":"","outputs":1,"x":2909.0000190734863,"y":2934.6661834716797,"z":"4d1b2427.607d4c","wires":[["409657f3.cf5e98","c70db172.aebc4","8859496f.d9d998"]]},{"id":"8859496f.d9d998","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3251.9999656677246,"y":2980.999610900879,"z":"4d1b2427.607d4c","wires":[["34c49998.798456"]]},{"id":"c70db172.aebc4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3243.000015258789,"y":2949.4996366500854,"z":"4d1b2427.607d4c","wires":[["34c49998.798456"]]},{"id":"409657f3.cf5e98","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3246.7500534057617,"y":2919.856741525233,"z":"4d1b2427.607d4c","wires":[["34c49998.798456"]]},{"id":"34c49998.798456","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3431.739345550537,"y":2916.0488624572754,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"47bc6f66.279f","type":"set","name":"set tmp.found-nidx = false","xml":"<set>\n<parameter name='tmp.found-nidx' value='false' />","comments":"","x":1485.9999809265137,"y":2730.6669635772705,"z":"4d1b2427.607d4c","wires":[]},{"id":"3c945468.bd2a2c","type":"set","name":"set length","xml":"<set>\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value=\"`$tmp.ar.allotted-resource-id`\" />\n","comments":"","x":2736.666305541992,"y":2903.000112056732,"z":"4d1b2427.607d4c","wires":[]},{"id":"e917600f.4f7d7","type":"set","name":"set new network-provided-ar","xml":"<set>\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value=\"1\" />\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value=\"`$tmp.ar.allotted-resource-id`\" />\n\n\n\n\n","comments":"","x":2252.999351501465,"y":2759.285076737404,"z":"4d1b2427.607d4c","wires":[]},{"id":"e0cae091.f6ab5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1949.6670188903809,"y":2755.9993057250977,"z":"4d1b2427.607d4c","wires":[["e917600f.4f7d7","fe096059.4ee75"]]},{"id":"ed6517f4.b8f3b8","type":"comment","name":"Other Rollbacks? ","info":"","comments":"","x":1222.999870300293,"y":3065.9997520446777,"z":"4d1b2427.607d4c","wires":[]},{"id":"5b89889f.eedaf8","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$aai.vnf.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1975.1585693359375,"y":2104.26904296875,"z":"4d1b2427.607d4c","wires":[["c9284eeb.d1eb5"]]},{"id":"471bc9f6.bff138","type":"break","name":"break","xml":"<break>\n","comments":"","x":2854.730155944824,"y":2168.507378578186,"z":"4d1b2427.607d4c","wires":[]},{"id":"c9284eeb.d1eb5","type":"switchNode","name":"switch contrail-service-instance-fqdn","xml":"<switch test='`$aai-vf-module.contrail-service-instance-fqdn`'>\n","comments":"","outputs":1,"x":2258.66650390625,"y":2104.999755859375,"z":"4d1b2427.607d4c","wires":[["b136ca44.5724a8","ed24b238.48ffb"]]},{"id":"eedd883d.4f3368","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"VF Module not found in AAI\" />\n","comments":"","x":1956.61083984375,"y":2071.97216796875,"z":"4d1b2427.607d4c","wires":[]},{"id":"b136ca44.5724a8","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2538.66650390625,"y":2106.3330078125,"z":"4d1b2427.607d4c","wires":[["b5e70f0a.b42d"]]},{"id":"ed24b238.48ffb","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2520.6665077209473,"y":2139.3330085277557,"z":"4d1b2427.607d4c","wires":[["322afc54.4f0194"]]},{"id":"b5e70f0a.b42d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2695.3334197998047,"y":2104.666417121887,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"322afc54.4f0194","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2701.9997482299805,"y":2136.333013534546,"z":"4d1b2427.607d4c","wires":[["471bc9f6.bff138","caad7e17.7d471"]]},{"id":"caad7e17.7d471","type":"set","name":"set applied service fqdn","xml":"<set>\n<parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value=\"`$aai-vf-module.contrail-service-instance-fqdn` \" />\n\n\n\n","comments":"","x":2913.3330078125,"y":2135.6666259765625,"z":"4d1b2427.607d4c","wires":[]},{"id":"be0b4c28.f1b79","type":"switchNode","name":"switch ar-assignments.contrail-applied-service.contrail-fqdn","xml":"<switch test='`$ar-assignments.contrail-applied-service.contrail-fqdn`'>\n","comments":"","outputs":1,"x":672.0000610351562,"y":2053.6666259765625,"z":"4d1b2427.607d4c","wires":[["214426a4.7d2d2a"]]},{"id":"214426a4.7d2d2a","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1000.6667442321777,"y":2054.333152294159,"z":"4d1b2427.607d4c","wires":[["9fbe5884.aaa628"]]},{"id":"9fbe5884.aaa628","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No vf-module with contrail-service-instance-fqdn found in AAI\" />\n    \n","comments":"","x":1176.6666259765625,"y":2052.66650390625,"z":"4d1b2427.607d4c","wires":[]},{"id":"68ea4ba9.f086b4","type":"comment","name":"MDSal adaptor only saves consuming service so parent service and AR are done by Rest api calls","info":"","comments":"","x":650.666618347168,"y":90.99999618530273,"z":"4d1b2427.607d4c","wires":[]},{"id":"d9c31b5a.6a4cd8","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":3081.666784286499,"y":1128.9998168945312,"z":"4d1b2427.607d4c","wires":[["a1818b66.74b108","7a2bb1ac.b1704","d7af6553.4f9528"]]},{"id":"a1818b66.74b108","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3302.5281734466553,"y":1121.6109313964844,"z":"4d1b2427.607d4c","wires":[["e5f97be8.5172e8"]]},{"id":"7a2bb1ac.b1704","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3297.8612003326416,"y":1154.94424533844,"z":"4d1b2427.607d4c","wires":[["e5f97be8.5172e8"]]},{"id":"e5f97be8.5172e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":3472.0371227264404,"y":1142.9998044967651,"z":"4d1b2427.607d4c","wires":[]},{"id":"d7af6553.4f9528","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3298.0372066497803,"y":1090.0368957519531,"z":"4d1b2427.607d4c","wires":[["d4ad82c0.f23a2"]]},{"id":"d4ad82c0.f23a2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3478.0372066497803,"y":1088.0368957519531,"z":"4d1b2427.607d4c","wires":[["e5841bea.414a18"]]},{"id":"e5841bea.414a18","type":"set","name":"set tenant name","xml":"<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n","comments":"","x":3665.000310897827,"y":1085.6666374206543,"z":"4d1b2427.607d4c","wires":[]},{"id":"1c4a61f3.c2849e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2344.39990234375,"y":1116,"z":"4d1b2427.607d4c","wires":[["cb1b209a.0c898","3cf67218.fc2b9e"]]},{"id":"3cf67218.fc2b9e","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"tmp.ar-name=\"/>\n<parameter name=\"field3\" value=\"`$tmp.ar-name`\"/>\n<parameter name=\"field4\" value=\"service-data-network-id\" />\n<parameter name=\"field5\" value=\"`$service-data.networks.network[$nidx].network-id`\" />\n<parameter name=\"field6\" value=\"contrail-route-input-network-id\" />\n<parameter name=\"field7\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`\" />\n<parameter name=\"field8\" value=\"`$nidx`\" />","comments":"","outputs":1,"x":2509.0000762939453,"y":1079.0001277923584,"z":"4d1b2427.607d4c","wires":[[]]},{"id":"74060662.5164e8","type":"set","name":"set source-network-found","xml":"<set>\n<parameter name='source-network-found' value='false' />\n\n","comments":"","x":2067.000198364258,"y":1120.0000407099724,"z":"4d1b2427.607d4c","wires":[]},{"id":"4f6aa7ae.9611b8","type":"switchNode","name":"switch source-network-found","xml":"<switch test=\"`$source-network-found`\">\n\n","comments":"","outputs":1,"x":2071.000072479248,"y":1186.000033378601,"z":"4d1b2427.607d4c","wires":[["ef194605.ce8898"]]},{"id":"ef194605.ce8898","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2283.000030517578,"y":1186.0000343322754,"z":"4d1b2427.607d4c","wires":[["465f3356.89525c"]]},{"id":"c7b161a8.2d59d","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$aai.vnf.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":1558,"y":2071,"z":"4d1b2427.607d4c","wires":[["883be9e.f5d5a18","130ed066.b1002"]]},{"id":"883be9e.f5d5a18","type":"other","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1763,"y":2072,"z":"4d1b2427.607d4c","wires":[["eedd883d.4f3368"]]},{"id":"130ed066.b1002","type":"other","name":"outcome other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1763,"y":2103,"z":"4d1b2427.607d4c","wires":[["5b89889f.eedaf8"]]}]
+[
+    {
+        "id": "a15c86ae.e9ffa8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 117.00390625,
+        "y": 66.99999904632568,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "9f7352fa.e9442"
+            ]
+        ]
+    },
+    {
+        "id": "9f7352fa.e9442",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 223.24198150634766,
+        "y": 145.70239448547363,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "bec67786.9a0fd8"
+            ]
+        ]
+    },
+    {
+        "id": "bec67786.9a0fd8",
+        "type": "method",
+        "name": "contrail-route-topology-operation-assign",
+        "xml": "<method rpc='contrail-route-topology-operation-assign' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 224.82543182373047,
+        "y": 241.1904354095459,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "106ac22b.f19c5e"
+            ]
+        ]
+    },
+    {
+        "id": "106ac22b.f19c5e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 251.4800910949707,
+        "y": 354.5237832069397,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "1b476e9a.fe2761",
+                "89e36959.f57ca8",
+                "8e0d8361.64708",
+                "c1ac5f3e.e6966",
+                "47d7c2d7.6d83ec",
+                "e05ef5d3.6901c8",
+                "2fa400f8.8842c",
+                "63a20e20.4ef0d",
+                "27c0b1cb.cbaf7e",
+                "afb14d8.fa7e8b",
+                "164735e2.5f4fea",
+                "b8ee290b.0a5948",
+                "f4cedf71.423ad",
+                "59b1d791.8e8d88",
+                "98d8146e.2c8368",
+                "ec3a453a.6b4d18",
+                "80199fb5.28a97",
+                "42e59bba.390174",
+                "7bbf3a4b.922ac4",
+                "ab194250.a66de",
+                "94029424.bac068",
+                "f152aa61.54aba8",
+                "d7a09bb1.7dfc58",
+                "846017e5.c13a98",
+                "329e94ed.128dbc",
+                "e081301c.9853a",
+                "e99fb45b.d57118",
+                "6d745a26.0c7354",
+                "4888c4bf.132c3c",
+                "6e65e9d5.9f0028",
+                "e2239d78.dc34",
+                "5ddff342.e4df3c",
+                "5f1ba758.495008",
+                "3b7ee06a.f8b51",
+                "5fefa6f9.3a77d8",
+                "a348f9e1.479f68",
+                "e6b7c56f.4a4108",
+                "5182c386.6fc00c",
+                "b4d8f0cc.1375d",
+                "d3ab9d9.302806",
+                "50a5d5ae.00038c"
+            ]
+        ]
+    },
+    {
+        "id": "89e36959.f57ca8",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 486.0041389465332,
+        "y": 3206.2144527435303,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "1b476e9a.fe2761",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 514.7580642700195,
+        "y": 3178.0512561798096,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "80199fb5.28a97",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 551.7581520080566,
+        "y": 2355.05126953125,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "c1ac5f3e.e6966",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 523.7420768737793,
+        "y": 304.3333349227905,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "8e0d8361.64708",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.contrail-applied-service-instance-id' value='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`' />\n<parameter name='tmp.ar.allotted-resource-type' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\n\n",
+        "comments": "",
+        "x": 571.0013389587402,
+        "y": 270.59260082244873,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "47d7c2d7.6d83ec",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 585.9974899291992,
+        "y": 336.23158836364746,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2fa400f8.8842c",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 586.5228080749512,
+        "y": 716.4595785140991,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4f71533e.51503c",
+                "6ff8b1b0.c2e46"
+            ]
+        ]
+    },
+    {
+        "id": "e05ef5d3.6901c8",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 558.0688667297363,
+        "y": 400.01723861694336,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4f71533e.51503c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 833.8188972473145,
+        "y": 711.2673678398132,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "15a9be7b.067652"
+            ]
+        ]
+    },
+    {
+        "id": "98d8146e.2c8368",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 579.962028503418,
+        "y": 2973.291174888611,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b6b6c325.b9854",
+                "52bb813.f59bc8"
+            ]
+        ]
+    },
+    {
+        "id": "b6b6c325.b9854",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 846.9367637634277,
+        "y": 3002.956132888794,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4b9fa7f1.b30308"
+            ]
+        ]
+    },
+    {
+        "id": "52bb813.f59bc8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 841.2701530456543,
+        "y": 2971.4559688568115,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4b9fa7f1.b30308"
+            ]
+        ]
+    },
+    {
+        "id": "676e8a31.aad434",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back\" />\n",
+        "comments": "",
+        "x": 1183.3534851074219,
+        "y": 3017.539581298828,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "15a9be7b.067652",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1002.8189010620117,
+        "y": 709.7672686576843,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "e0174b9e.a92928"
+            ]
+        ]
+    },
+    {
+        "id": "e0174b9e.a92928",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1213.6761436462402,
+        "y": 709.3863978385925,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "80cc2f81.87cf5"
+            ]
+        ]
+    },
+    {
+        "id": "80cc2f81.87cf5",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1403.009449005127,
+        "y": 709.3863558769226,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "940b96fe.4bc648"
+            ]
+        ]
+    },
+    {
+        "id": "200f56f8.1a568a",
+        "type": "comment",
+        "name": "Save consumed-allotted-resources to mdsal",
+        "info": "",
+        "comments": "",
+        "x": 586.2475738525391,
+        "y": 2164.386384487152,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "71cd75e1.a2e0ac",
+        "type": "comment",
+        "name": "GET contrail-route-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 605.8187942504883,
+        "y": 683.7672171592712,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "63a20e20.4ef0d",
+        "type": "set",
+        "name": "set ar-identifiers",
+        "xml": "<set>\n<parameter name='ar-identifiers.consuming-service-instance-id' value=\"`$contrail-route-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='ar-identifiers.parent-service-instance-id' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='ar-identifiers.allotted-resource-type' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n",
+        "comments": "",
+        "x": 512.0570220947266,
+        "y": 825.2912397384644,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "7f798563.86347c",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 552.6760330200195,
+        "y": 795.6720323562622,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "42e59bba.390174",
+        "type": "set",
+        "name": "set identifiers in overal structure",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' \nvalue=\"`$ar-identifiers.`\" />\n\n\n",
+        "comments": "",
+        "x": 572.0568923950195,
+        "y": 1341.9103197157383,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "27c0b1cb.cbaf7e",
+        "type": "set",
+        "name": "set ecomp model information from input",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.' \nvalue=\"`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.`\" />\n\n\n",
+        "comments": "",
+        "x": 573.7235946655273,
+        "y": 909.243691444397,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "afb14d8.fa7e8b",
+        "type": "switchNode",
+        "name": "switch model-invariant-uuid is null",
+        "xml": "<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 559.9140548706055,
+        "y": 944.9578285217285,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "50ecfa4d.756b34"
+            ]
+        ]
+    },
+    {
+        "id": "50ecfa4d.756b34",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 787.0569343566895,
+        "y": 946.3863458633423,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "57fddba0.eaaf14"
+            ]
+        ]
+    },
+    {
+        "id": "57fddba0.eaaf14",
+        "type": "set",
+        "name": "set model-invariant-uuid",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-invariant-uuid' \nvalue=\"`$ar-model.invariant-uuid`\" />\n\n\n",
+        "comments": "",
+        "x": 988.4855079650879,
+        "y": 945.8148984909058,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "164735e2.5f4fea",
+        "type": "switchNode",
+        "name": "switch model-uuid is null",
+        "xml": "<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 531.3426513671875,
+        "y": 979.2435293197632,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "6a69d11e.04137"
+            ]
+        ]
+    },
+    {
+        "id": "6a69d11e.04137",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 732.7712173461914,
+        "y": 979.8149509429932,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a902eea0.7b187"
+            ]
+        ]
+    },
+    {
+        "id": "a902eea0.7b187",
+        "type": "set",
+        "name": "set model-uuid",
+        "xml": "<set>\n<parameter name='sar.allotted-resource-data.contrail-route-topology.onap-model-information.model-uuid' \nvalue=\"`$ar-model.uuid`\" />\n\n\n",
+        "comments": "",
+        "x": 925.6283760070801,
+        "y": 979.8148727416992,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "b8ee290b.0a5948",
+        "type": "switchNode",
+        "name": "switch model-version is null",
+        "xml": "<switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 539.9140548706055,
+        "y": 1012.1006565093994,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d20dbd99.c611a"
+            ]
+        ]
+    },
+    {
+        "id": "d20dbd99.c611a",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 789.9140357971191,
+        "y": 1012.1006412506104,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "c9fcca5f.606248"
+            ]
+        ]
+    },
+    {
+        "id": "c9fcca5f.606248",
+        "type": "set",
+        "name": "set model-version",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-version' \nvalue=\"`$ar-model.version`\" />\n\n\n",
+        "comments": "",
+        "x": 982.771183013916,
+        "y": 1012.1006307601929,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "ab194250.a66de",
+        "type": "switchNode",
+        "name": "switch ar-model.ecomp-generated-naming",
+        "xml": "<switch test='`$ar-model.ecomp-generated-naming`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 600.7236022949219,
+        "y": 1258.767216682434,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8fb0ef65.8d523",
+                "2eb9cf24.96b3d"
+            ]
+        ]
+    },
+    {
+        "id": "8fb0ef65.8d523",
+        "type": "other",
+        "name": "outcome Y",
+        "xml": "<outcome value='Y'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 877.7236404418945,
+        "y": 1254.8624348640442,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "6c96ac26.e9a684"
+            ]
+        ]
+    },
+    {
+        "id": "6c96ac26.e9a684",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1046.4736824035645,
+        "y": 1255.3624234199524,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "270e2a77.e35dc6"
+            ]
+        ]
+    },
+    {
+        "id": "2eb9cf24.96b3d",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 868.945930480957,
+        "y": 1287.8624348640442,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "9153ab18.136e08"
+            ]
+        ]
+    },
+    {
+        "id": "9153ab18.136e08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in allotted-resource-model data.  Ecomp-generated-naming should be true\" />\n\n",
+        "comments": "",
+        "x": 1046.945930480957,
+        "y": 1286.8624348640442,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "270e2a77.e35dc6",
+        "type": "switchNode",
+        "name": "switch ar-model.ecomp-generated-naming",
+        "xml": "<switch test='`$ar-model.naming-policy`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1347.7235870361328,
+        "y": 1255.4338970184326,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d120c979.8da8c8",
+                "9b914bce.63aad8"
+            ]
+        ]
+    },
+    {
+        "id": "d120c979.8da8c8",
+        "type": "other",
+        "name": "outcome oam_network_policy",
+        "xml": "<outcome value='oam_network_policy'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1718.5814208984375,
+        "y": 1247.0119342803955,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "fcaca6b7.d32838"
+            ]
+        ]
+    },
+    {
+        "id": "9b914bce.63aad8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1643.342887878418,
+        "y": 1279.5291390419006,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "fcaca6b7.d32838"
+            ]
+        ]
+    },
+    {
+        "id": "b7235bb6.3a29f8",
+        "type": "set",
+        "name": "set ar_name",
+        "xml": "<set>\n<parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />\n",
+        "comments": "",
+        "x": 2161.104751586914,
+        "y": 1235.100906342268,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "69b920ab.38aa1",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $TenantName",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantName\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.tenant-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2261.248062133789,
+        "y": 1273.6247825324535,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c7259873.fe9de8",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace LandingNetworkRole",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2269.581314086914,
+        "y": 1377.7676124572754,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fcaca6b7.d32838",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1948.8666038513184,
+        "y": 1281.0053358078003,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b7235bb6.3a29f8",
+                "69b920ab.38aa1",
+                "c7259873.fe9de8",
+                "554b99be.4d79e8",
+                "284f958b.7a5dfa",
+                "2b71aba8.1693c4",
+                "a2eac231.37f33",
+                "eef331cb.9aea7",
+                "bc1017e5.305348"
+            ]
+        ]
+    },
+    {
+        "id": "554b99be.4d79e8",
+        "type": "set",
+        "name": "set identifiers.allotted-resource-name",
+        "xml": "<set>\n<parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\n",
+        "comments": "",
+        "x": 2225.771224975586,
+        "y": 1524.386548012495,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "7bbf3a4b.922ac4",
+        "type": "set",
+        "name": "set assignments in overal structure",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' \nvalue=\"`$ar-assignments.`\" />\n\n\n",
+        "comments": "",
+        "x": 560.1999206542969,
+        "y": 2131.62486076355,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "f152aa61.54aba8",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.source-network.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.` \" />\n<parameter name='ar-assignments.dest-network.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.` \" />\n<parameter name='ar-assignments.contrail-applied-service.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.` \" />\n\n\n",
+        "comments": "",
+        "x": 531.533073425293,
+        "y": 1378.3863615095615,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "287b8459.7da69c",
+        "type": "for",
+        "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+        "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1465.8194580078125,
+        "y": 2239.2910742759705,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "51656950.e29468"
+            ]
+        ]
+    },
+    {
+        "id": "f4cedf71.423ad",
+        "type": "switchNode",
+        "name": "switch service-data.consumed-allotted-resources_length",
+        "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 623.8189086914062,
+        "y": 2197.005136013031,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "64cf189.e7ea6e8",
+                "d0e0868c.bcee08"
+            ]
+        ]
+    },
+    {
+        "id": "64cf189.e7ea6e8",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 945.9617919921875,
+        "y": 2199.862557888031,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "12a02d0f.ee3803"
+            ]
+        ]
+    },
+    {
+        "id": "d0e0868c.bcee08",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 933.9617958068848,
+        "y": 2242.8625593185425,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d57ec577.c56ff8"
+            ]
+        ]
+    },
+    {
+        "id": "51656950.e29468",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1895.9146881103516,
+        "y": 2241.3508400917053,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "f22e0aec.651d38"
+            ]
+        ]
+    },
+    {
+        "id": "f22e0aec.651d38",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2100.724655151367,
+        "y": 2241.8152928352356,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "716c0762.bdde98"
+            ]
+        ]
+    },
+    {
+        "id": "d57ec577.c56ff8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1094.0888862609863,
+        "y": 2240.9885358810425,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "287b8459.7da69c",
+                "264a617a.dba88e"
+            ]
+        ]
+    },
+    {
+        "id": "716c0762.bdde98",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2272.485607147217,
+        "y": 2241.672521352768,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "106b68e8.1a4037",
+                "40e2c37b.f6506c"
+            ]
+        ]
+    },
+    {
+        "id": "12a02d0f.ee3803",
+        "type": "set",
+        "name": "set cidx",
+        "xml": "<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n",
+        "comments": "",
+        "x": 1104.8187637329102,
+        "y": 2199.576620578766,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "106b68e8.1a4037",
+        "type": "set",
+        "name": "set tmp.cidx and ctx.consumed-ar",
+        "xml": "<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\n<parameter name='tmp.found-cidx' value='true' />",
+        "comments": "",
+        "x": 2518.342935562134,
+        "y": 2242.2439954280853,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "59b1d791.8e8d88",
+        "type": "set",
+        "name": "set consumed allotted resources",
+        "xml": "<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n",
+        "comments": "",
+        "x": 547.6762428283691,
+        "y": 2287.5766220092773,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "d3ef150f.6b3e38",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 528.9616737365723,
+        "y": 369.6243658065796,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "6e65e9d5.9f0028",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.fq-name' value=\"`$tmp.fq-name` \" />\n\n\n\n",
+        "comments": "",
+        "x": 515.6761856079102,
+        "y": 2097.196541786194,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "d04be762.e31278",
+        "type": "comment",
+        "name": "Add AR to md-sal",
+        "info": "",
+        "comments": "",
+        "x": 501.2476272583008,
+        "y": 2944.4814081192017,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "ec3a453a.6b4d18",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 502.24737548828125,
+        "y": 2322.481505393982,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "940b96fe.4bc648",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Existing contrail route allotted resource\" />\n    \n",
+        "comments": "",
+        "x": 1583.33740234375,
+        "y": 707.3334112167358,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "6ff8b1b0.c2e46",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 825.6707000732422,
+        "y": 746.3334527015686,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "10cca98f.b56976"
+            ]
+        ]
+    },
+    {
+        "id": "10cca98f.b56976",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1005.6706504821777,
+        "y": 747.0000033378601,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "94029424.bac068",
+        "type": "set",
+        "name": "set ar data",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n",
+        "comments": "",
+        "x": 497.6706657409668,
+        "y": 750.6666746139526,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "284f958b.7a5dfa",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $CloudRegionID",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$CloudRegionID\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.cloud-region-id`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2270.337173461914,
+        "y": 1307.6671228408813,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2b71aba8.1693c4",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $TenantNetworkRole",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2279.6703720092773,
+        "y": 1341.6670265197754,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "eef331cb.9aea7",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:generate-unique-name",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2284.3371658325195,
+        "y": 1482.3336297273636,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "eaf8cb4c.514708",
+                "9f2060bc.fb7c6"
+            ]
+        ]
+    },
+    {
+        "id": "eaf8cb4c.514708",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2594.051689147949,
+        "y": 1485.1907623708248,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a4726a3d.558568"
+            ]
+        ]
+    },
+    {
+        "id": "9f2060bc.fb7c6",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2599.3849334716797,
+        "y": 1516.8574628829956,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "6a782334.6926ac"
+            ]
+        ]
+    },
+    {
+        "id": "a2eac231.37f33",
+        "type": "set",
+        "name": "set variables for generating unique name",
+        "xml": "<set>\n<parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$tmp.ar-name`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n",
+        "comments": "",
+        "x": 2246.004165649414,
+        "y": 1412.0003299415112,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "6a782334.6926ac",
+        "type": "set",
+        "name": "set tmp.ar-name to generated name",
+        "xml": "<set>\n<parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\n",
+        "comments": "",
+        "x": 2846.575096130371,
+        "y": 1517.333545833826,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "a4726a3d.558568",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",
+        "comments": "",
+        "x": 2767.9086112976074,
+        "y": 1484.619276046753,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "d7a09bb1.7dfc58",
+        "type": "set",
+        "name": "set fq_name",
+        "xml": "<set>\n<parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />\n",
+        "comments": "",
+        "x": 515.3371810913086,
+        "y": 1457.6666278839111,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "846017e5.c13a98",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $defaultDomain",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultDomain\"/>\n    <parameter name=\"replacement\" value=\"default-domain\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 622.6705322265625,
+        "y": 1487.6666707992554,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "329e94ed.128dbc",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $defaultProject",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$defaultProject\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.tenant-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 622.6705627441406,
+        "y": 1521.000111579895,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9537b55.6a49048",
+        "type": "comment",
+        "name": "generate fqname",
+        "info": "",
+        "comments": "",
+        "x": 524.3372268676758,
+        "y": 1430.9999341964722,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "e081301c.9853a",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace $sdncNetworkPolicy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.fq-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fq-name\"/>\n    <parameter name=\"target\" value=\"$sdncNetworkPolicy\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 636.0038681030273,
+        "y": 1554.3332662582397,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fd2d75b0.6cb4a8",
+        "type": "comment",
+        "name": "Set onap-model-info",
+        "info": "",
+        "comments": "",
+        "x": 521.1468734741211,
+        "y": 875.5714731216431,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "e99fb45b.d57118",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$ar-model.invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$ar-model.uuid`\" />\n\t<parameter name=\"operational-status\" value=\"null\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 535.8610954284668,
+        "y": 2453.5715522766113,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8acb12c2.f6f87",
+                "250daf6.713705"
+            ]
+        ]
+    },
+    {
+        "id": "8acb12c2.f6f87",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 791.6230278015137,
+        "y": 2430.809726715088,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d00038bb.baddb8"
+            ]
+        ]
+    },
+    {
+        "id": "250daf6.713705",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 796.9324569702148,
+        "y": 2466.3811445236206,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d00038bb.baddb8"
+            ]
+        ]
+    },
+    {
+        "id": "d00038bb.baddb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1006.7182426452637,
+        "y": 2432.428771018982,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "bc1017e5.305348",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"tmp.ar-name=\"/>\n<parameter name=\"field3\" value=\"`$tmp.ar-name`\"/>\n<parameter name=\"field4\" value=\"generate-unique-name-input.prefix\" />\n<parameter name=\"field5\" value=\"`$generate-unique-name-input.prefix`\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 2137.2039642333984,
+        "y": 1447.0004267394543,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6d745a26.0c7354",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 568.6036758422852,
+        "y": 1134.3336181640625,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8af0f89a.27c2a8",
+                "26bb6725.34ecc8"
+            ]
+        ]
+    },
+    {
+        "id": "8af0f89a.27c2a8",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 919.6039352416992,
+        "y": 1132.0001306533813,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "50061d1e.aa0f94"
+            ]
+        ]
+    },
+    {
+        "id": "26bb6725.34ecc8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 912.2707290649414,
+        "y": 1093.9999256134033,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "ce51d766.4e8ee8"
+            ]
+        ]
+    },
+    {
+        "id": "b8bb95ad.9a2df8",
+        "type": "for",
+        "name": "for nidx..service-data.networks.network[]",
+        "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2072.7152938842773,
+        "y": 1130.4445645213127,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "87c290d7.ffb84"
+            ]
+        ]
+    },
+    {
+        "id": "ffb63116.26d27",
+        "type": "switchNode",
+        "name": "switch service-data.networks.network_length",
+        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1308.429298400879,
+        "y": 1131.0159149169922,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "87f83d80.0aba7",
+                "94644dd9.fb776"
+            ]
+        ]
+    },
+    {
+        "id": "87f83d80.0aba7",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1597.429298400879,
+        "y": 1133.0159759521484,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a14b778d.061fa8"
+            ]
+        ]
+    },
+    {
+        "id": "94644dd9.fb776",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1577.429298400879,
+        "y": 1168.0159759521484,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "38fa1da0.7d4562"
+            ]
+        ]
+    },
+    {
+        "id": "5c5cbd2b.585f54",
+        "type": "switchNode",
+        "name": "switch networkid found",
+        "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2517.1439571380615,
+        "y": 1092.694730758667,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "42cfffd1.f91eb"
+            ]
+        ]
+    },
+    {
+        "id": "38fa1da0.7d4562",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1778.699317932129,
+        "y": 1169.570541381836,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b8bb95ad.9a2df8",
+                "e5b36746.9138e8",
+                "c3a2fe60.10d47"
+            ]
+        ]
+    },
+    {
+        "id": "50061d1e.aa0f94",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1050.7151184082031,
+        "y": 1131.444492340088,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "ffb63116.26d27"
+            ]
+        ]
+    },
+    {
+        "id": "ce51d766.4e8ee8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1066.4041366577148,
+        "y": 1093.0001208782196,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "a14b778d.061fa8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1787.2040939331055,
+        "y": 1131.0001277923584,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "8cb14e0e.cb709",
+        "type": "set",
+        "name": "set tmp vals",
+        "xml": "<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n<parameter name='source-network-found' value='true' />\n\n",
+        "comments": "",
+        "x": 3026.2041454315186,
+        "y": 1072.0001201629639,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "c64ef011.65ec9",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2836.2705879211426,
+        "y": 1085.0001316070557,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8cb14e0e.cb709",
+                "ab273234.3352d"
+            ]
+        ]
+    },
+    {
+        "id": "42cfffd1.f91eb",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2686.8041133880615,
+        "y": 1091.0000038146973,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "c64ef011.65ec9"
+            ]
+        ]
+    },
+    {
+        "id": "d6eb6250.74fe",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 2401.6038246154785,
+        "y": 1165.0001640319824,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "c2621055.c2754",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get Parent service network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-parentnetwork-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"parent-net\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1516.0039291381836,
+        "y": 1683.0001859664917,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "f806e9f1.0a0b88",
+                "47f327d7.b4ce88"
+            ]
+        ]
+    },
+    {
+        "id": "f806e9f1.0a0b88",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1825.2999839782715,
+        "y": 1683.8080487251282,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "788c3f86.e2829"
+            ]
+        ]
+    },
+    {
+        "id": "788c3f86.e2829",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1994.2999877929688,
+        "y": 1682.3079495429993,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a8358589.e721f8"
+            ]
+        ]
+    },
+    {
+        "id": "a8358589.e721f8",
+        "type": "switchNode",
+        "name": "switch network length",
+        "xml": "<switch test='`$parent-net.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2205.1572303771973,
+        "y": 1681.9270787239075,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7e646c9f.895f44",
+                "b4b35449.efef08"
+            ]
+        ]
+    },
+    {
+        "id": "7e646c9f.895f44",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2414.4905014038086,
+        "y": 1681.9269938468933,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7c7775ff.623fcc"
+            ]
+        ]
+    },
+    {
+        "id": "6e8d9ed9.3a19",
+        "type": "comment",
+        "name": "GET dest network from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 1461.299903869629,
+        "y": 1624.307852268219,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "47f327d7.b4ce88",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1817.1517868041992,
+        "y": 1718.8741335868835,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "2c4366b0.10342a"
+            ]
+        ]
+    },
+    {
+        "id": "2c4366b0.10342a",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1997.1517372131348,
+        "y": 1719.540684223175,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a5487cce.5643f"
+            ]
+        ]
+    },
+    {
+        "id": "4888c4bf.132c3c",
+        "type": "execute",
+        "name": "generate parent-network url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-parentnetwork-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 552.0040283203125,
+        "y": 429.0000228881836,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a5487cce.5643f",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No existing parent netorks\" />\n    \n",
+        "comments": "",
+        "x": 2182.003860473633,
+        "y": 1721.0001629590988,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "b4b35449.efef08",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2416.003734588623,
+        "y": 1717.0000939369202,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "32b9b839.5a1048"
+            ]
+        ]
+    },
+    {
+        "id": "32b9b839.5a1048",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Network id not found.  Parent Service should only have one network\" />\n    \n",
+        "comments": "",
+        "x": 2582.3317108154297,
+        "y": 1716.9472088813782,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "7c7775ff.623fcc",
+        "type": "set",
+        "name": "set dest network id",
+        "xml": "<set>\n<parameter name='ar-assignments.dest-network.network-id' value=\"`$parent-net.networks.network[0].network-id` \" />\n\n\n\n",
+        "comments": "",
+        "x": 2592.3535537719727,
+        "y": 1683.0001463890076,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "216c7c53.3511e4",
+        "type": "comment",
+        "name": "Find tenant/cloud region from source network",
+        "info": "",
+        "comments": "",
+        "x": 598.0039672851562,
+        "y": 1099.000024318695,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "e2239d78.dc34",
+        "type": "execute",
+        "name": "generate contrail-applied-service url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-contrailappliedsvc-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.contrail-applied-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 579.204029083252,
+        "y": 459.0000247955322,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5ddff342.e4df3c",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get vnf",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-contrailappliedsvc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"vnf\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 565.2039566040039,
+        "y": 1814.6668605804443,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "ef846094.0169c",
+                "33a1c4a3.2f55bc"
+            ]
+        ]
+    },
+    {
+        "id": "ef846094.0169c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 944.5000762939453,
+        "y": 1807.8080350160599,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "2dafc941.bd65e6"
+            ]
+        ]
+    },
+    {
+        "id": "2dafc941.bd65e6",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1113.5000801086426,
+        "y": 1806.307935833931,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "441a5438.6dce1c"
+            ]
+        ]
+    },
+    {
+        "id": "441a5438.6dce1c",
+        "type": "switchNode",
+        "name": "switch vnf length",
+        "xml": "<switch test='`$vnf.vnfs.vnf_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1324.357322692871,
+        "y": 1805.9270650148392,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "55c34485.1a3a6c",
+                "97a3c7a3.cd7a68"
+            ]
+        ]
+    },
+    {
+        "id": "55c34485.1a3a6c",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1515.6908149719238,
+        "y": 1799.9270482063293,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "3f9b4d33.6afa52"
+            ]
+        ]
+    },
+    {
+        "id": "1dfdd5e8.68e2ca",
+        "type": "comment",
+        "name": "GET contrail vnf for contrail applied service  from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 627.8333969116211,
+        "y": 1776.6413373947144,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "33a1c4a3.2f55bc",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 936.351879119873,
+        "y": 1842.8741198778152,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "e82fcfa1.60da4"
+            ]
+        ]
+    },
+    {
+        "id": "e82fcfa1.60da4",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1116.3518295288086,
+        "y": 1843.5406705141068,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b3f3680a.ed3e28"
+            ]
+        ]
+    },
+    {
+        "id": "b3f3680a.ed3e28",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No existing contrail applied service vnfs\" />\n    \n",
+        "comments": "",
+        "x": 1301.2039527893066,
+        "y": 1845.0001492500305,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "97a3c7a3.cd7a68",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1517.2040481567383,
+        "y": 1835.0001482963562,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "9094a451.613fc8"
+            ]
+        ]
+    },
+    {
+        "id": "9094a451.613fc8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: vnf id not found.  Contrail applied service should only have one vnf\" />\n    \n",
+        "comments": "",
+        "x": 1681.5319519042969,
+        "y": 1834.94731092453,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "3f9b4d33.6afa52",
+        "type": "set",
+        "name": "set applied service vnf id",
+        "xml": "<set>\n<parameter name='ar-assignments.contrail-applied-service.vnf-id' value=\"`$vnf.vnfs.vnf[0].vnf-id` \" />\n\n\n\n",
+        "comments": "",
+        "x": 1726.8040199279785,
+        "y": 1799.0002388954163,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "4affa6c3.5650c8",
+        "type": "comment",
+        "name": "Generate contrail route name",
+        "info": "",
+        "comments": "",
+        "x": 550.0039520263672,
+        "y": 1223.0000276565552,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "241b0a1a.040746",
+        "type": "comment",
+        "name": "GET contrail fqdn from vnf/vf-module",
+        "info": "",
+        "comments": "",
+        "x": 580.3373031616211,
+        "y": 1917.6669092178345,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "5f1ba758.495008",
+        "type": "switchNode",
+        "name": "switch contrail-route-request-input.constrail-applied-service-info.contrail-fqdn",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 686.0040054321289,
+        "y": 1959.0002427101135,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "e8efa7a8.736b38",
+                "b22d9dd3.f64d8"
+            ]
+        ]
+    },
+    {
+        "id": "e8efa7a8.736b38",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1078.0039710998535,
+        "y": 1949.0000647306442,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b254b3ef.ebc57"
+            ]
+        ]
+    },
+    {
+        "id": "b22d9dd3.f64d8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1061.0038986206055,
+        "y": 1986.0000519752502,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a058e74f.55aa98"
+            ]
+        ]
+    },
+    {
+        "id": "a058e74f.55aa98",
+        "type": "set",
+        "name": "set applied service fqdn",
+        "xml": "<set>\n<parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn` \" />\n\n\n\n",
+        "comments": "",
+        "x": 1252.0039138793945,
+        "y": 1986.0000859498978,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "b254b3ef.ebc57",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1264.0039749145508,
+        "y": 1949.00006377697,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a0bebd1.5d35d4",
+                "5f68ea4a.6a1ad4"
+            ]
+        ]
+    },
+    {
+        "id": "9ed05f14.02b3a",
+        "type": "comment",
+        "name": "GET dest network from parent service",
+        "info": "",
+        "comments": "",
+        "x": 570.670524597168,
+        "y": 1655.0000686645508,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "3b7ee06a.f8b51",
+        "type": "switchNode",
+        "name": "switch contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 762.0039825439453,
+        "y": 1683.000023841858,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8ecd2ff2.b9e9a",
+                "cc62d74c.c1a2e8"
+            ]
+        ]
+    },
+    {
+        "id": "8ecd2ff2.b9e9a",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1204.0038833618164,
+        "y": 1683.0000393390656,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "c2621055.c2754"
+            ]
+        ]
+    },
+    {
+        "id": "cc62d74c.c1a2e8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1186.0038871765137,
+        "y": 1716.0000400543213,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "84dd6a6a.65bf68"
+            ]
+        ]
+    },
+    {
+        "id": "84dd6a6a.65bf68",
+        "type": "set",
+        "name": "set dest network id",
+        "xml": "<set>\n<parameter name='ar-assignments.dest-network.network-id' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id` \" />\n\n\n\n",
+        "comments": "",
+        "x": 1378.003849029541,
+        "y": 1718.9999952316284,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "7b646249.f51a2c",
+        "type": "comment",
+        "name": "GET contrail fqdn via AAI",
+        "info": "",
+        "comments": "",
+        "x": 1517.2039642333984,
+        "y": 1912.9999675750732,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "a0bebd1.5d35d4",
+        "type": "get-resource",
+        "name": "get-resource generic-vnf",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"generic-vnf\" \n\t\tkey=\"generic-vnf.vnf-id = $ar-assignments.contrail-applied-service.vnf-id\"\n        pfx='aai.vnf' local-only='false' >\n        \n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1527.2039642333984,
+        "y": 1948.9999685287476,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d808221.d92d0e",
+                "5ef4a02a.42306"
+            ]
+        ]
+    },
+    {
+        "id": "5ef4a02a.42306",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1729.8435707092285,
+        "y": 1977.8053374290466,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "82e0cc2c.ce754"
+            ]
+        ]
+    },
+    {
+        "id": "82e0cc2c.ce754",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving vnf from AAI\" />\n",
+        "comments": "",
+        "x": 1905.7957954406738,
+        "y": 1981.1386713981628,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "d808221.d92d0e",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1732.3433952331543,
+        "y": 1947.8054151535034,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "8d4eb08.378ca5"
+            ]
+        ]
+    },
+    {
+        "id": "8d4eb08.378ca5",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Vnf not found in AAI\" />\n",
+        "comments": "",
+        "x": 1900.121280670166,
+        "y": 1947.1108450889587,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "840da30b.94703",
+        "type": "comment",
+        "name": "Loop through vf modeuls looking for contrail fqdn",
+        "info": "",
+        "comments": "",
+        "x": 1600.8706130981445,
+        "y": 2017.3335008621216,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "4c3a7db3.5cd594",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 499.20395278930664,
+        "y": 2416.9999961853027,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "5fefa6f9.3a77d8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent provided service AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 641.2040672302246,
+        "y": 2549.0002632141113,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4b453088.13e21",
+                "db902bd9.e2c338",
+                "e615d74a.c6fc18"
+            ]
+        ]
+    },
+    {
+        "id": "4b453088.13e21",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 963.5120849609375,
+        "y": 2593.998480796814,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b694161e.b1bf88"
+            ]
+        ]
+    },
+    {
+        "id": "db902bd9.e2c338",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 954.512134552002,
+        "y": 2562.4985065460205,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b694161e.b1bf88"
+            ]
+        ]
+    },
+    {
+        "id": "e615d74a.c6fc18",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 958.2621726989746,
+        "y": 2532.855611421168,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "115a2a7e.d97726"
+            ]
+        ]
+    },
+    {
+        "id": "b694161e.b1bf88",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1124.2621726989746,
+        "y": 2563.2485303878784,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "115a2a7e.d97726",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1099.918140411377,
+        "y": 2529.047780610621,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "74edca12.815734",
+        "type": "comment",
+        "name": "Put the parent allotted resource in mdsal",
+        "info": "",
+        "comments": "",
+        "x": 568.2040328979492,
+        "y": 2517.0000886917114,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "264a617a.dba88e",
+        "type": "switchNode",
+        "name": "switch tmp.found-cidx",
+        "xml": "<switch test='`$tmp.found-cidx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1283.2039337158203,
+        "y": 2273.0000586509705,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "93572ecb.afdae"
+            ]
+        ]
+    },
+    {
+        "id": "93572ecb.afdae",
+        "type": "outcomeTrue",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1473.2038879394531,
+        "y": 2272.9999957084656,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b7b1719a.2b029"
+            ]
+        ]
+    },
+    {
+        "id": "b7b1719a.2b029",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1639.2038879394531,
+        "y": 2272.9999957084656,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "308899ad.18e666"
+            ]
+        ]
+    },
+    {
+        "id": "308899ad.18e666",
+        "type": "set",
+        "name": "set tmp.cidx ",
+        "xml": "<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n",
+        "comments": "",
+        "x": 1885.0612163543701,
+        "y": 2273.571469783783,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "40e2c37b.f6506c",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 2435.203887939453,
+        "y": 2270.9999957084656,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "a348f9e1.479f68",
+        "type": "execute",
+        "name": "generate parent-ar url - replace service-instance-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 623.2040939331055,
+        "y": 491.0000581741333,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e6b7c56f.4a4108",
+        "type": "execute",
+        "name": "generate parent-ar url - replace allotted-resource-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 628.2039642333984,
+        "y": 526.0000591278076,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4fa30610.874dd8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent provided service AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1340.337501525879,
+        "y": 2983.333375930786,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4d27fc7a.e0a564",
+                "fca9d210.32923",
+                "5baae4aa.9e3f8c"
+            ]
+        ]
+    },
+    {
+        "id": "b4ec98ab.b04568",
+        "type": "comment",
+        "name": "Rollback parent",
+        "info": "",
+        "comments": "",
+        "x": 1184.3374290466309,
+        "y": 2953.0000064373016,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "4b9fa7f1.b30308",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 993.0040321350098,
+        "y": 2982.666679382324,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "4fa30610.874dd8",
+                "676e8a31.aad434"
+            ]
+        ]
+    },
+    {
+        "id": "4d27fc7a.e0a564",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1711.64554977417,
+        "y": 3043.9983422756195,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7488686d.da8948"
+            ]
+        ]
+    },
+    {
+        "id": "fca9d210.32923",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1702.6455993652344,
+        "y": 3012.498368024826,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7488686d.da8948"
+            ]
+        ]
+    },
+    {
+        "id": "5baae4aa.9e3f8c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1706.395637512207,
+        "y": 2982.8554728999734,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7488686d.da8948"
+            ]
+        ]
+    },
+    {
+        "id": "7488686d.da8948",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1848.0516052246094,
+        "y": 2979.0476420894265,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5182c386.6fc00c",
+        "type": "execute",
+        "name": "generate network-ar url - replace service-instance-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 630.0039291381836,
+        "y": 560.9999933242798,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b4d8f0cc.1375d",
+        "type": "execute",
+        "name": "generate network-ar url - replace network-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$ar-assignments.dest-network.network-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 575.3373336791992,
+        "y": 2736.3331060409546,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d3ab9d9.302806",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent network provided AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"net-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 636.0039749145508,
+        "y": 2768.332983016968,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b126a6ab.fc31a8",
+                "21f26a3d.14b8a6",
+                "58552a71.cf4904"
+            ]
+        ]
+    },
+    {
+        "id": "21f26a3d.14b8a6",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1043.3120384216309,
+        "y": 2769.998592376709,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d04555d.20f10a8"
+            ]
+        ]
+    },
+    {
+        "id": "58552a71.cf4904",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1035.9787483215332,
+        "y": 2805.165050506592,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d04555d.20f10a8"
+            ]
+        ]
+    },
+    {
+        "id": "b126a6ab.fc31a8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1038.0620727539062,
+        "y": 2735.52213678509,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d04555d.20f10a8"
+            ]
+        ]
+    },
+    {
+        "id": "d04555d.20f10a8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1209.7179679870605,
+        "y": 2740.047920227051,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "70cece64.b0035",
+                "f47586c7.4dd958"
+            ]
+        ]
+    },
+    {
+        "id": "9c8b757d.7ff708",
+        "type": "comment",
+        "name": "Add AR to  parent network allotted resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 604.0038681030273,
+        "y": 2696.666604042053,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "f47586c7.4dd958",
+        "type": "switchNode",
+        "name": "switch net-ar_length",
+        "xml": "<switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1436.3371238708496,
+        "y": 2779.333092689514,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "81789afc.459478",
+                "18863aec.cdfac5"
+            ]
+        ]
+    },
+    {
+        "id": "f3c02a8e.4fd868",
+        "type": "for",
+        "name": "for nidx..net-ar[]",
+        "xml": "<for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2154.6705780029297,
+        "y": 2800.3330993652344,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "aaf9c25b.d0a4e"
+            ]
+        ]
+    },
+    {
+        "id": "81789afc.459478",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1719.1461906433105,
+        "y": 2734.9044456481934,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "a9b1914.36cf07"
+            ]
+        ]
+    },
+    {
+        "id": "18863aec.cdfac5",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1700.8128395080566,
+        "y": 2808.5711641311646,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "400b37af.daefc8"
+            ]
+        ]
+    },
+    {
+        "id": "aaf9c25b.d0a4e",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test=\"`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2379.765636444092,
+        "y": 2807.3930249214172,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "3f6707e6.536828"
+            ]
+        ]
+    },
+    {
+        "id": "3f6707e6.536828",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2562.909149169922,
+        "y": 2802.8570713996887,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "cf3b236d.afba4"
+            ]
+        ]
+    },
+    {
+        "id": "400b37af.daefc8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1903.2733039855957,
+        "y": 2811.3636326789856,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "f3c02a8e.4fd868",
+                "b5ca1c40.ba898"
+            ]
+        ]
+    },
+    {
+        "id": "cf3b236d.afba4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2729.6701126098633,
+        "y": 2804.380966901779,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b9c29337.bffea",
+                "e860e228.44b05"
+            ]
+        ]
+    },
+    {
+        "id": "b9a5525f.e748d",
+        "type": "outcomeTrue",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2333.7217140197754,
+        "y": 2844.0419883728027,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "3c162262.2edd8e"
+            ]
+        ]
+    },
+    {
+        "id": "3c162262.2edd8e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2503.0548133850098,
+        "y": 2842.375241279602,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "97955dea.94fa8",
+                "b0991330.37b1f",
+                "19342dda.0ed522"
+            ]
+        ]
+    },
+    {
+        "id": "97955dea.94fa8",
+        "type": "set",
+        "name": "set tmp.nidx ",
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />\n",
+        "comments": "",
+        "x": 2708.9120597839355,
+        "y": 2847.946852207184,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "71697d2f.ce67a4",
+        "type": "comment",
+        "name": "allotted resource already exists- no op",
+        "info": "",
+        "comments": "",
+        "x": 2425.003807067871,
+        "y": 2658.3331480026245,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "b5ca1c40.ba898",
+        "type": "switchNode",
+        "name": "switch tmp.found-nidx",
+        "xml": "<switch test='`$tmp.found-nidx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2163.721622467041,
+        "y": 2842.375159263611,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "b9a5525f.e748d"
+            ]
+        ]
+    },
+    {
+        "id": "b9c29337.bffea",
+        "type": "set",
+        "name": "set tmp.nidx ",
+        "xml": "<set>\n<parameter name='tmp.found-nidx' value='true' />",
+        "comments": "",
+        "x": 2941.6705055236816,
+        "y": 2795.6662425994873,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "e860e228.44b05",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 2928.864610671997,
+        "y": 2829.0894317626953,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "b0991330.37b1f",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent network provided AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"p-network-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2876.0039253234863,
+        "y": 2913.6661825180054,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d0deebe0.5c10c8",
+                "ce47a3d3.8ea39",
+                "abaaa05a.34376"
+            ]
+        ]
+    },
+    {
+        "id": "abaaa05a.34376",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3219.0038719177246,
+        "y": 2959.9996099472046,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "88cce4e7.5ce3b8"
+            ]
+        ]
+    },
+    {
+        "id": "ce47a3d3.8ea39",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3210.003921508789,
+        "y": 2928.499635696411,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "88cce4e7.5ce3b8"
+            ]
+        ]
+    },
+    {
+        "id": "d0deebe0.5c10c8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3213.7539596557617,
+        "y": 2898.8567405715585,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "88cce4e7.5ce3b8"
+            ]
+        ]
+    },
+    {
+        "id": "88cce4e7.5ce3b8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 3398.743251800537,
+        "y": 2895.048861503601,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "70cece64.b0035",
+        "type": "set",
+        "name": "set tmp.found-nidx = false",
+        "xml": "<set>\n<parameter name='tmp.found-nidx' value='false' />",
+        "comments": "",
+        "x": 1453.0038871765137,
+        "y": 2709.666962623596,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "19342dda.0ed522",
+        "type": "set",
+        "name": "set length",
+        "xml": "<set>\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value=\"`$tmp.ar.allotted-resource-id`\" />\n",
+        "comments": "",
+        "x": 2703.670211791992,
+        "y": 2882.000111103058,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "cf2e9848.75b068",
+        "type": "set",
+        "name": "set new network-provided-ar",
+        "xml": "<set>\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value=\"1\" />\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value=\"`$tmp.ar.allotted-resource-id`\" />\n\n\n\n\n",
+        "comments": "",
+        "x": 2220.003257751465,
+        "y": 2738.2850757837296,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "a9b1914.36cf07",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1916.6709251403809,
+        "y": 2734.9993047714233,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "cf2e9848.75b068",
+                "b0991330.37b1f"
+            ]
+        ]
+    },
+    {
+        "id": "532c07a7.4fc418",
+        "type": "comment",
+        "name": "Other Rollbacks? ",
+        "info": "",
+        "comments": "",
+        "x": 1190.003776550293,
+        "y": 3044.9997510910034,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "1a6cf55.8e55d0b",
+        "type": "for",
+        "name": "for each vf-module",
+        "xml": "<for index='idx' start='0' end='`$aai.vnf.vf-modules.vf-module_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1942.1624755859375,
+        "y": 2083.2690420150757,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "f9f855ba.54c4e8"
+            ]
+        ]
+    },
+    {
+        "id": "3073c90c.2b8396",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 2821.734062194824,
+        "y": 2147.5073776245117,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "f9f855ba.54c4e8",
+        "type": "switchNode",
+        "name": "switch contrail-service-instance-fqdn",
+        "xml": "<switch test='`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2225.67041015625,
+        "y": 2083.9997549057007,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "16e107d0.dce698",
+                "e20c70a0.0635e"
+            ]
+        ]
+    },
+    {
+        "id": "e93e13c6.51ba8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"VF Module not found in AAI\" />\n",
+        "comments": "",
+        "x": 1923.61474609375,
+        "y": 2050.9721670150757,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "16e107d0.dce698",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2505.67041015625,
+        "y": 2085.3330068588257,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "75bfef9d.b7113"
+            ]
+        ]
+    },
+    {
+        "id": "e20c70a0.0635e",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2487.6704139709473,
+        "y": 2118.3330075740814,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "6a2486ce.7e5db8"
+            ]
+        ]
+    },
+    {
+        "id": "75bfef9d.b7113",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2662.3373260498047,
+        "y": 2083.666416168213,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6a2486ce.7e5db8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2669.0036544799805,
+        "y": 2115.3330125808716,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "3073c90c.2b8396",
+                "91e70d26.1944f"
+            ]
+        ]
+    },
+    {
+        "id": "91e70d26.1944f",
+        "type": "set",
+        "name": "set applied service fqdn",
+        "xml": "<set>\n<parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value=\"`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn` \" />\n\n\n\n",
+        "comments": "",
+        "x": 2880.3369140625,
+        "y": 2114.666625022888,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "50a5d5ae.00038c",
+        "type": "switchNode",
+        "name": "switch ar-assignments.contrail-applied-service.contrail-fqdn",
+        "xml": "<switch test='`$ar-assignments.contrail-applied-service.contrail-fqdn`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 639.0039672851562,
+        "y": 2032.6666250228882,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7ef88d8c.1753f4"
+            ]
+        ]
+    },
+    {
+        "id": "7ef88d8c.1753f4",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 967.6706504821777,
+        "y": 2033.3331513404846,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "906fc5d.d193b38"
+            ]
+        ]
+    },
+    {
+        "id": "906fc5d.d193b38",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: No vf-module with contrail-service-instance-fqdn found in AAI\" />\n    \n",
+        "comments": "",
+        "x": 1143.6705322265625,
+        "y": 2031.6665029525757,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "9435780f.70de68",
+        "type": "comment",
+        "name": "MDSal adaptor only saves consuming service so parent service and AR are done by Rest api calls",
+        "info": "",
+        "comments": "",
+        "x": 617.670524597168,
+        "y": 69.99999523162842,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "ab273234.3352d",
+        "type": "get-resource",
+        "name": "get-resource tenant",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3048.670690536499,
+        "y": 1107.999815940857,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "1e32de4c.b2c362",
+                "cacc25d0.431aa8",
+                "ffdd0952.ef2388"
+            ]
+        ]
+    },
+    {
+        "id": "1e32de4c.b2c362",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3269.5320796966553,
+        "y": 1100.61093044281,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "84327f8e.42c2a"
+            ]
+        ]
+    },
+    {
+        "id": "cacc25d0.431aa8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3264.8651065826416,
+        "y": 1133.9442443847656,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "84327f8e.42c2a"
+            ]
+        ]
+    },
+    {
+        "id": "84327f8e.42c2a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n",
+        "comments": "",
+        "x": 3439.0410289764404,
+        "y": 1121.9998035430908,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "ffdd0952.ef2388",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3265.0411128997803,
+        "y": 1069.0368947982788,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "5ac31447.f8751c"
+            ]
+        ]
+    },
+    {
+        "id": "5ac31447.f8751c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 3445.0411128997803,
+        "y": 1067.0368947982788,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "7452fdf2.e453e4"
+            ]
+        ]
+    },
+    {
+        "id": "7452fdf2.e453e4",
+        "type": "set",
+        "name": "set tenant name",
+        "xml": "<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n",
+        "comments": "",
+        "x": 3632.004217147827,
+        "y": 1064.66663646698,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "87c290d7.ffb84",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2311.40380859375,
+        "y": 1094.9999990463257,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "5c5cbd2b.585f54",
+                "cf63926f.05ca8"
+            ]
+        ]
+    },
+    {
+        "id": "cf63926f.05ca8",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"tmp.ar-name=\"/>\n<parameter name=\"field3\" value=\"`$tmp.ar-name`\"/>\n<parameter name=\"field4\" value=\"service-data-network-id\" />\n<parameter name=\"field5\" value=\"`$service-data.networks.network[$nidx].network-id`\" />\n<parameter name=\"field6\" value=\"contrail-route-input-network-id\" />\n<parameter name=\"field7\" value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`\" />\n<parameter name=\"field8\" value=\"`$nidx`\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 2476.0039825439453,
+        "y": 1058.000126838684,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e5b36746.9138e8",
+        "type": "set",
+        "name": "set source-network-found",
+        "xml": "<set>\n<parameter name='source-network-found' value='false' />\n\n",
+        "comments": "",
+        "x": 2034.0041046142578,
+        "y": 1099.000039756298,
+        "z": "85f9bda0.40ea6",
+        "wires": []
+    },
+    {
+        "id": "c3a2fe60.10d47",
+        "type": "switchNode",
+        "name": "switch source-network-found",
+        "xml": "<switch test=\"`$source-network-found`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2038.003978729248,
+        "y": 1165.0000324249268,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "dadae59.dcff218"
+            ]
+        ]
+    },
+    {
+        "id": "dadae59.dcff218",
+        "type": "outcomeTrue",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2250.003936767578,
+        "y": 1165.000033378601,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "d6eb6250.74fe"
+            ]
+        ]
+    },
+    {
+        "id": "5f68ea4a.6a1ad4",
+        "type": "switchNode",
+        "name": "switch vf-module_length",
+        "xml": "<switch test='`$aai.vnf.vf-modules.vf-module_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1525.00390625,
+        "y": 2049.9999990463257,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "782bd89.42bc228",
+                "163262d8.631f3d"
+            ]
+        ]
+    },
+    {
+        "id": "782bd89.42bc228",
+        "type": "other",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1730.00390625,
+        "y": 2050.9999990463257,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "e93e13c6.51ba8"
+            ]
+        ]
+    },
+    {
+        "id": "163262d8.631f3d",
+        "type": "other",
+        "name": "outcome other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1730.00390625,
+        "y": 2081.9999990463257,
+        "z": "85f9bda0.40ea6",
+        "wires": [
+            [
+                "1a6cf55.8e55d0b"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index 5de4488..db50959 100755 (executable)
@@ -1 +1,1644 @@
-[{"id":"977f53d.3ee9fb","type":"dgstart","name":"DGSTART","outputs":1,"x":107,"y":51,"z":"5f90649b.a6618c","wires":[["f60ed586.79f2e8"]]},{"id":"f60ed586.79f2e8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":253.2380828857422,"y":125.95239353179932,"z":"5f90649b.a6618c","wires":[["7ed7da9d.6e2b64"]]},{"id":"7ed7da9d.6e2b64","type":"method","name":"contrail-route-topology-operation-create","xml":"<method rpc='contrail-route-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":333.1548500061035,"y":195.1904420852661,"z":"5f90649b.a6618c","wires":[["56f7100c.36c0c"]]},{"id":"56f7100c.36c0c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":241.4761848449707,"y":338.523784160614,"z":"5f90649b.a6618c","wires":[["9e479a64.54c188","e3448fe7.bd93a","8da0a386.68f65","9aff23ea.c5706","14b94fc4.c4f09","98b3a116.8663e","15a1d923.552617","d9a64061.5a09f","8dd7a6c4.f97498","4c8c7d6c.390284","2f8ea3d3.25d61c","df03f36f.1c4a","c6e8d07f.0b15c","21f56f54.bd659","c191a157.b6674","f0fa32bd.ad602","9525be20.92483","63945192.1184c","dcc82b6d.bd0448","3fc1cd7b.ce8842","7ce279cd.dfcc18","84f94150.403b","674f14d2.772d8c","fa1647e6.8bb8f8"]]},{"id":"e3448fe7.bd93a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":439.7144775390625,"y":2006.7268590070307,"z":"5f90649b.a6618c","wires":[]},{"id":"9e479a64.54c188","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":468.4683837890625,"y":1969.182652387768,"z":"5f90649b.a6618c","wires":[]},{"id":"4c8c7d6c.390284","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":501.8017692565918,"y":1841.563532743603,"z":"5f90649b.a6618c","wires":[]},{"id":"9aff23ea.c5706","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":503.7380561828613,"y":312.3333215713501,"z":"5f90649b.a6618c","wires":[]},{"id":"8da0a386.68f65","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n\n","comments":"","x":550.9973297119141,"y":278.5925884246826,"z":"5f90649b.a6618c","wires":[]},{"id":"14b94fc4.c4f09","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":565.4219818115234,"y":348.23153495788574,"z":"5f90649b.a6618c","wires":[[]]},{"id":"15a1d923.552617","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":583.8520965576172,"y":519.7928762435913,"z":"5f90649b.a6618c","wires":[["a2f6a7ce.665958","f3b38cd6.2e6e6"]]},{"id":"98b3a116.8663e","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":538.0648651123047,"y":404.01720237731934,"z":"5f90649b.a6618c","wires":[[]]},{"id":"a2f6a7ce.665958","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":825.8148498535156,"y":517.2673225402832,"z":"5f90649b.a6618c","wires":[["20f015d.23979ea"]]},{"id":"d9a64061.5a09f","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":519.0769958496094,"y":1926.0893211364746,"z":"5f90649b.a6618c","wires":[["c10dc6ee.696618","805abac4.a6c908","3cb9e4ff.c3e14c"]]},{"id":"c10dc6ee.696618","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":801.8849945068359,"y":1961.9445136152208,"z":"5f90649b.a6618c","wires":[["950a7649.40f1f8"]]},{"id":"805abac4.a6c908","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":792.8850440979004,"y":1930.4445393644273,"z":"5f90649b.a6618c","wires":[["950a7649.40f1f8"]]},{"id":"3cb9e4ff.c3e14c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":796.635082244873,"y":1900.8016442395747,"z":"5f90649b.a6618c","wires":[["993aa5dc.bb4718"]]},{"id":"950a7649.40f1f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":962.635082244873,"y":1931.1945632062852,"z":"5f90649b.a6618c","wires":[]},{"id":"20f015d.23979ea","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":994.8148536682129,"y":515.7672233581543,"z":"5f90649b.a6618c","wires":[["729d2c16.7a05d4"]]},{"id":"729d2c16.7a05d4","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1205.6720962524414,"y":515.3863525390625,"z":"5f90649b.a6618c","wires":[["2012dd5e.936ac2","ea94432e.31d92"]]},{"id":"2012dd5e.936ac2","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1395.0054016113281,"y":515.3863105773926,"z":"5f90649b.a6618c","wires":[["976ad675.132198"]]},{"id":"f33b796d.cb9ac8","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1868.1962203979492,"y":478.62452602386475,"z":"5f90649b.a6618c","wires":[]},{"id":"976ad675.132198","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1579.529291152954,"y":512.2911443710327,"z":"5f90649b.a6618c","wires":[["f33b796d.cb9ac8","20c37c8e.57cb74"]]},{"id":"26a328fb.e4fd48","type":"comment","name":"GET contrail-route-allotted-resource from mdsal","info":"","comments":"","x":593.8147926330566,"y":483.7672119140625,"z":"5f90649b.a6618c","wires":[]},{"id":"f0fa32bd.ad602","type":"set","name":"set ar-assignments.contrail-id","xml":"<set>\n<parameter name='ar-assignments.contrail-id' value=\"`$contrailResp.network-policy.uuid`\" />\n\n\n\n","comments":"","x":523.6721115112305,"y":1402.565318107605,"z":"5f90649b.a6618c","wires":[]},{"id":"20c37c8e.57cb74","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":1956.0532722473145,"y":445.4340181350708,"z":"5f90649b.a6618c","wires":[]},{"id":"aa784c84.13ef8","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":508.9576530456543,"y":377.62435245513916,"z":"5f90649b.a6618c","wires":[]},{"id":"993aa5dc.bb4718","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":938.2910499572754,"y":1896.9938134290278,"z":"5f90649b.a6618c","wires":[[]]},{"id":"8dd7a6c4.f97498","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":450.95776748657227,"y":1874.6602372266352,"z":"5f90649b.a6618c","wires":[[]]},{"id":"19d401c8.5d312e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1545.3337326049805,"y":600.0000534057617,"z":"5f90649b.a6618c","wires":[]},{"id":"f3b38cd6.2e6e6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":817.6666526794434,"y":552.3334074020386,"z":"5f90649b.a6618c","wires":[["2dce5d4a.489092"]]},{"id":"2dce5d4a.489092","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":997.6666030883789,"y":552.9999580383301,"z":"5f90649b.a6618c","wires":[["19d401c8.5d312e"]]},{"id":"2f8ea3d3.25d61c","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":490.5238265991211,"y":557.8095149993896,"z":"5f90649b.a6618c","wires":[]},{"id":"ea94432e.31d92","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1383.3333549499512,"y":552.6666707992554,"z":"5f90649b.a6618c","wires":[["19d401c8.5d312e"]]},{"id":"63945192.1184c","type":"set","name":"set cloud-region-id for input to contrail","xml":"<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n","comments":"","x":547.3810729980469,"y":1208.9765033721924,"z":"5f90649b.a6618c","wires":[]},{"id":"ea06c71e.efa318","type":"comment","name":"Call contrail api here","info":"","comments":"","x":491.0477752685547,"y":1175.643006324768,"z":"5f90649b.a6618c","wires":[]},{"id":"228d2ac3.140ba6","type":"comment","name":"Rollback - rollback contrail/AAI","info":"","comments":"","x":1175.8573608398438,"y":1136.0477056503296,"z":"5f90649b.a6618c","wires":[]},{"id":"eb7db965.cffa68","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":497.76202392578125,"y":1611.2262735366821,"z":"5f90649b.a6618c","wires":[]},{"id":"21f56f54.bd659","type":"save","name":"save AnAI - network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-policy-id\" value=\"`$ar-assignments.contrail-id`\" />\n<parameter name=\"network-policy-fqdn\" value=\"`$ar-assignments.fq-name`\" />\n\n\n","comments":"","outputs":1,"x":513.1389083862305,"y":1648.2938385009766,"z":"5f90649b.a6618c","wires":[["52e636d7.8ebb58","ed317c2.86ca38"]]},{"id":"244a6c17.3e21d4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":985.4844169616699,"y":1638.575451850891,"z":"5f90649b.a6618c","wires":[]},{"id":"52e636d7.8ebb58","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":756.9130249023438,"y":1637.5911893844604,"z":"5f90649b.a6618c","wires":[["244a6c17.3e21d4"]]},{"id":"ed317c2.86ca38","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":760.7225227355957,"y":1667.06760597229,"z":"5f90649b.a6618c","wires":[["244a6c17.3e21d4"]]},{"id":"801bff7e.fbad5","type":"comment","name":"MDSal adaptor only saves consuming service so parent service and AR are done by Rest api calls","info":"","comments":"","x":613.6666259765625,"y":49.33332824707031,"z":"5f90649b.a6618c","wires":[]},{"id":"c191a157.b6674","type":"execute","name":"execute Contrail API create network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='create' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='default-project' value='`$tmp.ar.tenant-name`' /> \n<!-- dummy for dev <parameter name='default-project' value='default-project' /> -->\n<parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />\n<parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />\n<parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />\n<parameter name='direction' value='&lt;&gt;' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n\n","comments":"","outputs":1,"x":552.0000915527344,"y":1291.8338508605957,"z":"5f90649b.a6618c","wires":[["7a90fc8f.31cf84","1476872f.65dcf9"]]},{"id":"7a90fc8f.31cf84","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":833.380973815918,"y":1259.976146850735,"z":"5f90649b.a6618c","wires":[["e7e4be16.a7a45"]]},{"id":"1476872f.65dcf9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":831.4762954711914,"y":1292.976086616516,"z":"5f90649b.a6618c","wires":[["44b885c3.5934bc"]]},{"id":"df03f36f.1c4a","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":554.0000457763672,"y":764.0001230239868,"z":"5f90649b.a6618c","wires":[["69c55b4f.8054f4","6060b3b1.b4008c"]]},{"id":"69c55b4f.8054f4","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":910.0002632141113,"y":762.6665024757385,"z":"5f90649b.a6618c","wires":[["74dfd12.49de63"]]},{"id":"6060b3b1.b4008c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":905.6670799255371,"y":725.6663026809692,"z":"5f90649b.a6618c","wires":[["1ff80c0f.023764"]]},{"id":"7a681aef.92f704","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2045.4450378417969,"y":802.4442802667618,"z":"5f90649b.a6618c","wires":[["ddb4759b.c74ba8"]]},{"id":"58522d88.a159a4","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1301.825698852539,"y":762.6823296546936,"z":"5f90649b.a6618c","wires":[["a0f9f28f.3a11d","62f8d43d.6ff0ac"]]},{"id":"a0f9f28f.3a11d","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1590.825698852539,"y":764.6823906898499,"z":"5f90649b.a6618c","wires":[["6eb4b765.2bcfe8"]]},{"id":"62f8d43d.6ff0ac","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1570.825698852539,"y":799.6823906898499,"z":"5f90649b.a6618c","wires":[["e7594b36.af86f8"]]},{"id":"e7594b36.af86f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1775.4290008544922,"y":803.5702644586563,"z":"5f90649b.a6618c","wires":[["7a681aef.92f704"]]},{"id":"74dfd12.49de63","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1044.1115188598633,"y":763.1109070777893,"z":"5f90649b.a6618c","wires":[["58522d88.a159a4"]]},{"id":"1ff80c0f.023764","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1059.8005447387695,"y":726.3332052230835,"z":"5f90649b.a6618c","wires":[]},{"id":"6eb4b765.2bcfe8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1783.9337768554688,"y":764.9998508691788,"z":"5f90649b.a6618c","wires":[]},{"id":"7cbfe81d.55cd18","type":"comment","name":"Find tenant id/cloud region from source network","info":"","comments":"","x":591.4003677368164,"y":730.6664390563965,"z":"5f90649b.a6618c","wires":[]},{"id":"ddb4759b.c74ba8","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2337.9998474121094,"y":799.3334070444107,"z":"5f90649b.a6618c","wires":[["f4eec0e2.b336a","e74ffe1b.ee527"]]},{"id":"831dcdf8.8c4d9","type":"set","name":"set tmp vals","xml":"<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n","comments":"","x":2877.666519165039,"y":789.3333841562271,"z":"5f90649b.a6618c","wires":[]},{"id":"1f3c5039.cf476","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2687.732961654663,"y":802.3333956003189,"z":"5f90649b.a6618c","wires":[["831dcdf8.8c4d9","3e513116.e80b7e"]]},{"id":"f4eec0e2.b336a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2532.2663383483887,"y":802.3332582712173,"z":"5f90649b.a6618c","wires":[["1f3c5039.cf476"]]},{"id":"e74ffe1b.ee527","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2533.065948486328,"y":840.3332611322403,"z":"5f90649b.a6618c","wires":[["cce762b8.5727a"]]},{"id":"cce762b8.5727a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":2711.066104888916,"y":840.3333269357681,"z":"5f90649b.a6618c","wires":[]},{"id":"3e513116.e80b7e","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":2900.1330642700195,"y":825.3330799341202,"z":"5f90649b.a6618c","wires":[["dfe3bd23.975b8","7f907bb.cc18a84","324872c7.f43eee"]]},{"id":"dfe3bd23.975b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3120.994453430176,"y":817.9441944360733,"z":"5f90649b.a6618c","wires":[["ddb43474.5e2fc8"]]},{"id":"7f907bb.cc18a84","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3116.327480316162,"y":851.2775083780289,"z":"5f90649b.a6618c","wires":[["ddb43474.5e2fc8"]]},{"id":"ddb43474.5e2fc8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":3290.503402709961,"y":839.3330675363541,"z":"5f90649b.a6618c","wires":[]},{"id":"324872c7.f43eee","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3116.503486633301,"y":786.370158791542,"z":"5f90649b.a6618c","wires":[["19595da5.86cf22"]]},{"id":"19595da5.86cf22","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3296.503486633301,"y":784.370158791542,"z":"5f90649b.a6618c","wires":[["9bf595b1.bf70f8"]]},{"id":"9bf595b1.bf70f8","type":"set","name":"set tenant name","xml":"<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n","comments":"","x":3483.4665908813477,"y":781.9999004602432,"z":"5f90649b.a6618c","wires":[]},{"id":"c6e8d07f.0b15c","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n","comments":"","outputs":1,"x":500.4287109375,"y":1747.6073377132416,"z":"5f90649b.a6618c","wires":[["4c9be32.4622c1c","58211de1.fa28b4"]]},{"id":"4c9be32.4622c1c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":756.1906051635742,"y":1724.8455572128296,"z":"5f90649b.a6618c","wires":[["3ee10ac5.6c52d6"]]},{"id":"58211de1.fa28b4","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":761.5000343322754,"y":1760.4169750213623,"z":"5f90649b.a6618c","wires":[["3ee10ac5.6c52d6"]]},{"id":"3ee10ac5.6c52d6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":971.2858200073242,"y":1726.4646015167236,"z":"5f90649b.a6618c","wires":[]},{"id":"a5f87574.e494f8","type":"comment","name":"Update AAI AR","info":"","comments":"","x":456.62871170043945,"y":1716.7500885389745,"z":"5f90649b.a6618c","wires":[]},{"id":"44b885c3.5934bc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":991.381103515625,"y":1292.309534072876,"z":"5f90649b.a6618c","wires":[]},{"id":"9525be20.92483","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.contrail-route-topology-operation-create\"/>\n<parameter name='field3' value='network-policy' />\n<parameter name='field4' value='create' />\n<parameter name='field5' value='contrailResp' />\n<parameter name='field6' value='default-domain' />\n<parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='field8' value='`$tmp.ar.tenant-name`' />\n<parameter name='field9' value='`$ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`' />\n<parameter name='field10' value='$aai.dest-network.contrail-network-fqdn' />\n<parameter name='field11' value='$aai.src-network.contrail-network-fqdn' />\n<parameter name='field12' value='&lt;&gt;' />\n<parameter name='field13' value='$tmp.ar.cloud-region-id' />\n\n\n","comments":"","outputs":1,"x":440.09527587890625,"y":1261.595251083374,"z":"5f90649b.a6618c","wires":[[]]},{"id":"c2b56ee4.19d0f","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":836.2857666015625,"y":841.9288463592529,"z":"5f90649b.a6618c","wires":[["a3daa790.c8f578"]]},{"id":"84f94150.403b","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n","comments":"","outputs":1,"x":564.9126892089844,"y":849.4611072540283,"z":"5f90649b.a6618c","wires":[["d00661cb.d83c8","c2b56ee4.19d0f","bf39102b.a9daa"]]},{"id":"d00661cb.d83c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":829.0078735351562,"y":876.4134502410889,"z":"5f90649b.a6618c","wires":[["a3daa790.c8f578"]]},{"id":"a3daa790.c8f578","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":981.1188354492188,"y":872.6356792449951,"z":"5f90649b.a6618c","wires":[]},{"id":"bf39102b.a9daa","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":834.2858276367188,"y":907.9288463592529,"z":"5f90649b.a6618c","wires":[["35e7e6d8.9c02fa"]]},{"id":"35e7e6d8.9c02fa","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":986.952392578125,"y":906.2621746063232,"z":"5f90649b.a6618c","wires":[[]]},{"id":"b5a6ae1.293715","type":"comment","name":"GET source network from AAI","info":"","comments":"","x":537.7143249511719,"y":817.6430835723877,"z":"5f90649b.a6618c","wires":[]},{"id":"4c2c7cf4.617bb4","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":840.5714721679688,"y":949.0716209411621,"z":"5f90649b.a6618c","wires":[["9036f2cc.f4b7d"]]},{"id":"674f14d2.772d8c","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n","comments":"","outputs":1,"x":569.1983947753906,"y":956.6038818359375,"z":"5f90649b.a6618c","wires":[["946c94f2.2a45a8","4c2c7cf4.617bb4","e5db03f9.2fafe"]]},{"id":"946c94f2.2a45a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":833.2935791015625,"y":983.556224822998,"z":"5f90649b.a6618c","wires":[["9036f2cc.f4b7d"]]},{"id":"9036f2cc.f4b7d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":985.404541015625,"y":979.7784538269043,"z":"5f90649b.a6618c","wires":[]},{"id":"e5db03f9.2fafe","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":833.571533203125,"y":1020.0715923309326,"z":"5f90649b.a6618c","wires":[["854d69a8.a38398"]]},{"id":"854d69a8.a38398","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":986.2380981445312,"y":1018.4049205780029,"z":"5f90649b.a6618c","wires":[[]]},{"id":"3714bcdd.1c2684","type":"comment","name":"GET dest network from AAI","info":"","comments":"","x":542.0000305175781,"y":924.7858581542969,"z":"5f90649b.a6618c","wires":[]},{"id":"14b73b46.6d9fb5","type":"set","name":"set temp contrail fqdn for input to contrail","xml":"<set>\n<parameter name='aai.src-network.contrail-network-fqdn' value='`tmpsourcecontrailfqdn`' />\n<parameter name='aai.dest-network.contrail-network-fqdn' value='`tmpdestinationcontrailfqdn`' />","comments":"","x":575.0000648498535,"y":1106.928747177124,"z":"5f90649b.a6618c","wires":[]},{"id":"e7e4be16.a7a45","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":985.5714569091797,"y":1260.6428718566895,"z":"5f90649b.a6618c","wires":[[]]},{"id":"dcc82b6d.bd0448","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":516.2857627868652,"y":588.5714883804321,"z":"5f90649b.a6618c","wires":[]},{"id":"3fc1cd7b.ce8842","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' value='`$ar-assignments.`' />\n\n\n\n","comments":"","x":463.42869567871094,"y":1807.607406616211,"z":"5f90649b.a6618c","wires":[]},{"id":"7ce279cd.dfcc18","type":"switchNode","name":"switch contrailResp.resp-code","xml":"<switch test='`$contrailResp.resp-code`'>\n\n","comments":"","outputs":1,"x":518.607177734375,"y":1357.2500972747803,"z":"5f90649b.a6618c","wires":[["d4c93b29.23d048","dcc6b0f9.993d7"]]},{"id":"d4c93b29.23d048","type":"outcome","name":"outcome 0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":795.7501801252365,"y":1357.2502279281616,"z":"5f90649b.a6618c","wires":[["43219c8b.d04894"]]},{"id":"dcc6b0f9.993d7","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":775.7500915527344,"y":1384.7501316070557,"z":"5f90649b.a6618c","wires":[["62b65f6a.fbc85"]]},{"id":"62b65f6a.fbc85","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":948.2501907348633,"y":1387.2502298355103,"z":"5f90649b.a6618c","wires":[]},{"id":"43219c8b.d04894","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":940.7500915527344,"y":1357.250129699707,"z":"5f90649b.a6618c","wires":[[]]},{"id":"b1b62e5b.66cdc","type":"comment","name":"Dummy values for dev/dev","info":"","comments":"","x":522.0000114440918,"y":1070.0002274513245,"z":"5f90649b.a6618c","wires":[]},{"id":"fa1647e6.8bb8f8","type":"call","name":"call policy-manager-create-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='policy-manager-create-policy' mode='sync' >\n","comments":"","outputs":1,"x":537.1427841186523,"y":1491.4284505844116,"z":"5f90649b.a6618c","wires":[["4134066.d0e53f8","cfa986c.9649d78"]]},{"id":"4134066.d0e53f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":772.7221450805664,"y":1488.7704181671143,"z":"5f90649b.a6618c","wires":[["6336a3da.11edec"]]},{"id":"cfa986c.9649d78","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":778.714412689209,"y":1529.5714936256409,"z":"5f90649b.a6618c","wires":[["f41f6acc.efb3a8"]]},{"id":"f41f6acc.efb3a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":931.3809776306152,"y":1527.9048218727112,"z":"5f90649b.a6618c","wires":[[]]},{"id":"2d6f6d8d.fcc1b2","type":"execute","name":"execute Contrail API delete network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='default-project' value='`$tmp.ar.tenant-name`' /> \n<!-- dummy for dev <parameter name='default-project' value='default-project' /> -->\n<parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />\n<parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />\n<parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />\n<parameter name='direction' value='&lt;&gt;' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n\n","comments":"","outputs":1,"x":1225.7143249511719,"y":1487.1428270339966,"z":"5f90649b.a6618c","wires":[["cd2ace54.7c12e","4fd4dcde.514ad4"]]},{"id":"cd2ace54.7c12e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1502.809471130371,"y":1456.7137071229517,"z":"5f90649b.a6618c","wires":[["c111c6b8.837068"]]},{"id":"4fd4dcde.514ad4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1500.9047927856445,"y":1489.713646888733,"z":"5f90649b.a6618c","wires":[["704a5361.3555ec"]]},{"id":"704a5361.3555ec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create Policy in Policy Mgr.  Rollback failed to delete policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":1660.8096008300781,"y":1487.0470943450928,"z":"5f90649b.a6618c","wires":[]},{"id":"c111c6b8.837068","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1654.9999542236328,"y":1457.3804321289062,"z":"5f90649b.a6618c","wires":[[]]},{"id":"6336a3da.11edec","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":931.4285888671875,"y":1482.857177734375,"z":"5f90649b.a6618c","wires":[["2d6f6d8d.fcc1b2","15d27925.63edf7"]]},{"id":"15d27925.63edf7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in PolicyMgr. '+ $error-message  + 'Contrail network policy rolled back.'`\" />\n","comments":"","x":1129.9999771118164,"y":1527.142939567566,"z":"5f90649b.a6618c","wires":[]}]
+[
+    {
+        "id": "f03bdbde.4579d8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 175.00390625,
+        "y": 104.6666704416275,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "b789d37d.82a2e"
+            ]
+        ]
+    },
+    {
+        "id": "b789d37d.82a2e",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 321.2419891357422,
+        "y": 179.61906397342682,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "245879c2.1bf726"
+            ]
+        ]
+    },
+    {
+        "id": "245879c2.1bf726",
+        "type": "method",
+        "name": "contrail-route-topology-operation-create",
+        "xml": "<method rpc='contrail-route-topology-operation-create' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 401.1587562561035,
+        "y": 248.85711252689362,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "cb6febc8.40d7a8"
+            ]
+        ]
+    },
+    {
+        "id": "cb6febc8.40d7a8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 309.4800910949707,
+        "y": 392.1904546022415,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "78592f6d.e5c98",
+                "e3ebac4.ab7145",
+                "b31530da.30339",
+                "ef64ef71.c48f1",
+                "41df4f0b.30a5f",
+                "af3b175.bb7ece8",
+                "478f720.e98ad9",
+                "bc7f0404.80df38",
+                "bc587a66.feda28",
+                "a844f172.05d78",
+                "2c4387c0.bbe4d8",
+                "bd1d7050.2c7d2",
+                "78389040.50c04",
+                "3b7c3ee7.892e02",
+                "9c87964d.1eedd8",
+                "cb3789bb.42da88",
+                "96e58f96.3e0dc",
+                "bd7a20ba.9bf84",
+                "7d144ee0.ee98f",
+                "65bdabe8.142354",
+                "483287bc.c27a28",
+                "29d6c655.17265a",
+                "808bf1b8.60d31",
+                "cf49ae05.2f29"
+            ]
+        ]
+    },
+    {
+        "id": "e3ebac4.ab7145",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 507.7183837890625,
+        "y": 2060.3935294486582,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "78592f6d.e5c98",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 536.4722900390625,
+        "y": 2022.8493228293955,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a844f172.05d78",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 569.8056755065918,
+        "y": 1895.2302031852305,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "ef64ef71.c48f1",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 571.7419624328613,
+        "y": 365.9999920129776,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "b31530da.30339",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n\n",
+        "comments": "",
+        "x": 619.0012359619141,
+        "y": 332.2592588663101,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "41df4f0b.30a5f",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 633.4258880615234,
+        "y": 401.89820539951324,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "478f720.e98ad9",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 651.8560028076172,
+        "y": 573.4595466852188,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "aebb7490.69e928",
+                "cfd4b50e.a5e6b8"
+            ]
+        ]
+    },
+    {
+        "id": "af3b175.bb7ece8",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 606.0687713623047,
+        "y": 457.68387281894684,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "aebb7490.69e928",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 893.8187561035156,
+        "y": 570.9339929819107,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "a22ae59.4cc7418"
+            ]
+        ]
+    },
+    {
+        "id": "bc7f0404.80df38",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 587.0809020996094,
+        "y": 1979.755991578102,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "1f0721b.9b811de",
+                "e79eeaaa.e7dcb8",
+                "1d4083e3.1dc26c"
+            ]
+        ]
+    },
+    {
+        "id": "1f0721b.9b811de",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 869.8889007568359,
+        "y": 2015.6111840568483,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "d062f84e.64a6c8"
+            ]
+        ]
+    },
+    {
+        "id": "e79eeaaa.e7dcb8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 860.8889503479004,
+        "y": 1984.1112098060548,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "d062f84e.64a6c8"
+            ]
+        ]
+    },
+    {
+        "id": "1d4083e3.1dc26c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 864.638988494873,
+        "y": 1954.4683146812022,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "5be66386.866e6c"
+            ]
+        ]
+    },
+    {
+        "id": "d062f84e.64a6c8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1030.638988494873,
+        "y": 1984.8612336479127,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a22ae59.4cc7418",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1062.818759918213,
+        "y": 569.4338937997818,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "3b15ea01.810756"
+            ]
+        ]
+    },
+    {
+        "id": "3b15ea01.810756",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1273.6760025024414,
+        "y": 569.05302298069,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "9e98b320.e152c",
+                "8b7088ef.449658"
+            ]
+        ]
+    },
+    {
+        "id": "9e98b320.e152c",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1463.0093078613281,
+        "y": 569.0529810190201,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "a5eacd9b.7855d"
+            ]
+        ]
+    },
+    {
+        "id": "ad98339.532aad",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1886.2001152038574,
+        "y": 600.6245447397232,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a5eacd9b.7855d",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1647.533197402954,
+        "y": 565.9578148126602,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "ad98339.532aad",
+                "3870bad1.110186"
+            ]
+        ]
+    },
+    {
+        "id": "2d62b33d.718e0c",
+        "type": "comment",
+        "name": "GET contrail-route-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 661.8186988830566,
+        "y": 537.43388235569,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "cb3789bb.42da88",
+        "type": "set",
+        "name": "set ar-assignments.contrail-id",
+        "xml": "<set>\n<parameter name='ar-assignments.contrail-id' value=\"`$contrailResp.network-policy.uuid`\" />\n\n\n\n",
+        "comments": "",
+        "x": 591.6760177612305,
+        "y": 1456.2319885492325,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "3870bad1.110186",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1974.0571670532227,
+        "y": 567.4340368509293,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "d436744f.3d37d8",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 576.9615592956543,
+        "y": 431.29102289676666,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "5be66386.866e6c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.2949562072754,
+        "y": 1950.6604838706553,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bc587a66.feda28",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 518.9616737365723,
+        "y": 1928.3269076682627,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ca916db.f325d9",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1613.3376388549805,
+        "y": 653.6667238473892,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "cfd4b50e.a5e6b8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 885.6705589294434,
+        "y": 606.0000778436661,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "18936b2c.da7865"
+            ]
+        ]
+    },
+    {
+        "id": "18936b2c.da7865",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1065.670509338379,
+        "y": 606.6666284799576,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "ca916db.f325d9"
+            ]
+        ]
+    },
+    {
+        "id": "2c4387c0.bbe4d8",
+        "type": "set",
+        "name": "set ar data",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n",
+        "comments": "",
+        "x": 558.5277328491211,
+        "y": 611.4761854410172,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "8b7088ef.449658",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1451.3372611999512,
+        "y": 606.3333412408829,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "ca916db.f325d9"
+            ]
+        ]
+    },
+    {
+        "id": "bd7a20ba.9bf84",
+        "type": "set",
+        "name": "set cloud-region-id for input to contrail",
+        "xml": "<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n",
+        "comments": "",
+        "x": 615.3849792480469,
+        "y": 1262.6431738138199,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "ca1182bc.7b6ef",
+        "type": "comment",
+        "name": "Call contrail api here",
+        "info": "",
+        "comments": "",
+        "x": 559.0516815185547,
+        "y": 1229.3096767663956,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "76519ed6.4be52",
+        "type": "comment",
+        "name": "Rollback - rollback contrail/AAI",
+        "info": "",
+        "comments": "",
+        "x": 1243.8612670898438,
+        "y": 1189.714376091957,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "396c22cf.fd071e",
+        "type": "comment",
+        "name": "Create  network policy in AAI",
+        "info": "",
+        "comments": "",
+        "x": 565.7659301757812,
+        "y": 1664.8929439783096,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "3b7c3ee7.892e02",
+        "type": "save",
+        "name": "save AnAI - network-policy",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-policy-id\" value=\"`$ar-assignments.contrail-id`\" />\n<parameter name=\"network-policy-fqdn\" value=\"`$ar-assignments.fq-name`\" />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 581.1428146362305,
+        "y": 1701.960508942604,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "178286.09ba5d7b",
+                "916ae281.f5ee2"
+            ]
+        ]
+    },
+    {
+        "id": "6b68050d.217ccc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n",
+        "comments": "",
+        "x": 1053.48832321167,
+        "y": 1692.2421222925186,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "178286.09ba5d7b",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 824.9169311523438,
+        "y": 1691.257859826088,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "6b68050d.217ccc"
+            ]
+        ]
+    },
+    {
+        "id": "916ae281.f5ee2",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 828.7264289855957,
+        "y": 1720.7342764139175,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "6b68050d.217ccc"
+            ]
+        ]
+    },
+    {
+        "id": "13fbc501.526acb",
+        "type": "comment",
+        "name": "MDSal adaptor only saves consuming service so parent service and AR are done by Rest api calls",
+        "info": "",
+        "comments": "",
+        "x": 681.6705322265625,
+        "y": 102.99999868869781,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "9c87964d.1eedd8",
+        "type": "execute",
+        "name": "execute Contrail API create network policy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='create' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='default-project' value='`$tmp.ar.tenant-name`' /> \n<!-- dummy for dev <parameter name='default-project' value='default-project' /> -->\n<parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />\n<parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />\n<parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />\n<parameter name='direction' value='&lt;&gt;' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 620.0039978027344,
+        "y": 1345.5005213022232,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "2fb2335a.cbd49c",
+                "a5da0427.0c5768"
+            ]
+        ]
+    },
+    {
+        "id": "2fb2335a.cbd49c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 901.384880065918,
+        "y": 1313.6428172923625,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "1c40ddfb.ac3da2"
+            ]
+        ]
+    },
+    {
+        "id": "a5da0427.0c5768",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.4802017211914,
+        "y": 1346.6427570581436,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "a4c8be00.baf52"
+            ]
+        ]
+    },
+    {
+        "id": "bd1d7050.2c7d2",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 622.0039520263672,
+        "y": 817.6667934656143,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "16cf3207.6919ae",
+                "4972ee2e.1e371"
+            ]
+        ]
+    },
+    {
+        "id": "16cf3207.6919ae",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 978.0041694641113,
+        "y": 816.333172917366,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "4d7f64a6.3f3e3c"
+            ]
+        ]
+    },
+    {
+        "id": "4972ee2e.1e371",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 973.6709861755371,
+        "y": 779.3329731225967,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "f8faa309.794be"
+            ]
+        ]
+    },
+    {
+        "id": "7af5889b.368718",
+        "type": "for",
+        "name": "for nidx..service-data.networks.network[]",
+        "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2113.448944091797,
+        "y": 856.1109507083893,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "a1094de3.d998d"
+            ]
+        ]
+    },
+    {
+        "id": "e0a0a8a2.ee5b68",
+        "type": "switchNode",
+        "name": "switch service-data.networks.network_length",
+        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1369.829605102539,
+        "y": 816.3490000963211,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "25b29885.305408",
+                "d2c788cf.79feb8"
+            ]
+        ]
+    },
+    {
+        "id": "25b29885.305408",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1658.829605102539,
+        "y": 818.3490611314774,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "25abf517.021e9a"
+            ]
+        ]
+    },
+    {
+        "id": "d2c788cf.79feb8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1638.829605102539,
+        "y": 853.3490611314774,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "d2c2c0a9.d8b2c"
+            ]
+        ]
+    },
+    {
+        "id": "d2c2c0a9.d8b2c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1843.4329071044922,
+        "y": 857.2369349002838,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "7af5889b.368718"
+            ]
+        ]
+    },
+    {
+        "id": "4d7f64a6.3f3e3c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1112.1154251098633,
+        "y": 816.7775775194168,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "e0a0a8a2.ee5b68"
+            ]
+        ]
+    },
+    {
+        "id": "f8faa309.794be",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1127.8044509887695,
+        "y": 779.999875664711,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "25abf517.021e9a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1851.9376831054688,
+        "y": 818.6665213108063,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "d6797d24.acfca",
+        "type": "comment",
+        "name": "Find tenant id/cloud region from source network",
+        "info": "",
+        "comments": "",
+        "x": 659.4042739868164,
+        "y": 784.333109498024,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a1094de3.d998d",
+        "type": "switchNode",
+        "name": "switch networkid found",
+        "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2406.0037536621094,
+        "y": 853.0000774860382,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "2fc2f6cc.52811a",
+                "bd8b1543.d5feb8"
+            ]
+        ]
+    },
+    {
+        "id": "cf465404.bca108",
+        "type": "set",
+        "name": "set tmp vals",
+        "xml": "<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n",
+        "comments": "",
+        "x": 2945.670425415039,
+        "y": 843.0000545978546,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "18df3dec.3762c2",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2755.736867904663,
+        "y": 856.0000660419464,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "cf465404.bca108",
+                "a77873a9.58a3d"
+            ]
+        ]
+    },
+    {
+        "id": "2fc2f6cc.52811a",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2600.2702445983887,
+        "y": 855.9999287128448,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "18df3dec.3762c2"
+            ]
+        ]
+    },
+    {
+        "id": "bd8b1543.d5feb8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2601.069854736328,
+        "y": 893.9999315738678,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "12777d15.58b793"
+            ]
+        ]
+    },
+    {
+        "id": "12777d15.58b793",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 2779.070011138916,
+        "y": 893.9999973773956,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a77873a9.58a3d",
+        "type": "get-resource",
+        "name": "get-resource tenant",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2968.1369705200195,
+        "y": 878.9997503757477,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "d053a66e.8a2958",
+                "f2ee2fa9.2bf8d",
+                "d188bc90.da64f"
+            ]
+        ]
+    },
+    {
+        "id": "d053a66e.8a2958",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3188.998359680176,
+        "y": 871.6108648777008,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "fb3363cd.b2365"
+            ]
+        ]
+    },
+    {
+        "id": "f2ee2fa9.2bf8d",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3184.331386566162,
+        "y": 904.9441788196564,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "fb3363cd.b2365"
+            ]
+        ]
+    },
+    {
+        "id": "fb3363cd.b2365",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n",
+        "comments": "",
+        "x": 3358.507308959961,
+        "y": 892.9997379779816,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "d188bc90.da64f",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3184.507392883301,
+        "y": 840.0368292331696,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "a5dbc0a1.7ca4b"
+            ]
+        ]
+    },
+    {
+        "id": "a5dbc0a1.7ca4b",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 3364.507392883301,
+        "y": 838.0368292331696,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "3eca1514.f49d8a"
+            ]
+        ]
+    },
+    {
+        "id": "3eca1514.f49d8a",
+        "type": "set",
+        "name": "set tenant name",
+        "xml": "<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n",
+        "comments": "",
+        "x": 3551.4704971313477,
+        "y": 835.6665709018707,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "78389040.50c04",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 568.4326171875,
+        "y": 1801.274008154869,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "ee05ecac.f85f4",
+                "76238400.885e4c"
+            ]
+        ]
+    },
+    {
+        "id": "ee05ecac.f85f4",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 824.1945114135742,
+        "y": 1778.512227654457,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "9a72cd34.8de84"
+            ]
+        ]
+    },
+    {
+        "id": "76238400.885e4c",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 829.5039405822754,
+        "y": 1814.0836454629898,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "9a72cd34.8de84"
+            ]
+        ]
+    },
+    {
+        "id": "9a72cd34.8de84",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1039.2897262573242,
+        "y": 1780.1312719583511,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "3ebda3d1.60c63c",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 524.6326179504395,
+        "y": 1770.416758980602,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a4c8be00.baf52",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1059.385009765625,
+        "y": 1345.9762045145035,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "96e58f96.3e0dc",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.contrail-route-topology-operation-create\"/>\n<parameter name='field3' value='network-policy' />\n<parameter name='field4' value='create' />\n<parameter name='field5' value='contrailResp' />\n<parameter name='field6' value='default-domain' />\n<parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\n<parameter name='field8' value='`$tmp.ar.tenant-name`' />\n<parameter name='field9' value='`$ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`' />\n<parameter name='field10' value='$aai.dest-network.contrail-network-fqdn' />\n<parameter name='field11' value='$aai.src-network.contrail-network-fqdn' />\n<parameter name='field12' value='&lt;&gt;' />\n<parameter name='field13' value='$tmp.ar.cloud-region-id' />\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 508.09918212890625,
+        "y": 1315.2619215250015,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f4f87407.7b7138",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 904.2896728515625,
+        "y": 895.5955168008804,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "81772977.20deb8"
+            ]
+        ]
+    },
+    {
+        "id": "29d6c655.17265a",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 632.9165954589844,
+        "y": 903.1277776956558,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "678eae69.b9714",
+                "f4f87407.7b7138",
+                "5e43af76.092db"
+            ]
+        ]
+    },
+    {
+        "id": "678eae69.b9714",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 897.0117797851562,
+        "y": 930.0801206827164,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "81772977.20deb8"
+            ]
+        ]
+    },
+    {
+        "id": "81772977.20deb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1049.1227416992188,
+        "y": 926.3023496866226,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "5e43af76.092db",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 902.2897338867188,
+        "y": 961.5955168008804,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "aa41ec1c.71542"
+            ]
+        ]
+    },
+    {
+        "id": "aa41ec1c.71542",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1054.956298828125,
+        "y": 959.9288450479507,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ffbc6d1d.bd87f",
+        "type": "comment",
+        "name": "GET source network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 605.7182312011719,
+        "y": 871.3097540140152,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "a32f696b.7ff868",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 908.5753784179688,
+        "y": 1002.7382913827896,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "8a6cd51f.44caa8"
+            ]
+        ]
+    },
+    {
+        "id": "808bf1b8.60d31",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 637.2023162841797,
+        "y": 1013.6038881540298,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "9ad6ea77.f2aad8",
+                "a32f696b.7ff868",
+                "4dcfd8c5.d1f5f8"
+            ]
+        ]
+    },
+    {
+        "id": "9ad6ea77.f2aad8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 901.2974853515625,
+        "y": 1037.2228952646255,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "8a6cd51f.44caa8"
+            ]
+        ]
+    },
+    {
+        "id": "8a6cd51f.44caa8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1053.408447265625,
+        "y": 1033.4451242685318,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "4dcfd8c5.d1f5f8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 901.575439453125,
+        "y": 1073.7382627725601,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "532eb226.00307c"
+            ]
+        ]
+    },
+    {
+        "id": "532eb226.00307c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1054.2420043945312,
+        "y": 1072.0715910196304,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f7c80e16.0bab8",
+        "type": "comment",
+        "name": "GET dest network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 610.0039367675781,
+        "y": 978.4525285959244,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "2a90d119.3eaf9e",
+        "type": "set",
+        "name": "set temp contrail fqdn for input to contrail",
+        "xml": "<set>\n<parameter name='aai.src-network.contrail-network-fqdn' value='`tmpsourcecontrailfqdn`' />\n<parameter name='aai.dest-network.contrail-network-fqdn' value='`tmpdestinationcontrailfqdn`' />",
+        "comments": "",
+        "x": 643.0039710998535,
+        "y": 1160.5954176187515,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "1c40ddfb.ac3da2",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1053.5753631591797,
+        "y": 1314.309542298317,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7d144ee0.ee98f",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n",
+        "comments": "",
+        "x": 584.2896690368652,
+        "y": 642.2381588220596,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "65bdabe8.142354",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' value='`$ar-assignments.`' />\n\n\n\n",
+        "comments": "",
+        "x": 531.4326019287109,
+        "y": 1861.2740770578384,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "483287bc.c27a28",
+        "type": "switchNode",
+        "name": "switch contrailResp.resp-code",
+        "xml": "<switch test='`$contrailResp.resp-code`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 586.611083984375,
+        "y": 1410.9167677164078,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "5959bd36.12d064",
+                "f8777e5b.220e7"
+            ]
+        ]
+    },
+    {
+        "id": "5959bd36.12d064",
+        "type": "outcome",
+        "name": "outcome 0",
+        "xml": "<outcome value='0'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 863.7540863752365,
+        "y": 1410.9168983697891,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "ba0eee80.bc27f"
+            ]
+        ]
+    },
+    {
+        "id": "f8777e5b.220e7",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 843.7539978027344,
+        "y": 1438.4168020486832,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "f5b88fb1.136b5"
+            ]
+        ]
+    },
+    {
+        "id": "f5b88fb1.136b5",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1016.2540969848633,
+        "y": 1440.9169002771378,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "ba0eee80.bc27f",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1008.7539978027344,
+        "y": 1410.9168001413345,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6e33a9b5.9b7438",
+        "type": "comment",
+        "name": "Dummy values for dev/dev",
+        "info": "",
+        "comments": "",
+        "x": 590.0039176940918,
+        "y": 1123.666897892952,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "cf49ae05.2f29",
+        "type": "call",
+        "name": "call policy-manager-create-policy",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='policy-manager-create-policy' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 605.1466903686523,
+        "y": 1545.0951210260391,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "eefb278d.613d48",
+                "526e4a66.638b34"
+            ]
+        ]
+    },
+    {
+        "id": "eefb278d.613d48",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 840.7260513305664,
+        "y": 1542.4370886087418,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "f9ba847c.ff2c28"
+            ]
+        ]
+    },
+    {
+        "id": "526e4a66.638b34",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 846.718318939209,
+        "y": 1583.2381640672684,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "7657e814.bd32b8"
+            ]
+        ]
+    },
+    {
+        "id": "7657e814.bd32b8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 999.3848838806152,
+        "y": 1581.5714923143387,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bc667334.be1b7",
+        "type": "execute",
+        "name": "execute Contrail API delete network policy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1293.7182312011719,
+        "y": 1540.809497475624,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "f2a919a7.bd34a8",
+                "7bf7079a.433c68"
+            ]
+        ]
+    },
+    {
+        "id": "f2a919a7.bd34a8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1570.813377380371,
+        "y": 1510.3803775645792,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "f667916c.8d17b"
+            ]
+        ]
+    },
+    {
+        "id": "7bf7079a.433c68",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1568.9086990356445,
+        "y": 1543.3803173303604,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "bae7bbac.394ad8"
+            ]
+        ]
+    },
+    {
+        "id": "bae7bbac.394ad8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create Policy in Policy Mgr.  Rollback failed to delete policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1728.8135070800781,
+        "y": 1540.7137647867203,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    },
+    {
+        "id": "f667916c.8d17b",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1723.0038604736328,
+        "y": 1511.0471025705338,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f9ba847c.ff2c28",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 999.4324951171875,
+        "y": 1536.5238481760025,
+        "z": "fbc4119e.39c3b",
+        "wires": [
+            [
+                "bc667334.be1b7",
+                "1ae7d1e2.6be47e"
+            ]
+        ]
+    },
+    {
+        "id": "1ae7d1e2.6be47e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create policy in PolicyMgr. '+ $error-message  + 'Contrail network policy rolled back.'`\" />\n",
+        "comments": "",
+        "x": 1198.0038833618164,
+        "y": 1580.8096100091934,
+        "z": "fbc4119e.39c3b",
+        "wires": []
+    }
+]
\ No newline at end of file
index cb3350f..2143d86 100755 (executable)
@@ -1 +1,1454 @@
-[{"id":"6f42193e.7fcb18","type":"dgstart","name":"DGSTART","outputs":1,"x":182,"y":96,"z":"9d85256.794bfd8","wires":[["3a9d923a.4687de"]]},{"id":"3a9d923a.4687de","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":328.2380828857422,"y":170.95239353179932,"z":"9d85256.794bfd8","wires":[["1dd7e766.22b889"]]},{"id":"1dd7e766.22b889","type":"method","name":"contrail-route-topology-operation-deactivate","xml":"<method rpc='contrail-route-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":408.1548500061035,"y":240.1904420852661,"z":"9d85256.794bfd8","wires":[["5b6f8915.4550d8"]]},{"id":"5b6f8915.4550d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":316.4761848449707,"y":383.523784160614,"z":"9d85256.794bfd8","wires":[["38d86f0b.67968","122583d8.1d260c","feae2ef.c5154d","cc085949.e3c218","9d38854d.1bb8b8","2829196a.eaaa76","8d33f3ff.44af3","c5fcedfe.366e1","a2b2b115.328ef","6975ce5b.c1d44","dca3aceb.03885","6578d3d4.5476dc","9376585b.91de78","98d3d9af.b219d8","b42adb13.7a13e8","d0cfc654.944c28","cbccf77c.4013d8","e468068e.f8fd78","3eceb01b.795e6","4fb1ccbe.de9264","8edbb4f5.1da278","4619cd3d.096d04"]]},{"id":"122583d8.1d260c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":579.000072479248,"y":2309.548008918762,"z":"9d85256.794bfd8","wires":[]},{"id":"38d86f0b.67968","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":607.753978729248,"y":2272.0038022994995,"z":"9d85256.794bfd8","wires":[]},{"id":"6975ce5b.c1d44","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":642.7541427612305,"y":2132.7179613113403,"z":"9d85256.794bfd8","wires":[]},{"id":"cc085949.e3c218","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":578.7380561828613,"y":357.3333215713501,"z":"9d85256.794bfd8","wires":[]},{"id":"feae2ef.c5154d","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":625.9973182678223,"y":323.5925874710083,"z":"9d85256.794bfd8","wires":[]},{"id":"9d38854d.1bb8b8","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":648.9934158325195,"y":393.2315502166748,"z":"9d85256.794bfd8","wires":[[]]},{"id":"8d33f3ff.44af3","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":655.5187454223633,"y":561.459508895874,"z":"9d85256.794bfd8","wires":[["ef8e221b.d195c","c49c58ea.301828"]]},{"id":"2829196a.eaaa76","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":613.0648460388184,"y":453.01722526550293,"z":"9d85256.794bfd8","wires":[[]]},{"id":"ef8e221b.d195c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":900.8148498535156,"y":562.2673225402832,"z":"9d85256.794bfd8","wires":[["70fd0b18.96fdf4"]]},{"id":"c5fcedfe.366e1","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":670.8626098632812,"y":2206.7674808502197,"z":"9d85256.794bfd8","wires":[["4700a122.f4dac","36986bb9.23cbc4","460b74b4.c2c05c"]]},{"id":"4700a122.f4dac","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":941.1706275939941,"y":2259.7656816467643,"z":"9d85256.794bfd8","wires":[["36e7add1.93abd2"]]},{"id":"36986bb9.23cbc4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":932.1706771850586,"y":2228.265707395971,"z":"9d85256.794bfd8","wires":[["36e7add1.93abd2"]]},{"id":"460b74b4.c2c05c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":935.9207153320312,"y":2198.622812271118,"z":"9d85256.794bfd8","wires":[["5404b4c7.e2032c"]]},{"id":"36e7add1.93abd2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1101.9207153320312,"y":2229.0157312378287,"z":"9d85256.794bfd8","wires":[]},{"id":"70fd0b18.96fdf4","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1069.814853668213,"y":560.7672233581543,"z":"9d85256.794bfd8","wires":[["b8f11906.dba3b8"]]},{"id":"b8f11906.dba3b8","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1280.6720962524414,"y":560.3863525390625,"z":"9d85256.794bfd8","wires":[["9b410254.194e9","33e90ef6.f223c2"]]},{"id":"9b410254.194e9","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1470.0054016113281,"y":560.3863105773926,"z":"9d85256.794bfd8","wires":[["15bf006b.a87d5"]]},{"id":"f9f3fdcd.0ab34","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1943.1962203979492,"y":523.6245260238647,"z":"9d85256.794bfd8","wires":[]},{"id":"15bf006b.a87d5","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1654.529291152954,"y":557.2911443710327,"z":"9d85256.794bfd8","wires":[["f9f3fdcd.0ab34","e7cd0298.e8dcc","bba9d10e.349f9"]]},{"id":"e7cd0298.e8dcc","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1951.1961479187012,"y":587.719669342041,"z":"9d85256.794bfd8","wires":[]},{"id":"2bf64ead.e3bc32","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":668.8147926330566,"y":528.7672119140625,"z":"9d85256.794bfd8","wires":[]},{"id":"93e5a3ab.9544a","type":"switchNode","name":"switch order-status","xml":"<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1959.196002960205,"y":554.6244812011719,"z":"9d85256.794bfd8","wires":[["9b9adb79.d81988","d559dc4.b4c922"]]},{"id":"9b9adb79.d81988","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2194.8436737060547,"y":569.0531902313232,"z":"9d85256.794bfd8","wires":[["d622bf5.875044"]]},{"id":"d622bf5.875044","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n","comments":"","x":2435.462423324585,"y":571.9577798843384,"z":"9d85256.794bfd8","wires":[]},{"id":"6578d3d4.5476dc","type":"set","name":"unset ar-assignments.vlan-tag","xml":"<set>\n<parameter name='ar-assignments.vlan-tag' value=\"\" />\n\n\n\n","comments":"","x":616.862419128418,"y":1670.0531845092773,"z":"9d85256.794bfd8","wires":[]},{"id":"bba9d10e.349f9","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":2031.0532722473145,"y":490.4340181350708,"z":"9d85256.794bfd8","wires":[]},{"id":"7d4ef2a7.fd27ec","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":583.9576530456543,"y":422.62435245513916,"z":"9d85256.794bfd8","wires":[]},{"id":"5404b4c7.e2032c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1077.5766830444336,"y":2194.8149814605713,"z":"9d85256.794bfd8","wires":[[]]},{"id":"a2b2b115.328ef","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":593.5767288208008,"y":2099.1481199264526,"z":"9d85256.794bfd8","wires":[[]]},{"id":"ba60bed0.88369","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1653.666997909546,"y":673.3333854675293,"z":"9d85256.794bfd8","wires":[]},{"id":"c49c58ea.301828","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":892.6666526794434,"y":597.3334074020386,"z":"9d85256.794bfd8","wires":[["25ba4dc1.5132b2"]]},{"id":"25ba4dc1.5132b2","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1072.666603088379,"y":597.9999580383301,"z":"9d85256.794bfd8","wires":[["ba60bed0.88369"]]},{"id":"dca3aceb.03885","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":564.666618347168,"y":593.6666221618652,"z":"9d85256.794bfd8","wires":[]},{"id":"33e90ef6.f223c2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1458.3333549499512,"y":597.6666707992554,"z":"9d85256.794bfd8","wires":[["ba60bed0.88369"]]},{"id":"41d0055a.f5d40c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2419.333469390869,"y":537.6666975021362,"z":"9d85256.794bfd8","wires":[[]]},{"id":"1e0333e0.bb844c","type":"comment","name":"Call contrail api here","info":"","comments":"","x":594.8571243286133,"y":660.2857151031494,"z":"9d85256.794bfd8","wires":[]},{"id":"5db846ef.38ec08","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1327.9999771118164,"y":2228.3333263397217,"z":"9d85256.794bfd8","wires":[]},{"id":"48ad7bf5.74a014","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":627.333251953125,"y":2048.3332138061523,"z":"9d85256.794bfd8","wires":[]},{"id":"d559dc4.b4c922","type":"outcome","name":"outcome Active","xml":"<outcome value='Active'>\n","comments":"","outputs":1,"x":2209.6053161621094,"y":537.2912015914917,"z":"9d85256.794bfd8","wires":[["41d0055a.f5d40c"]]},{"id":"9376585b.91de78","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n","comments":"","outputs":1,"x":615.3333129882812,"y":1826.6666622161865,"z":"9d85256.794bfd8","wires":[["5f9fa013.45a14","1dfd3b63.382635"]]},{"id":"5f9fa013.45a14","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":871.0952453613281,"y":1803.904836654663,"z":"9d85256.794bfd8","wires":[["e7c07e31.eaec"]]},{"id":"1dfd3b63.382635","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":876.4046745300293,"y":1839.4762544631958,"z":"9d85256.794bfd8","wires":[["e7c07e31.eaec"]]},{"id":"e7c07e31.eaec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1086.1904602050781,"y":1805.5238809585571,"z":"9d85256.794bfd8","wires":[]},{"id":"a91079be.620158","type":"comment","name":"Update AAI AR","info":"","comments":"","x":578.6761703491211,"y":1790.095106124878,"z":"9d85256.794bfd8","wires":[]},{"id":"98d3d9af.b219d8","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":593,"y":626,"z":"9d85256.794bfd8","wires":[]},{"id":"d67ce795.d438a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1639.571683883667,"y":772.6666259765625,"z":"9d85256.794bfd8","wires":[]},{"id":"95b2d8a8.b95fe8","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":893.1903457641602,"y":926.0476361513138,"z":"9d85256.794bfd8","wires":[["587d3201.9d2dec"]]},{"id":"d0cfc654.944c28","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n","comments":"","outputs":1,"x":616.3886871337891,"y":937.294153213501,"z":"9d85256.794bfd8","wires":[["27df97d8.1b3568","95b2d8a8.b95fe8","ff40702c.ccb5a"]]},{"id":"27df97d8.1b3568","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":885.9124526977539,"y":960.5322400331497,"z":"9d85256.794bfd8","wires":[["587d3201.9d2dec"]]},{"id":"587d3201.9d2dec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1038.0234146118164,"y":956.754469037056,"z":"9d85256.794bfd8","wires":[]},{"id":"ff40702c.ccb5a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":891.1904067993164,"y":992.0476361513138,"z":"9d85256.794bfd8","wires":[["71fad46f.afcc4c"]]},{"id":"71fad46f.afcc4c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1043.8569717407227,"y":990.3809643983841,"z":"9d85256.794bfd8","wires":[[]]},{"id":"5c5f3058.c0223","type":"comment","name":"GET source network from AAI","info":"","comments":"","x":594.6189041137695,"y":906.0476303100586,"z":"9d85256.794bfd8","wires":[]},{"id":"4cfc272e.3ba048","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":910.9046859741211,"y":1189.7619500160217,"z":"9d85256.794bfd8","wires":[["a32dd432.848348"]]},{"id":"4fb1ccbe.de9264","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n","comments":"","outputs":1,"x":639.531608581543,"y":1197.2942109107971,"z":"9d85256.794bfd8","wires":[["dc427390.11d98","4cfc272e.3ba048","3deff125.68148e"]]},{"id":"dc427390.11d98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":903.6267929077148,"y":1224.2465538978577,"z":"9d85256.794bfd8","wires":[["a32dd432.848348"]]},{"id":"a32dd432.848348","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />","comments":"","x":1055.7377548217773,"y":1220.468782901764,"z":"9d85256.794bfd8","wires":[]},{"id":"3deff125.68148e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":913.4761962890625,"y":1258.6190185546875,"z":"9d85256.794bfd8","wires":[["9214480a.91e1e8"]]},{"id":"9214480a.91e1e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1066.1427612304688,"y":1256.9523468017578,"z":"9d85256.794bfd8","wires":[[]]},{"id":"2a49204d.cef83","type":"comment","name":"GET dest network from AAI","info":"","comments":"","x":612.3332290649414,"y":1165.4762029647827,"z":"9d85256.794bfd8","wires":[]},{"id":"cbccf77c.4013d8","type":"set","name":"set policy fq-name","xml":"<set>\n<parameter name='tmp.fq-name' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` \" />\n","comments":"","x":565.3333129882812,"y":983.1903915405273,"z":"9d85256.794bfd8","wires":[]},{"id":"e468068e.f8fd78","type":"set","name":"set cloud-region-id for input to contrail","xml":"<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n","comments":"","x":627.327995300293,"y":1017.2802391052246,"z":"9d85256.794bfd8","wires":[]},{"id":"3eceb01b.795e6","type":"execute","name":"execute Contrail API apply network policy to source network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":703.5185165405273,"y":1090.2804369926453,"z":"9d85256.794bfd8","wires":[["701abbd2.7e3b54","94120abf.4d0b08"]]},{"id":"701abbd2.7e3b54","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1059.1850128173828,"y":1090.7086639404297,"z":"9d85256.794bfd8","wires":[["dcb9ff58.45886"]]},{"id":"94120abf.4d0b08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1057.2803344726562,"y":1123.7086037062109,"z":"9d85256.794bfd8","wires":[["a24bc0fc.7cfa4"]]},{"id":"a24bc0fc.7cfa4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from source network\" />\n","comments":"","x":1217.1851043701172,"y":1123.0419702529907,"z":"9d85256.794bfd8","wires":[]},{"id":"dcb9ff58.45886","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1211.3754959106445,"y":1091.3753889463842,"z":"9d85256.794bfd8","wires":[[]]},{"id":"b42adb13.7a13e8","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":619.9046859741211,"y":862.3332405090332,"z":"9d85256.794bfd8","wires":[["5424210d.1c802","971927f5.16bf58"]]},{"id":"5424210d.1c802","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":975.9049034118652,"y":860.9996199607849,"z":"9d85256.794bfd8","wires":[["e39e1e1a.7ac94"]]},{"id":"971927f5.16bf58","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":971.571720123291,"y":823.9994201660156,"z":"9d85256.794bfd8","wires":[["4f4a92a0.e38f1c"]]},{"id":"b98ee4e8.38eb78","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1367.730339050293,"y":861.01544713974,"z":"9d85256.794bfd8","wires":[["f9657d22.1dd65","c9ebc8c2.c7d948"]]},{"id":"f9657d22.1dd65","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1656.730339050293,"y":863.0155081748962,"z":"9d85256.794bfd8","wires":[["839cc49f.136208"]]},{"id":"c9ebc8c2.c7d948","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1636.730339050293,"y":898.0155081748962,"z":"9d85256.794bfd8","wires":[["16bca9c2.7dc4c6"]]},{"id":"e39e1e1a.7ac94","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1110.0161590576172,"y":861.4440245628357,"z":"9d85256.794bfd8","wires":[["b98ee4e8.38eb78"]]},{"id":"4f4a92a0.e38f1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1125.7051849365234,"y":824.6663227081299,"z":"9d85256.794bfd8","wires":[]},{"id":"95f9228a.7f106","type":"comment","name":"Find tenant id/cloud region from source network","info":"","comments":"","x":657.3050079345703,"y":828.9995565414429,"z":"9d85256.794bfd8","wires":[]},{"id":"c66b5efd.1ec84","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2099.9047470092773,"y":898.3332633972168,"z":"9d85256.794bfd8","wires":[["f15b62ec.d4784"]]},{"id":"16bca9c2.7dc4c6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1825.888786315918,"y":898.4592633247375,"z":"9d85256.794bfd8","wires":[["c66b5efd.1ec84"]]},{"id":"839cc49f.136208","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":1838.3934860229492,"y":862.8888339996338,"z":"9d85256.794bfd8","wires":[]},{"id":"f15b62ec.d4784","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2392.45955657959,"y":895.2223901748657,"z":"9d85256.794bfd8","wires":[["20466326.cc228c","e3af7381.016dd"]]},{"id":"ca02674e.84b438","type":"set","name":"set tenantid and cloud region id","xml":"<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n","comments":"","x":2980.1261596679688,"y":885.2223739624023,"z":"9d85256.794bfd8","wires":[]},{"id":"8017154b.206ea8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2742.1926708221436,"y":898.2223787307739,"z":"9d85256.794bfd8","wires":[["ca02674e.84b438","b9dd247f.268ab8"]]},{"id":"20466326.cc228c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2586.726047515869,"y":898.2222414016724,"z":"9d85256.794bfd8","wires":[["8017154b.206ea8"]]},{"id":"e3af7381.016dd","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2587.5256576538086,"y":936.2222442626953,"z":"9d85256.794bfd8","wires":[["5a94e0ce.bbd29"]]},{"id":"5a94e0ce.bbd29","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n","comments":"","x":2765.5258140563965,"y":936.2223100662231,"z":"9d85256.794bfd8","wires":[]},{"id":"b9dd247f.268ab8","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":2954.5927734375,"y":921.2220630645752,"z":"9d85256.794bfd8","wires":[["dd7ba10c.161b9","cbf42233.390d7","866c3c16.228b3"]]},{"id":"dd7ba10c.161b9","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3191.4541015625,"y":935.8331546783447,"z":"9d85256.794bfd8","wires":[["6068b4e5.0f7b2c"]]},{"id":"cbf42233.390d7","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3186.7871284484863,"y":969.1664686203003,"z":"9d85256.794bfd8","wires":[["6068b4e5.0f7b2c"]]},{"id":"6068b4e5.0f7b2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":3360.963050842285,"y":957.2220277786255,"z":"9d85256.794bfd8","wires":[]},{"id":"866c3c16.228b3","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3186.963134765625,"y":904.2591190338135,"z":"9d85256.794bfd8","wires":[["f29d601d.cb81d"]]},{"id":"f29d601d.cb81d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3366.963134765625,"y":902.2591190338135,"z":"9d85256.794bfd8","wires":[["2300be73.7c54a2"]]},{"id":"2300be73.7c54a2","type":"set","name":"set tenant name","xml":"<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n","comments":"","x":3553.926239013672,"y":899.8888607025146,"z":"9d85256.794bfd8","wires":[]},{"id":"4c6f65c8.0d26bc","type":"comment","name":"Apply the policy to source network","info":"","comments":"","x":621.9047012329102,"y":1058.3332691192627,"z":"9d85256.794bfd8","wires":[]},{"id":"8edbb4f5.1da278","type":"execute","name":"execute Contrail API apply network policy to destination network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\n\n","comments":"","outputs":1,"x":727.9047470092773,"y":1342.3332767486572,"z":"9d85256.794bfd8","wires":[["40503601.fe4738","90fb633f.f3b86"]]},{"id":"40503601.fe4738","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1063.5711822509766,"y":1342.7614674568176,"z":"9d85256.794bfd8","wires":[["a824091b.d45238"]]},{"id":"90fb633f.f3b86","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1061.66650390625,"y":1375.7614072225988,"z":"9d85256.794bfd8","wires":[["a6d7eb4e.7a67a8"]]},{"id":"a6d7eb4e.7a67a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from dest network\" />\n","comments":"","x":1221.571273803711,"y":1375.0947737693787,"z":"9d85256.794bfd8","wires":[]},{"id":"a824091b.d45238","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1215.7616653442383,"y":1343.4281924627721,"z":"9d85256.794bfd8","wires":[[]]},{"id":"53b61fa1.1416d","type":"comment","name":"Apply the policy to dest network","info":"","comments":"","x":626.2908706665039,"y":1310.3860726356506,"z":"9d85256.794bfd8","wires":[]},{"id":"f68288a2.a88758","type":"comment","name":"Update network policy in AAI - relationship to networks","info":"","comments":"","x":689.9047546386719,"y":1452.3332481384277,"z":"9d85256.794bfd8","wires":[]},{"id":"4619cd3d.096d04","type":"save","name":"delete AnAI - network-policy relationship to source/dest network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' \" >\n\n\n\n","comments":"","outputs":1,"x":727.2816619873047,"y":1485.4009227752686,"z":"9d85256.794bfd8","wires":[["c2ba7845.aba188","9531a4a4.802f48"]]},{"id":"d37f50f9.c5788","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":1275.6271018981934,"y":1479.6824353933334,"z":"9d85256.794bfd8","wires":[]},{"id":"c2ba7845.aba188","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1047.0557098388672,"y":1482.6981729269028,"z":"9d85256.794bfd8","wires":[["d37f50f9.c5788"]]},{"id":"9531a4a4.802f48","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1050.8652076721191,"y":1512.1745895147324,"z":"9d85256.794bfd8","wires":[["d37f50f9.c5788"]]}]
+[
+    {
+        "id": "b815bf6b.f806",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 149.00390625,
+        "y": 66.99999904632568,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "e3536c87.13bbe"
+            ]
+        ]
+    },
+    {
+        "id": "e3536c87.13bbe",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 295.2419891357422,
+        "y": 141.952392578125,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "32e23dff.190972"
+            ]
+        ]
+    },
+    {
+        "id": "32e23dff.190972",
+        "type": "method",
+        "name": "contrail-route-topology-operation-deactivate",
+        "xml": "<method rpc='contrail-route-topology-operation-deactivate' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 375.1587562561035,
+        "y": 211.1904411315918,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c4f5eee9.6967e"
+            ]
+        ]
+    },
+    {
+        "id": "c4f5eee9.6967e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 283.4800910949707,
+        "y": 354.5237832069397,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "a3036c42.f5314",
+                "86e70516.39d8f8",
+                "600fb8be.00cd98",
+                "e41af924.acac48",
+                "ec5ab69c.960248",
+                "a3185364.e3557",
+                "c2196657.5c5568",
+                "c89d538f.9aa9d",
+                "485d44b.3f22bbc",
+                "df7e9878.bf2438",
+                "cadfd5a3.bfaee8",
+                "58da4328.00307c",
+                "7b764332.cfbc8c",
+                "e7206768.0e4798",
+                "bcbcae69.e41a6",
+                "ac156492.2e6298",
+                "a041f2a.fea5e1",
+                "25a06dee.1913e2",
+                "316bd14d.1e3f7e",
+                "7f032d3b.5762a4",
+                "735dd19a.3e195",
+                "61e59930.9891c8"
+            ]
+        ]
+    },
+    {
+        "id": "86e70516.39d8f8",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 546.003978729248,
+        "y": 2280.548007965088,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "a3036c42.f5314",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 574.757884979248,
+        "y": 2243.003801345825,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "df7e9878.bf2438",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 609.7580490112305,
+        "y": 2103.717960357666,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "e41af924.acac48",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 545.7419624328613,
+        "y": 328.3333206176758,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "600fb8be.00cd98",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 593.0012245178223,
+        "y": 294.592586517334,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "ec5ab69c.960248",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 615.9973220825195,
+        "y": 364.2315492630005,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c2196657.5c5568",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 622.5226516723633,
+        "y": 532.4595079421997,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c4a17fbb.5689e",
+                "18d8cd61.df5a73"
+            ]
+        ]
+    },
+    {
+        "id": "a3185364.e3557",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 580.0687522888184,
+        "y": 424.0172243118286,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c4a17fbb.5689e",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 867.8187561035156,
+        "y": 533.2673215866089,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "cac5050.acefef8"
+            ]
+        ]
+    },
+    {
+        "id": "c89d538f.9aa9d",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 637.8665161132812,
+        "y": 2177.7674798965454,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "143ba41d.04eb0c",
+                "b003cfcf.73519",
+                "cffa818d.e26b9"
+            ]
+        ]
+    },
+    {
+        "id": "143ba41d.04eb0c",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 908.1745338439941,
+        "y": 2230.76568069309,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "f851a353.e9aa2"
+            ]
+        ]
+    },
+    {
+        "id": "b003cfcf.73519",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.1745834350586,
+        "y": 2199.2657064422965,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "f851a353.e9aa2"
+            ]
+        ]
+    },
+    {
+        "id": "cffa818d.e26b9",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 902.9246215820312,
+        "y": 2169.622811317444,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "94b3659a.a43058"
+            ]
+        ]
+    },
+    {
+        "id": "f851a353.e9aa2",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1068.9246215820312,
+        "y": 2200.0157302841544,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "cac5050.acefef8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1036.818759918213,
+        "y": 531.76722240448,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "4b3e1791.ede978"
+            ]
+        ]
+    },
+    {
+        "id": "4b3e1791.ede978",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1247.6760025024414,
+        "y": 531.3863515853882,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "308a03ed.e1727c",
+                "47b8a1d5.c5ec"
+            ]
+        ]
+    },
+    {
+        "id": "308a03ed.e1727c",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1437.0093078613281,
+        "y": 531.3863096237183,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c91abe4f.2358d"
+            ]
+        ]
+    },
+    {
+        "id": "e2e2a405.0fa288",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1910.2001266479492,
+        "y": 494.62452507019043,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "c91abe4f.2358d",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1621.533197402954,
+        "y": 528.2911434173584,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "e2e2a405.0fa288",
+                "e450a5fc.4f5528",
+                "a38edad2.503f08"
+            ]
+        ]
+    },
+    {
+        "id": "e450a5fc.4f5528",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1918.2000541687012,
+        "y": 558.7196683883667,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "e509658b.31b9c8",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 635.8186988830566,
+        "y": 499.7672109603882,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "63c12cc3.289684",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1926.199909210205,
+        "y": 525.6244802474976,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "9249324b.98c72",
+                "34ad81d1.e734ae"
+            ]
+        ]
+    },
+    {
+        "id": "9249324b.98c72",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2161.8475799560547,
+        "y": 540.0531892776489,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "7a2c59b1.1ae928"
+            ]
+        ]
+    },
+    {
+        "id": "7a2c59b1.1ae928",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n",
+        "comments": "",
+        "x": 2402.466329574585,
+        "y": 542.9577789306641,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "58da4328.00307c",
+        "type": "set",
+        "name": "unset ar-assignments.vlan-tag",
+        "xml": "<set>\n<parameter name='ar-assignments.vlan-tag' value=\"\" />\n\n\n\n",
+        "comments": "",
+        "x": 583.866325378418,
+        "y": 1641.053183555603,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "a38edad2.503f08",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1998.0571784973145,
+        "y": 461.4340171813965,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "a821712b.17818",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 550.9615592956543,
+        "y": 393.62435150146484,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "94b3659a.a43058",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1044.5805892944336,
+        "y": 2165.814980506897,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "485d44b.3f22bbc",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 560.5806350708008,
+        "y": 2070.1481189727783,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "67e85008.65268",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1620.670904159546,
+        "y": 644.333384513855,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "18d8cd61.df5a73",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 859.6705589294434,
+        "y": 568.3334064483643,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "91ff2ac7.39d1e8"
+            ]
+        ]
+    },
+    {
+        "id": "91ff2ac7.39d1e8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1039.670509338379,
+        "y": 568.9999570846558,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "67e85008.65268"
+            ]
+        ]
+    },
+    {
+        "id": "cadfd5a3.bfaee8",
+        "type": "set",
+        "name": "set ar data",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n",
+        "comments": "",
+        "x": 531.670524597168,
+        "y": 564.6666212081909,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "47b8a1d5.c5ec",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1425.3372611999512,
+        "y": 568.666669845581,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "67e85008.65268"
+            ]
+        ]
+    },
+    {
+        "id": "54b8535a.8e269c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2386.337375640869,
+        "y": 508.6666965484619,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "616e5aa8.bace14",
+        "type": "comment",
+        "name": "Call contrail api here",
+        "info": "",
+        "comments": "",
+        "x": 561.8610305786133,
+        "y": 631.2857141494751,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "2c80a456.b1f4cc",
+        "type": "comment",
+        "name": "Need to rollback aai here",
+        "info": "",
+        "comments": "",
+        "x": 1295.0038833618164,
+        "y": 2199.3333253860474,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "46f742ec.a9b84c",
+        "type": "comment",
+        "name": "Create  network policy in AAI",
+        "info": "",
+        "comments": "",
+        "x": 594.337158203125,
+        "y": 2019.333212852478,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "34ad81d1.e734ae",
+        "type": "outcome",
+        "name": "outcome Active",
+        "xml": "<outcome value='Active'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2176.6092224121094,
+        "y": 508.2912006378174,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "54b8535a.8e269c"
+            ]
+        ]
+    },
+    {
+        "id": "7b764332.cfbc8c",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 582.3372192382812,
+        "y": 1797.6666612625122,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "90496b8f.cd3e48",
+                "17738c07.d91474"
+            ]
+        ]
+    },
+    {
+        "id": "90496b8f.cd3e48",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 838.0991516113281,
+        "y": 1774.9048357009888,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "61ddf82d.16ddf8"
+            ]
+        ]
+    },
+    {
+        "id": "17738c07.d91474",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 843.4085807800293,
+        "y": 1810.4762535095215,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "61ddf82d.16ddf8"
+            ]
+        ]
+    },
+    {
+        "id": "61ddf82d.16ddf8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1053.1943664550781,
+        "y": 1776.5238800048828,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "f9c0d920.6a3758",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 545.6800765991211,
+        "y": 1761.0951051712036,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "e7206768.0e4798",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n",
+        "comments": "",
+        "x": 560.00390625,
+        "y": 596.9999990463257,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "2ef8c27b.c719fe",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1606.575590133667,
+        "y": 743.6666250228882,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "895fb59c.cb29c8",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 860.1942520141602,
+        "y": 897.0476351976395,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "8e996274.f6a77"
+            ]
+        ]
+    },
+    {
+        "id": "ac156492.2e6298",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.src-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 583.3925933837891,
+        "y": 908.2941522598267,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c50e7042.f8b7",
+                "895fb59c.cb29c8",
+                "8bf1acb1.85f35"
+            ]
+        ]
+    },
+    {
+        "id": "c50e7042.f8b7",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 852.9163589477539,
+        "y": 931.5322390794754,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "8e996274.f6a77"
+            ]
+        ]
+    },
+    {
+        "id": "8e996274.f6a77",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1005.0273208618164,
+        "y": 927.7544680833817,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "8bf1acb1.85f35",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 858.1943130493164,
+        "y": 963.0476351976395,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "6b62a765.1e4e88"
+            ]
+        ]
+    },
+    {
+        "id": "6b62a765.1e4e88",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1010.8608779907227,
+        "y": 961.3809634447098,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b5253c8d.7010d",
+        "type": "comment",
+        "name": "GET source network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 561.6228103637695,
+        "y": 877.0476293563843,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "d8c05d1d.86ab3",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 877.9085922241211,
+        "y": 1160.7619490623474,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "b6770bb6.5606e8"
+            ]
+        ]
+    },
+    {
+        "id": "7f032d3b.5762a4",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.dest-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 606.535514831543,
+        "y": 1168.2942099571228,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "ceac0fa8.21cc",
+                "d8c05d1d.86ab3",
+                "db0f5df8.46428"
+            ]
+        ]
+    },
+    {
+        "id": "ceac0fa8.21cc",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 870.6306991577148,
+        "y": 1195.2465529441833,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "b6770bb6.5606e8"
+            ]
+        ]
+    },
+    {
+        "id": "b6770bb6.5606e8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`\" />",
+        "comments": "",
+        "x": 1022.7416610717773,
+        "y": 1191.4687819480896,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "db0f5df8.46428",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 880.4801025390625,
+        "y": 1229.6190176010132,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "7a8602cf.c3ed2c"
+            ]
+        ]
+    },
+    {
+        "id": "7a8602cf.c3ed2c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1033.1466674804688,
+        "y": 1227.9523458480835,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "dc7abd78.211da",
+        "type": "comment",
+        "name": "GET dest network from AAI",
+        "info": "",
+        "comments": "",
+        "x": 579.3371353149414,
+        "y": 1136.4762020111084,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "a041f2a.fea5e1",
+        "type": "set",
+        "name": "set policy fq-name",
+        "xml": "<set>\n<parameter name='tmp.fq-name' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` \" />\n",
+        "comments": "",
+        "x": 532.3372192382812,
+        "y": 954.190390586853,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "25a06dee.1913e2",
+        "type": "set",
+        "name": "set cloud-region-id for input to contrail",
+        "xml": "<set>\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n",
+        "comments": "",
+        "x": 594.331901550293,
+        "y": 988.2802381515503,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "316bd14d.1e3f7e",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to source network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 670.5224227905273,
+        "y": 1061.280436038971,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c0fb54dc.a8e1a8",
+                "4b7ba790.40c118"
+            ]
+        ]
+    },
+    {
+        "id": "c0fb54dc.a8e1a8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1026.1889190673828,
+        "y": 1061.7086629867554,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "130dd766.3e4979"
+            ]
+        ]
+    },
+    {
+        "id": "4b7ba790.40c118",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1024.2842407226562,
+        "y": 1094.7086027525365,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "b56db03.6e1275"
+            ]
+        ]
+    },
+    {
+        "id": "b56db03.6e1275",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from source network\" />\n",
+        "comments": "",
+        "x": 1184.1890106201172,
+        "y": 1094.0419692993164,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "130dd766.3e4979",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1178.3794021606445,
+        "y": 1062.3753879927099,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bcbcae69.e41a6",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 586.9085922241211,
+        "y": 833.3332395553589,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "a8cf0dfe.c0676",
+                "b0bcf579.d52d48"
+            ]
+        ]
+    },
+    {
+        "id": "a8cf0dfe.c0676",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 942.9088096618652,
+        "y": 831.9996190071106,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "e4489b27.0ab3d8"
+            ]
+        ]
+    },
+    {
+        "id": "b0bcf579.d52d48",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 938.575626373291,
+        "y": 794.9994192123413,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "e8402b5f.bacaf8"
+            ]
+        ]
+    },
+    {
+        "id": "4a3cc27f.d1207c",
+        "type": "switchNode",
+        "name": "switch service-data.networks.network_length",
+        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1334.734245300293,
+        "y": 832.0154461860657,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "ced5ea6e.50d148",
+                "4e2e2769.bc7988"
+            ]
+        ]
+    },
+    {
+        "id": "ced5ea6e.50d148",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1623.734245300293,
+        "y": 834.0155072212219,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "7df1b688.54eb98"
+            ]
+        ]
+    },
+    {
+        "id": "4e2e2769.bc7988",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1603.734245300293,
+        "y": 869.0155072212219,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "7f100db9.54a9d4"
+            ]
+        ]
+    },
+    {
+        "id": "e4489b27.0ab3d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1077.0200653076172,
+        "y": 832.4440236091614,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "4a3cc27f.d1207c"
+            ]
+        ]
+    },
+    {
+        "id": "e8402b5f.bacaf8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1092.7090911865234,
+        "y": 795.6663217544556,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "ea7023cf.b9d96",
+        "type": "comment",
+        "name": "Find tenant id/cloud region from source network",
+        "info": "",
+        "comments": "",
+        "x": 624.3089141845703,
+        "y": 799.9995555877686,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "c37f3483.2bbfa8",
+        "type": "for",
+        "name": "for nidx..service-data.networks.network[]",
+        "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2066.9086532592773,
+        "y": 869.3332624435425,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "64560a.8f1f79f8"
+            ]
+        ]
+    },
+    {
+        "id": "7f100db9.54a9d4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1792.892692565918,
+        "y": 869.4592623710632,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c37f3483.2bbfa8"
+            ]
+        ]
+    },
+    {
+        "id": "7df1b688.54eb98",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1805.3973922729492,
+        "y": 833.8888330459595,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "64560a.8f1f79f8",
+        "type": "switchNode",
+        "name": "switch networkid found",
+        "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2359.46346282959,
+        "y": 866.2223892211914,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "7342e4d1.67d22c",
+                "a2517fec.05268"
+            ]
+        ]
+    },
+    {
+        "id": "6f43e020.46433",
+        "type": "set",
+        "name": "set cloud region id",
+        "xml": "<set>\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n",
+        "comments": "",
+        "x": 2946.130142211914,
+        "y": 868.2223949432373,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "ba9643b0.6b37d",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2709.1965770721436,
+        "y": 869.2223777770996,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "6f43e020.46433"
+            ]
+        ]
+    },
+    {
+        "id": "7342e4d1.67d22c",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2553.729953765869,
+        "y": 869.222240447998,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "ba9643b0.6b37d"
+            ]
+        ]
+    },
+    {
+        "id": "a2517fec.05268",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2554.5295639038086,
+        "y": 907.222243309021,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "b1867f01.f4838"
+            ]
+        ]
+    },
+    {
+        "id": "b1867f01.f4838",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error activating contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 2732.5297203063965,
+        "y": 907.2223091125488,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "b3a00b12.59bf18",
+        "type": "comment",
+        "name": "Apply the policy to source network",
+        "info": "",
+        "comments": "",
+        "x": 588.9086074829102,
+        "y": 1029.3332681655884,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "735dd19a.3e195",
+        "type": "execute",
+        "name": "execute Contrail API apply network policy to destination network",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='remove' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\n<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 694.9086532592773,
+        "y": 1313.333275794983,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "b28c1bec.d5a608",
+                "7421f45.064d50c"
+            ]
+        ]
+    },
+    {
+        "id": "b28c1bec.d5a608",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1030.5750885009766,
+        "y": 1313.7614665031433,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "f586735b.d7b1f"
+            ]
+        ]
+    },
+    {
+        "id": "7421f45.064d50c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1028.67041015625,
+        "y": 1346.7614062689245,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "3ac5d5d2.c2451a"
+            ]
+        ]
+    },
+    {
+        "id": "3ac5d5d2.c2451a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to remove policy in Contrail from dest network\" />\n",
+        "comments": "",
+        "x": 1188.575180053711,
+        "y": 1346.0947728157043,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "f586735b.d7b1f",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1182.7655715942383,
+        "y": 1314.4281915090978,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ad4f0026.b8dda",
+        "type": "comment",
+        "name": "Apply the policy to dest network",
+        "info": "",
+        "comments": "",
+        "x": 593.2947769165039,
+        "y": 1281.3860716819763,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "7882567f.5f5408",
+        "type": "comment",
+        "name": "Update network policy in AAI - relationship to networks",
+        "info": "",
+        "comments": "",
+        "x": 656.9086608886719,
+        "y": 1423.3332471847534,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "61e59930.9891c8",
+        "type": "save",
+        "name": "delete AnAI - network-policy relationship to source/dest network",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy:relationship-list\" \n\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' \" >\n\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 694.2855682373047,
+        "y": 1456.4009218215942,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "bef2cc41.3ba14",
+                "82796ef8.27467"
+            ]
+        ]
+    },
+    {
+        "id": "c3e7254d.3fafa8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n",
+        "comments": "",
+        "x": 1242.6310081481934,
+        "y": 1450.6824344396591,
+        "z": "1907a3e8.ef01ec",
+        "wires": []
+    },
+    {
+        "id": "bef2cc41.3ba14",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1014.0596160888672,
+        "y": 1453.6981719732285,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c3e7254d.3fafa8"
+            ]
+        ]
+    },
+    {
+        "id": "82796ef8.27467",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1017.8691139221191,
+        "y": 1483.174588561058,
+        "z": "1907a3e8.ef01ec",
+        "wires": [
+            [
+                "c3e7254d.3fafa8"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index 5db96ba..d6f4986 100755 (executable)
@@ -1 +1,1194 @@
-[{"id":"becd7f46.fe2bf","type":"dgstart","name":"DGSTART","outputs":1,"x":128.75,"y":27.5,"z":"e569e14b.d5e55","wires":[["adc37c50.19098"]]},{"id":"adc37c50.19098","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":274.9880828857422,"y":102.45239353179932,"z":"e569e14b.d5e55","wires":[["88d121bb.cdd29"]]},{"id":"88d121bb.cdd29","type":"method","name":"contrail-route-topology-operation-delete","xml":"<method rpc='contrail-route-topology-operation-delete' mode='sync'>\n","comments":"","outputs":1,"x":354.9048500061035,"y":171.6904420852661,"z":"e569e14b.d5e55","wires":[["60ab3b30.b86e34"]]},{"id":"60ab3b30.b86e34","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":263.2261848449707,"y":315.023784160614,"z":"e569e14b.d5e55","wires":[["22819c80.b5e484","445b52e8.7f835c","4ac8649d.ada16c","62ed76ff.3c67b8","354e0921.5c5ed6","e3e3d9e6.687068","f049140a.554d68","b627ce5a.c2954","d72864d2.c3f998","79f2ba4.25f5344","a4812fb4.cdeec","1bce9c6e.93a654","c7759fb6.6c31d","6689456.39a4cbc","d86a7f33.843fa","4706a986.175c68","9aa992b8.2845a"]]},{"id":"445b52e8.7f835c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":530.4644355773926,"y":1507.0481815338135,"z":"e569e14b.d5e55","wires":[]},{"id":"22819c80.b5e484","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":559.2183418273926,"y":1469.5039749145508,"z":"e569e14b.d5e55","wires":[]},{"id":"79f2ba4.25f5344","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":594.2184982299805,"y":1348.5514640808105,"z":"e569e14b.d5e55","wires":[]},{"id":"62ed76ff.3c67b8","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":525.4880561828613,"y":288.8333215713501,"z":"e569e14b.d5e55","wires":[]},{"id":"4ac8649d.ada16c","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":572.7473182678223,"y":255.0925874710083,"z":"e569e14b.d5e55","wires":[]},{"id":"354e0921.5c5ed6","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":595.7434158325195,"y":324.7315502166748,"z":"e569e14b.d5e55","wires":[[]]},{"id":"f049140a.554d68","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":602.2687454223633,"y":492.959508895874,"z":"e569e14b.d5e55","wires":[["69cfc505.7f3bfc","1595a59f.8ba24a"]]},{"id":"e3e3d9e6.687068","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":559.8148460388184,"y":384.51722526550293,"z":"e569e14b.d5e55","wires":[[]]},{"id":"69cfc505.7f3bfc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":847.5648498535156,"y":493.7673225402832,"z":"e569e14b.d5e55","wires":[["3d3e16bd.d3cd1a"]]},{"id":"b627ce5a.c2954","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":622.3269729614258,"y":1422.600956916809,"z":"e569e14b.d5e55","wires":[["bb0a2810.ed8a78","c90a1d4a.3f87a","fea853dd.97a09"]]},{"id":"bb0a2810.ed8a78","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":892.6349906921387,"y":1475.5991577133536,"z":"e569e14b.d5e55","wires":[["d905f0c9.5808e"]]},{"id":"c90a1d4a.3f87a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":883.6350402832031,"y":1444.0991834625602,"z":"e569e14b.d5e55","wires":[["d905f0c9.5808e"]]},{"id":"fea853dd.97a09","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":887.3850784301758,"y":1414.4562883377075,"z":"e569e14b.d5e55","wires":[["2d2d87e.03f6078"]]},{"id":"d905f0c9.5808e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1053.3850784301758,"y":1444.849207304418,"z":"e569e14b.d5e55","wires":[]},{"id":"3d3e16bd.d3cd1a","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1016.5648536682129,"y":492.2672233581543,"z":"e569e14b.d5e55","wires":[["9e65c440.041d18"]]},{"id":"9e65c440.041d18","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1227.4220962524414,"y":491.8863525390625,"z":"e569e14b.d5e55","wires":[["4d39ed9a.01efb4","a3995ce4.1f05c"]]},{"id":"4d39ed9a.01efb4","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1416.7554016113281,"y":491.8863105773926,"z":"e569e14b.d5e55","wires":[["5e4bfa25.12c6e4"]]},{"id":"d59088ab.eae808","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1889.9462203979492,"y":455.12452602386475,"z":"e569e14b.d5e55","wires":[]},{"id":"5e4bfa25.12c6e4","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1601.279291152954,"y":488.7911443710327,"z":"e569e14b.d5e55","wires":[["d59088ab.eae808","43821273.52747c","4a61db6.87e5124","7d01f23a.bec1cc"]]},{"id":"43821273.52747c","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1897.9461479187012,"y":519.219669342041,"z":"e569e14b.d5e55","wires":[]},{"id":"9fb35462.f52a18","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":615.5647926330566,"y":460.2672119140625,"z":"e569e14b.d5e55","wires":[]},{"id":"7d01f23a.bec1cc","type":"switchNode","name":"switch order-status","xml":"<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1905.946002960205,"y":486.1244812011719,"z":"e569e14b.d5e55","wires":[["eac06920.e5b678","b310637f.02fbd"]]},{"id":"eac06920.e5b678","type":"outcome","name":"outcome PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":2119.2125549316406,"y":468.7911968231201,"z":"e569e14b.d5e55","wires":[["febe9e04.e9e54"]]},{"id":"b310637f.02fbd","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2141.5936737060547,"y":500.55319023132324,"z":"e569e14b.d5e55","wires":[["7ce0b7e4.ca1208"]]},{"id":"7ce0b7e4.ca1208","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n","comments":"","x":2382.212423324585,"y":503.4577798843384,"z":"e569e14b.d5e55","wires":[]},{"id":"4a61db6.87e5124","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":1977.8032722473145,"y":421.9340181350708,"z":"e569e14b.d5e55","wires":[]},{"id":"c977b987.7343b8","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":530.7076530456543,"y":354.12435245513916,"z":"e569e14b.d5e55","wires":[]},{"id":"2d2d87e.03f6078","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1029.0410461425781,"y":1410.6484575271606,"z":"e569e14b.d5e55","wires":[[]]},{"id":"d72864d2.c3f998","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":545.0410919189453,"y":1314.981595993042,"z":"e569e14b.d5e55","wires":[[]]},{"id":"9bed6f70.40b63","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1600.416997909546,"y":604.8333854675293,"z":"e569e14b.d5e55","wires":[]},{"id":"1595a59f.8ba24a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":839.4166526794434,"y":528.8334074020386,"z":"e569e14b.d5e55","wires":[["d10e959d.f1af08"]]},{"id":"d10e959d.f1af08","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1019.4166030883789,"y":529.4999580383301,"z":"e569e14b.d5e55","wires":[["9bed6f70.40b63"]]},{"id":"a4812fb4.cdeec","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":509.4165802001953,"y":522.8808951377869,"z":"e569e14b.d5e55","wires":[]},{"id":"a3995ce4.1f05c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1405.0833549499512,"y":529.1666707992554,"z":"e569e14b.d5e55","wires":[["9bed6f70.40b63"]]},{"id":"febe9e04.e9e54","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2366.083469390869,"y":469.16669750213623,"z":"e569e14b.d5e55","wires":[[]]},{"id":"91ea6f99.223eb","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1279.464340209961,"y":1444.1668024063108,"z":"e569e14b.d5e55","wires":[]},{"id":"6ac1fe37.5f523","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":578.7976150512695,"y":1264.1666898727417,"z":"e569e14b.d5e55","wires":[]},{"id":"1bce9c6e.93a654","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"null\" />\n","comments":"","outputs":1,"x":572.4642715454102,"y":1202.1667737960815,"z":"e569e14b.d5e55","wires":[["67708d06.981c54","b5575696.f84148"]]},{"id":"67708d06.981c54","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":828.226203918457,"y":1179.404948234558,"z":"e569e14b.d5e55","wires":[["d0e7d313.62e1c"]]},{"id":"b5575696.f84148","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":833.5356330871582,"y":1214.9763660430908,"z":"e569e14b.d5e55","wires":[["d0e7d313.62e1c"]]},{"id":"d0e7d313.62e1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":1043.321418762207,"y":1181.0239925384521,"z":"e569e14b.d5e55","wires":[]},{"id":"a58ba31a.f94","type":"comment","name":"Update AAI AR","info":"","comments":"","x":535.80712890625,"y":1165.595217704773,"z":"e569e14b.d5e55","wires":[]},{"id":"c7759fb6.6c31d","type":"set","name":"set ar-assignments","xml":"<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n","comments":"","x":538.2262420654297,"y":553.4048233032227,"z":"e569e14b.d5e55","wires":[]},{"id":"6689456.39a4cbc","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n","comments":"","outputs":1,"x":591.7500228881836,"y":738.0000433921814,"z":"e569e14b.d5e55","wires":[["515c68f.6a6a098","894918d6.e832c8"]]},{"id":"515c68f.6a6a098","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":939.7502098083496,"y":734.666512966156,"z":"e569e14b.d5e55","wires":[["f2deddaa.598f2"]]},{"id":"894918d6.e832c8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":950.4170837402344,"y":682.6663026809692,"z":"e569e14b.d5e55","wires":[["93707edc.f30ee"]]},{"id":"f99240c7.f4772","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2075.194984436035,"y":774.4442907571793,"z":"e569e14b.d5e55","wires":[["da8b3e4d.18624"]]},{"id":"96d519a6.4763b8","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1331.5756454467773,"y":734.6823401451111,"z":"e569e14b.d5e55","wires":[["2e19de27.056642","bcf381b3.c76e"]]},{"id":"2e19de27.056642","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1620.5756454467773,"y":736.6824011802673,"z":"e569e14b.d5e55","wires":[["7c9aa9bb.103b58"]]},{"id":"bcf381b3.c76e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1600.5756454467773,"y":771.6824011802673,"z":"e569e14b.d5e55","wires":[["ed771c46.afda1"]]},{"id":"ed771c46.afda1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1805.1789474487305,"y":775.5702749490738,"z":"e569e14b.d5e55","wires":[["f99240c7.f4772"]]},{"id":"f2deddaa.598f2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1073.8614654541016,"y":735.1109175682068,"z":"e569e14b.d5e55","wires":[["96d519a6.4763b8"]]},{"id":"93707edc.f30ee","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1104.5504913330078,"y":681.6664979457855,"z":"e569e14b.d5e55","wires":[]},{"id":"7c9aa9bb.103b58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":1813.683723449707,"y":736.9998613595963,"z":"e569e14b.d5e55","wires":[]},{"id":"744200d3.b7b6c","type":"comment","name":"Find tenant id/cloud region from source network","info":"","comments":"","x":621.1503143310547,"y":702.666449546814,"z":"e569e14b.d5e55","wires":[]},{"id":"da8b3e4d.18624","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n","comments":"","outputs":1,"x":2367.7497940063477,"y":771.3334175348282,"z":"e569e14b.d5e55","wires":[["2c78c682.af625a","a918ee27.d0f7"]]},{"id":"8003625a.45bf9","type":"set","name":"set tmp vals","xml":"<set>\n<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n","comments":"","x":2922.416702270508,"y":758.8333740234375,"z":"e569e14b.d5e55","wires":[]},{"id":"ef7f7f6c.34425","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2732.483144760132,"y":771.8333854675293,"z":"e569e14b.d5e55","wires":[["8003625a.45bf9","5c078955.678798"]]},{"id":"2c78c682.af625a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2577.0165214538574,"y":771.8332481384277,"z":"e569e14b.d5e55","wires":[["ef7f7f6c.34425"]]},{"id":"a918ee27.d0f7","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2577.816131591797,"y":809.8332509994507,"z":"e569e14b.d5e55","wires":[["510901ad.81fce"]]},{"id":"510901ad.81fce","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n","comments":"","x":2755.8162879943848,"y":809.8333168029785,"z":"e569e14b.d5e55","wires":[]},{"id":"5c078955.678798","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\n\t\t     tenant.tenant-id = $tmp.ar.tenant-id\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":2944.8832473754883,"y":794.8330698013306,"z":"e569e14b.d5e55","wires":[["a025d6e3.0cf328","2b3e07b3.856838","80bbe92b.0ca8c8"]]},{"id":"a025d6e3.0cf328","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3165.7446365356445,"y":787.4441843032837,"z":"e569e14b.d5e55","wires":[["366a9169.e07f0e"]]},{"id":"2b3e07b3.856838","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3161.077663421631,"y":820.7774982452393,"z":"e569e14b.d5e55","wires":[["366a9169.e07f0e"]]},{"id":"366a9169.e07f0e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":3335.2535858154297,"y":808.8330574035645,"z":"e569e14b.d5e55","wires":[]},{"id":"80bbe92b.0ca8c8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3161.2536697387695,"y":755.8701486587524,"z":"e569e14b.d5e55","wires":[["fdc8673.8e4fe98"]]},{"id":"fdc8673.8e4fe98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3341.2536697387695,"y":753.8701486587524,"z":"e569e14b.d5e55","wires":[["dcb00324.4f521"]]},{"id":"dcb00324.4f521","type":"set","name":"set tenant name","xml":"<set>\n<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n","comments":"","x":3528.2167739868164,"y":751.4998903274536,"z":"e569e14b.d5e55","wires":[]},{"id":"17163470.0781cc","type":"comment","name":"Call contrail api here","info":"","comments":"","x":548.0356826782227,"y":794.1667237281799,"z":"e569e14b.d5e55","wires":[]},{"id":"d86a7f33.843fa","type":"execute","name":"execute Contrail API delete network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n\n","comments":"","outputs":1,"x":631.1547546386719,"y":831.8097562789917,"z":"e569e14b.d5e55","wires":[["dbc93224.c778b","d259410.5f4e0c"]]},{"id":"dbc93224.c778b","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":912.5356903076172,"y":799.952121887356,"z":"e569e14b.d5e55","wires":[["30e0725f.31f38e"]]},{"id":"d259410.5f4e0c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":910.6310119628906,"y":832.9520616531372,"z":"e569e14b.d5e55","wires":[["8d871542.3bdde8"]]},{"id":"8d871542.3bdde8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to create policy in Contrail\" />\n","comments":"","x":1070.5357818603516,"y":832.2854281999171,"z":"e569e14b.d5e55","wires":[]},{"id":"30e0725f.31f38e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1064.726173400879,"y":800.6188468933105,"z":"e569e14b.d5e55","wires":[[]]},{"id":"bc9dc5ef.cc95b8","type":"comment","name":"Delete network policy in AAI","info":"","comments":"","x":549.25,"y":1020.5,"z":"e569e14b.d5e55","wires":[]},{"id":"4706a986.175c68","type":"save","name":"delete AnAI - network-policy","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n\n\n\n","comments":"","outputs":1,"x":564.6268844604492,"y":1057.5675649642944,"z":"e569e14b.d5e55","wires":[["40afbc3e.f273b4","b25dd908.c3dfd8"]]},{"id":"89d7c3b.8b4d84","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n","comments":"","x":1036.9723930358887,"y":1047.849178314209,"z":"e569e14b.d5e55","wires":[]},{"id":"40afbc3e.f273b4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":808.4010009765625,"y":1046.8649158477783,"z":"e569e14b.d5e55","wires":[["89d7c3b.8b4d84"]]},{"id":"b25dd908.c3dfd8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":812.2104988098145,"y":1076.341332435608,"z":"e569e14b.d5e55","wires":[["89d7c3b.8b4d84"]]},{"id":"9aa992b8.2845a","type":"call","name":"call policy-manager-delete-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='policy-manager-delete-policy' mode='sync' >\n","comments":"","outputs":1,"x":611.6666259765625,"y":918.3333129882812,"z":"e569e14b.d5e55","wires":[["e6c7cfc1.e9849","9ded72db.4afdc"]]},{"id":"e6c7cfc1.e9849","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":847.2459869384766,"y":915.6752805709839,"z":"e569e14b.d5e55","wires":[["ef5c2a2c.1e98b8"]]},{"id":"9ded72db.4afdc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":853.2382545471191,"y":956.4763560295105,"z":"e569e14b.d5e55","wires":[["f106eb88.3f01a8"]]},{"id":"f106eb88.3f01a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1005.9048194885254,"y":954.8096842765808,"z":"e569e14b.d5e55","wires":[[]]},{"id":"ef5c2a2c.1e98b8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1005.9524307250977,"y":909.7620401382446,"z":"e569e14b.d5e55","wires":[[]]},{"id":"6ced15d1.6e2fdc","type":"comment","name":"Call policy mgr.  continue on failure","info":"","comments":"","x":602.3332977294922,"y":886.6666030883789,"z":"e569e14b.d5e55","wires":[]}]
+[
+    {
+        "id": "c5061897.ed3c88",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 145.00390625,
+        "y": 81.9999988079071,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "d133c187.d5ddc"
+            ]
+        ]
+    },
+    {
+        "id": "d133c187.d5ddc",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 291.2419891357422,
+        "y": 156.95239233970642,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "9bd84115.0bcf5"
+            ]
+        ]
+    },
+    {
+        "id": "9bd84115.0bcf5",
+        "type": "method",
+        "name": "contrail-route-topology-operation-delete",
+        "xml": "<method rpc='contrail-route-topology-operation-delete' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 371.1587562561035,
+        "y": 226.19044089317322,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "987d07ed.d93588"
+            ]
+        ]
+    },
+    {
+        "id": "987d07ed.d93588",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 279.4800910949707,
+        "y": 369.5237829685211,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "7f5b06d6.6b7628",
+                "6625fcb1.258284",
+                "44946444.eccd7c",
+                "b01a42c3.cd422",
+                "60f60d5f.c792f4",
+                "de226263.4e383",
+                "8ae65e99.398e4",
+                "a3f2e35f.ed328",
+                "9cedd0a1.cc44e",
+                "8cf7c911.670d88",
+                "b921706b.d44a",
+                "68581ed1.0cd02",
+                "50310cfe.876cb4",
+                "1c0b3eb4.2a1111",
+                "ac1afd99.47658",
+                "3c6fdb59.f8fd14",
+                "d23354a7.464df8"
+            ]
+        ]
+    },
+    {
+        "id": "6625fcb1.258284",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 546.7183418273926,
+        "y": 1561.5481803417206,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "7f5b06d6.6b7628",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='contrail-route-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 575.4722480773926,
+        "y": 1524.0039737224579,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "8cf7c911.670d88",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 610.4724044799805,
+        "y": 1403.0514628887177,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "b01a42c3.cd422",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 541.7419624328613,
+        "y": 343.3333203792572,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "44946444.eccd7c",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 589.0012245178223,
+        "y": 309.5925862789154,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "60f60d5f.c792f4",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 611.9973220825195,
+        "y": 379.2315490245819,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8ae65e99.398e4",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 618.5226516723633,
+        "y": 547.4595077037811,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "5450effe.e31e8",
+                "b254beba.55dd2"
+            ]
+        ]
+    },
+    {
+        "id": "de226263.4e383",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 576.0687522888184,
+        "y": 439.01722407341003,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5450effe.e31e8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 863.8187561035156,
+        "y": 548.2673213481903,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "f85b6040.a71da"
+            ]
+        ]
+    },
+    {
+        "id": "a3f2e35f.ed328",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 638.5808792114258,
+        "y": 1477.1009557247162,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "f9a00937.0d9618",
+                "730f992c.7587c8",
+                "f3c956c8.bd3aa8"
+            ]
+        ]
+    },
+    {
+        "id": "f9a00937.0d9618",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 908.8888969421387,
+        "y": 1530.0991565212607,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "88fe6f2.744949"
+            ]
+        ]
+    },
+    {
+        "id": "730f992c.7587c8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.8889465332031,
+        "y": 1498.5991822704673,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "88fe6f2.744949"
+            ]
+        ]
+    },
+    {
+        "id": "f3c956c8.bd3aa8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 903.6389846801758,
+        "y": 1468.9562871456146,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "871a277.93ca1d8"
+            ]
+        ]
+    },
+    {
+        "id": "88fe6f2.744949",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1069.6389846801758,
+        "y": 1499.3492061123252,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "f85b6040.a71da",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1032.818759918213,
+        "y": 546.7672221660614,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "5e224962.ffe4e8"
+            ]
+        ]
+    },
+    {
+        "id": "5e224962.ffe4e8",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1243.6760025024414,
+        "y": 546.3863513469696,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "65011a08.04a8a4",
+                "7554338.6b121cc"
+            ]
+        ]
+    },
+    {
+        "id": "65011a08.04a8a4",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1433.0093078613281,
+        "y": 546.3863093852997,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "28009d40.8ff902"
+            ]
+        ]
+    },
+    {
+        "id": "73af2ecc.73814",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1906.2001266479492,
+        "y": 509.62452483177185,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "28009d40.8ff902",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1617.533197402954,
+        "y": 543.2911431789398,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "73af2ecc.73814",
+                "444240e9.62dc7",
+                "b6b50cbe.e565d",
+                "a873ed89.11c27"
+            ]
+        ]
+    },
+    {
+        "id": "444240e9.62dc7",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1914.2000541687012,
+        "y": 573.7196681499481,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "a55a5912.caf608",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 631.8186988830566,
+        "y": 514.7672107219696,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "a873ed89.11c27",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1922.199909210205,
+        "y": 540.624480009079,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "8b3ee0f.ac5862",
+                "baabeb4c.f12f78"
+            ]
+        ]
+    },
+    {
+        "id": "8b3ee0f.ac5862",
+        "type": "outcome",
+        "name": "outcome PendingDelete",
+        "xml": "<outcome value='PendingDelete'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2135.4664611816406,
+        "y": 523.2911956310272,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "32a3480b.e12e28"
+            ]
+        ]
+    },
+    {
+        "id": "baabeb4c.f12f78",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2157.8475799560547,
+        "y": 555.0531890392303,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "155a1c4d.6f5b24"
+            ]
+        ]
+    },
+    {
+        "id": "155a1c4d.6f5b24",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n",
+        "comments": "",
+        "x": 2398.466329574585,
+        "y": 557.9577786922455,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "b6b50cbe.e565d",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1994.0571784973145,
+        "y": 476.4340169429779,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "926c38.d1cbf3c8",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 546.9615592956543,
+        "y": 408.62435126304626,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "871a277.93ca1d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1045.2949523925781,
+        "y": 1465.1484563350677,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9cedd0a1.cc44e",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 561.2949981689453,
+        "y": 1369.481594800949,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d7b00e7e.19998",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1616.670904159546,
+        "y": 659.3333842754364,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "b254beba.55dd2",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 855.6705589294434,
+        "y": 583.3334062099457,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "1e7432bc.b4681d"
+            ]
+        ]
+    },
+    {
+        "id": "1e7432bc.b4681d",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1035.670509338379,
+        "y": 583.9999568462372,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "d7b00e7e.19998"
+            ]
+        ]
+    },
+    {
+        "id": "b921706b.d44a",
+        "type": "set",
+        "name": "set ar data",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n",
+        "comments": "",
+        "x": 525.6704864501953,
+        "y": 577.380893945694,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "7554338.6b121cc",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1421.3372611999512,
+        "y": 583.6666696071625,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "d7b00e7e.19998"
+            ]
+        ]
+    },
+    {
+        "id": "32a3480b.e12e28",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2382.337375640869,
+        "y": 523.6666963100433,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d3399ea0.e3d6b",
+        "type": "comment",
+        "name": "Need to rollback aai here",
+        "info": "",
+        "comments": "",
+        "x": 1295.718246459961,
+        "y": 1498.666801214218,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "e190ac80.23028",
+        "type": "comment",
+        "name": "Create  network policy in AAI",
+        "info": "",
+        "comments": "",
+        "x": 595.0515213012695,
+        "y": 1318.6666886806488,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "68581ed1.0cd02",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"null\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 588.7181777954102,
+        "y": 1256.6667726039886,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "d5f2f899.1e05c8",
+                "fb1878e6.e35ec8"
+            ]
+        ]
+    },
+    {
+        "id": "d5f2f899.1e05c8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 844.480110168457,
+        "y": 1233.9049470424652,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "be1256d6.02f548"
+            ]
+        ]
+    },
+    {
+        "id": "fb1878e6.e35ec8",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 849.7895393371582,
+        "y": 1269.476364850998,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "be1256d6.02f548"
+            ]
+        ]
+    },
+    {
+        "id": "be1256d6.02f548",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 1059.575325012207,
+        "y": 1235.5239913463593,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "8f619b62.bdcdb8",
+        "type": "comment",
+        "name": "Update AAI AR",
+        "info": "",
+        "comments": "",
+        "x": 552.06103515625,
+        "y": 1220.09521651268,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "50310cfe.876cb4",
+        "type": "set",
+        "name": "set ar-assignments",
+        "xml": "<set>\n<parameter name='ar-assignments.' value=\"`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`\" />\n\n\n\n",
+        "comments": "",
+        "x": 554.4801483154297,
+        "y": 607.9048221111298,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "1c0b3eb4.2a1111",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 608.0039291381836,
+        "y": 792.5000422000885,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "f32d3627.d60638",
+                "84e18965.3c0918"
+            ]
+        ]
+    },
+    {
+        "id": "f32d3627.d60638",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 956.0041160583496,
+        "y": 789.1665117740631,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "b963a897.df44d8"
+            ]
+        ]
+    },
+    {
+        "id": "84e18965.3c0918",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 966.6709899902344,
+        "y": 737.1663014888763,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "607f0213.4585ec"
+            ]
+        ]
+    },
+    {
+        "id": "de967f6b.a246e",
+        "type": "for",
+        "name": "for nidx..service-data.networks.network[]",
+        "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2091.448890686035,
+        "y": 828.9442895650864,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "d5b5a378.f12e8"
+            ]
+        ]
+    },
+    {
+        "id": "cb4d15ad.5b3e08",
+        "type": "switchNode",
+        "name": "switch service-data.networks.network_length",
+        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1347.8295516967773,
+        "y": 789.1823389530182,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "e7768c09.76407",
+                "ddc2e983.b27498"
+            ]
+        ]
+    },
+    {
+        "id": "e7768c09.76407",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1636.8295516967773,
+        "y": 791.1823999881744,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "86330abf.322018"
+            ]
+        ]
+    },
+    {
+        "id": "ddc2e983.b27498",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1616.8295516967773,
+        "y": 826.1823999881744,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "63dd8cb4.e41794"
+            ]
+        ]
+    },
+    {
+        "id": "63dd8cb4.e41794",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1821.4328536987305,
+        "y": 830.0702737569809,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "de967f6b.a246e"
+            ]
+        ]
+    },
+    {
+        "id": "b963a897.df44d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1090.1153717041016,
+        "y": 789.6109163761139,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "cb4d15ad.5b3e08"
+            ]
+        ]
+    },
+    {
+        "id": "607f0213.4585ec",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1120.8043975830078,
+        "y": 736.1664967536926,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "86330abf.322018",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 1829.937629699707,
+        "y": 791.4998601675034,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "e72045.3754efb8",
+        "type": "comment",
+        "name": "Find tenant id/cloud region from source network",
+        "info": "",
+        "comments": "",
+        "x": 637.4042205810547,
+        "y": 757.1664483547211,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "d5b5a378.f12e8",
+        "type": "switchNode",
+        "name": "switch networkid found",
+        "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2384.0037002563477,
+        "y": 825.8334163427353,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "22ec946b.3bde1c",
+                "2d69773c.9c9fd8"
+            ]
+        ]
+    },
+    {
+        "id": "a942d336.9a02",
+        "type": "set",
+        "name": "set tmp vals",
+        "xml": "<set>\n<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\n\n\n",
+        "comments": "",
+        "x": 2925.670669555664,
+        "y": 823.3333702087402,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "95efe68c.15ea68",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2748.737051010132,
+        "y": 826.3333842754364,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "a942d336.9a02"
+            ]
+        ]
+    },
+    {
+        "id": "22ec946b.3bde1c",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2593.2704277038574,
+        "y": 826.3332469463348,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "95efe68c.15ea68"
+            ]
+        ]
+    },
+    {
+        "id": "2d69773c.9c9fd8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2594.070037841797,
+        "y": 864.3332498073578,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "81a644d4.111c68"
+            ]
+        ]
+    },
+    {
+        "id": "81a644d4.111c68",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error assigning contrail route.  Source network not found\" />\n",
+        "comments": "",
+        "x": 2772.0701942443848,
+        "y": 864.3333156108856,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "b6736797.38e8b8",
+        "type": "comment",
+        "name": "Call contrail api here",
+        "info": "",
+        "comments": "",
+        "x": 564.2895889282227,
+        "y": 848.666722536087,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "ac1afd99.47658",
+        "type": "execute",
+        "name": "execute Contrail API delete network policy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\n<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 647.4086608886719,
+        "y": 886.3097550868988,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "711f0aee.ce8ba4",
+                "9b1b549c.7a2818"
+            ]
+        ]
+    },
+    {
+        "id": "711f0aee.ce8ba4",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 928.7895965576172,
+        "y": 854.4521206952631,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "9ce64e2c.ea266"
+            ]
+        ]
+    },
+    {
+        "id": "9b1b549c.7a2818",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 926.8849182128906,
+        "y": 887.4520604610443,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "43c06676.1dbba8"
+            ]
+        ]
+    },
+    {
+        "id": "43c06676.1dbba8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to create policy in Contrail\" />\n",
+        "comments": "",
+        "x": 1086.7896881103516,
+        "y": 886.7854270078242,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "9ce64e2c.ea266",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1080.980079650879,
+        "y": 855.1188457012177,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8a766565.291e68",
+        "type": "comment",
+        "name": "Delete network policy in AAI",
+        "info": "",
+        "comments": "",
+        "x": 565.50390625,
+        "y": 1074.999998807907,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "3c6fdb59.f8fd14",
+        "type": "save",
+        "name": "delete AnAI - network-policy",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-id = $ar-assignments.contrail-id\" >\n\n\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 580.8807907104492,
+        "y": 1112.0675637722015,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "8cd17d42.0bcda",
+                "cf16a62d.8c70a8"
+            ]
+        ]
+    },
+    {
+        "id": "8ff84544.9d71e8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to save network policy in AAI\" />\n",
+        "comments": "",
+        "x": 1053.2262992858887,
+        "y": 1102.349177122116,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    },
+    {
+        "id": "8cd17d42.0bcda",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 824.6549072265625,
+        "y": 1101.3649146556854,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "8ff84544.9d71e8"
+            ]
+        ]
+    },
+    {
+        "id": "cf16a62d.8c70a8",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 828.4644050598145,
+        "y": 1130.841331243515,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "8ff84544.9d71e8"
+            ]
+        ]
+    },
+    {
+        "id": "d23354a7.464df8",
+        "type": "call",
+        "name": "call policy-manager-delete-policy",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='policy-manager-delete-policy' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 627.9205322265625,
+        "y": 972.8333117961884,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "62a5debd.c203a",
+                "4180c869.1d0ea8"
+            ]
+        ]
+    },
+    {
+        "id": "62a5debd.c203a",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 863.4998931884766,
+        "y": 970.175279378891,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "6e04473c.a254f8"
+            ]
+        ]
+    },
+    {
+        "id": "4180c869.1d0ea8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 869.4921607971191,
+        "y": 1010.9763548374176,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            [
+                "6ad8d723.6b8888"
+            ]
+        ]
+    },
+    {
+        "id": "6ad8d723.6b8888",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1022.1587257385254,
+        "y": 1009.3096830844879,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6e04473c.a254f8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1022.2063369750977,
+        "y": 964.2620389461517,
+        "z": "9b1f52ae.5be64",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "785a4111.a959a",
+        "type": "comment",
+        "name": "Call policy mgr.  continue on failure",
+        "info": "",
+        "comments": "",
+        "x": 618.5872039794922,
+        "y": 941.166601896286,
+        "z": "9b1f52ae.5be64",
+        "wires": []
+    }
+]
\ No newline at end of file
index f182141..bc51cc3 100755 (executable)
@@ -1 +1,1662 @@
-[{"id":"6078f16e.94239","type":"dgstart","name":"DGSTART","outputs":1,"x":144,"y":80,"z":"8671a4bd.e74828","wires":[["fdea0245.f423d"]]},{"id":"fdea0245.f423d","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":290.2380828857422,"y":154.95239353179932,"z":"8671a4bd.e74828","wires":[["d039b1a6.c7dd"]]},{"id":"d039b1a6.c7dd","type":"method","name":"contrail-route-topology-operation-unassign","xml":"<method rpc='contrail-route-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":370.1548500061035,"y":224.1904420852661,"z":"8671a4bd.e74828","wires":[["278298dd.a26aa8"]]},{"id":"278298dd.a26aa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":278.4761848449707,"y":367.523784160614,"z":"8671a4bd.e74828","wires":[["1b5604e4.1c439b","c80598df.46ba08","90c6b844.d26288","1af3eb88.118b54","926dc61b.e662e8","5533a49a.eb94bc","b29dd56e.42e818","36106131.09979e","974a60a8.16f7e","a81908e8.66b878","94075fb2.8885b","50486a0e.128a74","cdd2e6e3.1748e8"]]},{"id":"c80598df.46ba08","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":545.0001029968262,"y":1169.5480337142944,"z":"8671a4bd.e74828","wires":[]},{"id":"1b5604e4.1c439b","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":573.7540092468262,"y":1132.0038270950317,"z":"8671a4bd.e74828","wires":[]},{"id":"a81908e8.66b878","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":602.0875015258789,"y":899.3847255706787,"z":"8671a4bd.e74828","wires":[]},{"id":"1af3eb88.118b54","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n","comments":"","x":540.7380561828613,"y":341.3333215713501,"z":"8671a4bd.e74828","wires":[]},{"id":"90c6b844.d26288","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":587.9973182678223,"y":307.5925874710083,"z":"8671a4bd.e74828","wires":[]},{"id":"926dc61b.e662e8","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":610.9934158325195,"y":377.2315502166748,"z":"8671a4bd.e74828","wires":[[]]},{"id":"b29dd56e.42e818","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":617.5187454223633,"y":545.459508895874,"z":"8671a4bd.e74828","wires":[["b380ca61.347388","2ba1e073.32012"]]},{"id":"5533a49a.eb94bc","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":575.0648460388184,"y":437.01722526550293,"z":"8671a4bd.e74828","wires":[[]]},{"id":"b380ca61.347388","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":862.8148498535156,"y":546.2673225402832,"z":"8671a4bd.e74828","wires":[["ec13614c.a7a1d"]]},{"id":"36106131.09979e","type":"execute","name":"execute RestApiCallNode - DELETE AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":630.1959762573242,"y":973.4342184066772,"z":"8671a4bd.e74828","wires":[["3852bf78.0486c","62c7bf4b.768c7","1e995a14.504956"]]},{"id":"3852bf78.0486c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":900.5039939880371,"y":1026.4324192032218,"z":"8671a4bd.e74828","wires":[["acbe5422.ea59e8"]]},{"id":"62c7bf4b.768c7","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":891.5040435791016,"y":994.9324449524283,"z":"8671a4bd.e74828","wires":[["acbe5422.ea59e8"]]},{"id":"1e995a14.504956","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":895.2540817260742,"y":965.2895498275757,"z":"8671a4bd.e74828","wires":[["e934c1a7.96fdf"]]},{"id":"acbe5422.ea59e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n","comments":"","x":1061.2540817260742,"y":995.6824687942863,"z":"8671a4bd.e74828","wires":[]},{"id":"ec13614c.a7a1d","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1031.814853668213,"y":544.7672233581543,"z":"8671a4bd.e74828","wires":[["c7645ab6.9eb898"]]},{"id":"c7645ab6.9eb898","type":"switchNode","name":"switch cr length","xml":"<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1242.6720962524414,"y":544.3863525390625,"z":"8671a4bd.e74828","wires":[["61c49916.42b6a8","8d424701.1f4b68"]]},{"id":"61c49916.42b6a8","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1432.0054016113281,"y":544.3863105773926,"z":"8671a4bd.e74828","wires":[["36bb8ffe.6efc7"]]},{"id":"98542804.66f4c8","type":"set","name":"set ar from get","xml":"<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n","comments":"","x":1905.1962203979492,"y":507.62452602386475,"z":"8671a4bd.e74828","wires":[]},{"id":"36bb8ffe.6efc7","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1616.529291152954,"y":541.2911443710327,"z":"8671a4bd.e74828","wires":[["98542804.66f4c8","ec6a6da.ebd6e9","4947b25a.1aec9c","e970570e.cc3e28"]]},{"id":"ec6a6da.ebd6e9","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1913.1961479187012,"y":571.719669342041,"z":"8671a4bd.e74828","wires":[]},{"id":"76e27cbc.f1e1e4","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":630.8147926330566,"y":512.7672119140625,"z":"8671a4bd.e74828","wires":[]},{"id":"e970570e.cc3e28","type":"switchNode","name":"switch order-status","xml":"<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1926.9102401733398,"y":538.6245155334473,"z":"8671a4bd.e74828","wires":[["6c1bbe13.30319","304eb865.e2d648"]]},{"id":"6c1bbe13.30319","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2160.1771850585938,"y":527.0054798126221,"z":"8671a4bd.e74828","wires":[["3b1d14d0.0288dc"]]},{"id":"304eb865.e2d648","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2156.844108581543,"y":565.9103012084961,"z":"8671a4bd.e74828","wires":[["f0543e57.ab39a"]]},{"id":"3b1d14d0.0288dc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n","comments":"","x":2383.176887512207,"y":526.243501663208,"z":"8671a4bd.e74828","wires":[]},{"id":"50486a0e.128a74","type":"set","name":"set ar-assignments.contrail-id","xml":"<set>\n<parameter name='ar-assignments.contrail-id' value=\"`$contrail-api-output.contrail-id`\" />\n\n\n\n","comments":"","x":596.8623962402344,"y":738.0530757904053,"z":"8671a4bd.e74828","wires":[]},{"id":"4947b25a.1aec9c","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n","comments":"","x":1993.0532722473145,"y":474.4340181350708,"z":"8671a4bd.e74828","wires":[]},{"id":"4648c12.da07b4","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":545.9576530456543,"y":406.62435245513916,"z":"8671a4bd.e74828","wires":[]},{"id":"e934c1a7.96fdf","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1036.9100494384766,"y":961.4817190170288,"z":"8671a4bd.e74828","wires":[[]]},{"id":"974a60a8.16f7e","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":552.9100952148438,"y":865.8148574829102,"z":"8671a4bd.e74828","wires":[[]]},{"id":"a70e9ffa.b6b9e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n","comments":"","x":1615.666997909546,"y":657.3333854675293,"z":"8671a4bd.e74828","wires":[]},{"id":"2ba1e073.32012","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":854.6666526794434,"y":581.3334074020386,"z":"8671a4bd.e74828","wires":[["8b180a16.53ad58"]]},{"id":"8b180a16.53ad58","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1034.666603088379,"y":581.9999580383301,"z":"8671a4bd.e74828","wires":[["a70e9ffa.b6b9e"]]},{"id":"94075fb2.8885b","type":"set","name":"set ar data","xml":"<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n","comments":"","x":524.6666412353516,"y":609.6666030883789,"z":"8671a4bd.e74828","wires":[]},{"id":"8d424701.1f4b68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1420.3333549499512,"y":581.6666707992554,"z":"8671a4bd.e74828","wires":[["a70e9ffa.b6b9e"]]},{"id":"f0543e57.ab39a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2361.3336181640625,"y":566.0953178405762,"z":"8671a4bd.e74828","wires":[[]]},{"id":"cdd2e6e3.1748e8","type":"set","name":"set dummy cid","xml":"<set>\n<parameter name='contrail-api-output.contrail-id' value=\"dummycid\" />\n","comments":"","x":547.3333206176758,"y":709.9999656677246,"z":"8671a4bd.e74828","wires":[]},{"id":"dad675fb.beed78","type":"comment","name":"Call contrail api here","info":"","comments":"","x":523.9999504089355,"y":669.9999895095825,"z":"8671a4bd.e74828","wires":[]},{"id":"40b7c210.a67bcc","type":"comment","name":"Need to rollback aai here","info":"","comments":"","x":1287.3333435058591,"y":995.000063896179,"z":"8671a4bd.e74828","wires":[]},{"id":"8e046298.84999","type":"comment","name":"Create  network policy in AAI","info":"","comments":"","x":586.666618347168,"y":814.9999513626099,"z":"8671a4bd.e74828","wires":[]}]
+[
+    {
+        "id": "cf211855.5ed1f8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 168.57142639160156,
+        "y": 75.71428775787354,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "bc882a0e.799dc8"
+            ]
+        ]
+    },
+    {
+        "id": "bc882a0e.799dc8",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 314.80950927734375,
+        "y": 150.66668128967285,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "49d2f441.d1158c"
+            ]
+        ]
+    },
+    {
+        "id": "49d2f441.d1158c",
+        "type": "method",
+        "name": "contrail-route-topology-operation-unassign",
+        "xml": "<method rpc='contrail-route-topology-operation-unassign' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 394.7262763977051,
+        "y": 219.90472984313965,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "851e5011.006bf"
+            ]
+        ]
+    },
+    {
+        "id": "851e5011.006bf",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 303.04761123657227,
+        "y": 363.23807191848755,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "7f6e26b0.fa04c8",
+                "e1f61957.040858",
+                "52c8941e.34706c",
+                "9fe9d7fd.07e6d8",
+                "e043065a.680238",
+                "6a751595.cd154c",
+                "e915cfb.5954f3",
+                "216c3eb7.9d46c2",
+                "856fcfb5.c8342",
+                "6247b30a.8bdabc",
+                "250f7992.c6d986",
+                "a787f7d2.22c9c8",
+                "e991aac8.552e48",
+                "36023b8e.b1c6e4",
+                "ba43457f.b66688",
+                "64afab36.0ce6d4",
+                "a5078016.a7585",
+                "9190dbed.f454e8"
+            ]
+        ]
+    },
+    {
+        "id": "e1f61957.040858",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 541.1588745117188,
+        "y": 1725.2621965408325,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "7f6e26b0.fa04c8",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $contrail-route-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 569.9127807617188,
+        "y": 1687.7179899215698,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "9fe9d7fd.07e6d8",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/contrail-route-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 565.3094825744629,
+        "y": 337.04760932922363,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "52c8941e.34706c",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n\n\n",
+        "comments": "",
+        "x": 612.5687446594238,
+        "y": 303.30687522888184,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "e043065a.680238",
+        "type": "execute",
+        "name": "execute Properties - pull properties file",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 628.8981494903564,
+        "y": 369.6125030517578,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e915cfb.5954f3",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 629.8679656982422,
+        "y": 683.3960418701172,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "1a91ce88.4d2c91",
+                "bb4b7f07.d9ff6"
+            ]
+        ]
+    },
+    {
+        "id": "6a751595.cd154c",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.cr-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 599.6362724304199,
+        "y": 432.73151302337646,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1a91ce88.4d2c91",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 875.1640701293945,
+        "y": 684.2038555145264,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "55fcf194.b47d5"
+            ]
+        ]
+    },
+    {
+        "id": "55fcf194.b47d5",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1044.1640739440918,
+        "y": 682.7037563323975,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5479fd32.f72504"
+            ]
+        ]
+    },
+    {
+        "id": "5479fd32.f72504",
+        "type": "switchNode",
+        "name": "switch cr length",
+        "xml": "<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1255.0213165283203,
+        "y": 682.3228855133057,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "9300342b.83b788",
+                "d9b9b305.104fe"
+            ]
+        ]
+    },
+    {
+        "id": "9300342b.83b788",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1444.354621887207,
+        "y": 682.3228435516357,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "8a8034cd.f86478"
+            ]
+        ]
+    },
+    {
+        "id": "81b74a81.710da8",
+        "type": "set",
+        "name": "set ar from get",
+        "xml": "<set>\n<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1839.7677383422852,
+        "y": 711.1165752410889,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "8a8034cd.f86478",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1628.878511428833,
+        "y": 679.2276773452759,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "81b74a81.710da8",
+                "ae3a9c95.9f86f",
+                "1b54a40a.1567fc",
+                "8dd6e424.319b18"
+            ]
+        ]
+    },
+    {
+        "id": "ae3a9c95.9f86f",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1847.767665863037,
+        "y": 775.2117185592651,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "6d24bc6e.b432b4",
+        "type": "comment",
+        "name": "GET contrail-route-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 643.1640129089355,
+        "y": 650.7037448883057,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "8dd6e424.319b18",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1861.4817581176758,
+        "y": 742.1165647506714,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "f8de75cd.7a7528",
+                "395f6853.653ed8"
+            ]
+        ]
+    },
+    {
+        "id": "f8de75cd.7a7528",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2094.7487030029297,
+        "y": 730.4975290298462,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "525c5ee0.9d3fa"
+            ]
+        ]
+    },
+    {
+        "id": "395f6853.653ed8",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2091.415626525879,
+        "y": 769.4023504257202,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "c5891364.a15db"
+            ]
+        ]
+    },
+    {
+        "id": "525c5ee0.9d3fa",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n",
+        "comments": "",
+        "x": 2317.748405456543,
+        "y": 729.7355508804321,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "1b54a40a.1567fc",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-cr-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1927.6247901916504,
+        "y": 677.9260673522949,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "12dc5691.1f3bf9",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 570.5290794372559,
+        "y": 402.3386402130127,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "45ecfa97.8bea64",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"Error: Contrail Route not found\" />\n    \n",
+        "comments": "",
+        "x": 1628.0162181854248,
+        "y": 795.2699184417725,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "bb4b7f07.d9ff6",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 867.0158729553223,
+        "y": 719.2699403762817,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "c4bc3964.e647b8"
+            ]
+        ]
+    },
+    {
+        "id": "c4bc3964.e647b8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1047.0158233642578,
+        "y": 719.9364910125732,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "45ecfa97.8bea64"
+            ]
+        ]
+    },
+    {
+        "id": "216c3eb7.9d46c2",
+        "type": "set",
+        "name": "set ar data",
+        "xml": "<set>\n<parameter name='ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='ar.allotted-resource-status.action' value=\"`$contrail-route-topology-operation-input.request-information.request-action` \" />\n<parameter name='ar.allotted-resource-status.rpc-name' value=\"contrail-route-topology-operation\" />\n<parameter name='ar.allotted-resource-status.rpc-action' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$contrail-route-topology-operation-input.request-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$contrail-route-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$contrail-route-topology-operation-input.service-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$contrail-route-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value=\"`$contrail-route-topology-operation-input.contrail-route-request-input.` \" />\n<parameter name='tmp.dest-network-id' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id`' />\n",
+        "comments": "",
+        "x": 532.5713729858398,
+        "y": 752.0475673675537,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "d9b9b305.104fe",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1432.68257522583,
+        "y": 719.6032037734985,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "45ecfa97.8bea64"
+            ]
+        ]
+    },
+    {
+        "id": "c5891364.a15db",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2295.9051361083984,
+        "y": 769.5873670578003,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "36023b8e.b1c6e4",
+        "type": "execute",
+        "name": "execute RestApiCallNode - DELETE AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 654.1865539550781,
+        "y": 1205.833387374878,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "9feba3d6.f55d3",
+                "8704b793.312ca8",
+                "11ed62bd.b7f16d"
+            ]
+        ]
+    },
+    {
+        "id": "4768fe31.b5a5c",
+        "type": "comment",
+        "name": "Delete AR from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 602.9168090820312,
+        "y": 1176.4682731628418,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "64afab36.0ce6d4",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Delete parent provided service AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 688.9484634399414,
+        "y": 835.3571434020996,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "dcd0467e.92fe18",
+                "3ff5c872.9a1a18",
+                "b114286b.199858"
+            ]
+        ]
+    },
+    {
+        "id": "dcd0467e.92fe18",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.2565650939941,
+        "y": 884.7996797561646,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "38844671.fda6da"
+            ]
+        ]
+    },
+    {
+        "id": "3ff5c872.9a1a18",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1002.2565307617188,
+        "y": 848.8553867340088,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "38844671.fda6da"
+            ]
+        ]
+    },
+    {
+        "id": "b114286b.199858",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.0065689086914,
+        "y": 819.2124916091561,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "ac08724a.8c537"
+            ]
+        ]
+    },
+    {
+        "id": "38844671.fda6da",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for contrail-route-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1172.0065689086914,
+        "y": 849.6054105758667,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "ac08724a.8c537",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1147.6625366210938,
+        "y": 815.4046607986093,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "470f34a0.7311bc",
+        "type": "comment",
+        "name": "Delete the parent allotted resource from mdsal ",
+        "info": "",
+        "comments": "",
+        "x": 631.5039825439453,
+        "y": 803.3570127487183,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "febec64d.8ef9d8",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 956.8214263916016,
+        "y": 336.21428775787354,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "a5078016.a7585",
+        "type": "execute",
+        "name": "generate parent-network url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-parentnetwork-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 599.3083038330078,
+        "y": 533.3676280975342,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "856fcfb5.c8342",
+        "type": "execute",
+        "name": "generate parent-ar url - replace service-instance-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 668.3972930908203,
+        "y": 466.70129585266113,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6247b30a.8bdabc",
+        "type": "execute",
+        "name": "generate parent-ar url - replace allotted-resource-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 672.5991821289062,
+        "y": 498.2142753601074,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "250f7992.c6d986",
+        "type": "execute",
+        "name": "generate network-ar url - replace service-instance-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 672.5991668701172,
+        "y": 570.4364900588989,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a787f7d2.22c9c8",
+        "type": "execute",
+        "name": "generate network-ar url - replace network-id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-ar-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.dest-network-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 632.3769683837891,
+        "y": 1029.769829750061,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e991aac8.552e48",
+        "type": "execute",
+        "name": "execute RestApiCallNode - GET parent network provided AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"net-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 687.9324493408203,
+        "y": 1062.7697076797485,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "b4567206.fa863",
+                "a71a40c5.88def",
+                "554f70e5.d5d85"
+            ]
+        ]
+    },
+    {
+        "id": "a71a40c5.88def",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1099.2405281066895,
+        "y": 1063.4353370666504,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "499ec72d.b02448"
+            ]
+        ]
+    },
+    {
+        "id": "554f70e5.d5d85",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1091.9072380065918,
+        "y": 1098.6017951965332,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "499ec72d.b02448"
+            ]
+        ]
+    },
+    {
+        "id": "b4567206.fa863",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1093.9905624389648,
+        "y": 1028.9588814750314,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "f1a4599b.49b4d8"
+            ]
+        ]
+    },
+    {
+        "id": "499ec72d.b02448",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1273.646499633789,
+        "y": 1063.484673500061,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9c979e8d.9ba31",
+        "type": "comment",
+        "name": "Delete AR from parent network allotted resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 671.0434722900391,
+        "y": 998.9922933578491,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "6c0f7db7.db6b84",
+        "type": "for",
+        "name": "for snidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+        "xml": "<for silentFailure='true' index='snidx' start='`$tmp.sdidx + 1`' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1642.4245147705078,
+        "y": 1583.7696347236633,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "9dfc230a.0b6c1"
+            ]
+        ]
+    },
+    {
+        "id": "e8ab0dfb.30e2a",
+        "type": "comment",
+        "name": "Remove CAR from service data",
+        "info": "",
+        "comments": "",
+        "x": 594.2659225463867,
+        "y": 1416.8652505874634,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "ba43457f.b66688",
+        "type": "switchNode",
+        "name": "switch $service-data.consumed-allotted-resource.length",
+        "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 671.0316925048828,
+        "y": 1449.3177938461304,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "883c0f9b.2274b",
+                "7e619691.b53748"
+            ]
+        ]
+    },
+    {
+        "id": "883c0f9b.2274b",
+        "type": "outcome",
+        "name": "1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1027.4125289916992,
+        "y": 1455.9842100143433,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "d2f770e7.24326"
+            ]
+        ]
+    },
+    {
+        "id": "d11a120d.f125a",
+        "type": "set",
+        "name": "Remove AR",
+        "xml": "<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.\" value=\"\"/>\n\n",
+        "comments": "",
+        "x": 1415.5869064331055,
+        "y": 1458.5399341583252,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "7e619691.b53748",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1021.5712547302246,
+        "y": 1582.7619514465332,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "37a9c9fb.ba1086"
+            ]
+        ]
+    },
+    {
+        "id": "e96ed39b.1e002",
+        "type": "set",
+        "name": "set new CAR length",
+        "xml": "<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource_length\" value=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`\"/>\n\n\t\n",
+        "comments": "",
+        "x": 1448.5500106811523,
+        "y": 1612.7621221542358,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "237fb279.27975e",
+        "type": "set",
+        "name": "Remove CAR",
+        "xml": "<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.new_length].\" value=\"\"/>\n\n",
+        "comments": "",
+        "x": 1430.6186714172363,
+        "y": 1644.0633525848389,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "37a9c9fb.ba1086",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1205.793441772461,
+        "y": 1582.6507930755615,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "6c0f7db7.db6b84",
+                "237fb279.27975e",
+                "e96ed39b.1e002",
+                "b0a56887.03df98"
+            ]
+        ]
+    },
+    {
+        "id": "93c6f0ff.65042",
+        "type": "set",
+        "name": "set new consumed allotted resource length",
+        "xml": "<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource_length\" value=\"0\"/>\n\n\t\n",
+        "comments": "",
+        "x": 1511.92041015625,
+        "y": 1489.9102430343628,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "d2f770e7.24326",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1206.7458419799805,
+        "y": 1456.688006401062,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "d11a120d.f125a",
+                "93c6f0ff.65042"
+            ]
+        ]
+    },
+    {
+        "id": "446a27f7.923d98",
+        "type": "comment",
+        "name": "If only one remove all networks",
+        "info": "",
+        "comments": "",
+        "x": 1098.7828903198242,
+        "y": 1420.5769834518433,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "b0a56887.03df98",
+        "type": "set",
+        "name": "Set new length",
+        "xml": "<set>\n\t<parameter name=\"tmp.new_length\" value=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`\"/>\n\t\n\t\n",
+        "comments": "",
+        "x": 1432.4970474243164,
+        "y": 1551.2434558868408,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "c78ea6ce.ed3d88",
+        "type": "set",
+        "name": "move CAR to remove one",
+        "xml": "<set>\n\t<parameter name=\"service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.newidx].\" value=\"$service-data.consumed-allotted-resources.consumed-allotted-resource[$snidx].\" />\n\t\n",
+        "comments": "",
+        "x": 2278.154495239258,
+        "y": 1613.7696771621704,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "9dfc230a.0b6c1",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2038.7102508544922,
+        "y": 1583.5473852157593,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "c78ea6ce.ed3d88",
+                "9fa5c66e.e79918"
+            ]
+        ]
+    },
+    {
+        "id": "9fa5c66e.e79918",
+        "type": "set",
+        "name": "Set new index",
+        "xml": "<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n",
+        "comments": "",
+        "x": 2242.3027267456055,
+        "y": 1583.3623399734497,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "95095ce2.63d2c",
+        "type": "switchNode",
+        "name": "switch net-ar_length",
+        "xml": "<switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1527.4880981445312,
+        "y": 1065.2143659591675,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "daff076a.52d9c8",
+                "3e839fd2.eaab4"
+            ]
+        ]
+    },
+    {
+        "id": "b833a46f.312d28",
+        "type": "for",
+        "name": "for nidx..net-ar[]",
+        "xml": "<for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2223.821563720703,
+        "y": 1075.214337348938,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "56f3d41c.41b2ec"
+            ]
+        ]
+    },
+    {
+        "id": "daff076a.52d9c8",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1813.4399795532227,
+        "y": 1059.2143049240112,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "4b792998.db27c8"
+            ]
+        ]
+    },
+    {
+        "id": "3e839fd2.eaab4",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1796.9638061523438,
+        "y": 1092.4524030685425,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "12f12009.d4012"
+            ]
+        ]
+    },
+    {
+        "id": "56f3d41c.41b2ec",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test=\"`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2452.916534423828,
+        "y": 1074.2742738723755,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "d553befb.edc66"
+            ]
+        ]
+    },
+    {
+        "id": "12f12009.d4012",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2012.852783203125,
+        "y": 1092.673376083374,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "b833a46f.312d28",
+                "63eb735f.7f9c2c"
+            ]
+        ]
+    },
+    {
+        "id": "a142704e.b2dcd",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2422.7298698425293,
+        "y": 1151.3517026901245,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "6f7d4fb7.127fe"
+            ]
+        ]
+    },
+    {
+        "id": "6f7d4fb7.127fe",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2588.0631217956543,
+        "y": 1150.6849546432495,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "33a44101.5b5f8e",
+                "95a9abab.e40798",
+                "b54f3c4c.94e97"
+            ]
+        ]
+    },
+    {
+        "id": "847a6eca.9652",
+        "type": "comment",
+        "name": "allotted resource already exists- remove it",
+        "info": "",
+        "comments": "",
+        "x": 2280.4881286621094,
+        "y": 1117.6428899765015,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "63eb735f.7f9c2c",
+        "type": "switchNode",
+        "name": "switch tmp.found-nidx",
+        "xml": "<switch test='`$tmp.found-nidx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2235.7298698425293,
+        "y": 1151.684832572937,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "a142704e.b2dcd"
+            ]
+        ]
+    },
+    {
+        "id": "7e3be93c.b00018",
+        "type": "set",
+        "name": "set tmp.found-nidx = false",
+        "xml": "<set>\n<parameter name='tmp.found-nidx' value='false' />",
+        "comments": "",
+        "x": 1544.1548461914062,
+        "y": 1027.548228263855,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "4b792998.db27c8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2006.6790924072266,
+        "y": 1057.880581855774,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8704b793.312ca8",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 944.3928985595703,
+        "y": 1206.0714263916016,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "ee0682c4.4dd54"
+            ]
+        ]
+    },
+    {
+        "id": "11ed62bd.b7f16d",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 937.0596084594727,
+        "y": 1241.2378845214844,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "ee0682c4.4dd54"
+            ]
+        ]
+    },
+    {
+        "id": "9feba3d6.f55d3",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 939.1429328918457,
+        "y": 1171.5949707999825,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "ee0682c4.4dd54"
+            ]
+        ]
+    },
+    {
+        "id": "ee0682c4.4dd54",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1110.798828125,
+        "y": 1176.1207542419434,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d553befb.edc66",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2664.7266120910645,
+        "y": 1074.7383260726929,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "940eba69.169448"
+            ]
+        ]
+    },
+    {
+        "id": "940eba69.169448",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2831.487575531006,
+        "y": 1076.2622215747833,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5177c11e.0b323",
+                "ddf3d738.471938"
+            ]
+        ]
+    },
+    {
+        "id": "5177c11e.0b323",
+        "type": "set",
+        "name": "set tmp.nidx ",
+        "xml": "<set>\n<parameter name='tmp.found-nidx' value='true' />\n<parameter name='tmp.nidx' value='`$nidx`' />",
+        "comments": "",
+        "x": 3043.487968444824,
+        "y": 1067.5474972724915,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "ddf3d738.471938",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 3027.824966430664,
+        "y": 1099.5421304702759,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "92537a13.9547c8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent network provided AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"p-network-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3978.821517944336,
+        "y": 1252.261715888977,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "64bea154.8f9d5",
+                "b00d1773.aa42c8",
+                "3e77dced.50ab64"
+            ]
+        ]
+    },
+    {
+        "id": "33a44101.5b5f8e",
+        "type": "set",
+        "name": "set length",
+        "xml": "<set>\n<parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length - 1`' />\n\n",
+        "comments": "",
+        "x": 2834.0590324401855,
+        "y": 1186.7385053634644,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "f1a4599b.49b4d8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1270.8214263916016,
+        "y": 1030.2142877578735,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "7e3be93c.b00018",
+                "95095ce2.63d2c"
+            ]
+        ]
+    },
+    {
+        "id": "95a9abab.e40798",
+        "type": "for",
+        "name": "for snidx..",
+        "xml": "<for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2829.1074752807617,
+        "y": 1153.9285192489624,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "509eacd6.5c68f4"
+            ]
+        ]
+    },
+    {
+        "id": "509eacd6.5c68f4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 3003.9157524108887,
+        "y": 1154.9764223098755,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "98719d81.af49e",
+                "a96a395d.a9c718"
+            ]
+        ]
+    },
+    {
+        "id": "a96a395d.a9c718",
+        "type": "set",
+        "name": "move ar to remove one",
+        "xml": "<set>\n\t<parameter name=\"$net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.newidx]\" value=\"$net-ar.network-provided-allotted-resources.network-provided-ar-id[$snidx]\" />\n\t\n",
+        "comments": "",
+        "x": 3233.3929748535156,
+        "y": 1181.071322441101,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "98719d81.af49e",
+        "type": "set",
+        "name": "Set new index",
+        "xml": "<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n",
+        "comments": "",
+        "x": 3203.0965881347656,
+        "y": 1151.4576597213745,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "b54f3c4c.94e97",
+        "type": "switchNode",
+        "name": "switch net-ar.network-provided-allotted-resources.network-provided-ar-id_length",
+        "xml": "<switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length == 0`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3056.250045776367,
+        "y": 1219.6427507400513,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "ca553a96.f4df98",
+                "db554f7.968feb"
+            ]
+        ]
+    },
+    {
+        "id": "ca553a96.f4df98",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3449.1073150634766,
+        "y": 1218.2142877578735,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5cf72e29.a46dc"
+            ]
+        ]
+    },
+    {
+        "id": "5cf72e29.a46dc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 3614.4405670166016,
+        "y": 1217.5475397109985,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5a4fd640.a50a38"
+            ]
+        ]
+    },
+    {
+        "id": "db554f7.968feb",
+        "type": "outcomeTrue",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3453.3929595947266,
+        "y": 1253.9286432266235,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "86504a83.f25a68"
+            ]
+        ]
+    },
+    {
+        "id": "86504a83.f25a68",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 3618.7262115478516,
+        "y": 1253.2618951797485,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "92537a13.9547c8"
+            ]
+        ]
+    },
+    {
+        "id": "5a4fd640.a50a38",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Delete parent network provided AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"p-network-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 3980.5357818603516,
+        "y": 1218.500054359436,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "64bea154.8f9d5",
+                "b00d1773.aa42c8",
+                "3e77dced.50ab64"
+            ]
+        ]
+    },
+    {
+        "id": "3e77dced.50ab64",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 4370.535781860352,
+        "y": 1289.642876625061,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5ab14fa1.280a3"
+            ]
+        ]
+    },
+    {
+        "id": "b00d1773.aa42c8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 4366.535747528076,
+        "y": 1253.6985836029053,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5ab14fa1.280a3"
+            ]
+        ]
+    },
+    {
+        "id": "64bea154.8f9d5",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 4370.285785675049,
+        "y": 1224.0556884780526,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5ab14fa1.280a3"
+            ]
+        ]
+    },
+    {
+        "id": "5ab14fa1.280a3",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 4511.941753387451,
+        "y": 1220.2478576675057,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9190dbed.f454e8",
+        "type": "for",
+        "name": "for snidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+        "xml": "<for silentFailure='true' index='snidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 762.857177734375,
+        "y": 1350,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "9666f99.8880108"
+            ]
+        ]
+    },
+    {
+        "id": "9666f99.8880108",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1198.825813293457,
+        "y": 1348.206350326538,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "82b75bd4.03ad58"
+            ]
+        ]
+    },
+    {
+        "id": "82b75bd4.03ad58",
+        "type": "switchNode",
+        "name": "switch AR found",
+        "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$sdix].allotted-resource-id == $tmp.ar.allotted-resource-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1401.4285316467285,
+        "y": 1348.5714282989502,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "516d19eb.7811d8"
+            ]
+        ]
+    },
+    {
+        "id": "5240ee4d.031fa",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1778.571434020996,
+        "y": 1347.1429796218872,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "62717720.864aa8",
+                "9074a0fd.53bf6"
+            ]
+        ]
+    },
+    {
+        "id": "62717720.864aa8",
+        "type": "set",
+        "name": "Set sdidx",
+        "xml": "<set>\n\t<parameter name=\"tmp.sdidx\" value=\"`$snidx`\"/>\n\t\n\t\n",
+        "comments": "",
+        "x": 1992.8571434020996,
+        "y": 1311.4287633895874,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "9074a0fd.53bf6",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 1984.2856636047363,
+        "y": 1345.7144775390625,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "6edc1d83.b18194",
+        "type": "comment",
+        "name": "Find AR idx in consumed allotted resource list",
+        "info": "",
+        "comments": "",
+        "x": 679.9999389648438,
+        "y": 1315.714391708374,
+        "z": "124cd5eb.a6beaa",
+        "wires": []
+    },
+    {
+        "id": "516d19eb.7811d8",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1589.999885559082,
+        "y": 1347.142997264862,
+        "z": "124cd5eb.a6beaa",
+        "wires": [
+            [
+                "5240ee4d.031fa"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index 482478e..e1d2a46 100755 (executable)
@@ -1 +1,441 @@
-[{"id":"c442b16f.7f882","type":"dgstart","name":"DGSTART","outputs":1,"x":170.2777862548828,"y":139.91365242004395,"z":"e038a3cf.6f74e","wires":[["98f0a1a6.9a93a"]]},{"id":"98f0a1a6.9a93a","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":252.2301483154297,"y":180.15176486968994,"z":"e038a3cf.6f74e","wires":[["c35c8be4.73c8d8"]]},{"id":"c35c8be4.73c8d8","type":"method","name":"contrail-route-topology-operation","xml":"<method rpc='contrail-route-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":248.70641326904297,"y":219.91364669799805,"z":"e038a3cf.6f74e","wires":[["3b0a9ea3.867772"]]},{"id":"ae59e2f7.cffad","type":"comment","name":"CONTRAIL-ROUTE-TOPOLOGY-OPERATION ","info":"","comments":"","x":564.6226425170898,"y":87.49999618530273,"z":"e038a3cf.6f74e","wires":[]},{"id":"3b0a9ea3.867772","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":284.27781677246094,"y":303.3571357727051,"z":"e038a3cf.6f74e","wires":[["b58546a9.769258","e3c64d20.0167","859df5b4.c0b828","596d4aa.d9123b4"]]},{"id":"b58546a9.769258","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":514.3611755371094,"y":927.1997718811035,"z":"e038a3cf.6f74e","wires":[]},{"id":"e3c64d20.0167","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":510.99205017089844,"y":533.770830154419,"z":"e038a3cf.6f74e","wires":[["e264c87c.e335d8","f727c392.45b37","e0f08eed.85bd2","dc2a2461.e96738","8ce006b.19b83f8","4cbcfe02.8cfb9","b62bec75.47383"]]},{"id":"e264c87c.e335d8","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":731.4682464599609,"y":396.05648040771484,"z":"e038a3cf.6f74e","wires":[["c21b848b.2208b8"]]},{"id":"c21b848b.2208b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":912.7064056396484,"y":397.05660247802734,"z":"e038a3cf.6f74e","wires":[["bedb7604.0d31b8"]]},{"id":"859df5b4.c0b828","type":"call","name":"call GENERIC-RESOURCE-API:validate-contrail-route-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-contrail-route-input' mode='sync' >\n","comments":"","outputs":1,"x":642.2777862548828,"y":303.91365242004395,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"bedb7604.0d31b8","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1284.2777557373047,"y":393.91365814208984,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"f727c392.45b37","type":"other","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":733.2777862548828,"y":483.91365242004395,"z":"e038a3cf.6f74e","wires":[["f70dfe77.b10a4"]]},{"id":"f70dfe77.b10a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":917.5159454345703,"y":484.91377449035645,"z":"e038a3cf.6f74e","wires":[["c4f30d6a.e056c"]]},{"id":"e0f08eed.85bd2","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":740.2778091430664,"y":531.913685798645,"z":"e038a3cf.6f74e","wires":[["5e86b7e5.8ae6b8"]]},{"id":"5e86b7e5.8ae6b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":921.5159683227539,"y":532.9138078689575,"z":"e038a3cf.6f74e","wires":[["88cbb733.292b18"]]},{"id":"dc2a2461.e96738","type":"other","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":738.27783203125,"y":650.2470254898071,"z":"e038a3cf.6f74e","wires":[["8ecf697b.d4a738"]]},{"id":"8ecf697b.d4a738","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":919.5159912109375,"y":651.2471475601196,"z":"e038a3cf.6f74e","wires":[["23da5620.c6cb8a"]]},{"id":"8ce006b.19b83f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":737.611162185669,"y":710.2470083236694,"z":"e038a3cf.6f74e","wires":[["5eae4ec8.4f8b6"]]},{"id":"5eae4ec8.4f8b6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":919.6111583709717,"y":709.2470178604126,"z":"e038a3cf.6f74e","wires":[]},{"id":"596d4aa.d9123b4","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":533.3888702392578,"y":886.3581104278564,"z":"e038a3cf.6f74e","wires":[]},{"id":"4cbcfe02.8cfb9","type":"other","name":"create","xml":"<outcome value='create'>\n","comments":"","outputs":1,"x":738.5184936523438,"y":443.51849365234375,"z":"e038a3cf.6f74e","wires":[["3d58b4c3.43262c"]]},{"id":"3d58b4c3.43262c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":919.7566528320312,"y":444.51861572265625,"z":"e038a3cf.6f74e","wires":[["b37f997b.66e918"]]},{"id":"b37f997b.66e918","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-create","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-create' mode='sync' >\n","comments":"","outputs":1,"x":1267.3279724121094,"y":447.3756694793701,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"b62bec75.47383","type":"other","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":734.8518295288086,"y":593.1851282119751,"z":"e038a3cf.6f74e","wires":[["b9a086c9.ed23a8"]]},{"id":"b9a086c9.ed23a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":916.0899887084961,"y":594.1852502822876,"z":"e038a3cf.6f74e","wires":[["99d04266.2927b"]]},{"id":"c4f30d6a.e056c","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1262,"y":492,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"88cbb733.292b18","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1264,"y":532,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"99d04266.2927b","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-delete","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-delete' mode='sync' >\n","comments":"","outputs":1,"x":1262,"y":596,"z":"e038a3cf.6f74e","wires":[[]]},{"id":"23da5620.c6cb8a","type":"call","name":"call GENERIC-RESOURCE-API:contrail-route-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1270,"y":648,"z":"e038a3cf.6f74e","wires":[[]]}]
+[
+    {
+        "id": "c442b16f.7f882",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 170.2777862548828,
+        "y": 139.91365242004395,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "98f0a1a6.9a93a"
+            ]
+        ]
+    },
+    {
+        "id": "98f0a1a6.9a93a",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 252.2301483154297,
+        "y": 180.15176486968994,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "c35c8be4.73c8d8"
+            ]
+        ]
+    },
+    {
+        "id": "c35c8be4.73c8d8",
+        "type": "method",
+        "name": "contrail-route-topology-operation",
+        "xml": "<method rpc='contrail-route-topology-operation' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 248.70641326904297,
+        "y": 219.91364669799805,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "3b0a9ea3.867772"
+            ]
+        ]
+    },
+    {
+        "id": "ae59e2f7.cffad",
+        "type": "comment",
+        "name": "CONTRAIL-ROUTE-TOPOLOGY-OPERATION ",
+        "info": "",
+        "comments": "",
+        "x": 564.6226425170898,
+        "y": 87.49999618530273,
+        "z": "e038a3cf.6f74e",
+        "wires": []
+    },
+    {
+        "id": "3b0a9ea3.867772",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 284.27781677246094,
+        "y": 303.3571357727051,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "b58546a9.769258",
+                "e3c64d20.0167",
+                "859df5b4.c0b828",
+                "596d4aa.d9123b4"
+            ]
+        ]
+    },
+    {
+        "id": "b58546a9.769258",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 514.3611755371094,
+        "y": 927.1997718811035,
+        "z": "e038a3cf.6f74e",
+        "wires": []
+    },
+    {
+        "id": "e3c64d20.0167",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 510.99205017089844,
+        "y": 533.770830154419,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "e264c87c.e335d8",
+                "f727c392.45b37",
+                "e0f08eed.85bd2",
+                "dc2a2461.e96738",
+                "8ce006b.19b83f8",
+                "4cbcfe02.8cfb9",
+                "b62bec75.47383"
+            ]
+        ]
+    },
+    {
+        "id": "e264c87c.e335d8",
+        "type": "other",
+        "name": "assign",
+        "xml": "<outcome value='assign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 731.4682464599609,
+        "y": 396.05648040771484,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "c21b848b.2208b8"
+            ]
+        ]
+    },
+    {
+        "id": "c21b848b.2208b8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 912.7064056396484,
+        "y": 397.05660247802734,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "bedb7604.0d31b8"
+            ]
+        ]
+    },
+    {
+        "id": "859df5b4.c0b828",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:validate-contrail-route-input",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-contrail-route-input' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 642.2777862548828,
+        "y": 303.91365242004395,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bedb7604.0d31b8",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-assign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-assign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1284.2777557373047,
+        "y": 393.91365814208984,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f727c392.45b37",
+        "type": "other",
+        "name": "activate",
+        "xml": "<outcome value='activate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 733.2777862548828,
+        "y": 483.91365242004395,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "f70dfe77.b10a4"
+            ]
+        ]
+    },
+    {
+        "id": "f70dfe77.b10a4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 917.5159454345703,
+        "y": 484.91377449035645,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "c4f30d6a.e056c"
+            ]
+        ]
+    },
+    {
+        "id": "e0f08eed.85bd2",
+        "type": "other",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 740.2778091430664,
+        "y": 531.913685798645,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "5e86b7e5.8ae6b8"
+            ]
+        ]
+    },
+    {
+        "id": "5e86b7e5.8ae6b8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 921.5159683227539,
+        "y": 532.9138078689575,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "88cbb733.292b18"
+            ]
+        ]
+    },
+    {
+        "id": "dc2a2461.e96738",
+        "type": "other",
+        "name": "unassign",
+        "xml": "<outcome value='unassign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 738.27783203125,
+        "y": 650.2470254898071,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "8ecf697b.d4a738"
+            ]
+        ]
+    },
+    {
+        "id": "8ecf697b.d4a738",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 919.5159912109375,
+        "y": 651.2471475601196,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "23da5620.c6cb8a"
+            ]
+        ]
+    },
+    {
+        "id": "8ce006b.19b83f8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 737.611162185669,
+        "y": 710.2470083236694,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "5eae4ec8.4f8b6"
+            ]
+        ]
+    },
+    {
+        "id": "5eae4ec8.4f8b6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
+        "comments": "",
+        "x": 919.6111583709717,
+        "y": 709.2470178604126,
+        "z": "e038a3cf.6f74e",
+        "wires": []
+    },
+    {
+        "id": "596d4aa.d9123b4",
+        "type": "set",
+        "name": "Set final indicator to Y",
+        "xml": "<set>\n<parameter name=\"ack-final\" value=\"Y\"/>",
+        "comments": "",
+        "x": 533.3888702392578,
+        "y": 886.3581104278564,
+        "z": "e038a3cf.6f74e",
+        "wires": []
+    },
+    {
+        "id": "4cbcfe02.8cfb9",
+        "type": "other",
+        "name": "create",
+        "xml": "<outcome value='create'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 738.5184936523438,
+        "y": 443.51849365234375,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "3d58b4c3.43262c"
+            ]
+        ]
+    },
+    {
+        "id": "3d58b4c3.43262c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 919.7566528320312,
+        "y": 444.51861572265625,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "b37f997b.66e918"
+            ]
+        ]
+    },
+    {
+        "id": "b37f997b.66e918",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-create",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-create' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1267.3279724121094,
+        "y": 447.3756694793701,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b62bec75.47383",
+        "type": "other",
+        "name": "delete",
+        "xml": "<outcome value='delete'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 734.8518295288086,
+        "y": 593.1851282119751,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "b9a086c9.ed23a8"
+            ]
+        ]
+    },
+    {
+        "id": "b9a086c9.ed23a8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 916.0899887084961,
+        "y": 594.1852502822876,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            [
+                "99d04266.2927b"
+            ]
+        ]
+    },
+    {
+        "id": "c4f30d6a.e056c",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-activate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-activate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1262,
+        "y": 492,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "88cbb733.292b18",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-deactivate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-deactivate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1264,
+        "y": 532,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "99d04266.2927b",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-delete",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-delete' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1262,
+        "y": 596,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "23da5620.c6cb8a",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:contrail-route-topology-operation-unassign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-unassign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1270,
+        "y": 648,
+        "z": "e038a3cf.6f74e",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
index 36a7b4d..3f3864f 100644 (file)
@@ -1 +1 @@
-[{"id":"f2284f71.6463","type":"dgstart","name":"DGSTART","outputs":1,"x":124.28571319580078,"y":60,"z":"5c1ee14f.35ba3","wires":[["a8ce8342.4bd06"]]},{"id":"a8ce8342.4bd06","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":225.57141876220703,"y":114.23811340332031,"z":"5c1ee14f.35ba3","wires":[["9b3e05cb.d2a0f8"]]},{"id":"9b3e05cb.d2a0f8","type":"method","name":"create-l3-subnet","xml":"<method rpc='create-l3-subnet' mode='sync'>\n","comments":"","outputs":1,"x":240.96434783935547,"y":163.75,"z":"5c1ee14f.35ba3","wires":[["ec2fd40b.a7d928"]]},{"id":"ec2fd40b.a7d928","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":220.7857437133789,"y":296.94350266456604,"z":"5c1ee14f.35ba3","wires":[["1a5998af.a60847","48fddaf1.ceadc4","6e8e044e.88061c","dcfd029c.c25a5"]]},{"id":"1a5998af.a60847","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='0' />\n","comments":"","x":415.71427154541016,"y":242.2857151031494,"z":"5c1ee14f.35ba3","wires":[]},{"id":"ee39e288.5fc9c","type":"comment","name":"These should be set from previous eipam call","info":"<parameter name='tmp.l3-network.level2.v4.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='' />\n<parameter name='tmp.l3-network.level2.v4.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='' />\n<parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />","comments":"","x":508.2857131958008,"y":186,"z":"5c1ee14f.35ba3","wires":[]},{"id":"48fddaf1.ceadc4","type":"switchNode","name":"switch entity-id for ipv4","xml":"<switch test='`$tmp.l3-network.level2.v4.entity-id`'>\n","comments":"","outputs":1,"x":434.2857131958008,"y":284.0000305175781,"z":"5c1ee14f.35ba3","wires":[["5d27d606.b49aa8","b7f40f4e.2f916"]]},{"id":"5d27d606.b49aa8","type":"other","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":654.2857131958008,"y":282.0000305175781,"z":"5c1ee14f.35ba3","wires":[["4c85d764.9d1558"]]},{"id":"b7f40f4e.2f916","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":642.2857131958008,"y":322.0000305175781,"z":"5c1ee14f.35ba3","wires":[["94cc3a80.3cfaa8"]]},{"id":"94cc3a80.3cfaa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":827.6190719604492,"y":324.00003004074097,"z":"5c1ee14f.35ba3","wires":[["957c4a16.6eaa08","f3ad7d1a.f2d3b","e7109a07.926cf8","30da1918.ab7066","c2c83fd0.8f411"]]},{"id":"24324f8a.bb557","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n","comments":"","x":1761.142765045166,"y":394.5714521408081,"z":"5c1ee14f.35ba3","wires":[]},{"id":"957c4a16.6eaa08","type":"execute","name":"execute getSubnetAddresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$tmp.l3-network.level2.v4.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"4\" />\n\t<parameter name=\"subnet\" value=\"`$tmp.l3-network.level2.v4.mask`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n","comments":"","outputs":1,"x":1113.9999465942383,"y":322.8571548461914,"z":"5c1ee14f.35ba3","wires":[["8e880aaf.ae6268"]]},{"id":"f3ad7d1a.f2d3b","type":"switchNode","name":"switch network-model.ipv4-dhcp-enabled","xml":"<switch test='`$network-model.ipv4-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1145.6509704589844,"y":385.9365463256836,"z":"5c1ee14f.35ba3","wires":[["736b7433.77e98c","20e8766.5fab28a"]]},{"id":"736b7433.77e98c","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1401.3649997711182,"y":395.93652153015137,"z":"5c1ee14f.35ba3","wires":[["60241dc3.678824"]]},{"id":"60241dc3.678824","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1561.841236114502,"y":395.93650817871094,"z":"5c1ee14f.35ba3","wires":[["24324f8a.bb557"]]},{"id":"e7109a07.926cf8","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='`$subnet-idx+1`' />\n\n","comments":"","x":1064.2223052978516,"y":420.22220611572266,"z":"5c1ee14f.35ba3","wires":[]},{"id":"6e8e044e.88061c","type":"switchNode","name":"switch entity-id for ipv6","xml":"<switch test='`$tmp.l3-network.level2.v6.entity-id`'>\n","comments":"","outputs":1,"x":444.4867630004883,"y":491.0105953216553,"z":"5c1ee14f.35ba3","wires":[["533c8c33.2653e4","738eb522.e6358c"]]},{"id":"533c8c33.2653e4","type":"other","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":664.4867630004883,"y":489.0105953216553,"z":"5c1ee14f.35ba3","wires":[["4ba3ce4b.c74c5"]]},{"id":"738eb522.e6358c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":651.0581817626953,"y":543.7248754501343,"z":"5c1ee14f.35ba3","wires":[["f63b20.13edc4e"]]},{"id":"49d9043.c579afc","type":"set","name":"set l3network.subnet","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$tmp.l3-network.level2.v6.entity-id`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value=\"`$tmp.l3-network.network-name + '_S' + $subnet-idx`\" />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$tmp.l3-network.level2.v6.ip-prefix`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$tmp.l3-network.level2.v6.mask`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv6-ip-version`' />\n\n\n","comments":"","x":1096.724983215332,"y":613.2963228225708,"z":"5c1ee14f.35ba3","wires":[]},{"id":"f63b20.13edc4e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":845.9153594970703,"y":543.296329498291,"z":"5c1ee14f.35ba3","wires":[["47206233.63117c","49d9043.c579afc","e1ea2c66.1252d","43c4c344.b2878c","58924f71.5ba41","5dbaa100.b1ff3"]]},{"id":"9cbc98c0.17c928","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n","comments":"","x":1771.3438987731934,"y":648.7248783111572,"z":"5c1ee14f.35ba3","wires":[]},{"id":"47206233.63117c","type":"execute","name":"execute getSubnetAddresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$tmp.l3-network.level2.v6.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"6\" />\n\t<parameter name=\"subnet\" value=\"`$tmp.l3-network.level2.v6.mask`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n","comments":"","outputs":1,"x":1124.2010803222656,"y":577.0105810165405,"z":"5c1ee14f.35ba3","wires":[["f3773581.8d2148"]]},{"id":"e1ea2c66.1252d","type":"switchNode","name":"switch network-model.ipv6-dhcp-enabled","xml":"<switch test='`$network-model.ipv6-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1150.137710571289,"y":651.5185317993164,"z":"5c1ee14f.35ba3","wires":[["bdf59629.1a7018","a8abca55.2792c8"]]},{"id":"bdf59629.1a7018","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1411.5661334991455,"y":650.0899477005005,"z":"5c1ee14f.35ba3","wires":[["93c67590.4d9238"]]},{"id":"93c67590.4d9238","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1572.0423698425293,"y":650.0899343490601,"z":"5c1ee14f.35ba3","wires":[["9cbc98c0.17c928"]]},{"id":"8e880aaf.ae6268","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1345.9153366088867,"y":322.629638671875,"z":"5c1ee14f.35ba3","wires":[["c309b0ac.778ac"]]},{"id":"c309b0ac.778ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate ipv4 addresses using IpAddressTools\" />","comments":"","x":1517.581886291504,"y":322.629638671875,"z":"5c1ee14f.35ba3","wires":[]},{"id":"f3773581.8d2148","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1375.9153747558594,"y":578.1058282852173,"z":"5c1ee14f.35ba3","wires":[["fc59de73.53136"]]},{"id":"fc59de73.53136","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate ipv6 addresses using IpAddressTools\" />","comments":"","x":1547.5819244384766,"y":578.1058282852173,"z":"5c1ee14f.35ba3","wires":[]},{"id":"dcfd029c.c25a5","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":392.95237731933594,"y":607.166669845581,"z":"5c1ee14f.35ba3","wires":[]},{"id":"43c4c344.b2878c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"tmp.l3-network.level2.v6.entity-id\"/>\n<parameter name=\"field5\" value=\"`$tmp.l3-network.level2.v6.entity-id`\"/>\n\n\n\n","comments":"","outputs":1,"x":1049.9366149902344,"y":543.0793695449829,"z":"5c1ee14f.35ba3","wires":[[]]},{"id":"4ba3ce4b.c74c5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":842.7936553955078,"y":488.79364109039307,"z":"5c1ee14f.35ba3","wires":[["8ff0f4.8cbfef1"]]},{"id":"8ff0f4.8cbfef1","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"tmp.l3-network.level2.v6.entity-id\"/>\n<parameter name=\"field5\" value=\"null\"/>\n\n\n\n","comments":"","outputs":1,"x":1048.243558883667,"y":488.1481246948242,"z":"5c1ee14f.35ba3","wires":[[]]},{"id":"30da1918.ab7066","type":"set","name":"set l3network.subnet","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$tmp.l3-network.level2.v4.entity-id`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value=\"`$tmp.l3-network.network-name + '_S' + $subnet-idx`\" />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$tmp.l3-network.level2.v4.ip-prefix`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$tmp.l3-network.level2.v4.mask`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv4-ip-version`' />\n","comments":"","x":1082.7937698364258,"y":355.9365348815918,"z":"5c1ee14f.35ba3","wires":[]},{"id":"58924f71.5ba41","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='`$subnet-idx+1`' />\n","comments":"","x":1068.507942199707,"y":684.5079498291016,"z":"5c1ee14f.35ba3","wires":[]},{"id":"20e8766.5fab28a","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1403.9047927856445,"y":431.6508026123047,"z":"5c1ee14f.35ba3","wires":[["3f11ef0a.6e4de"]]},{"id":"be7775e3.ccf258","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\n\n\n","comments":"","x":1763.9047927856445,"y":430.2222442626953,"z":"5c1ee14f.35ba3","wires":[]},{"id":"3f11ef0a.6e4de","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1564.6032638549805,"y":431.58730030059814,"z":"5c1ee14f.35ba3","wires":[["be7775e3.ccf258"]]},{"id":"a8abca55.2792c8","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1409.619026184082,"y":683.0793609619141,"z":"5c1ee14f.35ba3","wires":[["c57667ca.b81d28"]]},{"id":"c3350a6a.80eef8","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\n\n\n","comments":"","x":1769.619026184082,"y":681.6508026123047,"z":"5c1ee14f.35ba3","wires":[]},{"id":"c57667ca.b81d28","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1570.317497253418,"y":683.0158586502075,"z":"5c1ee14f.35ba3","wires":[["c3350a6a.80eef8"]]},{"id":"4c85d764.9d1558","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":827.1428833007812,"y":277.1428527832031,"z":"5c1ee14f.35ba3","wires":[["e636a1c6.25345"]]},{"id":"e636a1c6.25345","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"tmp.l3-network.level2.v4.entity-id\"/>\n<parameter name=\"field5\" value=\"null\"/>\n\n\n\n","comments":"","outputs":1,"x":998.5713863372803,"y":277.142840385437,"z":"5c1ee14f.35ba3","wires":[[]]},{"id":"c2c83fd0.8f411","type":"set","name":"set subnet_length","xml":"<set>\n<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\n","comments":"","x":1067.4286041259766,"y":451.42859268188477,"z":"5c1ee14f.35ba3","wires":[]},{"id":"5dbaa100.b1ff3","type":"set","name":"set subnet-len","xml":"<set>\n<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\n","comments":"","x":1068.857177734375,"y":717.1428833007812,"z":"5c1ee14f.35ba3","wires":[]}]
+[{"id":"3b3edc85.ab1344","type":"dgstart","name":"DGSTART","outputs":1,"x":150.00558471679688,"y":85.7198715209961,"z":"a263af79.79be7","wires":[["429059f7.f33678"]]},{"id":"429059f7.f33678","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":251.29129028320312,"y":139.9579849243164,"z":"a263af79.79be7","wires":[["58648933.aece68"]]},{"id":"58648933.aece68","type":"method","name":"create-l3-subnet","xml":"<method rpc='create-l3-subnet' mode='sync'>\n","comments":"","outputs":1,"x":266.68421936035156,"y":189.4698715209961,"z":"a263af79.79be7","wires":[["cc7d688c.201a78"]]},{"id":"cc7d688c.201a78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":246.505615234375,"y":322.66337418556213,"z":"a263af79.79be7","wires":[["c94352c5.b5422","65a18c1c.198844","5f314f68.e8147","ad05df62.8a915"]]},{"id":"c94352c5.b5422","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='0' />\n","comments":"","x":441.43414306640625,"y":268.0055866241455,"z":"a263af79.79be7","wires":[]},{"id":"41cd298c.322138","type":"comment","name":"These should be set from previous eipam call","info":"<parameter name='v4.entity-id' value='' />\n<parameter name='v4.ip-prefix' value='' />\n<parameter name='v4.mask' value='' />\n<parameter name='v4.pool.pre-existing' value='false' />\n<parameter name='v4.subnet.pre-existing' value='false' />\n<parameter name='v6.entity-id' value='' />\n<parameter name='v6.ip-prefix' value='' />\n<parameter name='v6.mask' value='' />\n<parameter name='v6.pool.pre-existing' value='false' />\n<parameter name='v6.subnet.pre-existing' value='false' />","comments":"","x":534.0055847167969,"y":211.7198715209961,"z":"a263af79.79be7","wires":[]},{"id":"65a18c1c.198844","type":"switchNode","name":"switch entity-id for ipv4","xml":"<switch test='`$v4.entity-id`'>\n","comments":"","outputs":1,"x":460.0055847167969,"y":309.7199020385742,"z":"a263af79.79be7","wires":[["854594c0.16f268","53bfd99f.8ad458"]]},{"id":"854594c0.16f268","type":"other","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":680.0055847167969,"y":307.7199020385742,"z":"a263af79.79be7","wires":[["51383492.a7dd5c"]]},{"id":"53bfd99f.8ad458","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":668.0055847167969,"y":347.7199020385742,"z":"a263af79.79be7","wires":[["869b294f.c72378"]]},{"id":"869b294f.c72378","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":853.3389434814453,"y":349.71990156173706,"z":"a263af79.79be7","wires":[["d454dc5c.f174f","b4fb0b53.9a3d18","36834eb2.20a752","e5c2c06.c5d234","d1565405.985fa8","ac9925ae.9b6988"]]},{"id":"8b32054f.7f7dc8","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n","comments":"","x":1795.862506866455,"y":454.624605178833,"z":"a263af79.79be7","wires":[]},{"id":"d454dc5c.f174f","type":"execute","name":"execute getSubnetAddresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$v4.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"4\" />\n\t<parameter name=\"subnet\" value=\"`$v4.mask`\" />\n\t<parameter name=\"dhcp-enabled\" value=\"`$tmp.ipv4dhcp-enabled`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n","comments":"","outputs":1,"x":1134.7198638916016,"y":350.243691444397,"z":"a263af79.79be7","wires":[["6a705282.6c129c"]]},{"id":"b4fb0b53.9a3d18","type":"switchNode","name":"switch network-model.ipv4-dhcp-enabled","xml":"<switch test='`$network-model.ipv4-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1175.3707695007324,"y":432.65636825561523,"z":"a263af79.79be7","wires":[["c3c067b7.41a638","42a2b2d6.7cf19c"]]},{"id":"c3c067b7.41a638","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1436.0847415924072,"y":455.98967456817627,"z":"a263af79.79be7","wires":[["917e88ed.2b9808"]]},{"id":"917e88ed.2b9808","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1596.560977935791,"y":455.98966121673584,"z":"a263af79.79be7","wires":[["8b32054f.7f7dc8"]]},{"id":"36834eb2.20a752","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='`$subnet-idx+1`' />\n\n","comments":"","x":1093.9420585632324,"y":470.2753372192383,"z":"a263af79.79be7","wires":[]},{"id":"5f314f68.e8147","type":"switchNode","name":"switch entity-id for ipv6","xml":"<switch test='`$v6.entity-id`'>\n","comments":"","outputs":1,"x":475.2066345214844,"y":840.0637540817261,"z":"a263af79.79be7","wires":[["a65c0af4.4d70c8","4df74206.a84fdc"]]},{"id":"a65c0af4.4d70c8","type":"other","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":695.2066345214844,"y":838.0637540817261,"z":"a263af79.79be7","wires":[["ba205c7d.e945b"]]},{"id":"4df74206.a84fdc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":681.7780532836914,"y":892.7780342102051,"z":"a263af79.79be7","wires":[["727b7844.583018"]]},{"id":"d73bb4d7.941528","type":"set","name":"set l3network.subnet","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v6.entity-id`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value=\"`$tmp.l3-network.network-name + '_S' + $subnet-idx`\" />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v6.ip-prefix`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v6.mask`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv6-ip-version`' />\n\n\n","comments":"","x":1118.111442565918,"y":977.349461555481,"z":"a263af79.79be7","wires":[]},{"id":"727b7844.583018","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":876.6352310180664,"y":892.3494882583618,"z":"a263af79.79be7","wires":[["3d53eee1.30e0c2","d73bb4d7.941528","73f6dd4f.81ddf4","27c03eeb.0b85f2","eaee38c8.7b8d88","c92b4c1f.b65ae","c90b76dc.2a1ba8"]]},{"id":"2294d0ee.29409","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n","comments":"","x":1792.7303581237793,"y":1012.7780170440674,"z":"a263af79.79be7","wires":[]},{"id":"3d53eee1.30e0c2","type":"execute","name":"execute getSubnetAddresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$v6.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"6\" />\n\t<parameter name=\"subnet\" value=\"`$v6.mask`\" />\n\t<parameter name=\"dhcp-enabled\" value=\"`$tmp.ipv6dhcp-enabled`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n","comments":"","outputs":1,"x":1146.587501525879,"y":939.3970737457275,"z":"a263af79.79be7","wires":[["94b54e56.a0f0e"]]},{"id":"73f6dd4f.81ddf4","type":"switchNode","name":"switch network-model.ipv6-dhcp-enabled","xml":"<switch test='`$network-model.ipv6-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1171.524169921875,"y":1015.5716705322266,"z":"a263af79.79be7","wires":[["fefb428d.1732c","50b93b2a.2e0404"]]},{"id":"fefb428d.1732c","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1432.9525928497314,"y":1014.1430864334106,"z":"a263af79.79be7","wires":[["abcd65a7.f44998"]]},{"id":"abcd65a7.f44998","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1593.4288291931152,"y":1014.1430730819702,"z":"a263af79.79be7","wires":[["2294d0ee.29409"]]},{"id":"6a705282.6c129c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1366.63525390625,"y":350.01617527008057,"z":"a263af79.79be7","wires":[["ec368668.c530d8"]]},{"id":"ec368668.c530d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate ipv4 addresses using IpAddressTools\" />","comments":"","x":1538.3018035888672,"y":350.01617527008057,"z":"a263af79.79be7","wires":[]},{"id":"94b54e56.a0f0e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1376.6352005004883,"y":938.825605392456,"z":"a263af79.79be7","wires":[["f413c960.41b028"]]},{"id":"f413c960.41b028","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate ipv6 addresses using IpAddressTools\" />","comments":"","x":1548.3017501831055,"y":938.825605392456,"z":"a263af79.79be7","wires":[]},{"id":"ad05df62.8a915","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":423.67224884033203,"y":956.2198286056519,"z":"a263af79.79be7","wires":[]},{"id":"27c03eeb.0b85f2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"v6.entity-id\"/>\n<parameter name=\"field5\" value=\"`$v6.entity-id`\"/>\n\n\n\n","comments":"","outputs":1,"x":1077.656494140625,"y":876.1325225830078,"z":"a263af79.79be7","wires":[[]]},{"id":"ba205c7d.e945b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":873.5135269165039,"y":837.8467998504639,"z":"a263af79.79be7","wires":[["c6b4d0e6.ce574"]]},{"id":"c6b4d0e6.ce574","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"v6.entity-id\"/>\n<parameter name=\"field5\" value=\"null\"/>\n\n\n\n","comments":"","outputs":1,"x":1078.963430404663,"y":837.201283454895,"z":"a263af79.79be7","wires":[[]]},{"id":"e5c2c06.c5d234","type":"set","name":"set l3network.subnet","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v4.entity-id`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value=\"`$tmp.l3-network.network-name + '_S' + $subnet-idx`\" />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v4.ip-prefix`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v4.mask`' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv4-ip-version`' />\n","comments":"","x":1109.18017578125,"y":392.65635681152344,"z":"a263af79.79be7","wires":[]},{"id":"eaee38c8.7b8d88","type":"set","name":"set subnet-idx","xml":"<set>\n<parameter name='subnet-idx' value='`$subnet-idx+1`' />\n","comments":"","x":1089.894401550293,"y":1048.5610885620117,"z":"a263af79.79be7","wires":[]},{"id":"42a2b2d6.7cf19c","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1438.6245346069336,"y":491.7039556503296,"z":"a263af79.79be7","wires":[["4660a249.73e4fc"]]},{"id":"63f501fc.70fdf","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\n\n\n","comments":"","x":1798.6245346069336,"y":490.2753973007202,"z":"a263af79.79be7","wires":[]},{"id":"4660a249.73e4fc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1599.3230056762695,"y":491.64045333862305,"z":"a263af79.79be7","wires":[["63f501fc.70fdf"]]},{"id":"50b93b2a.2e0404","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1431.005485534668,"y":1047.1324996948242,"z":"a263af79.79be7","wires":[["f642cedb.39506"]]},{"id":"d7221dbc.c5717","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\n\n\n","comments":"","x":1791.005485534668,"y":1045.7039413452148,"z":"a263af79.79be7","wires":[]},{"id":"f642cedb.39506","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1591.703956604004,"y":1047.0689973831177,"z":"a263af79.79be7","wires":[["d7221dbc.c5717"]]},{"id":"51383492.a7dd5c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":862.8627319335938,"y":262.8627166748047,"z":"a263af79.79be7","wires":[["17806f89.41dd2"]]},{"id":"17806f89.41dd2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.create-l3-subnet:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"v4.entity-id\"/>\n<parameter name=\"field5\" value=\"null\"/>\n\n\n\n","comments":"","outputs":1,"x":1021.2913055419922,"y":261.86271476745605,"z":"a263af79.79be7","wires":[[]]},{"id":"d1565405.985fa8","type":"set","name":"set subnet_length","xml":"<set>\n<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\n","comments":"","x":1107.1483154296875,"y":508.1484565734863,"z":"a263af79.79be7","wires":[]},{"id":"c92b4c1f.b65ae","type":"set","name":"set subnet-len","xml":"<set>\n<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\n","comments":"","x":1090.243637084961,"y":1081.1960220336914,"z":"a263af79.79be7","wires":[]},{"id":"ac9925ae.9b6988","type":"switchNode","name":"switch network-model.ipv4-dhcp-enabled","xml":"<switch test='`$network-model.ipv4-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1175.11669921875,"y":316.16432189941406,"z":"a263af79.79be7","wires":[["c7113998.526c48","2c3956f7.33089a"]]},{"id":"3f22eec5.648e82","type":"set","name":"set dhcp boolean","xml":"<set>\n<parameter name='tmp.ipv4dhcp-enabled' value='true' />\n\n","comments":"","x":1783.1167545318604,"y":279.1643190383911,"z":"a263af79.79be7","wires":[]},{"id":"c7113998.526c48","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1423.3389892578125,"y":279.5293884277344,"z":"a263af79.79be7","wires":[["72dcdb46.93b294"]]},{"id":"72dcdb46.93b294","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1583.8152256011963,"y":279.52937507629395,"z":"a263af79.79be7","wires":[["3f22eec5.648e82"]]},{"id":"2c3956f7.33089a","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1425.8787822723389,"y":315.2436695098877,"z":"a263af79.79be7","wires":[["8acd180f.9188e8"]]},{"id":"3ff9eec6.bfb552","type":"set","name":"set dhcp boolean","xml":"<set>\n<parameter name='tmp.ipv4dhcp-enabled' value='false' />\n\n\n\n","comments":"","x":1784.8787841796875,"y":315.8151092529297,"z":"a263af79.79be7","wires":[]},{"id":"8acd180f.9188e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1586.5772533416748,"y":315.18016719818115,"z":"a263af79.79be7","wires":[["3ff9eec6.bfb552"]]},{"id":"c90b76dc.2a1ba8","type":"switchNode","name":"switch network-model.ipv6-dhcp-enabled","xml":"<switch test='`$network-model.ipv6-dhcp-enabled`'>\n","comments":"","outputs":1,"x":1187.11669921875,"y":908.1643218994141,"z":"a263af79.79be7","wires":[["90e6e52a.429f38","c5f1bd14.e6f7b"]]},{"id":"f62dd972.e08ee8","type":"set","name":"set dhcp boolean","xml":"<set>\n<parameter name='tmp.ipv6dhcp-enabled' value='true' />\n\n","comments":"","x":1792.11669921875,"y":864.1643218994141,"z":"a263af79.79be7","wires":[]},{"id":"90e6e52a.429f38","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1432.3389339447021,"y":865.5293912887573,"z":"a263af79.79be7","wires":[["e7d26d70.8c261"]]},{"id":"e7d26d70.8c261","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1592.815170288086,"y":865.5293779373169,"z":"a263af79.79be7","wires":[["f62dd972.e08ee8"]]},{"id":"c5f1bd14.e6f7b","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1434.8787269592285,"y":901.2436723709106,"z":"a263af79.79be7","wires":[["217d22c5.3b376e"]]},{"id":"46544c35.ca6164","type":"set","name":"set dhcp boolean","xml":"<set>\n<parameter name='tmp.ipv6dhcp-enabled' value='false' />\n\n\n\n","comments":"","x":1794.8787269592285,"y":899.8151140213013,"z":"a263af79.79be7","wires":[]},{"id":"217d22c5.3b376e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1595.5771980285645,"y":901.1801700592041,"z":"a263af79.79be7","wires":[["46544c35.ca6164"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.json
new file mode 100755 (executable)
index 0000000..2efa3ab
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"606888d7.b4a878","type":"dgstart","name":"DGSTART","outputs":1,"x":147.00390625,"y":95.00390625,"z":"c985e328.7b018","wires":[["50e98f1c.8753c"]]},{"id":"50e98f1c.8753c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":358.86101722717285,"y":200.4801082611084,"z":"c985e328.7b018","wires":[["3adf4e79.c449f2"]]},{"id":"3adf4e79.c449f2","type":"method","name":"create-route-target-and-vpn-binding","xml":"<method rpc='create-route-target-and-vpn-binding' mode='sync'>\n","comments":"","outputs":1,"x":336.77784729003906,"y":279.9920196533203,"z":"c985e328.7b018","wires":[["64d60645.2cdce8"]]},{"id":"fe204c24.83b","type":"switchNode","name":"switch aic-zone","xml":"<switch test='`$rt.aic-zone`'>\n\n","comments":"","outputs":1,"x":682.5754013061523,"y":250.28968906402588,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"64d60645.2cdce8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":362.7181854248047,"y":369.2896385192871,"z":"c985e328.7b018","wires":[["fe204c24.83b","54991ae8.541a84","2b1140c1.9ea8b","70ab6f2.b9a8b9","cc4eca53.c15de8","5f5137d2.d8c4e8","95fda830.9b17e8","72d0b7c4.42dea8","fce45cda.6c865","4df978c0.bf9788","3801f652.f2aa5a","3bc0ef9e.76bdf","99021b0f.ba4168","ea9519dc.13b0e8","c922ec7a.ea7b8","38d6d873.d9d7d8","a9c3a473.5d8b58","6e9acffa.e0d5c","894de078.58c28","c40fc4f1.3bc1a8","e5ac76bd.52fb48"]]},{"id":"ad158186.b0d96","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":955.7183303833008,"y":328.00395941734314,"z":"c985e328.7b018","wires":[["c1846171.54116"]]},{"id":"c1846171.54116","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"Error missing parameters to create-local-route-target\" />\n","comments":"","x":1167.0040893554688,"y":329.00398445129395,"z":"c985e328.7b018","wires":[]},{"id":"a3124829.2c30d8","type":"comment","name":"Call microservice to allocate route target","info":"","comments":"","x":704.0039749145508,"y":1127.0040884017944,"z":"c985e328.7b018","wires":[]},{"id":"54991ae8.541a84","type":"execute","name":"execute RestApiCallNode - call allocateroutetarget microservice","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.allocateRT`' />\n     <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`\" />\n    <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\n    <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\n    <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name=\"responsePrefix\" value=\"msRT\" />\n\n","comments":"","outputs":1,"x":783.0039978027344,"y":1159.2542114257812,"z":"c985e328.7b018","wires":[["b0067d02.7f50f","8e0d0ead.f5775"]]},{"id":"b0067d02.7f50f","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1152.003978729248,"y":1161.0041184425354,"z":"c985e328.7b018","wires":[["50a171e0.32d7a"]]},{"id":"50a171e0.32d7a","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1322.0039329528809,"y":1160.5040040016174,"z":"c985e328.7b018","wires":[["462707ff.cb3868"]]},{"id":"8e0d0ead.f5775","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1153.8558082580566,"y":1196.0703372955322,"z":"c985e328.7b018","wires":[["42358325.3f720c"]]},{"id":"462707ff.cb3868","type":"switchNode","name":"switch responseCode","xml":"<switch test='`$msRT.responseCode`'>\n","comments":"","outputs":1,"x":1552.0038986206055,"y":1161.0040969848633,"z":"c985e328.7b018","wires":[["b47bed62.5199e","eb11d901.1b74c8"]]},{"id":"b47bed62.5199e","type":"other","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1765.0041313171387,"y":1224.0040245056152,"z":"c985e328.7b018","wires":[[]]},{"id":"eb11d901.1b74c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1766.004306793213,"y":1256.004098892212,"z":"c985e328.7b018","wires":[["e3d98389.5414f"]]},{"id":"2b1140c1.9ea8b","type":"switchNode","name":"switch resource","xml":"<switch test='`$rt.resource`'>\n\n","comments":"","outputs":1,"x":682.0039672851562,"y":280.003942489624,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"70ab6f2.b9a8b9","type":"switchNode","name":"switch resource-value","xml":"<switch test='`$rt.resource-value`'>\n\n","comments":"","outputs":1,"x":703.0039901733398,"y":312.0039367675781,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"6b3f48c0.aeaf18","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1083.8968029022217,"y":1617.6404304504395,"z":"c985e328.7b018","wires":[["61df93f5.b8804c","25329b31.482244"]]},{"id":"cc4eca53.c15de8","type":"call","name":"call generate-vpn-binding-id","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-vpn-binding-id' mode='sync' >\n","comments":"","outputs":1,"x":676.00390625,"y":862.0040884017944,"z":"c985e328.7b018","wires":[[]]},{"id":"5f5137d2.d8c4e8","type":"set","name":"set vpn-binding.vpn-binding-id","xml":"<set>\n<parameter name='vpn-binding.vpn-binding-id' value='`$tmp.return.generate-vpn-binding-id.uuid`' />\n\n\n\n\n","comments":"","x":684.0039215087891,"y":893.0040884017944,"z":"c985e328.7b018","wires":[]},{"id":"72d0b7c4.42dea8","type":"save","name":"save AnAI - vpn-binding","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vpn-binding\" \n\t\tkey=\"vpn-binding.vpn-id = $vpn-binding.vpn-binding-id\" >\n<parameter name=\"vpn-id\" value=\"`$vpn-binding.vpn-binding-id`\" />\n<parameter name=\"vpn-name\" value=\"`$vpn-binding.vpn-name`\" />","comments":"","outputs":1,"x":662.0039138793945,"y":1028.0039520263672,"z":"c985e328.7b018","wires":[["1c658501.de976b","9bb997c9.cdf238"]]},{"id":"95fda830.9b17e8","type":"switchNode","name":"switch network-name","xml":"<switch test='`$rt.network-name`'>\n\n","comments":"","outputs":1,"x":706.0039596557617,"y":348.0039641857147,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"1c658501.de976b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":882.0038986206055,"y":1018.0039558410645,"z":"c985e328.7b018","wires":[["c766b965.ded478"]]},{"id":"9bb997c9.cdf238","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":887.813346862793,"y":1046.4802742004395,"z":"c985e328.7b018","wires":[["c766b965.ded478"]]},{"id":"c766b965.ded478","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"Error creating vpn-binding in AAI\" />\n","comments":"","x":1072.004005432129,"y":1025.0040802955627,"z":"c985e328.7b018","wires":[]},{"id":"a3301814.997358","type":"delete","name":"delete vpn-binding","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vpn-binding\" \n\tkey=\"vpn-id = $rt.vpn-id\">","comments":"","outputs":1,"x":1988.0040283203125,"y":1779.0039138793945,"z":"c985e328.7b018","wires":[[]]},{"id":"43b38603.863e48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error writing to vpn binding - ' + $tmp.error-message`\"/>","comments":"","x":1972.6083221435547,"y":1895.2001132965088,"z":"c985e328.7b018","wires":[]},{"id":"2a6a140.b0d5bec","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error: calling allocate resource microservice\"/>","comments":"","x":1553.0040588378906,"y":1194.0041122436523,"z":"c985e328.7b018","wires":[]},{"id":"25329b31.482244","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1777.0040283203125,"y":1780.0039138793945,"z":"c985e328.7b018","wires":[["a3301814.997358","43b38603.863e48","1bf43d58.da22a3","d8854478.161e88"]]},{"id":"4de04652.8832d8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'Error: calling allocate resource microservice - responseCode: ' + $msRT.responseCode + ' responseMsg: ' + $msRT.responseMessage + ' allocateRouteTargetStatus: ' + $msRT.allocateRouteTargetStatus `\"/>","comments":"","x":2126.2542457580566,"y":1255.004135131836,"z":"c985e328.7b018","wires":[]},{"id":"e3d98389.5414f","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1926.2540893554688,"y":1256.004072189331,"z":"c985e328.7b018","wires":[["4de04652.8832d8","25329b31.482244"]]},{"id":"42358325.3f720c","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1300.2539138793945,"y":1193.0040073394775,"z":"c985e328.7b018","wires":[["2a6a140.b0d5bec","25329b31.482244"]]},{"id":"4df978c0.bf9788","type":"set","name":"set: get-data-from-policy-input.policy-instance-name for vpn binding","xml":"<set>\n\t<parameter name=\"get-data-from-policy-input.policy-instance-name\" value=\"`$get-complex-resource-service-model-output.vpn-binding-policy`\" />\n\t","comments":"","x":795.0039749145508,"y":712.0039162635803,"z":"c985e328.7b018","wires":[]},{"id":"3801f652.f2aa5a","type":"call","name":"call get-data-from-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' >\n","comments":"","outputs":1,"x":658.0038681030273,"y":743.0038180351257,"z":"c985e328.7b018","wires":[[]]},{"id":"2aff268a.886efa","type":"comment","name":"Determine policy vpn binding info","info":"","comments":"","x":686.0039138793945,"y":679.0038523674011,"z":"c985e328.7b018","wires":[]},{"id":"3bc0ef9e.76bdf","type":"set","name":"set: vpn-binding info from policy","xml":"<set>\n\t<parameter name=\"vpn-binding.vpn-name\" value=\"`$rt.network-name`\" />\n\t<parameter name=\"vpn-binding.asn\" value=\"`$get-data-from-policy-output.asn`\" />\n\t<parameter name=\"vpn-binding.route-target-role\" value=\"`$get-data-from-policy-output.route-target-role`\" />\n\t<parameter name=\"vpn-binding.aic-zone\" value=\"`$rt.aic-zone`\" />\n\t<parameter name=\"vpn-binding.route-target-category\" value=\"local\" />\n\t<parameter name=\"vpn-binding.resource\" value=\"`$rt.resource`\" />\n\t<parameter name=\"vpn-binding.resource-value\" value=\"`$rt.resource-value`\" />","comments":"","x":682.5039367675781,"y":775.0038685798645,"z":"c985e328.7b018","wires":[]},{"id":"fce45cda.6c865","type":"set","name":"set: vpn-binding.global-route-target","xml":"<set>\n\t<parameter name=\"vpn-binding.global-route-target\" value=\"`$msRT.routeTargetID`\" />\n","comments":"","x":693.0039978027344,"y":1193.004108428955,"z":"c985e328.7b018","wires":[]},{"id":"361834e3.17ddbc","type":"comment","name":"Generate unique vpn binding id","info":"","comments":"","x":675.2539215087891,"y":827.0040121078491,"z":"c985e328.7b018","wires":[]},{"id":"70f87c50.cd0d94","type":"comment","name":"Save vpn-binding object in AAI","info":"","comments":"","x":675.2539291381836,"y":993.0040020942688,"z":"c985e328.7b018","wires":[]},{"id":"c40fc4f1.3bc1a8","type":"save","name":"save AnAI - vpn-binding.route-target","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"route-target\" \n\t\tkey=\"vpn-binding.vpn-binding-id = $vpn-binding.vpn-binding-id \n\t\t\tAND route-target.global-route-target = $vpn-binding.global-route-target\n\t\t\tAND route-target.route-target-role = $vpn-binding.route-target-role\" >\n<!-- Create route-target object -->\n<parameter name=\"global-route-target\" value=\"`$vpn-binding.global-route-target`\" />\n<parameter name=\"route-target-role\" value=\"`$vpn-binding.route-target-role`\" />\n","comments":"","outputs":1,"x":685.25390625,"y":1618.004186630249,"z":"c985e328.7b018","wires":[["e47dc0e3.9beda","4ca35e1d.0db61"]]},{"id":"e47dc0e3.9beda","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":942.2538757324219,"y":1614.0039720535278,"z":"c985e328.7b018","wires":[["6b3f48c0.aeaf18"]]},{"id":"4ca35e1d.0db61","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":948.0633239746094,"y":1642.4802904129028,"z":"c985e328.7b018","wires":[["6b3f48c0.aeaf18"]]},{"id":"61df93f5.b8804c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error: failed to save route target in AAI\"/>","comments":"","x":1295.2538757324219,"y":1619.0039720535278,"z":"c985e328.7b018","wires":[]},{"id":"5291deee.55bce","type":"comment","name":"Validate mandatory parmaeters","info":"","comments":"","x":728.2539520263672,"y":217.00390887260437,"z":"c985e328.7b018","wires":[]},{"id":"d247e1.92be382","type":"execute","name":"execute RestApiCallNode - call releaseroutetarget microservice","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\n     <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`\" />\n    <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\n    <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\n    <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name=\"responsePrefix\" value=\"msRT\" />\n\n","comments":"","outputs":1,"x":2669.7542114257812,"y":1738.0041303634644,"z":"c985e328.7b018","wires":[[]]},{"id":"1bf43d58.da22a3","type":"switchNode","name":"switch vpn-binding.global-route-target is not null","xml":"<switch test=\"`$vpn-binding.global-route-target != ''`\">\n\n","comments":"","outputs":1,"x":2081.504119873047,"y":1738.004162788391,"z":"c985e328.7b018","wires":[["659d5476.4d1b6c"]]},{"id":"659d5476.4d1b6c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2347.254051208496,"y":1738.0039501190186,"z":"c985e328.7b018","wires":[["d247e1.92be382"]]},{"id":"e5ac76bd.52fb48","type":"execute","name":"execute RestApiCallNode - PUT vpnbinding by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vpn-binding\" />\n\n","comments":"","outputs":1,"x":717.0039367675781,"y":1420.0041275024414,"z":"c985e328.7b018","wires":[["99e39f1.4e98f6","9bb382c6.de9d9"]]},{"id":"99e39f1.4e98f6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":983.9786720275879,"y":1449.6690855026245,"z":"c985e328.7b018","wires":[["eb4e0d1a.59417"]]},{"id":"9bb382c6.de9d9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":978.3120613098145,"y":1418.168921470642,"z":"c985e328.7b018","wires":[["eb4e0d1a.59417"]]},{"id":"65c82154.a610b","type":"comment","name":"Add VPN Binding to mdsal","info":"","comments":"","x":641.2895660400391,"y":1390.1943273544312,"z":"c985e328.7b018","wires":[]},{"id":"eb4e0d1a.59417","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1130.04594039917,"y":1429.3796319961548,"z":"c985e328.7b018","wires":[["1564c253.b7ef1e","25329b31.482244"]]},{"id":"99021b0f.ba4168","type":"execute","name":"generate vpn-binding url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-instance-group-vpn-binding`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpn-binding-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$rt.service-instance-id`\"/>\n","comments":"","outputs":1,"x":666.0039978027344,"y":552.0040302276611,"z":"c985e328.7b018","wires":[[]]},{"id":"ea9519dc.13b0e8","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$rt.service-instance-id`'>\n\n","comments":"","outputs":1,"x":723.0039367675781,"y":380.0039052963257,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"c922ec7a.ea7b8","type":"execute","name":"generate vpn-binding url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vpn-binding-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpn-binding-url\"/>\n    <parameter name=\"target\" value=\"{network-instance-group-id}\"/>\n    <parameter name=\"replacement\" value=\"`$rt.network-instance-group-id`\"/>\n","comments":"","outputs":1,"x":671.0039215087891,"y":591.0039548873901,"z":"c985e328.7b018","wires":[[]]},{"id":"38d6d873.d9d7d8","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$rt.network-instance-group-id`'>\n\n","comments":"","outputs":1,"x":745.0039367675781,"y":413.0039052963257,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"a9c3a473.5d8b58","type":"execute","name":"generate vpn-binding url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vpn-binding-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpn-binding-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$rt.network-id`\"/>\n","comments":"","outputs":1,"x":674.0039215087891,"y":624.0039310455322,"z":"c985e328.7b018","wires":[[]]},{"id":"6e9acffa.e0d5c","type":"switchNode","name":"switch network-id","xml":"<switch test='`$rt.network-id`'>\n\n","comments":"","outputs":1,"x":701.0039596557617,"y":444.00392150878906,"z":"c985e328.7b018","wires":[["ad158186.b0d96"]]},{"id":"894de078.58c28","type":"execute","name":"generate vpn-binding url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vpn-binding-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vpn-binding-url\"/>\n    <parameter name=\"target\" value=\"{vpn-binding-id}\"/>\n    <parameter name=\"replacement\" value=\"`$vpn-binding.vpn-binding-id`\"/>\n","comments":"","outputs":1,"x":670.00390625,"y":943.0039978027344,"z":"c985e328.7b018","wires":[[]]},{"id":"b73f3c40.df242","type":"comment","name":"Need to rollback AAI and Ms","info":"","comments":"","x":1334.0039978027344,"y":1398.004189491272,"z":"c985e328.7b018","wires":[]},{"id":"1564c253.b7ef1e","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error: failed to save vpn-binding in md-sal\" />","comments":"","x":1325.00390625,"y":1428.004096031189,"z":"c985e328.7b018","wires":[]},{"id":"d8854478.161e88","type":"execute","name":"execute RestApiCallNode - DELETE vpnbinding by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vpn-binding\" />\n\n","comments":"","outputs":1,"x":2087.253921508789,"y":1859.0040073394775,"z":"c985e328.7b018","wires":[["7174455f.d6f84c","7a010c3f.208a24"]]},{"id":"7174455f.d6f84c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2384.2287635803223,"y":1885.668996810913,"z":"c985e328.7b018","wires":[["67137964.139e48"]]},{"id":"7a010c3f.208a24","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2378.562152862549,"y":1854.1688327789307,"z":"c985e328.7b018","wires":[["67137964.139e48"]]},{"id":"b0d286cd.289718","type":"comment","name":"Add VPN Binding to mdsal","info":"","comments":"","x":2005.539535522461,"y":1820.1941061019897,"z":"c985e328.7b018","wires":[]},{"id":"67137964.139e48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2530.2960319519043,"y":1865.3795433044434,"z":"c985e328.7b018","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.json
new file mode 100755 (executable)
index 0000000..352efc0
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"8f9fef7.6f3a81","type":"dgstart","name":"DGSTART","outputs":1,"x":96.66665649414062,"y":22.39760112762451,"z":"59d9d15d.d6cec","wires":[["ce1c5240.2f13a"]]},{"id":"ce1c5240.2f13a","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":362.75952911376953,"y":20,"z":"59d9d15d.d6cec","wires":[["6f9cb61b.ee5138"]]},{"id":"71899083.1fb68","type":"comment","name":"ChangeLog","info":"4/16 - initial version","comments":"","x":85.49564361572266,"y":70.15521693229675,"z":"59d9d15d.d6cec","wires":[]},{"id":"6f9cb61b.ee5138","type":"method","name":"eipam-allocate-generic-subnet","xml":"<method rpc='eipam-allocate-generic-subnet' mode='sync'>\n","comments":"","outputs":1,"x":154.21531677246094,"y":111.08245182037354,"z":"59d9d15d.d6cec","wires":[["b5922f7f.64557"]]},{"id":"ab6de05c.4e171","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-generic-subnet\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.pools[$l4-idx].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.pools[$l4-idx].key-value`\"/>\n\n","comments":"","outputs":1,"x":2243.14102935791,"y":646.7808322906494,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"4bb70423.bcb5ec","type":"set","name":"set EIPAM key info at each Level","xml":"<set>\n\t<parameter name=\"eipam-ip-block.pools[$l4-idx].key-name\" value=\"`$v4FQPN-output.pools[$l4-idx].key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[$l4-idx].key-value\" value=\"`$v4FQPN-output.pools[$l4-idx].key-value`\"/>\n\t","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2317.9530506134033,"y":602.326545715332,"z":"59d9d15d.d6cec","wires":[]},{"id":"b5922f7f.64557","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":106.35284423828125,"y":161.4576597213745,"z":"59d9d15d.d6cec","wires":[["8d759ec.66d776","e3ade912.f66688","ea9b121a.c4eaf","3b70b322.db11fc","2b4e4aec.1de226"]]},{"id":"a8830696.011d28","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":730.9524345397949,"y":421.8863134384155,"z":"59d9d15d.d6cec","wires":[["ac71dacb.26a0d8"]]},{"id":"8d759ec.66d776","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"tmp.allocate-v4-subnet-flag\" value=\"N\" />\n\t<parameter name=\"tmp.allocate-v6-subnet-flag\" value=\"N\" />\n\t<parameter name='eipam-ip-block.plans_length' value='0' />\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"N\"/>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"N\"/>\n\t<parameter name=\"tmp.leaf-level\" value=\"N\" />","comments":"","x":363.6958465576172,"y":170.4885025024414,"z":"59d9d15d.d6cec","wires":[]},{"id":"84f45d73.77544","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":773.4203872680664,"y":996.2534217834473,"z":"59d9d15d.d6cec","wires":[["93951379.be7a2"]]},{"id":"ac71dacb.26a0d8","type":"switchNode","name":"test: eipam-ip-block.level","xml":"<switch test=\"`$l-idx`\">","comments":"","outputs":1,"x":938.7808876037598,"y":420.50491523742676,"z":"59d9d15d.d6cec","wires":[["182eb74a.ac9469","b87b3061.052b2","226aca7f.3fbb76"]]},{"id":"182eb74a.ac9469","type":"other","name":"level 1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1123.0390396118164,"y":418.826434135437,"z":"59d9d15d.d6cec","wires":[["6063e155.3da64"]]},{"id":"b87b3061.052b2","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1125.610450744629,"y":520.6835517883301,"z":"59d9d15d.d6cec","wires":[["9138f223.f2316"]]},{"id":"9138f223.f2316","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1252.8603477478027,"y":519.6835770606995,"z":"59d9d15d.d6cec","wires":[]},{"id":"e3ade912.f66688","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":265.42652130126953,"y":1794.3280906677246,"z":"59d9d15d.d6cec","wires":[]},{"id":"226aca7f.3fbb76","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1120.2782707214355,"y":562.5764150619507,"z":"59d9d15d.d6cec","wires":[["1e9c1897.d2f767"]]},{"id":"f006120d.73e05","type":"comment","name":"Required INPUTS","info":"Pre-requisites: \n\tThe levels are called in sequence starting at level 1,2,...\n\tso that the previous levels are created already.\n\tWorking with current plan: eipam-ip-block.plans[$eipam-ip-block.plans_length]\n\tAssumes generate-FQPN was already called, need its output for key_values\n\t\nOptional INPUTS:\n\ttmp.qip-pool - for level 1 if needed\n\ttmp.activate-subnet-flag - set to Y to have EIPAM activate it, else N(Default to Y)\tapplies to every level\n\ttmp.network-instance-group-id\n\t\nrequired INPUTS:\n\n\tnetwork-model - for Tosca model\n\ttmp.skip-first-level - set to Y if already created in EIPAM\n\teipam-ip-block.level - the level for createPool/allocateSubnet\n\ttmp.network-id\n\nSet the necessary values as inputs for the key_values \nfor 1 to current level as needed for EIPAM operations:\n\nv4FQPN-output.pools[].key-name\nv4FQPN-output.pools[].key-value\nv6FQPN-output.pools[].key-name\nv6FQPN-output.pools[].key-value\n\n(ie - Calling DG should set v[4|6]FQPN-output = generate-FQPN-output)\n\n\n","comments":"","x":650.9523773193359,"y":82.57617473602295,"z":"59d9d15d.d6cec","wires":[]},{"id":"98c2cc84.9a912","type":"for","name":"for l4-idx: eipam-ip-block.level","xml":"<for index=\"l4-idx\" start=\"0\" end=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1905.4169006347656,"y":617.7549533843994,"z":"59d9d15d.d6cec","wires":[["c39675d.1ac9888"]]},{"id":"c39675d.1ac9888","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2096.865390777588,"y":615.0247287750244,"z":"59d9d15d.d6cec","wires":[["4bb70423.bcb5ec","ab6de05c.4e171"]]},{"id":"e4105395.c1905","type":"switchNode","name":"switch: tmp.skip-first-level","xml":"<switch test=\"`$tmp.skip-first-level`\">","comments":"","outputs":1,"x":1430.2384338378906,"y":417.2192659378052,"z":"59d9d15d.d6cec","wires":[["33bb99d8.2114a6","d82636a5.9a0d38","2f749836.e94048"]]},{"id":"33bb99d8.2114a6","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1586.5241775512695,"y":447.1835422515869,"z":"59d9d15d.d6cec","wires":[["1e9c1897.d2f767"]]},{"id":"1e9c1897.d2f767","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1707.0242767333984,"y":558.2550249099731,"z":"59d9d15d.d6cec","wires":[["98c2cc84.9a912","fcf076c0.ae1d78","6ffc366b.bfe838","4e03d290.769fac","e16fb56c.0e3e48","fe526422.16f6a8","e34e99ee.7a2268"]]},{"id":"d82636a5.9a0d38","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1543.5956573486328,"y":483.6948595046997,"z":"59d9d15d.d6cec","wires":[["1e9c1897.d2f767"]]},{"id":"ea9b121a.c4eaf","type":"switchNode","name":"test: tmp.activate-subnet-flag","xml":"<switch test=\"`$tmp.activate-subnet-flag`\">","comments":"","outputs":1,"x":394.7023696899414,"y":217.57617282867432,"z":"59d9d15d.d6cec","wires":[["7ab0cb5c.25fd34","15d3a211.21541e","ab74cc21.2afd2"]]},{"id":"15d3a211.21541e","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":607.9524383544922,"y":186.8262062072754,"z":"59d9d15d.d6cec","wires":[["39a65e43.d68482"]]},{"id":"7ab0cb5c.25fd34","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":603.2025012969971,"y":232.82617664337158,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"39a65e43.d68482","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":759.7024307250977,"y":185.57617664337158,"z":"59d9d15d.d6cec","wires":[["4912f99e.65f368"]]},{"id":"ab74cc21.2afd2","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":607.7024307250977,"y":268.51611042022705,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"4912f99e.65f368","type":"set","name":"set tmp.activate-subnet-flag to Y","xml":"<set>\n\t<parameter name=\"tmp.activate-subnet-flag\" value=\"Y\"/>\t\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":984.7023696899414,"y":187.57617282867432,"z":"59d9d15d.d6cec","wires":[]},{"id":"6063e155.3da64","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1251.3097915649414,"y":419.3621482849121,"z":"59d9d15d.d6cec","wires":[["e4105395.c1905"]]},{"id":"94e6e10b.06072","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-generic-subnet\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.pools[$l6-idx].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.pools[$l6-idx].key-value`\"/>\n<parameter name=\"field7\" value=\"`$l6-idx`\"/>\n","comments":"","outputs":1,"x":2275.1337394714355,"y":1212.0604271888733,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"93951379.be7a2","type":"switchNode","name":"test: eipam-ip-block.level","xml":"<switch test=\"`$l-idx`\">","comments":"","outputs":1,"x":973.9880905151367,"y":995.764778137207,"z":"59d9d15d.d6cec","wires":[["5fca83a8.bf0a3c","f6dd58ad.545418","cac33639.67c088"]]},{"id":"5fca83a8.bf0a3c","type":"other","name":"level 1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1162.8097305297852,"y":998.55042552948,"z":"59d9d15d.d6cec","wires":[["da3ad60b.40a538"]]},{"id":"f6dd58ad.545418","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1165.3811416625977,"y":1100.407543182373,"z":"59d9d15d.d6cec","wires":[["7316123e.6ee9cc"]]},{"id":"7316123e.6ee9cc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1292.6310386657715,"y":1099.4075684547424,"z":"59d9d15d.d6cec","wires":[]},{"id":"cac33639.67c088","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1160.0489616394043,"y":1142.3004064559937,"z":"59d9d15d.d6cec","wires":[["88faa638.e54cf8"]]},{"id":"3ab54f41.6592e","type":"for","name":"for l6-idx: eipam-ip-block.level","xml":"<for index=\"l6-idx\" start=\"0\" end=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1945.1875915527344,"y":1197.4789447784424,"z":"59d9d15d.d6cec","wires":[["24cb1d26.b5d7b2"]]},{"id":"24cb1d26.b5d7b2","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2136.6360816955566,"y":1194.7487201690674,"z":"59d9d15d.d6cec","wires":[["94e6e10b.06072","8f172824.4d3c88"]]},{"id":"60b72913.4f8168","type":"switchNode","name":"switch: tmp.skip-first-level","xml":"<switch test=\"`$tmp.skip-first-level`\">","comments":"","outputs":1,"x":1473.759262084961,"y":998.1932592391968,"z":"59d9d15d.d6cec","wires":[["5bb9354.1ebb0cc","680e224e.86676c","9bcfb57.ef89248"]]},{"id":"5bb9354.1ebb0cc","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1645.7593574523926,"y":1032.443271636963,"z":"59d9d15d.d6cec","wires":[["88faa638.e54cf8"]]},{"id":"88faa638.e54cf8","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1746.7949676513672,"y":1137.979016304016,"z":"59d9d15d.d6cec","wires":[["3ab54f41.6592e","83776b7d.3e2ea8","947c46b.dfcfcb8","fbd44536.a250d8","5f9cddac.d2bb54","7f1fcd55.6f8b64","be19d35a.f6ee9"]]},{"id":"680e224e.86676c","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1644.6163864135742,"y":1068.9544792175293,"z":"59d9d15d.d6cec","wires":[["88faa638.e54cf8"]]},{"id":"da3ad60b.40a538","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1291.0804824829102,"y":999.0861396789551,"z":"59d9d15d.d6cec","wires":[["60b72913.4f8168"]]},{"id":"9bcfb57.ef89248","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1654.0454273223877,"y":991.3004283905029,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"2f749836.e94048","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1621.4884185791016,"y":413.2906684875488,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"fcf076c0.ae1d78","type":"set","name":"set EIPAM pool info for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"`$tmp.activate-subnet-flag`\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"`$tmp.leaf-level`\"/>\n\t<parameter name=\"tmp.allocate-v4-subnet-flag\" value=\"Y\" />\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1940.5363006591797,"y":558.7622022628784,"z":"59d9d15d.d6cec","wires":[]},{"id":"f14ae6f0.6b0b68","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":515.7143135070801,"y":330.0000066757202,"z":"59d9d15d.d6cec","wires":[["bcbca98c.14d5c8"]]},{"id":"bcbca98c.14d5c8","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":634.5162162780762,"y":329.81357192993164,"z":"59d9d15d.d6cec","wires":[["9ebcbfc6.15186"]]},{"id":"3b70b322.db11fc","type":"switchNode","name":"switch: leaf level","xml":"<switch test=\"`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`\">","comments":"","outputs":1,"x":361.1305847167969,"y":329.23771476745605,"z":"59d9d15d.d6cec","wires":[["f14ae6f0.6b0b68"]]},{"id":"9ebcbfc6.15186","type":"set","name":"set tmp.leaf-level to Y","xml":"<set>\n\t<parameter name=\"tmp.leaf-level\" value=\"Y\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":842.8571166992188,"y":331.4285583496094,"z":"59d9d15d.d6cec","wires":[]},{"id":"83776b7d.3e2ea8","type":"set","name":"set EIPAM pool info for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"`$tmp.activate-subnet-flag`\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"`$tmp.leaf-level`\"/>\n\t<parameter name=\"tmp.allocate-v6-subnet-flag\" value=\"Y\" />\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1976.083251953125,"y":1136.2498779296875,"z":"59d9d15d.d6cec","wires":[]},{"id":"8f172824.4d3c88","type":"set","name":"set EIPAM pool info at each Level","xml":"<set>\n\t<parameter name=\"eipam-ip-block.pools[$l6-idx].key-name\" value=\"`$v6FQPN-output.pools[$l6-idx].key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[$l6-idx].key-value\" value=\"`$v6FQPN-output.pools[$l6-idx].key-value`\"/>\n\t","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2356.083251953125,"y":1177.9166259765625,"z":"59d9d15d.d6cec","wires":[]},{"id":"2b4e4aec.1de226","type":"switchNode","name":"switch: eipam-ip-block.allocate-version","xml":"<switch test=\"`$eipam-ip-block.allocate-version`\">","comments":"Need to know which ipv version to get the plan name from the network-model.","outputs":1,"x":348.7499769181013,"y":482.49998474121094,"z":"59d9d15d.d6cec","wires":[["5f026f8d.26562","821f7cdd.9300d","8bb1e0b.4dd582"]]},{"id":"5f026f8d.26562","type":"other","name":"ipv4","xml":"<outcome value='ipv4'>","comments":"","outputs":1,"x":586.2500761002302,"y":422.499981880188,"z":"59d9d15d.d6cec","wires":[["a8830696.011d28"]]},{"id":"821f7cdd.9300d","type":"other","name":"Null","xml":"<outcome value=''>","comments":"","outputs":1,"x":550.7500991821289,"y":1327.4904613494873,"z":"59d9d15d.d6cec","wires":[["849eba01.737b78"]]},{"id":"8bb1e0b.4dd582","type":"other","name":"ipv6","xml":"<outcome value='ipv6'>","comments":"","outputs":1,"x":599.0217552185059,"y":1000.4002666473389,"z":"59d9d15d.d6cec","wires":[["84f45d73.77544"]]},{"id":"849eba01.737b78","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.allocate-version for appropriate EIPAM request.\" />\n\t","comments":"","x":693.4999771118164,"y":1327.9168949127197,"z":"59d9d15d.d6cec","wires":[]},{"id":"26f3b34b.bf5e3c","type":"set","name":"set EIPAM plan info for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"Y\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"`$tmp.leaf-level`\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"1\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2453.3332328796387,"y":480.8333168029785,"z":"59d9d15d.d6cec","wires":[]},{"id":"739a41cf.6ce14","type":"save","name":"insert EIPAM_IP_SUBNETS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ,\n             network_instance_group_id = $tmp.network-instance-group-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-row'>\n","comments":"","outputs":1,"x":2255.7193641662598,"y":806.822883605957,"z":"59d9d15d.d6cec","wires":[["bb00f828.48b688"]]},{"id":"6ffc366b.bfe838","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1908.4819793701172,"y":685.3392143249512,"z":"59d9d15d.d6cec","wires":[["97506f50.4a93"]]},{"id":"97506f50.4a93","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2118.4820098876953,"y":686.7295799255371,"z":"59d9d15d.d6cec","wires":[["ce167d53.ecb57"]]},{"id":"ce167d53.ecb57","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2282.4820404052734,"y":689.7296104431152,"z":"59d9d15d.d6cec","wires":[]},{"id":"e16fb56c.0e3e48","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":1937.3288345336914,"y":912.4893751144409,"z":"59d9d15d.d6cec","wires":[["54bc5756.107198","7f276b3.f6f6794"]]},{"id":"4e03d290.769fac","type":"get-resource","name":"get-resource V4 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1907.5899505615234,"y":731.3392448425293,"z":"59d9d15d.d6cec","wires":[["26bb8cfc.df8fb4","ef851ee3.4729d"]]},{"id":"bb00f828.48b688","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2491.7979621887207,"y":804.1560049057007,"z":"59d9d15d.d6cec","wires":[["8a79d874.143b98"]]},{"id":"7f276b3.f6f6794","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2259.446388244629,"y":957.639552116394,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"5a318a10.b7f824","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2410.659278869629,"y":908.489405632019,"z":"59d9d15d.d6cec","wires":[]},{"id":"8a79d874.143b98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2654.1043243408203,"y":803.1559743881226,"z":"59d9d15d.d6cec","wires":[]},{"id":"54bc5756.107198","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2248.659278869629,"y":908.489405632019,"z":"59d9d15d.d6cec","wires":[["5a318a10.b7f824"]]},{"id":"fe526422.16f6a8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-generic-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"`$tmp.network_instance_group_id`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"subnet saved to DB.\"/>","comments":"","outputs":1,"x":1824.629493713379,"y":954.789698600769,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"26bb8cfc.df8fb4","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2115.1824798583984,"y":718.4749870300293,"z":"59d9d15d.d6cec","wires":[["82b454c3.44a828"]]},{"id":"82b454c3.44a828","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM.\" />\n\t","comments":"","x":2320.1824798583984,"y":732.4750175476074,"z":"59d9d15d.d6cec","wires":[]},{"id":"ef851ee3.4729d","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2121.4046669006348,"y":752.3637619018555,"z":"59d9d15d.d6cec","wires":[["82b454c3.44a828"]]},{"id":"afc2d16f.1f298","type":"save","name":"insert EIPAM_IP_SUBNETS for V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ,\n             network_instance_group_id = $tmp.network-instance-group-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2320.7775955200195,"y":1354.4443311691284,"z":"59d9d15d.d6cec","wires":[["501eb89c.f97d08"]]},{"id":"947c46b.dfcfcb8","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1953.5401306152344,"y":1247.4049797058105,"z":"59d9d15d.d6cec","wires":[["ca583d20.3e1f8"]]},{"id":"ca583d20.3e1f8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2163.5401611328125,"y":1248.7953453063965,"z":"59d9d15d.d6cec","wires":[["6fe68b.5f646974"]]},{"id":"6fe68b.5f646974","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V6 subnet in EIPAM.\" />\n\t","comments":"","x":2327.5401916503906,"y":1251.7953758239746,"z":"59d9d15d.d6cec","wires":[]},{"id":"5f9cddac.d2bb54","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":1991.27587890625,"y":1483.4440479278564,"z":"59d9d15d.d6cec","wires":[["2d0e4e09.d859a2","d8a4a0e7.a664c"]]},{"id":"fbd44536.a250d8","type":"get-resource","name":"get-resource V6 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1952.6481018066406,"y":1293.4050102233887,"z":"59d9d15d.d6cec","wires":[["d2f70b00.3b1238","58a4d35f.68dd1c"]]},{"id":"501eb89c.f97d08","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2580.1893730163574,"y":1350.6664409637451,"z":"59d9d15d.d6cec","wires":[["e3b79412.c323c8"]]},{"id":"d8a4a0e7.a664c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2275.615858078003,"y":1531.9274969100952,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"b37ca556.7661f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2426.828748703003,"y":1482.7773504257202,"z":"59d9d15d.d6cec","wires":[]},{"id":"e3b79412.c323c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2742.495735168457,"y":1349.666410446167,"z":"59d9d15d.d6cec","wires":[]},{"id":"2d0e4e09.d859a2","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2264.828748703003,"y":1482.7773504257202,"z":"59d9d15d.d6cec","wires":[["b37ca556.7661f8"]]},{"id":"7f1fcd55.6f8b64","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-generic-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"`$tmp.network_instance_group_id`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"subnet info are saved to DB.\"/>","comments":"","outputs":1,"x":1877.46577835083,"y":1526.8555946350098,"z":"59d9d15d.d6cec","wires":[[]]},{"id":"d2f70b00.3b1238","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2160.2406311035156,"y":1280.5407524108887,"z":"59d9d15d.d6cec","wires":[["9e6cdba1.687738"]]},{"id":"9e6cdba1.687738","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM.\" />\n\t","comments":"","x":2365.2406311035156,"y":1294.5407829284668,"z":"59d9d15d.d6cec","wires":[]},{"id":"58a4d35f.68dd1c","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2174.2406311035156,"y":1315.5407524108887,"z":"59d9d15d.d6cec","wires":[["9e6cdba1.687738"]]},{"id":"888201dc.1fd6c","type":"set","name":"set: key-name/key-value","xml":"<set>\n\t<parameter name=\"key-name\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-name`\" />\t\n\t<parameter name=\"key-value\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\" />\t","comments":"","x":2203.611068725586,"y":407.2221565246582,"z":"59d9d15d.d6cec","wires":[]},{"id":"4c29fe3a.88239","type":"set","name":"set: key-name/key-value","xml":"<set>\n\t<parameter name=\"key-name\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-name`\" />\t\n\t<parameter name=\"key-value\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\" />\t","comments":"","x":2395.000030517578,"y":1072.5000095367432,"z":"59d9d15d.d6cec","wires":[]},{"id":"e34e99ee.7a2268","type":"switchNode","name":"test: subnet-use","xml":"<switch test=\"`$network-instance-group-data.subnet-assignment-policy.subnet-use`\">","comments":"","outputs":1,"x":1859.3629913330078,"y":840.7729730606079,"z":"59d9d15d.d6cec","wires":[["a853166b.b152b8","c0d37208.8f4c6","8a5e791b.815608"]]},{"id":"a853166b.b152b8","type":"other","name":"shared","xml":"<outcome value='shared'>","comments":"","outputs":1,"x":2036.465892791748,"y":807.2015380859375,"z":"59d9d15d.d6cec","wires":[["739a41cf.6ce14"]]},{"id":"c0d37208.8f4c6","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2036.4658432006836,"y":842.5985565185547,"z":"59d9d15d.d6cec","wires":[["fe5f4f5e.816e8"]]},{"id":"8a5e791b.815608","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2040.4341659545898,"y":877.201623916626,"z":"59d9d15d.d6cec","wires":[["fe5f4f5e.816e8"]]},{"id":"fe5f4f5e.816e8","type":"save","name":"insert EIPAM_IP_SUBNETS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-row'>\n","comments":"","outputs":1,"x":2258.680419921875,"y":851.3680419921875,"z":"59d9d15d.d6cec","wires":[["bb00f828.48b688"]]},{"id":"be19d35a.f6ee9","type":"switchNode","name":"test: subnet-use","xml":"<switch test=\"`$network-instance-group-data.subnet-assignment-policy.subnet-use`\">","comments":"","outputs":1,"x":1920.2359619140625,"y":1383.5902099609375,"z":"59d9d15d.d6cec","wires":[["2632d631.52c4aa","1340bc13.064864","1b2d9362.16f21d"]]},{"id":"2632d631.52c4aa","type":"other","name":"shared","xml":"<outcome value='shared'>","comments":"","outputs":1,"x":2097.3388633728027,"y":1350.018774986267,"z":"59d9d15d.d6cec","wires":[["afc2d16f.1f298"]]},{"id":"1340bc13.064864","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2097.3388137817383,"y":1385.4157934188843,"z":"59d9d15d.d6cec","wires":[["9a6994e7.96b818"]]},{"id":"1b2d9362.16f21d","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2101.3071365356445,"y":1420.0188608169556,"z":"59d9d15d.d6cec","wires":[["9a6994e7.96b818"]]},{"id":"9a6994e7.96b818","type":"save","name":"insert EIPAM_IP_SUBNETS for V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2321.34716796875,"y":1405.8123779296875,"z":"59d9d15d.d6cec","wires":[["501eb89c.f97d08"]]}]
\ No newline at end of file
index 0f2ca84..9f35612 100644 (file)
@@ -1 +1 @@
-[{"id":"9d78fb25.8da918","type":"dgstart","name":"DGSTART","outputs":1,"x":128,"y":76.81381225585938,"z":"af884d85.e79ff","wires":[["900b6f3d.c1c1"]]},{"id":"d35e37bc.ff7dc8","type":"method","name":"eipam-allocate-network-role-subnet","xml":"<method rpc='eipam-allocate-network-role-subnet' mode='sync'>\n","comments":"","outputs":1,"x":681.8667907714844,"y":79.68048095703125,"z":"af884d85.e79ff","wires":[["ba9acfa1.1a81c"]]},{"id":"900b6f3d.c1c1","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":356.95001220703125,"y":80.13049697875977,"z":"af884d85.e79ff","wires":[["d35e37bc.ff7dc8"]]},{"id":"f80c53d6.792a7","type":"comment","name":"ChangeLog","info":"1.0.0: Release 1702 - EIPAM only allows allocating one address plan request at a time\n1.0.1: Release 1702 - introduced new input, eipam-ip-block.allocate-version to call EIPAM allocateSubnet individually\n                    - change toplevel block to Atomic, so if subet already exists, then it returns as failure\n                    - Update error msg\n1.0.2: Release 1702 - Remove check for existing subnet so can be called to create multiple subnet with same CLII_ZONE & NETWORK_ROLE, as \n\t\t\t\t\t\tin the autogrowth scenario\n1.0.3: Release 1702 - Req update to change level 1 & 2 key-name & key-values\n\t\t\t\t\t- update status to ACTIVE for level subnet\n\t\t\t\t\t- update service-type from $network-topology-operation-input.service-information.subscription-service-type to $tmp.service-type\n\t\t\t\t\t(cannot use the input field as not always populated in NTO-assign)\n\t\t\t\t\t- check for error when querying for entry in EIPAM_IP_POOLS before inserting to EIPAM_IP_SUBNETS\n1.0.4: Release 1707 - Add eipam-ip-block.subnet-size-override for level 2\n\n5/10 - 1707 - updated pool key-names for AIC_AIM_LANDING_NETWORK_V4\n6/20 - 1710 - change any underscores _  to colon : for all level 1 and level 2 Pool KeyNames\n6/21 - 1710 - Task 403314 - QIP Parent pool consolidation\n\t\t\t- New V6 plans - \n\t\t\t\tAIC_ATM_UNPROTECTED_V6\n\t\t\t\tAIC_ATM_PROTECTED_V6\n\t\t\t\tAIC_AIM_LANDING_V6\n\t\t\t\t\n","comments":"","x":183.68618774414062,"y":112,"z":"af884d85.e79ff","wires":[]},{"id":"ba9acfa1.1a81c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":150.68618774414062,"y":209.87387084960938,"z":"af884d85.e79ff","wires":[["ee269459.0d29d8","82edc9cf.f072c8","3e573341.752dac"]]},{"id":"ee269459.0d29d8","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"eipam-ip-block.ip-prefix\" value='' />\n\t<parameter name=\"eipam-ip-block.mask\" value='' />\n\t<parameter name=\"pfx.eipam-pool-row\" value='' />\n\t<parameter name=\"tmp.level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />","comments":"","x":365.1201171875,"y":208.81381225585938,"z":"af884d85.e79ff","wires":[]},{"id":"5d98bd32.198a54","type":"set","name":"set EIPAM plan info for Level 2 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"Y\"/>\n\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"2\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.pools[1].key-name\" value=\"`$tmp.level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2131.9706802368164,"y":505.6710214614868,"z":"af884d85.e79ff","wires":[]},{"id":"82edc9cf.f072c8","type":"switchNode","name":"switch: eipam-ip-block.allocate-version","xml":"<switch test=\"`$eipam-ip-block.allocate-version`\">","comments":"Need to know which ipv version to get the plan name from the network-model.","outputs":1,"x":370,"y":551.8138084411621,"z":"af884d85.e79ff","wires":[["f2b84662.2a28c8","73d6dbe6.4a70f4","fd5c5be.70454a8"]]},{"id":"f2b84662.2a28c8","type":"other","name":"ipv4","xml":"<outcome value='ipv4'>","comments":"","outputs":1,"x":610.000114440918,"y":411.8138122558594,"z":"af884d85.e79ff","wires":[["797fa21e.81a99c"]]},{"id":"797fa21e.81a99c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":764.000057220459,"y":410.81381607055664,"z":"af884d85.e79ff","wires":[["db16e381.0a927"]]},{"id":"73d6dbe6.4a70f4","type":"other","name":"Null","xml":"<outcome value=''>","comments":"","outputs":1,"x":552.0000610351562,"y":1213.0541076660156,"z":"af884d85.e79ff","wires":[["f625de69.a30ae"]]},{"id":"b4f8397b.808218","type":"set","name":"set EIPAM plan info for Level 1 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"Y\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"N\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2137.736862182617,"y":1018.8138976097107,"z":"af884d85.e79ff","wires":[]},{"id":"cc146f0d.ef15","type":"set","name":"set EIPAM plan info for Level 2 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"Y\"/>\n\t\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"2\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.pools[1].key-name\" value=\"`$tmp.level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2188.564437866211,"y":1464.0996627807617,"z":"af884d85.e79ff","wires":[]},{"id":"65bbfb9e.a49d24","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":766.8799324035645,"y":1097.8138160705566,"z":"af884d85.e79ff","wires":[["4d50f209.31bbec"]]},{"id":"2fafc82a.bc12e8","type":"get-resource","name":"get-resource V4 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.network_id = $tmp.network-id and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $network-model.network-role ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":2256.999969482422,"y":469.0000305175781,"z":"af884d85.e79ff","wires":[["2f55848b.f08e5c","de928710.7cb6a8","2a00bb0d.8dc174"]]},{"id":"1875a49c.c38f6b","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2677.9998626708984,"y":422.0000305175781,"z":"af884d85.e79ff","wires":[]},{"id":"2f55848b.f08e5c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2529.999954223633,"y":460.0000305175781,"z":"af884d85.e79ff","wires":[["ae4526b8.ab5478"]]},{"id":"db16e381.0a927","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":987.0810928344727,"y":410.99999618530273,"z":"af884d85.e79ff","wires":[["ad4bebf.6ec2118","ebec96ad.d0a718","ab9c32c6.9fd19"]]},{"id":"ad4bebf.6ec2118","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1134.0812072753906,"y":523,"z":"af884d85.e79ff","wires":[["e4c14f7a.9980d"]]},{"id":"ebec96ad.d0a718","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1110.0812072753906,"y":653.0000305175781,"z":"af884d85.e79ff","wires":[["305345ea.b1a54a"]]},{"id":"305345ea.b1a54a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1270.0811767578125,"y":653.0000610351562,"z":"af884d85.e79ff","wires":[]},{"id":"de928710.7cb6a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2528.8617401123047,"y":424.0000305175781,"z":"af884d85.e79ff","wires":[["1875a49c.c38f6b"]]},{"id":"2a00bb0d.8dc174","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2532.861770629883,"y":496.0000305175781,"z":"af884d85.e79ff","wires":[[]]},{"id":"d0aa2357.d318f","type":"get-resource","name":"get-resource V4 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":2050.411331176758,"y":67.99999237060547,"z":"af884d85.e79ff","wires":[["93f2cc3a.b0aa8","9a9a66f7.3a6078","6f91b4fe.93cf2c"]]},{"id":"83766193.dc8cc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2471.4113159179688,"y":20,"z":"af884d85.e79ff","wires":[]},{"id":"93f2cc3a.b0aa8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2323.411407470703,"y":58,"z":"af884d85.e79ff","wires":[["fc0f2420.6aefd8"]]},{"id":"ab9c32c6.9fd19","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1127.4925231933594,"y":216,"z":"af884d85.e79ff","wires":[["6dd579f2.58b018"]]},{"id":"9a9a66f7.3a6078","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2322.273193359375,"y":22,"z":"af884d85.e79ff","wires":[["83766193.dc8cc"]]},{"id":"6f91b4fe.93cf2c","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2326.273223876953,"y":94,"z":"af884d85.e79ff","wires":[[]]},{"id":"a449a4a2.cb78d8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"201\" />\n","comments":"","x":2677.1500549316406,"y":88,"z":"af884d85.e79ff","wires":[]},{"id":"61ecde9a.69227","type":"get-resource","name":"get-resource V6 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.network_id = $tmp.network-id and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $network-model.network-role ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1408.636459350586,"y":1386.1141357421875,"z":"af884d85.e79ff","wires":[["ae21a219.72b19","9045464c.c34088","8ad23758.1a1c08"]]},{"id":"5bbb3e3d.f153","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1829.636245727539,"y":1337.1141357421875,"z":"af884d85.e79ff","wires":[]},{"id":"ae21a219.72b19","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1681.6364440917969,"y":1375.1141357421875,"z":"af884d85.e79ff","wires":[["64ab1a79.79a634"]]},{"id":"4d50f209.31bbec","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":973.7175750732422,"y":1094.2569961547852,"z":"af884d85.e79ff","wires":[["4591adec.ffb634","ebaca2f.16b246","8a7bbb2b.80f878"]]},{"id":"4591adec.ffb634","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1138.7174987792969,"y":1460.1141357421875,"z":"af884d85.e79ff","wires":[["308b870d.1f9aa8"]]},{"id":"ebaca2f.16b246","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1135.7174987792969,"y":1505.1141357421875,"z":"af884d85.e79ff","wires":[["c041621d.2bed1"]]},{"id":"c041621d.2bed1","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1295.7173767089844,"y":1505.1141357421875,"z":"af884d85.e79ff","wires":[]},{"id":"9045464c.c34088","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1680.4982299804688,"y":1339.1141357421875,"z":"af884d85.e79ff","wires":[["5bbb3e3d.f153"]]},{"id":"8ad23758.1a1c08","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1684.4982604980469,"y":1411.1141357421875,"z":"af884d85.e79ff","wires":[[]]},{"id":"4a066f5e.85d33","type":"get-resource","name":"get-resource V6 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1990.0480270385742,"y":843.1141834259033,"z":"af884d85.e79ff","wires":[["840cadc8.a9cb6","3888df63.597fd","b3d793ce.fda54"]]},{"id":"6901fbcf.b89164","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2411.0480308532715,"y":794.1142139434814,"z":"af884d85.e79ff","wires":[]},{"id":"840cadc8.a9cb6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2263.048122406006,"y":832.1142139434814,"z":"af884d85.e79ff","wires":[["61aba367.170f9c"]]},{"id":"8a7bbb2b.80f878","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1137.1290168762207,"y":988.1141662597656,"z":"af884d85.e79ff","wires":[["ff91e5b0.4d5e38"]]},{"id":"3888df63.597fd","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2261.9099082946777,"y":796.1142139434814,"z":"af884d85.e79ff","wires":[["6901fbcf.b89164"]]},{"id":"b3d793ce.fda54","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2265.909938812256,"y":868.1142139434814,"z":"af884d85.e79ff","wires":[[]]},{"id":"daf71f52.1419","type":"set","name":"set EIPAM plan info for Level 1 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"Y\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"N\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2124.534698486328,"y":180.81381225585938,"z":"af884d85.e79ff","wires":[]},{"id":"3fad2aec.a70926","type":"save","name":"insert EIPAM_IP_SUBNETS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-row'>\n","comments":"","outputs":1,"x":2094.540802001953,"y":325.96417236328125,"z":"af884d85.e79ff","wires":[["61c10117.b9459","1a12c79c.b44ef8"]]},{"id":"6dd579f2.58b018","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1332.4894104003906,"y":213.96395874023438,"z":"af884d85.e79ff","wires":[["daf71f52.1419","8136ada7.7f831","3fad2aec.a70926","950dccde.bc93d","74c5e3f9.66273c","6a5af7e2.3dc6d8"]]},{"id":"8136ada7.7f831","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2055.0812072753906,"y":225.81381225585938,"z":"af884d85.e79ff","wires":[["dcf19076.269d2"]]},{"id":"dcf19076.269d2","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2265.0812377929688,"y":227.2041778564453,"z":"af884d85.e79ff","wires":[["8274ac50.7d1b5"]]},{"id":"8274ac50.7d1b5","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2429.081268310547,"y":230.20420837402344,"z":"af884d85.e79ff","wires":[]},{"id":"e4c14f7a.9980d","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1314.5705871582031,"y":524.8138122558594,"z":"af884d85.e79ff","wires":[["5d98bd32.198a54","3ed4edab.9101d2","56faed60.ea7514","c58b39d.02995c8","1180173f.f62099","826cf92.097f708","d6ec4d5a.4fa56","2244b12.dafd04e"]]},{"id":"3ed4edab.9101d2","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2059.6126403808594,"y":571.8138122558594,"z":"af884d85.e79ff","wires":[["2c4f9b60.58a254"]]},{"id":"2c4f9b60.58a254","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2269.6126708984375,"y":573.2041778564453,"z":"af884d85.e79ff","wires":[["12bdf050.06dfd"]]},{"id":"12bdf050.06dfd","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2433.6127014160156,"y":576.2042083740234,"z":"af884d85.e79ff","wires":[]},{"id":"56faed60.ea7514","type":"save","name":"insert EIPAM_IP_SUBNETS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":2094.612518310547,"y":679.8138732910156,"z":"af884d85.e79ff","wires":[["57363548.9396cc","211c740e.cf417c"]]},{"id":"c58b39d.02995c8","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2109.612335205078,"y":721.8138160705566,"z":"af884d85.e79ff","wires":[["211c740e.cf417c","3f850f8f.72c47"]]},{"id":"1180173f.f62099","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2108.6124572753906,"y":767.8138465881348,"z":"af884d85.e79ff","wires":[["211c740e.cf417c","3f850f8f.72c47"]]},{"id":"950dccde.bc93d","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2112.816864013672,"y":362.9639587402344,"z":"af884d85.e79ff","wires":[["1a12c79c.b44ef8","fc216a73.da41f8"]]},{"id":"74c5e3f9.66273c","type":"get-resource","name":"get-resource V4 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2054.189239501953,"y":274.81380462646484,"z":"af884d85.e79ff","wires":[["b7560d4.843d4f","7f808d14.fa37e4"]]},{"id":"826cf92.097f708","type":"get-resource","name":"get-resource V4 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2051.188995361328,"y":623.8138732910156,"z":"af884d85.e79ff","wires":[["827b1620.4c4d08","cdde130e.69af4"]]},{"id":"1fd6bf21.0a00b1","type":"save","name":"insert EIPAM_IP_SUBNETS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2107.3451232910156,"y":1168.4146118164062,"z":"af884d85.e79ff","wires":[["25e2d931.1b6566","82bca903.e58df8"]]},{"id":"b05ae73e.f76a38","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2067.8855895996094,"y":1070.2642517089844,"z":"af884d85.e79ff","wires":[["4693175c.e53f58"]]},{"id":"4693175c.e53f58","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2277.8856201171875,"y":1071.6546173095703,"z":"af884d85.e79ff","wires":[["b82df8d0.875478"]]},{"id":"b82df8d0.875478","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2441.8856506347656,"y":1074.6546478271484,"z":"af884d85.e79ff","wires":[]},{"id":"9adb7ede.b6ee6","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2125.6212463378906,"y":1207.4143981933594,"z":"af884d85.e79ff","wires":[["a03e18b9.56ab08","82bca903.e58df8"]]},{"id":"32c22ce1.cfbb64","type":"get-resource","name":"get-resource V6 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2066.9935607910156,"y":1116.2642822265625,"z":"af884d85.e79ff","wires":[["3e64d396.04c79c","96a0c906.f7cd38"]]},{"id":"13462f06.ec5931","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2122.2672424316406,"y":1542.7146453857422,"z":"af884d85.e79ff","wires":[["9ded8a81.952bf8"]]},{"id":"9ded8a81.952bf8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2332.2672729492188,"y":1544.1050109863281,"z":"af884d85.e79ff","wires":[["f5bc2f24.a6b84"]]},{"id":"f5bc2f24.a6b84","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2496.2672424316406,"y":1547.10498046875,"z":"af884d85.e79ff","wires":[]},{"id":"3e343055.aa6c4","type":"save","name":"insert EIPAM_IP_SUBNETS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2154.267120361328,"y":1650.7147216796875,"z":"af884d85.e79ff","wires":[["dc201cfd.44ef1","60365290.cd138c"]]},{"id":"55a6980.64c9068","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2172.2669372558594,"y":1692.7146492004395,"z":"af884d85.e79ff","wires":[["60365290.cd138c","249dd9a9.94ecc6"]]},{"id":"9747e41b.cbfc48","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2171.267059326172,"y":1738.7146797180176,"z":"af884d85.e79ff","wires":[["60365290.cd138c","249dd9a9.94ecc6"]]},{"id":"4fae9372.cdb14c","type":"get-resource","name":"get-resource V6 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2118.8436584472656,"y":1596.7147216796875,"z":"af884d85.e79ff","wires":[["c412ff05.61872","8db85c57.32fac"]]},{"id":"ff91e5b0.4d5e38","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1305.9460144042969,"y":985.2643127441406,"z":"af884d85.e79ff","wires":[["b4f8397b.808218","b05ae73e.f76a38","32c22ce1.cfbb64","1fd6bf21.0a00b1","9adb7ede.b6ee6","22f94d7b.eb0dd2"]]},{"id":"308b870d.1f9aa8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1295.6607360839844,"y":1458.7147216796875,"z":"af884d85.e79ff","wires":[["cc146f0d.ef15","13462f06.ec5931","4fae9372.cdb14c","3e343055.aa6c4","55a6980.64c9068","9747e41b.cbfc48","963762f2.b6052","4f4eeaa0.dc8a84"]]},{"id":"fd5c5be.70454a8","type":"other","name":"ipv6","xml":"<outcome value='ipv6'>","comments":"","outputs":1,"x":582.7717437744141,"y":1095.9640197753906,"z":"af884d85.e79ff","wires":[["65bbfb9e.a49d24"]]},{"id":"3e573341.752dac","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":300,"y":684.1141662597656,"z":"af884d85.e79ff","wires":[]},{"id":"9adfc428.56b8e8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V4 Level 2 Subnet already exists.\" />\n\t","comments":"","x":2898.2161560058594,"y":511.8138427734375,"z":"af884d85.e79ff","wires":[]},{"id":"2ba67659.6b018a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V6 Level 1 Subnet already exists.\" />\n\t","comments":"","x":2272.216094970703,"y":966.2643127441406,"z":"af884d85.e79ff","wires":[]},{"id":"e7d56588.f6fc68","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V6 Level 2 Subnet already exists.\" />\n\t","comments":"","x":2052.216278076172,"y":1413.7147216796875,"z":"af884d85.e79ff","wires":[]},{"id":"f625de69.a30ae","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.allocate-version for appropriate EIPAM request.\" />\n\t","comments":"","x":719.1141052246094,"y":1213.5645751953125,"z":"af884d85.e79ff","wires":[]},{"id":"23c76a06.097e96","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"201\" />\n","comments":"","x":2614.159355163574,"y":864.4145069122314,"z":"af884d85.e79ff","wires":[]},{"id":"c01d1cf.e66dbe","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 subnet already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2652.9159240722656,"y":48.813812255859375,"z":"af884d85.e79ff","wires":[[]]},{"id":"fb0abddf.f31a3","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 subnet already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2593.366630554199,"y":833.2642993927002,"z":"af884d85.e79ff","wires":[[]]},{"id":"fc0f2420.6aefd8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2474.3663482666016,"y":53.813812255859375,"z":"af884d85.e79ff","wires":[["c01d1cf.e66dbe","a449a4a2.cb78d8"]]},{"id":"ae4526b8.ab5478","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2681.3662719726562,"y":457.96398544311523,"z":"af884d85.e79ff","wires":[["39c4b9ca.7881d6","9adfc428.56b8e8"]]},{"id":"c9e7ed18.fb707","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":2520.366241455078,"y":487.8138084411621,"z":"af884d85.e79ff","wires":[[]]},{"id":"39c4b9ca.7881d6","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet already exists, SKIP.\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field7\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n","comments":"","outputs":1,"x":2877.3663024902344,"y":478.8138427734375,"z":"af884d85.e79ff","wires":[[]]},{"id":"61aba367.170f9c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2409.745048522949,"y":834.2643604278564,"z":"af884d85.e79ff","wires":[["fb0abddf.f31a3","23c76a06.097e96"]]},{"id":"64ab1a79.79a634","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1836.744888305664,"y":1372.7147216796875,"z":"af884d85.e79ff","wires":[["9520eb16.67d2a8","e7d56588.f6fc68"]]},{"id":"9520eb16.67d2a8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet already exists, SKIP.\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field7\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n","comments":"","outputs":1,"x":2038.7447814941406,"y":1374.8648681640625,"z":"af884d85.e79ff","wires":[[]]},{"id":"82b48f60.6d084","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2620.8376426696777,"y":321.96395111083984,"z":"af884d85.e79ff","wires":[]},{"id":"61c10117.b9459","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2405.8377990722656,"y":320.8138084411621,"z":"af884d85.e79ff","wires":[["82b48f60.6d084"]]},{"id":"1a12c79c.b44ef8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2401.9305725097656,"y":416.96395111083984,"z":"af884d85.e79ff","wires":[[]]},{"id":"57363548.9396cc","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2428.6458168029785,"y":695.8138465881348,"z":"af884d85.e79ff","wires":[["671fdfa6.ed9b"]]},{"id":"211c740e.cf417c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2430.738800048828,"y":730.9640159606934,"z":"af884d85.e79ff","wires":[[]]},{"id":"25e2d931.1b6566","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2435.6458168029785,"y":1162.4144325256348,"z":"af884d85.e79ff","wires":[["65c7a1dc.26042"]]},{"id":"82bca903.e58df8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2447.738800048828,"y":1252.5645751953125,"z":"af884d85.e79ff","wires":[[]]},{"id":"dc201cfd.44ef1","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2502.645538330078,"y":1664.8648681640625,"z":"af884d85.e79ff","wires":[["41da34b9.6acf9c"]]},{"id":"60365290.cd138c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2509.738800048828,"y":1759.0150146484375,"z":"af884d85.e79ff","wires":[[]]},{"id":"101618fb.c286e7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2620.9515686035156,"y":366.8138122558594,"z":"af884d85.e79ff","wires":[]},{"id":"fc216a73.da41f8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2406.9520568847656,"y":367.6636657714844,"z":"af884d85.e79ff","wires":[["101618fb.c286e7"]]},{"id":"10e97b0.9f4c385","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2603.951446533203,"y":766.9640159606934,"z":"af884d85.e79ff","wires":[]},{"id":"3f850f8f.72c47","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2428.951934814453,"y":766.8138694763184,"z":"af884d85.e79ff","wires":[["10e97b0.9f4c385"]]},{"id":"671fdfa6.ed9b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2596.9518127441406,"y":696.9639892578125,"z":"af884d85.e79ff","wires":[]},{"id":"14c77d95.9716d2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2598.951690673828,"y":1203.4144287109375,"z":"af884d85.e79ff","wires":[]},{"id":"65c7a1dc.26042","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2597.952178955078,"y":1161.4144020080566,"z":"af884d85.e79ff","wires":[]},{"id":"a03e18b9.56ab08","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2436.951690673828,"y":1203.4144287109375,"z":"af884d85.e79ff","wires":[["14c77d95.9716d2"]]},{"id":"43b98d6f.bc4fd4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2666.257598876953,"y":1713.0150146484375,"z":"af884d85.e79ff","wires":[]},{"id":"41da34b9.6acf9c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2660.258087158203,"y":1663.0150146484375,"z":"af884d85.e79ff","wires":[]},{"id":"249dd9a9.94ecc6","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2504.257598876953,"y":1713.0150146484375,"z":"af884d85.e79ff","wires":[["43b98d6f.bc4fd4"]]},{"id":"22f94d7b.eb0dd2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"Level 1 subnet saved to DB.\"/>","comments":"","outputs":1,"x":2012.9219055175781,"y":1249.7147216796875,"z":"af884d85.e79ff","wires":[[]]},{"id":"963762f2.b6052","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field6\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field7\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field8\" value=\"Level 2 subnet saved to DB.\"/>","comments":"","outputs":1,"x":2069.951934814453,"y":1802.3153076171875,"z":"af884d85.e79ff","wires":[[]]},{"id":"d6ec4d5a.4fa56","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field6\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field7\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field8\" value=\"Level 2 subnet saved to DB.\"/>","comments":"","outputs":1,"x":1989.9519348144531,"y":804.4144287109375,"z":"af884d85.e79ff","wires":[[]]},{"id":"6a5af7e2.3dc6d8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"Level 1 subnet saved to DB.\"/>","comments":"","outputs":1,"x":1496.9519348144531,"y":299.9639587402344,"z":"af884d85.e79ff","wires":[[]]},{"id":"b7560d4.843d4f","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2257.1861877441406,"y":261.39998626708984,"z":"af884d85.e79ff","wires":[["e89ff97b.78ef88"]]},{"id":"e89ff97b.78ef88","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM.\" />\n\t","comments":"","x":2462.1861877441406,"y":275.40001678466797,"z":"af884d85.e79ff","wires":[]},{"id":"7f808d14.fa37e4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2271.1861877441406,"y":296.39998626708984,"z":"af884d85.e79ff","wires":[["e89ff97b.78ef88"]]},{"id":"827b1620.4c4d08","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2249.2911376953125,"y":618.595832824707,"z":"af884d85.e79ff","wires":[["ddcc1433.a96368"]]},{"id":"ddcc1433.a96368","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM.\" />\n\t","comments":"","x":2454.2911376953125,"y":632.5958633422852,"z":"af884d85.e79ff","wires":[]},{"id":"cdde130e.69af4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2263.2911376953125,"y":653.595832824707,"z":"af884d85.e79ff","wires":[["ddcc1433.a96368"]]},{"id":"3e64d396.04c79c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2274.5860900878906,"y":1103.4000244140625,"z":"af884d85.e79ff","wires":[["5f7c6c18.d238a4"]]},{"id":"5f7c6c18.d238a4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM.\" />\n\t","comments":"","x":2479.5860900878906,"y":1117.4000549316406,"z":"af884d85.e79ff","wires":[]},{"id":"96a0c906.f7cd38","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2288.5860900878906,"y":1138.4000244140625,"z":"af884d85.e79ff","wires":[["5f7c6c18.d238a4"]]},{"id":"c412ff05.61872","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2330.5860900878906,"y":1581.4000244140625,"z":"af884d85.e79ff","wires":[["8cc59441.64b398"]]},{"id":"8cc59441.64b398","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM.\" />\n\t","comments":"","x":2535.585968017578,"y":1595.4000244140625,"z":"af884d85.e79ff","wires":[]},{"id":"8db85c57.32fac","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2344.5860900878906,"y":1616.4000244140625,"z":"af884d85.e79ff","wires":[["8cc59441.64b398"]]},{"id":"4a8b2577.7984dc","type":"switchNode","name":"switch: network-model.eipam-v4-address-plan","xml":"<switch test=\"`$network-model.eipam-v4-address-plan`\">","comments":"","outputs":1,"x":1042.5454330444336,"y":169.84091186523438,"z":"af884d85.e79ff","wires":[["2f687662.53b65a"]]},{"id":"2f687662.53b65a","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V4\">","comments":"","outputs":1,"x":1381.5454177856445,"y":163.84090614318848,"z":"af884d85.e79ff","wires":[["10891762.65bb69"]]},{"id":"10891762.65bb69","type":"set","name":"set key-names","xml":"<set>\n\t<parameter name=\"tmp.level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1687.636215209961,"y":158.7499942779541,"z":"af884d85.e79ff","wires":[]},{"id":"36d2f99d.8a0186","type":"switchNode","name":"switch: network-model.eipam-v6-address-plan","xml":"<switch test=\"`$network-model.eipam-v6-address-plan`\">","comments":"","outputs":1,"x":1033.2366485595703,"y":928.3332672119141,"z":"af884d85.e79ff","wires":[["479f2e45.8de72","83a60962.897ed8","4b7654f6.8b1abc","be62e3d3.32c4"]]},{"id":"479f2e45.8de72","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V6\">","comments":"","outputs":1,"x":1372.2366333007812,"y":922.3332614898682,"z":"af884d85.e79ff","wires":[["13598bf8.358084"]]},{"id":"13598bf8.358084","type":"set","name":"set key-names","xml":"<set>\n\t<parameter name=\"tmp.level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1678.3274307250977,"y":917.2423496246338,"z":"af884d85.e79ff","wires":[]},{"id":"be62e3d3.32c4","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1396.2366485595703,"y":808.333309173584,"z":"af884d85.e79ff","wires":[["13598bf8.358084"]]},{"id":"83a60962.897ed8","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":1382.9033432006836,"y":884.3333358764648,"z":"af884d85.e79ff","wires":[["13598bf8.358084"]]},{"id":"4b7654f6.8b1abc","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":1371.2367095947266,"y":848.333288192749,"z":"af884d85.e79ff","wires":[["13598bf8.358084"]]},{"id":"2244b12.dafd04e","type":"switchNode","name":"switch: eipam-ip-block.subnet-size-override","xml":"<switch test=\"`$eipam-ip-block.subnet-size-override`\">","comments":"","outputs":1,"x":2093.428695678711,"y":541.428544998169,"z":"af884d85.e79ff","wires":[["b8333eb5.e8961"]]},{"id":"239857e5.61ee78","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$network-model.ipv4-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2826.2856979370117,"y":570.0001010894775,"z":"af884d85.e79ff","wires":[]},{"id":"b8333eb5.e8961","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2364.8575019836426,"y":540.0000820159912,"z":"af884d85.e79ff","wires":[["433e270d.669408"]]},{"id":"85152c24.0dd9e","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet override not set, default to network model value.\"/>\n\n","comments":"","outputs":1,"x":2756.28564453125,"y":538.4285888671875,"z":"af884d85.e79ff","wires":[[]]},{"id":"433e270d.669408","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2572.6640625,"y":538.4286499023438,"z":"af884d85.e79ff","wires":[["85152c24.0dd9e","239857e5.61ee78"]]},{"id":"4f4eeaa0.dc8a84","type":"switchNode","name":"switch: eipam-ip-block.subnet-size-override","xml":"<switch test=\"`$eipam-ip-block.subnet-size-override`\">","comments":"","outputs":1,"x":2147.428466796875,"y":1497.142822265625,"z":"af884d85.e79ff","wires":[["c3f5f010.6248"]]},{"id":"c3f5f010.6248","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2418.8572731018066,"y":1495.7143592834473,"z":"af884d85.e79ff","wires":[["56df1329.aeed6c"]]},{"id":"56df1329.aeed6c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2626.663833618164,"y":1494.1429271697998,"z":"af884d85.e79ff","wires":[["b9263db2.c71ae","414d97ea.0ebc88"]]},{"id":"414d97ea.0ebc88","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$network-model.ipv6-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2878.0695419311523,"y":1523.9004917144775,"z":"af884d85.e79ff","wires":[]},{"id":"b9263db2.c71ae","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet override not set, default to network model value.\"/>\n\n","comments":"","outputs":1,"x":2808.0694885253906,"y":1492.3289794921875,"z":"af884d85.e79ff","wires":[[]]}]
+[{"id":"1f770d1b.dc38c3","type":"dgstart","name":"DGSTART","outputs":1,"x":95,"y":76.81381225585938,"z":"760a1398.0b459c","wires":[["4fe79f76.5849e"]]},{"id":"371652dd.4cae3e","type":"method","name":"eipam-allocate-network-role-subnet","xml":"<method rpc='eipam-allocate-network-role-subnet' mode='sync'>\n","comments":"","outputs":1,"x":648.8667907714844,"y":79.68048095703125,"z":"760a1398.0b459c","wires":[["9ffb5e9d.17238"]]},{"id":"4fe79f76.5849e","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":323.95001220703125,"y":80.13049697875977,"z":"760a1398.0b459c","wires":[["371652dd.4cae3e"]]},{"id":"a4900b2a.5dcad8","type":"comment","name":"ChangeLog","info":"1.0.0: Release 1702 - EIPAM only allows allocating one address plan request at a time\n1.0.1: Release 1702 - introduced new input, eipam-ip-block.allocate-version to call EIPAM allocateSubnet individually\n                    - change toplevel block to Atomic, so if subet already exists, then it returns as failure\n                    - Update error msg\n1.0.2: Release 1702 - Remove check for existing subnet so can be called to create multiple subnet with same CLII_ZONE & NETWORK_ROLE, as \n\t\t\t\t\t\tin the autogrowth scenario\n1.0.3: Release 1702 - Req update to change level 1 & 2 key-name & key-values\n\t\t\t\t\t- update status to ACTIVE for level subnet\n\t\t\t\t\t- update service-type from $network-topology-operation-input.service-information.subscription-service-type to $tmp.service-type\n\t\t\t\t\t(cannot use the input field as not always populated in NTO-assign)\n\t\t\t\t\t- check for error when querying for entry in EIPAM_IP_POOLS before inserting to EIPAM_IP_SUBNETS\n1.0.4: Release 1707 - Add eipam-ip-block.subnet-size-override for level 2\n\n5/10 - 1707 - updated pool key-names for AIC_AIM_LANDING_NETWORK_V4\n6/20 - 1710 - change any underscores _  to colon : for all level 1 and level 2 Pool KeyNames\n6/21 - 1710 - Task 403314 - QIP Parent pool consolidation\n\t\t\t- New V6 plans - \n\t\t\t\tAIC_ATM_UNPROTECTED_V6\n\t\t\t\tAIC_ATM_PROTECTED_V6\n\t\t\t\tAIC_AIM_LANDING_V6\n3/8/18 - 1806 - 506678 -Level 1 keyName CLLI:CLOUD_REGION changed to LOCATION_CLLI8:CLOUD_REGION_ID\n","comments":"","x":150.68618774414062,"y":112,"z":"760a1398.0b459c","wires":[]},{"id":"9ffb5e9d.17238","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":117.68618774414062,"y":209.87387084960938,"z":"760a1398.0b459c","wires":[["d16b37cf.489f58","83ecc269.b0307","161f8d7c.8e3a03"]]},{"id":"d16b37cf.489f58","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"eipam-ip-block.ip-prefix\" value='' />\n\t<parameter name=\"eipam-ip-block.mask\" value='' />\n\t<parameter name=\"pfx.eipam-pool-row\" value='' />\n\t<parameter name=\"tmp.level1-key-name\" value=\"LOCATION_CLLI8:CLOUD_REGION_ID\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />","comments":"","x":332.1201171875,"y":208.81381225585938,"z":"760a1398.0b459c","wires":[]},{"id":"80fa339c.99e08","type":"set","name":"set EIPAM plan info for Level 2 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"Y\"/>\n\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"2\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.pools[1].key-name\" value=\"`$tmp.level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2098.9706802368164,"y":505.6710214614868,"z":"760a1398.0b459c","wires":[]},{"id":"83ecc269.b0307","type":"switchNode","name":"switch: eipam-ip-block.allocate-version","xml":"<switch test=\"`$eipam-ip-block.allocate-version`\">","comments":"Need to know which ipv version to get the plan name from the network-model.","outputs":1,"x":337,"y":551.8138084411621,"z":"760a1398.0b459c","wires":[["b722808e.ca0b5","e6300956.825bd8","6137dc86.9b29e4"]]},{"id":"b722808e.ca0b5","type":"other","name":"ipv4","xml":"<outcome value='ipv4'>","comments":"","outputs":1,"x":577.000114440918,"y":411.8138122558594,"z":"760a1398.0b459c","wires":[["916a463e.4fa4a8"]]},{"id":"916a463e.4fa4a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":731.000057220459,"y":410.81381607055664,"z":"760a1398.0b459c","wires":[["60c65685.a18c18"]]},{"id":"e6300956.825bd8","type":"other","name":"Null","xml":"<outcome value=''>","comments":"","outputs":1,"x":519.0000610351562,"y":1213.0541076660156,"z":"760a1398.0b459c","wires":[["501b79a.71a9088"]]},{"id":"4102ac63.9c8424","type":"set","name":"set EIPAM plan info for Level 1 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"Y\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"N\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2104.736862182617,"y":1018.8138976097107,"z":"760a1398.0b459c","wires":[]},{"id":"66fa4ddd.45c444","type":"set","name":"set EIPAM plan info for Level 2 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"Y\"/>\n\t\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"2\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.pools[1].key-name\" value=\"`$tmp.level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2155.564437866211,"y":1464.0996627807617,"z":"760a1398.0b459c","wires":[]},{"id":"b74d2d62.394db","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":733.8799324035645,"y":1097.8138160705566,"z":"760a1398.0b459c","wires":[["532f3ab4.c4c164"]]},{"id":"fcde54df.af4438","type":"get-resource","name":"get-resource V4 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.network_id = $tmp.network-id and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $network-model.network-role ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":2223.999969482422,"y":469.0000305175781,"z":"760a1398.0b459c","wires":[["4830173a.71fe08","80511b7b.e4aab8","a8e746dd.af1b88"]]},{"id":"27347235.930fee","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2644.9998626708984,"y":422.0000305175781,"z":"760a1398.0b459c","wires":[]},{"id":"4830173a.71fe08","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2496.999954223633,"y":460.0000305175781,"z":"760a1398.0b459c","wires":[["f92c4af8.d67a58"]]},{"id":"60c65685.a18c18","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":954.0810928344727,"y":410.99999618530273,"z":"760a1398.0b459c","wires":[["16307416.fc962c","28a54d14.e1ee52","53b183dc.53d50c"]]},{"id":"16307416.fc962c","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1101.0812072753906,"y":523,"z":"760a1398.0b459c","wires":[["cbaffe8a.989f7"]]},{"id":"28a54d14.e1ee52","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1077.0812072753906,"y":653.0000305175781,"z":"760a1398.0b459c","wires":[["64d28328.b405ac"]]},{"id":"64d28328.b405ac","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1237.0811767578125,"y":653.0000610351562,"z":"760a1398.0b459c","wires":[]},{"id":"80511b7b.e4aab8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2495.8617401123047,"y":424.0000305175781,"z":"760a1398.0b459c","wires":[["27347235.930fee"]]},{"id":"a8e746dd.af1b88","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2499.861770629883,"y":496.0000305175781,"z":"760a1398.0b459c","wires":[[]]},{"id":"2f5a2150.3d3a2e","type":"get-resource","name":"get-resource V4 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":2017.4113311767578,"y":67.99999237060547,"z":"760a1398.0b459c","wires":[["fb8aca5.9b7ac38","dec2b328.82d96","8020e208.b0ffd"]]},{"id":"a9dc4db4.779bd","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2438.4113159179688,"y":20,"z":"760a1398.0b459c","wires":[]},{"id":"fb8aca5.9b7ac38","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2290.411407470703,"y":58,"z":"760a1398.0b459c","wires":[["64b05dad.2cad44"]]},{"id":"53b183dc.53d50c","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1094.4925231933594,"y":216,"z":"760a1398.0b459c","wires":[["bcf2b6d6.6d0b38"]]},{"id":"dec2b328.82d96","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2289.273193359375,"y":22,"z":"760a1398.0b459c","wires":[["a9dc4db4.779bd"]]},{"id":"8020e208.b0ffd","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2293.273223876953,"y":94,"z":"760a1398.0b459c","wires":[[]]},{"id":"edf0f161.9ce66","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"201\" />\n","comments":"","x":2644.1500549316406,"y":88,"z":"760a1398.0b459c","wires":[]},{"id":"3c25c29c.06ed2e","type":"get-resource","name":"get-resource V6 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.network_id = $tmp.network-id and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $network-model.network-role ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1375.636459350586,"y":1386.1141357421875,"z":"760a1398.0b459c","wires":[["8f6400a2.8a791","3fb1139f.29660c","1fae9c1f.e65ea4"]]},{"id":"9d4fc360.e622c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1796.636245727539,"y":1337.1141357421875,"z":"760a1398.0b459c","wires":[]},{"id":"8f6400a2.8a791","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1648.6364440917969,"y":1375.1141357421875,"z":"760a1398.0b459c","wires":[["23a2d3f.911312c"]]},{"id":"532f3ab4.c4c164","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":940.7175750732422,"y":1094.2569961547852,"z":"760a1398.0b459c","wires":[["e530ea7.cfbe818","77735382.0d846c","c7dea1ce.8f647"]]},{"id":"e530ea7.cfbe818","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1105.7174987792969,"y":1460.1141357421875,"z":"760a1398.0b459c","wires":[["8f612ba5.2244a8"]]},{"id":"77735382.0d846c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1102.7174987792969,"y":1505.1141357421875,"z":"760a1398.0b459c","wires":[["e6dd0cef.4bdc"]]},{"id":"e6dd0cef.4bdc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1262.7173767089844,"y":1505.1141357421875,"z":"760a1398.0b459c","wires":[]},{"id":"3fb1139f.29660c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1647.4982299804688,"y":1339.1141357421875,"z":"760a1398.0b459c","wires":[["9d4fc360.e622c"]]},{"id":"1fae9c1f.e65ea4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1651.4982604980469,"y":1411.1141357421875,"z":"760a1398.0b459c","wires":[[]]},{"id":"c2c1d17f.8dbac","type":"get-resource","name":"get-resource V6 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1957.0480270385742,"y":843.1141834259033,"z":"760a1398.0b459c","wires":[["6f57f784.e5c6e8","ceb7fd70.ab91a","a2b917cc.476cc8"]]},{"id":"f97e66aa.720a58","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":2378.0480308532715,"y":794.1142139434814,"z":"760a1398.0b459c","wires":[]},{"id":"6f57f784.e5c6e8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2230.048122406006,"y":832.1142139434814,"z":"760a1398.0b459c","wires":[["8133637b.48a57"]]},{"id":"c7dea1ce.8f647","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1104.1290168762207,"y":988.1141662597656,"z":"760a1398.0b459c","wires":[["c531ead0.40b148"]]},{"id":"ceb7fd70.ab91a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2228.9099082946777,"y":796.1142139434814,"z":"760a1398.0b459c","wires":[["f97e66aa.720a58"]]},{"id":"a2b917cc.476cc8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2232.909938812256,"y":868.1142139434814,"z":"760a1398.0b459c","wires":[[]]},{"id":"9ad7bb73.7983e8","type":"set","name":"set EIPAM plan info for Level 1 pool for allocateSubnet","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.activate-subnet-flag\" value=\"Y\"/>\t\n\t<parameter name=\"eipam-ip-block.leaf-level-indicator\" value=\"N\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.pools[0].key-name\" value=\"`$tmp.level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2091.534698486328,"y":180.81381225585938,"z":"760a1398.0b459c","wires":[]},{"id":"eaace9a5.c1ece8","type":"save","name":"insert EIPAM_IP_SUBNETS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-row'>\n","comments":"","outputs":1,"x":2061.540802001953,"y":325.96417236328125,"z":"760a1398.0b459c","wires":[["925aeb70.b22f68","dc8d75b0.09c688"]]},{"id":"bcf2b6d6.6d0b38","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1299.4894104003906,"y":213.96395874023438,"z":"760a1398.0b459c","wires":[["9ad7bb73.7983e8","bc706818.a810c8","eaace9a5.c1ece8","e63ec037.80fba","d6be9577.8252d8","feae1b24.761d88"]]},{"id":"bc706818.a810c8","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2022.0812072753906,"y":225.81381225585938,"z":"760a1398.0b459c","wires":[["d7ad882b.fcda68"]]},{"id":"d7ad882b.fcda68","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2232.0812377929688,"y":227.2041778564453,"z":"760a1398.0b459c","wires":[["fa28aaa2.b5a438"]]},{"id":"fa28aaa2.b5a438","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2396.081268310547,"y":230.20420837402344,"z":"760a1398.0b459c","wires":[]},{"id":"cbaffe8a.989f7","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1281.5705871582031,"y":524.8138122558594,"z":"760a1398.0b459c","wires":[["80fa339c.99e08","573b6d96.29c894","c01b033c.34cdf","8e8d9559.92e268","5198aecb.d2a32","f0aa1ff6.5d249","106f1e90.287d31","f63c99d8.3b6cb8","d21cbd92.6a426"]]},{"id":"573b6d96.29c894","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2026.6126403808594,"y":571.8138122558594,"z":"760a1398.0b459c","wires":[["6599c8ae.5ffcd8"]]},{"id":"6599c8ae.5ffcd8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2236.6126708984375,"y":573.2041778564453,"z":"760a1398.0b459c","wires":[["3d657ed.846f382"]]},{"id":"3d657ed.846f382","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2400.6127014160156,"y":576.2042083740234,"z":"760a1398.0b459c","wires":[]},{"id":"c01b033c.34cdf","type":"save","name":"insert EIPAM_IP_SUBNETS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":2061.612518310547,"y":679.8138732910156,"z":"760a1398.0b459c","wires":[["575acf6f.3712c","2cab8ca3.72baa4"]]},{"id":"8e8d9559.92e268","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2076.612335205078,"y":721.8138160705566,"z":"760a1398.0b459c","wires":[["2cab8ca3.72baa4","c5bcb39.d3b4b5"]]},{"id":"5198aecb.d2a32","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2075.6124572753906,"y":767.8138465881348,"z":"760a1398.0b459c","wires":[["2cab8ca3.72baa4","c5bcb39.d3b4b5"]]},{"id":"e63ec037.80fba","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":2079.816864013672,"y":362.9639587402344,"z":"760a1398.0b459c","wires":[["dc8d75b0.09c688","fd392a07.eb9c58"]]},{"id":"d6be9577.8252d8","type":"get-resource","name":"get-resource V4 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2021.1892395019531,"y":274.81380462646484,"z":"760a1398.0b459c","wires":[["38251174.1c869e","4e8d064f.fd5d48"]]},{"id":"f0aa1ff6.5d249","type":"get-resource","name":"get-resource V4 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2018.1889953613281,"y":623.8138732910156,"z":"760a1398.0b459c","wires":[["5fa054bd.16e17c","2207199e.08aea6"]]},{"id":"96160911.77add8","type":"save","name":"insert EIPAM_IP_SUBNETS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ACTIVE' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2074.3451232910156,"y":1168.4146118164062,"z":"760a1398.0b459c","wires":[["33c44b3e.966ef4","a40e05cb.6396d8"]]},{"id":"727b36ab.492098","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2034.8855895996094,"y":1070.2642517089844,"z":"760a1398.0b459c","wires":[["e68681fb.1b313"]]},{"id":"e68681fb.1b313","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2244.8856201171875,"y":1071.6546173095703,"z":"760a1398.0b459c","wires":[["a1bad217.c4e66"]]},{"id":"a1bad217.c4e66","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2408.8856506347656,"y":1074.6546478271484,"z":"760a1398.0b459c","wires":[]},{"id":"411b72f1.d14bac","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2092.6212463378906,"y":1207.4143981933594,"z":"760a1398.0b459c","wires":[["3fa0173.be07be8","a40e05cb.6396d8"]]},{"id":"6506c176.93235","type":"get-resource","name":"get-resource V6 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2033.9935607910156,"y":1116.2642822265625,"z":"760a1398.0b459c","wires":[["6e0864fa.a05b5c","81c3a0cf.8f46b"]]},{"id":"7be2c1b5.c1c77","type":"execute","name":"execute EIPAM allocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"allocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":2089.2672424316406,"y":1542.7146453857422,"z":"760a1398.0b459c","wires":[["e3471665.468d88"]]},{"id":"e3471665.468d88","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2299.2672729492188,"y":1544.1050109863281,"z":"760a1398.0b459c","wires":[["94516d8.b36509"]]},{"id":"94516d8.b36509","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating V4 subnet in EIPAM.\" />\n\t","comments":"","x":2463.2672424316406,"y":1547.10498046875,"z":"760a1398.0b459c","wires":[]},{"id":"e84f11af.afca5","type":"save","name":"insert EIPAM_IP_SUBNETS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $pfx.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-row'>\n","comments":"","outputs":1,"x":2121.267120361328,"y":1650.7147216796875,"z":"760a1398.0b459c","wires":[["7ca10271.cf98dc","da5c64a7.63de18"]]},{"id":"c715c9e8.59d0d8","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2139.2669372558594,"y":1692.7146492004395,"z":"760a1398.0b459c","wires":[["da5c64a7.63de18","91780b62.d91198"]]},{"id":"f9f33233.1ebf2","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-v6subnet-key-row'>\n","comments":"","outputs":1,"x":2138.267059326172,"y":1738.7146797180176,"z":"760a1398.0b459c","wires":[["da5c64a7.63de18","91780b62.d91198"]]},{"id":"e1eb7292.1ec3b","type":"get-resource","name":"get-resource V6 - get pool_id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; \"\n        pfx='pfx.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2085.8436584472656,"y":1596.7147216796875,"z":"760a1398.0b459c","wires":[["a3433e81.f0097","15a4041c.4a70fc"]]},{"id":"c531ead0.40b148","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1272.9460144042969,"y":985.2643127441406,"z":"760a1398.0b459c","wires":[["4102ac63.9c8424","727b36ab.492098","6506c176.93235","96160911.77add8","411b72f1.d14bac","8955333.6563dd"]]},{"id":"8f612ba5.2244a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1262.6607360839844,"y":1458.7147216796875,"z":"760a1398.0b459c","wires":[["66fa4ddd.45c444","7be2c1b5.c1c77","e1eb7292.1ec3b","e84f11af.afca5","c715c9e8.59d0d8","f9f33233.1ebf2","61ea6fc5.05eee","483c255.04784dc"]]},{"id":"6137dc86.9b29e4","type":"other","name":"ipv6","xml":"<outcome value='ipv6'>","comments":"","outputs":1,"x":549.7717437744141,"y":1095.9640197753906,"z":"760a1398.0b459c","wires":[["b74d2d62.394db"]]},{"id":"161f8d7c.8e3a03","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":267,"y":684.1141662597656,"z":"760a1398.0b459c","wires":[]},{"id":"9bd357cd.62d6b8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V4 Level 2 Subnet already exists.\" />\n\t","comments":"","x":2865.2161560058594,"y":511.8138427734375,"z":"760a1398.0b459c","wires":[]},{"id":"fe30cef2.bc586","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V6 Level 1 Subnet already exists.\" />\n\t","comments":"","x":2239.216094970703,"y":966.2643127441406,"z":"760a1398.0b459c","wires":[]},{"id":"547e3e18.82a3d","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"V6 Level 2 Subnet already exists.\" />\n\t","comments":"","x":2019.2162780761719,"y":1413.7147216796875,"z":"760a1398.0b459c","wires":[]},{"id":"501b79a.71a9088","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.allocate-version for appropriate EIPAM request.\" />\n\t","comments":"","x":686.1141052246094,"y":1213.5645751953125,"z":"760a1398.0b459c","wires":[]},{"id":"a0b5b6d4.69bf88","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"201\" />\n","comments":"","x":2581.159355163574,"y":864.4145069122314,"z":"760a1398.0b459c","wires":[]},{"id":"703386c3.364c18","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 subnet already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2619.9159240722656,"y":48.813812255859375,"z":"760a1398.0b459c","wires":[[]]},{"id":"ebaf4e36.bd4bf","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 subnet already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2560.366630554199,"y":833.2642993927002,"z":"760a1398.0b459c","wires":[[]]},{"id":"64b05dad.2cad44","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2441.3663482666016,"y":53.813812255859375,"z":"760a1398.0b459c","wires":[["703386c3.364c18","edf0f161.9ce66"]]},{"id":"f92c4af8.d67a58","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2648.3662719726562,"y":457.96398544311523,"z":"760a1398.0b459c","wires":[["e1ad168c.14d068","9bd357cd.62d6b8"]]},{"id":"a30c2417.c0dfe8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":2487.366241455078,"y":487.8138084411621,"z":"760a1398.0b459c","wires":[[]]},{"id":"e1ad168c.14d068","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet already exists, SKIP.\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field7\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n","comments":"","outputs":1,"x":2844.3663024902344,"y":478.8138427734375,"z":"760a1398.0b459c","wires":[[]]},{"id":"8133637b.48a57","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2376.745048522949,"y":834.2643604278564,"z":"760a1398.0b459c","wires":[["ebaf4e36.bd4bf","a0b5b6d4.69bf88"]]},{"id":"23a2d3f.911312c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1803.744888305664,"y":1372.7147216796875,"z":"760a1398.0b459c","wires":[["46d3087c.7d3818","547e3e18.82a3d"]]},{"id":"46d3087c.7d3818","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet already exists, SKIP.\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field7\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n","comments":"","outputs":1,"x":2005.7447814941406,"y":1374.8648681640625,"z":"760a1398.0b459c","wires":[[]]},{"id":"7e6a6282.f8c56c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2587.8376426696777,"y":321.96395111083984,"z":"760a1398.0b459c","wires":[]},{"id":"925aeb70.b22f68","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2372.8377990722656,"y":320.8138084411621,"z":"760a1398.0b459c","wires":[["7e6a6282.f8c56c"]]},{"id":"dc8d75b0.09c688","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2368.9305725097656,"y":416.96395111083984,"z":"760a1398.0b459c","wires":[[]]},{"id":"575acf6f.3712c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2395.6458168029785,"y":695.8138465881348,"z":"760a1398.0b459c","wires":[["681c821a.b300ac"]]},{"id":"2cab8ca3.72baa4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2397.738800048828,"y":730.9640159606934,"z":"760a1398.0b459c","wires":[[]]},{"id":"33c44b3e.966ef4","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2402.6458168029785,"y":1162.4144325256348,"z":"760a1398.0b459c","wires":[["a8bdda72.805118"]]},{"id":"a40e05cb.6396d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2414.738800048828,"y":1252.5645751953125,"z":"760a1398.0b459c","wires":[[]]},{"id":"7ca10271.cf98dc","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2469.645538330078,"y":1664.8648681640625,"z":"760a1398.0b459c","wires":[["235ca03c.04ad8"]]},{"id":"da5c64a7.63de18","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2476.738800048828,"y":1759.0150146484375,"z":"760a1398.0b459c","wires":[[]]},{"id":"d669beda.87f5c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2587.9515686035156,"y":366.8138122558594,"z":"760a1398.0b459c","wires":[]},{"id":"fd392a07.eb9c58","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2373.9520568847656,"y":367.6636657714844,"z":"760a1398.0b459c","wires":[["d669beda.87f5c"]]},{"id":"2b912804.7b9c68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2570.951446533203,"y":766.9640159606934,"z":"760a1398.0b459c","wires":[]},{"id":"c5bcb39.d3b4b5","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2395.951934814453,"y":766.8138694763184,"z":"760a1398.0b459c","wires":[["2b912804.7b9c68"]]},{"id":"681c821a.b300ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2563.9518127441406,"y":696.9639892578125,"z":"760a1398.0b459c","wires":[]},{"id":"56dea9f1.3ef0a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2565.951690673828,"y":1203.4144287109375,"z":"760a1398.0b459c","wires":[]},{"id":"a8bdda72.805118","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2564.952178955078,"y":1161.4144020080566,"z":"760a1398.0b459c","wires":[]},{"id":"3fa0173.be07be8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2403.951690673828,"y":1203.4144287109375,"z":"760a1398.0b459c","wires":[["56dea9f1.3ef0a8"]]},{"id":"489d7861.d07ae8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\n","comments":"","x":2633.257598876953,"y":1713.0150146484375,"z":"760a1398.0b459c","wires":[]},{"id":"235ca03c.04ad8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\n","comments":"","x":2627.258087158203,"y":1663.0150146484375,"z":"760a1398.0b459c","wires":[]},{"id":"91780b62.d91198","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2471.257598876953,"y":1713.0150146484375,"z":"760a1398.0b459c","wires":[["489d7861.d07ae8"]]},{"id":"8955333.6563dd","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"Level 1 subnet saved to DB.\"/>","comments":"","outputs":1,"x":1979.9219055175781,"y":1249.7147216796875,"z":"760a1398.0b459c","wires":[[]]},{"id":"61ea6fc5.05eee","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field6\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field7\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field8\" value=\"Level 2 subnet saved to DB.\"/>","comments":"","outputs":1,"x":2036.9519348144531,"y":1802.3153076171875,"z":"760a1398.0b459c","wires":[[]]},{"id":"106f1e90.287d31","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n\n<!-- Level 2 -->\n\t<parameter name=\"field6\" value=\"NETWORK_ROLE_NETWORK_ID\"/>\n\t<parameter name=\"field7\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field8\" value=\"Level 2 subnet saved to DB.\"/>","comments":"","outputs":1,"x":1956.9519348144531,"y":804.4144287109375,"z":"760a1398.0b459c","wires":[[]]},{"id":"feae1b24.761d88","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field7\" value=\"Level 1 subnet saved to DB.\"/>","comments":"","outputs":1,"x":1463.9519348144531,"y":299.9639587402344,"z":"760a1398.0b459c","wires":[[]]},{"id":"38251174.1c869e","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2224.1861877441406,"y":261.39998626708984,"z":"760a1398.0b459c","wires":[["4b3725b3.fcda9c"]]},{"id":"4b3725b3.fcda9c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM.\" />\n\t","comments":"","x":2429.1861877441406,"y":275.40001678466797,"z":"760a1398.0b459c","wires":[]},{"id":"4e8d064f.fd5d48","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2238.1861877441406,"y":296.39998626708984,"z":"760a1398.0b459c","wires":[["4b3725b3.fcda9c"]]},{"id":"5fa054bd.16e17c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2216.2911376953125,"y":618.595832824707,"z":"760a1398.0b459c","wires":[["2ed2ba3f.1c7966"]]},{"id":"2ed2ba3f.1c7966","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM.\" />\n\t","comments":"","x":2421.2911376953125,"y":632.5958633422852,"z":"760a1398.0b459c","wires":[]},{"id":"2207199e.08aea6","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2230.2911376953125,"y":653.595832824707,"z":"760a1398.0b459c","wires":[["2ed2ba3f.1c7966"]]},{"id":"6e0864fa.a05b5c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2241.5860900878906,"y":1103.4000244140625,"z":"760a1398.0b459c","wires":[["998553a0.5a009"]]},{"id":"998553a0.5a009","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM.\" />\n\t","comments":"","x":2446.5860900878906,"y":1117.4000549316406,"z":"760a1398.0b459c","wires":[]},{"id":"81c3a0cf.8f46b","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2255.5860900878906,"y":1138.4000244140625,"z":"760a1398.0b459c","wires":[["998553a0.5a009"]]},{"id":"a3433e81.f0097","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2297.5860900878906,"y":1581.4000244140625,"z":"760a1398.0b459c","wires":[["adf0891f.d1fa18"]]},{"id":"adf0891f.d1fa18","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM.\" />\n\t","comments":"","x":2502.585968017578,"y":1595.4000244140625,"z":"760a1398.0b459c","wires":[]},{"id":"15a4041c.4a70fc","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2311.5860900878906,"y":1616.4000244140625,"z":"760a1398.0b459c","wires":[["adf0891f.d1fa18"]]},{"id":"2b47b090.d7ef9","type":"switchNode","name":"switch: network-model.eipam-v4-address-plan","xml":"<switch test=\"`$network-model.eipam-v4-address-plan`\">","comments":"","outputs":1,"x":1009.5454330444336,"y":169.84091186523438,"z":"760a1398.0b459c","wires":[["67f46aa1.6bc964"]]},{"id":"67f46aa1.6bc964","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V4\">","comments":"","outputs":1,"x":1348.5454177856445,"y":163.84090614318848,"z":"760a1398.0b459c","wires":[["9f05ca3.3178d38"]]},{"id":"9f05ca3.3178d38","type":"set","name":"set key-names","xml":"<set>\n\t<parameter name=\"tmp.level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1654.636215209961,"y":158.7499942779541,"z":"760a1398.0b459c","wires":[]},{"id":"2b7ed529.3d43ba","type":"switchNode","name":"switch: network-model.eipam-v6-address-plan","xml":"<switch test=\"`$network-model.eipam-v6-address-plan`\">","comments":"","outputs":1,"x":1000.2366485595703,"y":928.3332672119141,"z":"760a1398.0b459c","wires":[["16cfe3e2.cecd8c","3a6dfd.d01f8204","dee875e0.658cb8","2b8d9210.774eee"]]},{"id":"16cfe3e2.cecd8c","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V6\">","comments":"","outputs":1,"x":1339.2366333007812,"y":922.3332614898682,"z":"760a1398.0b459c","wires":[["30735986.fcf186"]]},{"id":"30735986.fcf186","type":"set","name":"set key-names","xml":"<set>\n\t<parameter name=\"tmp.level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1645.3274307250977,"y":917.2423496246338,"z":"760a1398.0b459c","wires":[]},{"id":"2b8d9210.774eee","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1363.2366485595703,"y":808.333309173584,"z":"760a1398.0b459c","wires":[["30735986.fcf186"]]},{"id":"3a6dfd.d01f8204","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":1349.9033432006836,"y":884.3333358764648,"z":"760a1398.0b459c","wires":[["30735986.fcf186"]]},{"id":"dee875e0.658cb8","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":1338.2367095947266,"y":848.333288192749,"z":"760a1398.0b459c","wires":[["30735986.fcf186"]]},{"id":"f63c99d8.3b6cb8","type":"switchNode","name":"switch: eipam-ip-block.subnet-size-override","xml":"<switch test=\"`$eipam-ip-block.subnet-size-override`\">","comments":"","outputs":1,"x":2060.428695678711,"y":541.428544998169,"z":"760a1398.0b459c","wires":[["a441450b.f19e08"]]},{"id":"17506802.cbb568","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$network-model.ipv4-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2793.2856979370117,"y":570.0001010894775,"z":"760a1398.0b459c","wires":[]},{"id":"a441450b.f19e08","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2331.8575019836426,"y":540.0000820159912,"z":"760a1398.0b459c","wires":[["801f369b.171c48"]]},{"id":"517daf80.d2a12","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet override not set, default to network model value.\"/>\n\n","comments":"","outputs":1,"x":2723.28564453125,"y":538.4285888671875,"z":"760a1398.0b459c","wires":[[]]},{"id":"801f369b.171c48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2539.6640625,"y":538.4286499023438,"z":"760a1398.0b459c","wires":[["517daf80.d2a12","17506802.cbb568"]]},{"id":"483c255.04784dc","type":"switchNode","name":"switch: eipam-ip-block.subnet-size-override","xml":"<switch test=\"`$eipam-ip-block.subnet-size-override`\">","comments":"","outputs":1,"x":2114.428466796875,"y":1497.142822265625,"z":"760a1398.0b459c","wires":[["f307ed5.20b8b1"]]},{"id":"f307ed5.20b8b1","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2385.8572731018066,"y":1495.7143592834473,"z":"760a1398.0b459c","wires":[["43b37e56.eccae"]]},{"id":"43b37e56.eccae","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2593.663833618164,"y":1494.1429271697998,"z":"760a1398.0b459c","wires":[["40d15cb5.994364","28a43c12.6d6e74"]]},{"id":"28a43c12.6d6e74","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$network-model.ipv6-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2845.0695419311523,"y":1523.9004917144775,"z":"760a1398.0b459c","wires":[]},{"id":"40d15cb5.994364","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 subnet override not set, default to network model value.\"/>\n\n","comments":"","outputs":1,"x":2775.0694885253906,"y":1492.3289794921875,"z":"760a1398.0b459c","wires":[[]]},{"id":"d21cbd92.6a426","type":"set","name":"unset subnet override ","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override\" value='' />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1703.7500228881836,"y":777.5000114440918,"z":"760a1398.0b459c","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-create-generic-pool.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_eipam-create-generic-pool.json
new file mode 100755 (executable)
index 0000000..23975aa
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"e2e3481.5f32db8","type":"dgstart","name":"DGSTART","outputs":1,"x":95.71428680419922,"y":28.571428298950195,"z":"349cd3c6.7ae4ac","wires":[["2b280696.a1533a"]]},{"id":"2b280696.a1533a","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":361.8071594238281,"y":26.173827171325684,"z":"349cd3c6.7ae4ac","wires":[["c5939f21.48bac"]]},{"id":"80ef1851.d2a118","type":"comment","name":"ChangeLog","info":"3/21 - initial version","comments":"","x":84.54327392578125,"y":76.32904410362244,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"c5939f21.48bac","type":"method","name":"eipam-create-generic-pool","xml":"<method rpc='eipam-create-generic-pool' mode='sync'>\n","comments":"","outputs":1,"x":153.26294708251953,"y":117.25627899169922,"z":"349cd3c6.7ae4ac","wires":[["23817fa2.ce037"]]},{"id":"b036d114.4c11","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-generic-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value`\"/>\n\n","comments":"","outputs":1,"x":2174.688430786133,"y":741.7044677734375,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"6f8e94f6.a5cbcc","type":"set","name":"set EIPAM pool info at each Level","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name\" value=\"`$v4FQPN-output.pools[$l4-idx].key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value\" value=\"`$v4FQPN-output.pools[$l4-idx].key-value`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2249.500452041626,"y":697.2501811981201,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"629efca9.657ab4","type":"execute","name":"execute EIPAM createPool","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"createPool\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":788.7142181396484,"y":1656.3458805084229,"z":"349cd3c6.7ae4ac","wires":[["45e81867.eab068","3b05b3c5.afdfac"]]},{"id":"23817fa2.ce037","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":105.40047454833984,"y":167.6314868927002,"z":"349cd3c6.7ae4ac","wires":[["b9c0b035.a2a53","7e88c71a.3c9f78","d6eff478.7ae598","e937da96.450648","5fcb4629.8fc1a8","c95edad7.418dc8","9b4b3a87.ce0398","d0744c26.6d381"]]},{"id":"b9c0b035.a2a53","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":370.7142753601074,"y":458.6314868927002,"z":"349cd3c6.7ae4ac","wires":[["f9d87dbe.be8de","d0a1dc79.d23e","f4309371.e6295"]]},{"id":"d0a1dc79.d23e","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":582.7143363952637,"y":471.63151359558105,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"f9d87dbe.be8de","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":581.7143936157227,"y":427.6314868927002,"z":"349cd3c6.7ae4ac","wires":[["26fa525e.93ddde"]]},{"id":"26fa525e.93ddde","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":735.7143363952637,"y":426.63149070739746,"z":"349cd3c6.7ae4ac","wires":[["7ebe02e2.9471bc"]]},{"id":"60344065.a233","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1825.1878242492676,"y":795.4603271484375,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"45e81867.eab068","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":998.7142639160156,"y":1657.7362461090088,"z":"349cd3c6.7ae4ac","wires":[["514e1ae1.e90694"]]},{"id":"514e1ae1.e90694","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while creating pool in EIPAM.\" />\n\t","comments":"","x":1162.7142944335938,"y":1660.736276626587,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"7e88c71a.3c9f78","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"N\" />\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"N\" />\n\t<parameter name='eipam-ip-block.plans_length' value='0' />\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"N\"/>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"N\"/>\n\t<parameter name=\"level\" value=\"`$eipam-ip-block.level - 1`\" />","comments":"","x":362.7434768676758,"y":176.6623296737671,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"d6eff478.7ae598","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":347.39631271362305,"y":1004.3200531005859,"z":"349cd3c6.7ae4ac","wires":[["7deae29a.1a055c","2374789e.b074e8","8b66ef6.ad3381"]]},{"id":"2374789e.b074e8","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":618.3963432312012,"y":1048.320053100586,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"7deae29a.1a055c","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":623.3964500427246,"y":1003.3200531005859,"z":"349cd3c6.7ae4ac","wires":[["b663fc8f.61603"]]},{"id":"b663fc8f.61603","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":779.9678726196289,"y":1001.1771831512451,"z":"349cd3c6.7ae4ac","wires":[["8245ad31.919cc"]]},{"id":"f4309371.e6295","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":583.7143363952637,"y":509.57142448425293,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"8b66ef6.ad3381","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":620.2857475280762,"y":1089.714340209961,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"7ebe02e2.9471bc","type":"get-resource","name":"DB - validate if pool exists for level already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $v4FQPN-output.pools[$level].key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1010.3623199462891,"y":348.10715198516846,"z":"349cd3c6.7ae4ac","wires":[["d99065ab.323ec8","eee028af.a5deb8","1c016b1c.b5d1e5"]]},{"id":"6b13034.09e54fc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1414.5408020019531,"y":342.5714454650879,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"d99065ab.323ec8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1267.790885925293,"y":380.5714454650879,"z":"349cd3c6.7ae4ac","wires":[["2e3df561.44defa"]]},{"id":"c074e0c3.e9003","type":"switchNode","name":"test: eipam-ip-block.level","xml":"<switch test=\"`$l-idx`\">","comments":"","outputs":1,"x":1026.399745941162,"y":443.8215026855469,"z":"349cd3c6.7ae4ac","wires":[["d683f90d.bc3ea8","c3fe815f.6da18","267f5e4a.4aee02"]]},{"id":"d683f90d.bc3ea8","type":"other","name":"level 1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1054.586441040039,"y":513.7500696182251,"z":"349cd3c6.7ae4ac","wires":[["749d6519.db75ac"]]},{"id":"c3fe815f.6da18","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1057.1578521728516,"y":615.6071872711182,"z":"349cd3c6.7ae4ac","wires":[["162c89d9.7a2f86"]]},{"id":"162c89d9.7a2f86","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1184.4077491760254,"y":614.6072125434875,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"e937da96.450648","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":306.71414947509766,"y":2024.4723377227783,"z":"349cd3c6.7ae4ac","wires":[["79314023.487a9","4cb8a60e.a2c188","b4fe1b28.500a58"]]},{"id":"4cb8a60e.a2c188","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":497.7142105102539,"y":2044.9723205566406,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"79314023.487a9","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":495.46424102783203,"y":2004.9724445343018,"z":"349cd3c6.7ae4ac","wires":[["4342f9af.5328e8"]]},{"id":"9cd666e7.72ced8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1054.2856712341309,"y":1894.0438032150269,"z":"349cd3c6.7ae4ac","wires":[["11ba19d5.d9c756","148249f9.846256","67dc159b.560f4c","d77f382b.bfda98","b9aa3822.9ae098"]]},{"id":"b4fe1b28.500a58","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":501.3536148071289,"y":2090.366728782654,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"11ba19d5.d9c756","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1249.9999237060547,"y":1915.4725914001465,"z":"349cd3c6.7ae4ac","wires":[["4da585da.42efcc","ee30d95a.ab8b18"]]},{"id":"4da585da.42efcc","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1433.6030578613281,"y":1867.544111251831,"z":"349cd3c6.7ae4ac","wires":[["87c2ca4a.4911b8"]]},{"id":"ee30d95a.ab8b18","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1430.9960632324219,"y":1931.7941188812256,"z":"349cd3c6.7ae4ac","wires":[["9f65900e.a4ec6"]]},{"id":"b76edc1c.d7929","type":"save","name":"insert EIPAM_IP_POOLS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $parent_pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ,\n             network_instance_group_id = $tmp.network-instance-group-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1668.2366638183594,"y":1993.8939743041992,"z":"349cd3c6.7ae4ac","wires":[["5ee60164.3bc0a"]]},{"id":"5fcb4629.8fc1a8","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":295.90048599243164,"y":2334.9010162353516,"z":"349cd3c6.7ae4ac","wires":[["eb3c98eb.650608","74db2aa6.3483b4","f4b6e870.76a488"]]},{"id":"74db2aa6.3483b4","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":491.9005470275879,"y":2367.9010162353516,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"eb3c98eb.650608","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":490.900577545166,"y":2332.9010009765625,"z":"349cd3c6.7ae4ac","wires":[["515f275f.47d888"]]},{"id":"a9455b72.3c8be8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1095.9361877441406,"y":2344.4011573791504,"z":"349cd3c6.7ae4ac","wires":[["b569280.fe633d8","5d7e9df0.a4b464","a8eaf985.0af738","8aaeaea5.5564","6dead66c.9a7628"]]},{"id":"f4b6e870.76a488","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":491.7899513244629,"y":2398.2953033447266,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"b569280.fe633d8","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1311.6146812438965,"y":2335.1869230270386,"z":"349cd3c6.7ae4ac","wires":[["7763293e.d8afb8","57135bde.54d0f4"]]},{"id":"7763293e.d8afb8","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1502.8248672485352,"y":2312.7581419944763,"z":"349cd3c6.7ae4ac","wires":[["33c3acd0.2d0594"]]},{"id":"57135bde.54d0f4","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1499.110610961914,"y":2354.900963783264,"z":"349cd3c6.7ae4ac","wires":[["90e8ec58.75872"]]},{"id":"c9a24ebf.0b46c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\n","comments":"","x":2427.1304244995117,"y":2001.458854675293,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"9ad840a2.e8024","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1966.3796501159668,"y":2465.34432220459,"z":"349cd3c6.7ae4ac","wires":[["c9a24ebf.0b46c"]]},{"id":"5ee60164.3bc0a","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1908.3797798156738,"y":1999.772689819336,"z":"349cd3c6.7ae4ac","wires":[["c9a24ebf.0b46c"]]},{"id":"eee028af.a5deb8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1266.6526718139648,"y":344.5714454650879,"z":"349cd3c6.7ae4ac","wires":[["6b13034.09e54fc"]]},{"id":"1c016b1c.b5d1e5","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1267.295555114746,"y":417.8571844100952,"z":"349cd3c6.7ae4ac","wires":[["c074e0c3.e9003"]]},{"id":"c95edad7.418dc8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":234.4741554260254,"y":2420.5018463134766,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"3b05b3c5.afdfac","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1002.0355529785156,"y":1608.4868717193604,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"89b951c4.efe42","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-generic-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\"/>\n<parameter name=\"field6\" value=\"Level already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field8\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":1582.7397842407227,"y":375.5714454650879,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"267f5e4a.4aee02","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1051.8256721496582,"y":657.5000505447388,"z":"349cd3c6.7ae4ac","wires":[["1967a14e.6f32ef"]]},{"id":"c0e8aebf.eced3","type":"switchNode","name":"test:eipam-pool.v4.pre-existing","xml":"<switch test=\"`$eipam-pool.v4.pre-existing`\">","comments":"","outputs":1,"x":810.2509269714355,"y":2010.1727600097656,"z":"349cd3c6.7ae4ac","wires":[["d32b5a06.7f43f8","693b4d5b.834e94"]]},{"id":"4342f9af.5328e8","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":616.2509269714355,"y":2013.4228820800781,"z":"349cd3c6.7ae4ac","wires":[["c0e8aebf.eced3"]]},{"id":"515f275f.47d888","type":"block","name":"block ","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":611.6438751220703,"y":2334.3515272140503,"z":"349cd3c6.7ae4ac","wires":[["1fefac22.b6c6f4"]]},{"id":"1fefac22.b6c6f4","type":"switchNode","name":"test: eipam-pool.v6.pre-existing","xml":"<switch test=\"`$eipam-pool.v6.pre-existing`\">","comments":"","outputs":1,"x":813.5010414123535,"y":2333.3514556884766,"z":"349cd3c6.7ae4ac","wires":[["a4d411ea.2edae","f5ce7b34.bcca48"]]},{"id":"d32b5a06.7f43f8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1031.3610191345215,"y":2055.3943481445312,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"693b4d5b.834e94","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1035.289463043213,"y":1845.6444931030273,"z":"349cd3c6.7ae4ac","wires":[["9cd666e7.72ced8"]]},{"id":"a4d411ea.2edae","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1066.4322242736816,"y":2454.2872982025146,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"f5ce7b34.bcca48","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1090.2179489135742,"y":2288.715941429138,"z":"349cd3c6.7ae4ac","wires":[["a9455b72.3c8be8"]]},{"id":"9b4b3a87.ce0398","type":"switchNode","name":"switch: tmp.create-v4-pool-flag","xml":"<switch test=\"`$tmp.create-v4-pool-flag`\">","comments":"","outputs":1,"x":309.80603790283203,"y":1623.3585796356201,"z":"349cd3c6.7ae4ac","wires":[["79659e31.be535","bba0e210.057fc"]]},{"id":"79659e31.be535","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":519.0917472839355,"y":1623.9300775527954,"z":"349cd3c6.7ae4ac","wires":[["629efca9.657ab4"]]},{"id":"ef22703a.ce7a1","type":"switchNode","name":"switch: tmp.create-v6-pool-flag","xml":"<switch test=\"`$tmp.create-v6-pool-flag`\">","comments":"","outputs":1,"x":407.0202827453613,"y":1749.3227548599243,"z":"349cd3c6.7ae4ac","wires":[["fe3d8960.5d3ed8"]]},{"id":"fe3d8960.5d3ed8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":618.4285621643066,"y":1751.0581455230713,"z":"349cd3c6.7ae4ac","wires":[["629efca9.657ab4"]]},{"id":"148249f9.846256","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-generic-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$key-name`\"/>\n<parameter name=\"field6\" value=\"`$key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.network_instance_group_id`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1207.8330917358398,"y":1992.5449447631836,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"2e3df561.44defa","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1418.4905166625977,"y":380.5714454650879,"z":"349cd3c6.7ae4ac","wires":[["89b951c4.efe42","802a8043.cc9aa"]]},{"id":"802a8043.cc9aa","type":"set","name":"set eipam-pool.v4.pre-existing to Y","xml":"<set>\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"Y\"/>\n","comments":"","x":1651.4905014038086,"y":415.8214473724365,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"6d156273.b7a25c","type":"set","name":"set EIPAM plan info for createPool","xml":"<set>\n\t<parameter name=\"network-topology-identifier-structure.eipam-v4-address-plan\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"`$tmp.allocate-subnet-flag`\"/>\t\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1847.6786270141602,"y":614.2857093811035,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"99a858ec.71d5a8","type":"comment","name":"Required INPUTS","info":"Pre-requisites: \n\tThe levels are called in sequence starting at level 1,2,...\n\tso that the previous levels are created already.\n\tWorking with current plan: eipam-ip-block.plans[$eipam-ip-block.plans_length]\n\t\nOptional INPUTS:\n\ttmp.qip-pool - for level 1 if needed\n\ttmp.allocate-subnet-flag - set to if EIPAM should allocate subnet automatically or N (Default to Y)\t\n\ttmp.network-instance-group-id\n\t\nrequired INPUTS:\n\n\tnetwork-model - for Tosca model\n\ttmp.skip-first-level - set to Y if already created in EIPAM\n\teipam-ip-block.level - the level for createPool\n\ttmp.network-id\n\nSet the necessary values as inputs for the key_values \nfor 1 to current level as needed for EIPAM operations:\n\nv4FQPN-output.pools[].key-name\nv4FQPN-output.pools[].key-value\nv6FQPN-output.pools[].key-name\nv6FQPN-output.pools[].key-value\n\n(ie - Calling DG should set v[4|6]FQPN-output = generate-FQPN-output)\n\n\n","comments":"","x":650.0000076293945,"y":88.75000190734863,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"cc4c7f39.1f5b3","type":"for","name":"for l4-idx: eipam-ip-block.level","xml":"<for index=\"l4-idx\" start=\"0\" end=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1836.9643020629883,"y":712.6785888671875,"z":"349cd3c6.7ae4ac","wires":[["12ba335c.d69add"]]},{"id":"12ba335c.d69add","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2028.4127922058105,"y":709.9483642578125,"z":"349cd3c6.7ae4ac","wires":[["6f8e94f6.a5cbcc","b036d114.4c11"]]},{"id":"16f1102a.b3604","type":"set","name":"set create-v4-pool-flag to Y","xml":"<set>\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"Y\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1829.4642944335938,"y":652.6786365509033,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"39949545.ce2a6a","type":"switchNode","name":"switch: tmp.skip-first-level","xml":"<switch test=\"`$tmp.skip-first-level`\">","comments":"","outputs":1,"x":1373.0357818603516,"y":559.6428918838501,"z":"349cd3c6.7ae4ac","wires":[["12fbf51.44ff80b","fa9f3f47.e86f6","f9db9f93.178c"]]},{"id":"12fbf51.44ff80b","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1529.3215255737305,"y":589.6071681976318,"z":"349cd3c6.7ae4ac","wires":[["1967a14e.6f32ef"]]},{"id":"1967a14e.6f32ef","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1638.571678161621,"y":653.1786603927612,"z":"349cd3c6.7ae4ac","wires":[["16f1102a.b3604","cc4c7f39.1f5b3","60344065.a233","6d156273.b7a25c"]]},{"id":"fa9f3f47.e86f6","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1486.3930053710938,"y":626.1184854507446,"z":"349cd3c6.7ae4ac","wires":[["1967a14e.6f32ef"]]},{"id":"d0744c26.6d381","type":"switchNode","name":"test: tmp.allocate-subnet-flag","xml":"<switch test=\"`$tmp.allocate-subnet-flag`\">","comments":"","outputs":1,"x":393.75,"y":223.75,"z":"349cd3c6.7ae4ac","wires":[["79aa4ca5.9b2464","350961c1.54fbfe","aca7f525.668318"]]},{"id":"350961c1.54fbfe","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":607.0000686645508,"y":193.00003337860107,"z":"349cd3c6.7ae4ac","wires":[["40365c01.9fc214"]]},{"id":"79aa4ca5.9b2464","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":602.2501316070557,"y":239.00000381469727,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"40365c01.9fc214","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":758.7500610351562,"y":191.75000381469727,"z":"349cd3c6.7ae4ac","wires":[["9883bb21.fa3008"]]},{"id":"aca7f525.668318","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":606.7500610351562,"y":274.68993759155273,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"9883bb21.fa3008","type":"set","name":"set tmp.allocate-subnet-flag to Y","xml":"<set>\n\t<parameter name=\"tmp.allocate-subnet-flag\" value=\"Y\"/>\t\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":983.75,"y":193.75,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"749d6519.db75ac","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1182.857192993164,"y":514.2857837677002,"z":"349cd3c6.7ae4ac","wires":[["39949545.ce2a6a","2b778ea.2707c72"]]},{"id":"e579441a.7f47b8","type":"set","name":"set EIPAM parent pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"tmp.v4-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1686.9643859863281,"y":511.07141876220703,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"2b778ea.2707c72","type":"switchNode","name":"test: tmp.qip-pool","xml":"<switch test=\"`$tmp.qip-pool`\">","comments":"","outputs":1,"x":1350.357177734375,"y":504.4642868041992,"z":"349cd3c6.7ae4ac","wires":[["4e871e70.f869b","a9ca5136.ec129"]]},{"id":"4e871e70.f869b","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1511.893211364746,"y":511.8571548461914,"z":"349cd3c6.7ae4ac","wires":[["e579441a.7f47b8"]]},{"id":"6f7e9759.3b93f8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-generic-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value`\"/>\n<parameter name=\"field7\" value=\"`$l6-idx`\"/>\n","comments":"","outputs":1,"x":2278.2092895507812,"y":1451.4285888671875,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"5960258c.27786c","type":"set","name":"set EIPAM pool info at each Level","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name\" value=\"`$v6FQPN-output.pools[$l6-idx].key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value\" value=\"`$v6FQPN-output.pools[$l6-idx].key-value`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2353.0213108062744,"y":1406.9743022918701,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"8ef01746.1df9e8","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1927.280174255371,"y":1468.0415649414062,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"8245ad31.919cc","type":"get-resource","name":"DB - validate if pool exists for level already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $v6FQPN-output.pools[$level].key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1051.0260543823242,"y":1042.1170129776,"z":"349cd3c6.7ae4ac","wires":[["a035950c.4940f8","6572ecde.eb0774","d68a80a0.6237a"]]},{"id":"99ab26ae.ab8458","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1518.0616607666016,"y":1052.295566558838,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"a035950c.4940f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1371.3117446899414,"y":1090.295566558838,"z":"349cd3c6.7ae4ac","wires":[["43a92726.c8e168"]]},{"id":"b17f7caf.12201","type":"switchNode","name":"test: eipam-ip-block.level","xml":"<switch test=\"`$l-idx`\">","comments":"","outputs":1,"x":969.2856597900391,"y":1220.6885433197021,"z":"349cd3c6.7ae4ac","wires":[["6279ea9f.3b4084","c8dd7ca.3d7fd8","6e576d4d.d27f54"]]},{"id":"6279ea9f.3b4084","type":"other","name":"level 1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1158.1072998046875,"y":1223.474190711975,"z":"349cd3c6.7ae4ac","wires":[["273ff0a5.5e023"]]},{"id":"c8dd7ca.3d7fd8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1160.6787109375,"y":1325.3313083648682,"z":"349cd3c6.7ae4ac","wires":[["df65eb6a.a8e218"]]},{"id":"df65eb6a.a8e218","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1287.9286079406738,"y":1324.3313336372375,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"6572ecde.eb0774","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1370.1735305786133,"y":1054.295566558838,"z":"349cd3c6.7ae4ac","wires":[["99ab26ae.ab8458"]]},{"id":"d68a80a0.6237a","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1370.8164138793945,"y":1127.5813055038452,"z":"349cd3c6.7ae4ac","wires":[["b17f7caf.12201"]]},{"id":"b25437a6.8dc228","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-generic-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\"/>\n<parameter name=\"field6\" value=\"Level already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field8\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":1686.260643005371,"y":1085.295566558838,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"6e576d4d.d27f54","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1155.3465309143066,"y":1367.2241716384888,"z":"349cd3c6.7ae4ac","wires":[["d64c9608.18e318"]]},{"id":"43a92726.c8e168","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1522.011375427246,"y":1090.295566558838,"z":"349cd3c6.7ae4ac","wires":[["b25437a6.8dc228","27947b52.6e6eb4"]]},{"id":"27947b52.6e6eb4","type":"set","name":"set eipam-pool.v6.pre-existing to Y","xml":"<set>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"Y\"/>\n","comments":"","x":1755.011360168457,"y":1125.5455684661865,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"ecaefc12.01692","type":"set","name":"set EIPAM v6 plan info for createPool","xml":"<set>\n\t<parameter name=\"network-topology-identifier-structure.eipam-v6-address-plan\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"`$tmp.allocate-subnet-flag`\"/>\t\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1969.7708435058594,"y":1319.7241830825806,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"ca1ca600.0912e8","type":"for","name":"for l6-idx: eipam-ip-block.level","xml":"<for index=\"l6-idx\" start=\"0\" end=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1940.4851608276367,"y":1422.4027099609375,"z":"349cd3c6.7ae4ac","wires":[["44d24717.ee3398"]]},{"id":"44d24717.ee3398","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2131.933650970459,"y":1419.6724853515625,"z":"349cd3c6.7ae4ac","wires":[["5960258c.27786c","6f7e9759.3b93f8"]]},{"id":"d8e2213f.4e9bf","type":"set","name":"set create-v6-pool-flag to Y","xml":"<set>\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"Y\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1932.9851531982422,"y":1362.4027576446533,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"2fe5d369.146c8c","type":"switchNode","name":"switch: tmp.skip-first-level","xml":"<switch test=\"`$tmp.skip-first-level`\">","comments":"","outputs":1,"x":1476.556640625,"y":1269.3670129776,"z":"349cd3c6.7ae4ac","wires":[["3c832833.fedcd8","924a97ca.3aa518","ea85d22d.b1c9"]]},{"id":"3c832833.fedcd8","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1628.5567169189453,"y":1303.6169919967651,"z":"349cd3c6.7ae4ac","wires":[["d64c9608.18e318"]]},{"id":"d64c9608.18e318","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1742.0925369262695,"y":1362.9027814865112,"z":"349cd3c6.7ae4ac","wires":[["d8e2213f.4e9bf","ca1ca600.0912e8","8ef01746.1df9e8","ecaefc12.01692"]]},{"id":"924a97ca.3aa518","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1589.913948059082,"y":1340.128291130066,"z":"349cd3c6.7ae4ac","wires":[["d64c9608.18e318"]]},{"id":"273ff0a5.5e023","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1286.3780517578125,"y":1224.0099048614502,"z":"349cd3c6.7ae4ac","wires":[["2fe5d369.146c8c","aa66ddb2.84543"]]},{"id":"f9459ac1.0b5ea8","type":"set","name":"set EIPAM parent pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"tmp.v6-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1790.4852447509766,"y":1220.795539855957,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"aa66ddb2.84543","type":"switchNode","name":"test: tmp.qip-pool","xml":"<switch test=\"`$tmp.qip-pool`\">","comments":"","outputs":1,"x":1453.8780364990234,"y":1214.1884078979492,"z":"349cd3c6.7ae4ac","wires":[["5237408e.f3ce4","8ead477f.65c058"]]},{"id":"ea85d22d.b1c9","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1676.8426780700684,"y":1268.7241878509521,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"5d7e9df0.a4b464","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$v6FQPN-output.pools[$level].key-name`\"/>\n<parameter name=\"field6\" value=\"`$v6FQPN-output.pools[$level].key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.network_instance_group_id`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.level`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1258.214454650879,"y":2434.642780303955,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"a9ca5136.ec129","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1511.4285888671875,"y":471.4285888671875,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"f9db9f93.178c","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1564.2857666015625,"y":555.7142944335938,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"8ead477f.65c058","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1611.4285278320312,"y":1225.7143173217773,"z":"349cd3c6.7ae4ac","wires":[["f9459ac1.0b5ea8"]]},{"id":"5237408e.f3ce4","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1612.3925857543945,"y":1189.5714778900146,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"bba0e210.057fc","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":504.2857131958008,"y":1675.7144141197205,"z":"349cd3c6.7ae4ac","wires":[["ef22703a.ce7a1"]]},{"id":"69e98e43.ccaf","type":"set","name":"set: parent_pool","xml":"<set>\n\t<parameter name=\"parent_pool\" value=\"`$tmp.v4-qip-pool`\" />\n\t<parameter name=\"level\" value=\"`$eipam-ip-block.level - 1`\" />\n","comments":"","x":1718.5716094970703,"y":1860.7147188186646,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"8a435f40.685a8","type":"set","name":"set: parent_pool","xml":"<set>\n\t<parameter name=\"parent_pool\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 2].key-value`\" />\n\t\t<parameter name=\"level\" value=\"`$eipam-ip-block.level - 1`\" />\t","comments":"","x":1721.5279693603516,"y":1932.8572692871094,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"67dc159b.560f4c","type":"switchNode","name":"test: subnet-use","xml":"<switch test=\"`$network-instance-group-data.subnet-assignment-policy.subnet-use`\">","comments":"","outputs":1,"x":1228.0356979370117,"y":2046.6071891784668,"z":"349cd3c6.7ae4ac","wires":[["8e2c4f29.bc129","69384818.7951d8","2232c618.935bda"]]},{"id":"8e2c4f29.bc129","type":"other","name":"shared","xml":"<outcome value='shared'>","comments":"","outputs":1,"x":1428.5715084075928,"y":1992.8571434020996,"z":"349cd3c6.7ae4ac","wires":[["b76edc1c.d7929"]]},{"id":"fcf7941a.f817c8","type":"save","name":"insert EIPAM_IP_POOLS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $parent_pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1671.4285736083984,"y":2041.428379058838,"z":"349cd3c6.7ae4ac","wires":[["5ee60164.3bc0a"]]},{"id":"69384818.7951d8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1428.5714111328125,"y":2037.1429443359375,"z":"349cd3c6.7ae4ac","wires":[["fcf7941a.f817c8"]]},{"id":"a8eaf985.0af738","type":"switchNode","name":"test: subnet-use","xml":"<switch test=\"`$network-instance-group-data.subnet-assignment-policy.subnet-use`\">","comments":"","outputs":1,"x":1281.7859420776367,"y":2490.7143983840942,"z":"349cd3c6.7ae4ac","wires":[["c28f894c.7c5c68","11fb77d9.c1dd48","7284f4.36a8db0c"]]},{"id":"45c1f421.d35afc","type":"save","name":"insert EIPAM_IP_POOLS for other level V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $v6FQPN-output.pools[$level].key-name ,\n             key_value = $v6FQPN-output.pools[$level].key-value ,\n             level = $eipam-ip-block.level ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $parent_pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ,\n             network_instance_group_id = $tmp.network-instance-group-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1708.571548461914,"y":2435.7147178649902,"z":"349cd3c6.7ae4ac","wires":[["9ad840a2.e8024"]]},{"id":"c28f894c.7c5c68","type":"other","name":"shared","xml":"<outcome value='shared'>","comments":"","outputs":1,"x":1460.0000610351562,"y":2437.1430492401123,"z":"349cd3c6.7ae4ac","wires":[["45c1f421.d35afc"]]},{"id":"11fb77d9.c1dd48","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1459.999963760376,"y":2481.42885017395,"z":"349cd3c6.7ae4ac","wires":[["d035f4fd.cdd6f8"]]},{"id":"d035f4fd.cdd6f8","type":"save","name":"insert EIPAM_IP_POOLS for other level V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $v6FQPN-output.pools[$level].key-name ,\n             key_value = $v6FQPN-output.pools[$level].key-value ,\n             level = $eipam-ip-block.level ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $parent_pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1702.8571166992188,"y":2480.0002269744873,"z":"349cd3c6.7ae4ac","wires":[["9ad840a2.e8024"]]},{"id":"33c3acd0.2d0594","type":"set","name":"set: parent_pool","xml":"<set>\n\t<parameter name=\"parent_pool\" value=\"`$tmp.v6-qip-pool`\" />\n\t<parameter name=\"level\" value=\"`$eipam-ip-block.level - 1`\" />","comments":"","x":1657.1428833007812,"y":2314.2858715057373,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"90e8ec58.75872","type":"set","name":"set: parent_pool","xml":"<set>\n\t<parameter name=\"parent_pool\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 2].key-value`\" />\n\t<parameter name=\"level\" value=\"`$eipam-ip-block.level - 1`\" />","comments":"","x":1661.4285316467285,"y":2351.428692817688,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"2232c618.935bda","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1428.5714111328125,"y":2080,"z":"349cd3c6.7ae4ac","wires":[["fcf7941a.f817c8"]]},{"id":"7284f4.36a8db0c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1462.8571166992188,"y":2527.1430492401123,"z":"349cd3c6.7ae4ac","wires":[["d035f4fd.cdd6f8"]]},{"id":"d77f382b.bfda98","type":"set","name":"set: key-name/key-value","xml":"<set>\n\t<parameter name=\"key-name\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-name`\" />\t\n\t<parameter name=\"key-value\" value=\"`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\" />\t","comments":"","x":1254.035701751709,"y":1835.1905822753906,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"87c2ca4a.4911b8","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1564.1904888153076,"y":1865.7502603530884,"z":"349cd3c6.7ae4ac","wires":[["69e98e43.ccaf"]]},{"id":"9f65900e.a4ec6","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1562.583309173584,"y":1933.2499752044678,"z":"349cd3c6.7ae4ac","wires":[["8a435f40.685a8"]]},{"id":"8aaeaea5.5564","type":"set","name":"set: key-name/key-value","xml":"<set>\n\t<parameter name=\"key-name\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-name`\" />\t\n\t<parameter name=\"key-value\" value=\"`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-value`\" />\t","comments":"","x":1309.2742004394531,"y":2283.4284524917603,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"f6d96e24.6539e","type":"save","name":"insert EIPAM_IP_SUBNETS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IPAddress ,\n             prefix_length = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.Mask ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $tmp.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv4-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":3160.4780883789062,"y":2205.870002746582,"z":"349cd3c6.7ae4ac","wires":[["e9053df.f0604c","6375c043.7adc4"]]},{"id":"cafa4b39.a1af78","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":3177.2042541503906,"y":2268.1323432922363,"z":"349cd3c6.7ae4ac","wires":[["6375c043.7adc4","2487c99c.f9fd46"]]},{"id":"97205152.6b6c3","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1329.4885482788086,"y":2125.8693132400513,"z":"349cd3c6.7ae4ac","wires":[["8ed89f0a.ac09a"]]},{"id":"a5ab262c.107d28","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1705.968864440918,"y":2143.8970165252686,"z":"349cd3c6.7ae4ac","wires":[["5111f0a2.85eb1","4d28742f.b33f5c"]]},{"id":"b9aa3822.9ae098","type":"switchNode","name":"switch: leaf level","xml":"<switch test=\"`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`\">","comments":"","outputs":1,"x":1177.583309173584,"y":2128.4999117851257,"z":"349cd3c6.7ae4ac","wires":[["97205152.6b6c3"]]},{"id":"d0edbeb4.e9de1","type":"save","name":"insert EIPAM_IP_SUBNETS for V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\n             service_type = $tmp.service-type ,\n             ip_address = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IPAddress ,\n             prefix_length = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.Mask ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             status = 'ALLOCATED' ,\n             pool_id = $tmp.eipam-pool-row.pool-id ,\n             address_family = $network-model.ipv6-ip-version ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":3173.416717529297,"y":2631.166714668274,"z":"349cd3c6.7ae4ac","wires":[["56144445.a583bc","be66d1a6.069a6"]]},{"id":"2446c5b3.dabaca","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\n             key_name = $key-name ,\n             key_value = $key-value ,\n             level = $eipam-ip-block.level ; \"\n    force='true'\n        pfx='pfx.eipam-v4subnet-key-row'>\n","comments":"","outputs":1,"x":3190.5595474243164,"y":2672.595308303833,"z":"349cd3c6.7ae4ac","wires":[["941f0eab.7d1d5","be66d1a6.069a6"]]},{"id":"65c9e356.4fdc0c","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1338.6788482666016,"y":2584.9170866012573,"z":"349cd3c6.7ae4ac","wires":[["13e55d70.ced513"]]},{"id":"a98ff550.c4df58","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1707.6589889526367,"y":2597.9445333480835,"z":"349cd3c6.7ae4ac","wires":[["6f08cc60.c79504","63f21221.7db1cc"]]},{"id":"6dead66c.9a7628","type":"switchNode","name":"switch: leaf level","xml":"<switch test=\"`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`\">","comments":"","outputs":1,"x":1188.0235061645508,"y":2585.047540664673,"z":"349cd3c6.7ae4ac","wires":[["65c9e356.4fdc0c"]]},{"id":"5111f0a2.85eb1","type":"for","name":"for i: CreatePoolPlan_length","xml":"<for index=\"i\" start=\"0\" end=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan_length`\">","comments":"","outputs":1,"x":1942.583351135254,"y":2097.666543006897,"z":"349cd3c6.7ae4ac","wires":[["65f04afd.675004"]]},{"id":"65f04afd.675004","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2135.2819442749023,"y":2097.436333656311,"z":"349cd3c6.7ae4ac","wires":[["2988e93c.4f05f6"]]},{"id":"2988e93c.4f05f6","type":"switchNode","name":"test: same plan ","xml":"<switch test=\"`$network-model.eipam-v4-address-plan == $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PlanName`\">","comments":"","outputs":1,"x":2315.0837059020996,"y":2095.749746322632,"z":"349cd3c6.7ae4ac","wires":[["8483e388.9e957"]]},{"id":"8483e388.9e957","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":2498.833251953125,"y":2096.999755859375,"z":"349cd3c6.7ae4ac","wires":[["50475eee.83591"]]},{"id":"7d1a8415.9aa22c","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>","comments":"","x":3169.8330688476562,"y":2416.5836839675903,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"6f08cc60.c79504","type":"for","name":"for i: CreatePoolPlan_length","xml":"<for index=\"i\" start=\"0\" end=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan_length`\">","comments":"","outputs":1,"x":1926.9165954589844,"y":2514.833553314209,"z":"349cd3c6.7ae4ac","wires":[["4e4c05cd.ebc9bc"]]},{"id":"4e4c05cd.ebc9bc","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2157.1150970458984,"y":2515.853042602539,"z":"349cd3c6.7ae4ac","wires":[["c96dbc73.d1499"]]},{"id":"c96dbc73.d1499","type":"switchNode","name":"test: same plan ","xml":"<switch test=\"`$network-model.eipam-v6-address-plan == $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PlanName`\">","comments":"","outputs":1,"x":2336.9168586730957,"y":2514.16645526886,"z":"349cd3c6.7ae4ac","wires":[["bd1e309b.c1fb3"]]},{"id":"bd1e309b.c1fb3","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":2520.666404724121,"y":2515.416464805603,"z":"349cd3c6.7ae4ac","wires":[["6469b539.0338cc"]]},{"id":"410f3ee.58550c","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":3214.999988555908,"y":2455.4165897369385,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"e8f56ba7.3673b8","type":"break","name":"break","xml":"<break>\n","comments":"","x":2753.5843200683594,"y":2093.5837326049805,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"1951f009.0aa1a","type":"set","name":"set: index_found","xml":"<set>\n\t<parameter name=\"index_found\" value=\"true\" />\n\t\t","comments":"","x":2783.166534423828,"y":2056.166675567627,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"4d28742f.b33f5c","type":"switchNode","name":"switch: index_found","xml":"<switch test=\"`$index_found`\">","comments":"","outputs":1,"x":1936.91650390625,"y":2162.833251953125,"z":"349cd3c6.7ae4ac","wires":[["3c39e0a.1258f2","5088803d.d1b25","a544f528.31e728"]]},{"id":"45b355f2.ef833c","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2221.916633605957,"y":2162.8333778381348,"z":"349cd3c6.7ae4ac","wires":[["7ba44dde.a58364"]]},{"id":"3c39e0a.1258f2","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":2096.91650390625,"y":2161.583251953125,"z":"349cd3c6.7ae4ac","wires":[["45b355f2.ef833c"]]},{"id":"379eb126.caccae","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\n","comments":"","x":2266.91650390625,"y":2265.333251953125,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"5088803d.d1b25","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2100.66650390625,"y":2215.333251953125,"z":"349cd3c6.7ae4ac","wires":[["379eb126.caccae"]]},{"id":"a544f528.31e728","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2099.41650390625,"y":2265.333251953125,"z":"349cd3c6.7ae4ac","wires":[["379eb126.caccae"]]},{"id":"63f21221.7db1cc","type":"switchNode","name":"switch: index_found","xml":"<switch test=\"`$index_found`\">","comments":"","outputs":1,"x":1904.41650390625,"y":2596.083251953125,"z":"349cd3c6.7ae4ac","wires":[["a9b096ed.aa1bb8","dc89ff61.e00bc","c1e32151.92a79"]]},{"id":"963711ae.b1054","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2189.416633605957,"y":2596.0833778381348,"z":"349cd3c6.7ae4ac","wires":[["8ea994ce.0783e8"]]},{"id":"a9b096ed.aa1bb8","type":"other","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":2064.41650390625,"y":2594.833251953125,"z":"349cd3c6.7ae4ac","wires":[["963711ae.b1054"]]},{"id":"b80008cb.7e7ed8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\n","comments":"","x":2234.41650390625,"y":2698.583251953125,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"dc89ff61.e00bc","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2068.16650390625,"y":2648.583251953125,"z":"349cd3c6.7ae4ac","wires":[["b80008cb.7e7ed8"]]},{"id":"c1e32151.92a79","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2066.91650390625,"y":2698.583251953125,"z":"349cd3c6.7ae4ac","wires":[["b80008cb.7e7ed8"]]},{"id":"28a4cc6b.177c34","type":"break","name":"break","xml":"<break>\n","comments":"","x":2754.4166107177734,"y":2554.833335876465,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"4cf4a1cd.5e6d3","type":"set","name":"set: index_found","xml":"<set>\n\t<parameter name=\"index_found\" value=\"true\" />\n\t\t","comments":"","x":2785.6662979125977,"y":2519.083209991455,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"50475eee.83591","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2628.6665573120117,"y":2093.583360671997,"z":"349cd3c6.7ae4ac","wires":[["1951f009.0aa1a","e8f56ba7.3673b8"]]},{"id":"6469b539.0338cc","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2638.6665573120117,"y":2519.9165382385254,"z":"349cd3c6.7ae4ac","wires":[["4cf4a1cd.5e6d3","28a4cc6b.177c34"]]},{"id":"7ba44dde.a58364","type":"get-resource","name":"DB - validate if pool exists for level already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $v4FQPN-output.pools[$level].key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2462.777862548828,"y":2160.3332233428955,"z":"349cd3c6.7ae4ac","wires":[["5780d366.3c2fdc","bddfe5de.08ae38","f3076ad8.20d1a8"]]},{"id":"84ec1768.fb34c8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":2929.8134689331055,"y":2170.5117769241333,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"5780d366.3c2fdc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2783.0635528564453,"y":2208.5117769241333,"z":"349cd3c6.7ae4ac","wires":[["d4ee2001.3b0fa"]]},{"id":"bddfe5de.08ae38","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2781.925338745117,"y":2172.5117769241333,"z":"349cd3c6.7ae4ac","wires":[["84ec1768.fb34c8"]]},{"id":"f3076ad8.20d1a8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2782.5682220458984,"y":2245.7975158691406,"z":"349cd3c6.7ae4ac","wires":[["84ec1768.fb34c8"]]},{"id":"d4ee2001.3b0fa","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2933.76318359375,"y":2208.5117769241333,"z":"349cd3c6.7ae4ac","wires":[["f6d96e24.6539e","cafa4b39.a1af78"]]},{"id":"8ea994ce.0783e8","type":"get-resource","name":"DB - validate if pool exists for level already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $v6FQPN-output.pools[$level].key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":2422.555419921875,"y":2595.3330078125,"z":"349cd3c6.7ae4ac","wires":[["b0e89be8.34a638","753e30ac.c3387","71a03662.0cf688"]]},{"id":"4d827f56.0b774","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":2889.5910263061523,"y":2605.511561393738,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"b0e89be8.34a638","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2742.841110229492,"y":2643.511561393738,"z":"349cd3c6.7ae4ac","wires":[["1f4ce9be.57d4b6"]]},{"id":"753e30ac.c3387","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2741.702896118164,"y":2607.511561393738,"z":"349cd3c6.7ae4ac","wires":[["4d827f56.0b774"]]},{"id":"71a03662.0cf688","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2742.3457794189453,"y":2680.797300338745,"z":"349cd3c6.7ae4ac","wires":[["4d827f56.0b774"]]},{"id":"1f4ce9be.57d4b6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2893.540740966797,"y":2643.511561393738,"z":"349cd3c6.7ae4ac","wires":[["d0edbeb4.e9de1","2446c5b3.dabaca"]]},{"id":"61f684a6.11baac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS .' />\n","comments":"","x":3561.555679321289,"y":2199.7781715393066,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"6375c043.7adc4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3426.55558013916,"y":2244.777997970581,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"e9053df.f0604c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3422.084129333496,"y":2200.444318294525,"z":"349cd3c6.7ae4ac","wires":[["61f684a6.11baac"]]},{"id":"e2590f90.0c809","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS .' />\n","comments":"","x":3566.55517578125,"y":2284.777587890625,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"2487c99c.f9fd46","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3427.083625793457,"y":2285.4437346458435,"z":"349cd3c6.7ae4ac","wires":[["e2590f90.0c809"]]},{"id":"40a9bbf6.a7ac64","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS .' />\n","comments":"","x":3588.221923828125,"y":2604.999755859375,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"be66d1a6.069a6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3453.221824645996,"y":2649.9995822906494,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"56144445.a583bc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3448.750373840332,"y":2605.6659026145935,"z":"349cd3c6.7ae4ac","wires":[["40a9bbf6.a7ac64"]]},{"id":"c2355c4a.b14c4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS .' />\n","comments":"","x":3593.221420288086,"y":2689.9991722106934,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"941f0eab.7d1d5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3457.083185195923,"y":2682.3322582244873,"z":"349cd3c6.7ae4ac","wires":[["c2355c4a.b14c4"]]},{"id":"a25e067a.946038","type":"comment","name":"For VLAN Tagging","info":"Network Collection\n\nIf leaf level also insert in EIPAM_IP_SUBNETS &\nEIPAM_IP_SUBNET_KEYS tables, since EIPAM automatically\nallocates subnet when createPool is called.\n(tmp.allocate-subnet-flag=Y)","comments":"","x":1247.4167404174805,"y":2655.416820526123,"z":"349cd3c6.7ae4ac","wires":[]},{"id":"219778d6.5df5d8","type":"switchNode","name":"switch: tmp.allocate-subnet-flag","xml":"<switch test=\"`$tmp.allocate-subnet-flag`\">","comments":"","outputs":1,"x":1559.8333053588867,"y":2657.9165592193604,"z":"349cd3c6.7ae4ac","wires":[["640e63f2.6e77ec","3fe72424.12ba8c"]]},{"id":"13e55d70.ced513","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1458.583417892456,"y":2585.4168252944946,"z":"349cd3c6.7ae4ac","wires":[["219778d6.5df5d8"]]},{"id":"640e63f2.6e77ec","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1764.833251953125,"y":2656.66650390625,"z":"349cd3c6.7ae4ac","wires":[["a98ff550.c4df58"]]},{"id":"3fe72424.12ba8c","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1762.5273399353027,"y":2705.951202392578,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"b9da493c.a973c8","type":"switchNode","name":"switch: tmp.allocate-subnet-flag","xml":"<switch test=\"`$tmp.allocate-subnet-flag`\">","comments":"","outputs":1,"x":1417.9166259765625,"y":2187.083251953125,"z":"349cd3c6.7ae4ac","wires":[["b711d279.a11f5","cd54b658.f3a078"]]},{"id":"b711d279.a11f5","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1622.9165725708008,"y":2185.8331966400146,"z":"349cd3c6.7ae4ac","wires":[["a5ab262c.107d28"]]},{"id":"cd54b658.f3a078","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1620.6106605529785,"y":2235.117895126343,"z":"349cd3c6.7ae4ac","wires":[[]]},{"id":"8ed89f0a.ac09a","type":"block","name":"block","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1462.9166259765625,"y":2123.333251953125,"z":"349cd3c6.7ae4ac","wires":[["b9da493c.a973c8"]]}]
\ No newline at end of file
index 6976609..08374fa 100644 (file)
@@ -1 +1 @@
-[{"id":"889f3470.50cd18","type":"dgstart","name":"DGSTART","outputs":1,"x":105.31387329101562,"y":29,"z":"6dc3ee07.6f3c9","wires":[["dad41889.054d08"]]},{"id":"dad41889.054d08","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":334.2638969421387,"y":33.74525547027588,"z":"6dc3ee07.6f3c9","wires":[["dc34c18c.fe421"]]},{"id":"e9fff2b2.6dea6","type":"comment","name":"ChangeLog","info":"1.0.1: Release 1702 - add logic for vIPR & SRIOV address plans\n1.0.2: Release 1702 - Req update to change level 1 & 2 key-name & key-values\n1.0.3: Release 1707 - Add CA to map to ATM-U US/CALA or ATM-P CALA for vIPR & SRIOV\n1.0.4: Release 1702/1707 - SRIOV V6 Data Plane QIP Pool names need to be unique per region due to Regional Registry.\n\t\t\t\t\t\t- Add CA to map to ATM-U US/CALA or ATM-P CALA for V4 vIPR & SRIOV\n1.0.5: Release 1707 - Add AIM V4 Landing Network\n5/10 - 1707 - updated pool key-names for AIC_AIM_LANDING_NETWORK_V4\n6/20 - 1710 - change any underscores _  to colon : for all level 1 and level 2 Pool KeyNames\n6/21 - 1710 - Task 403314 - QIP Parent pool consolidation\n\t\t\t- New V6 plans - \n\t\t\t\tAIC_ATM_UNPROTECTED_V6\n\t\t\t\tAIC_ATM_PROTECTED_V6\n\t\t\t\tAIC_AIM_LANDING_V6\n8/27 - 1710 - QIP parent pool fix:\n\t\t\tqip parent pool initial string is specifying 'AIC-ATM-P-V6 US' instead of 'ATM-P-V6 US'\n \t\tand \n \t\t\tqip parent pool initial string is specifying 'AIC-ATM-U-V6 US' instead of 'ATM-U-V6 US'\n","comments":"","x":67,"y":58.186187744140625,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"dc34c18c.fe421","type":"method","name":"eipam-create-network-role-pool","xml":"<method rpc='eipam-create-network-role-pool' mode='sync'>\n","comments":"","outputs":1,"x":680.3625259399414,"y":32.68485069274902,"z":"6dc3ee07.6f3c9","wires":[["101acc97.442dd3"]]},{"id":"f6408602.6c6e38","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":1067.3235168457031,"y":889.4543533325195,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"150e6bd8.81df94","type":"set","name":"set EIPAM plan info for createPool & Level 1 pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name\" value=\"`$tmp.v4-level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"Y\" />\n\t<parameter name=\"tmp.v4-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1177.3140258789062,"y":735.0000381469727,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"dacc275b.c28ca8","type":"execute","name":"execute EIPAM createPool","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"createPool\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":798.313835144043,"y":1851.0602111816406,"z":"6dc3ee07.6f3c9","wires":[["6f29513.87d3db","4a355dc8.b91904"]]},{"id":"101acc97.442dd3","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":115.00006103515625,"y":168.06005859375,"z":"6dc3ee07.6f3c9","wires":[["821b7075.c4a55","83965803.e534d8","b98c82b0.46b8b","d3eb1f70.63b4f","4f20cdc5.ce5d74","81702e48.02ed2","de6d3f5d.9271","9ed33bd1.14ef08"]]},{"id":"821b7075.c4a55","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":380.3138618469238,"y":459.06005859375,"z":"6dc3ee07.6f3c9","wires":[["2cdfd5c1.680e2a","90660bc9.3bdfd8","f7dde4c9.c086c8"]]},{"id":"90660bc9.3bdfd8","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":592.3139228820801,"y":472.06008529663086,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"2cdfd5c1.680e2a","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":591.3139801025391,"y":428.06005859375,"z":"6dc3ee07.6f3c9","wires":[["fd1b4bf2.6e8168"]]},{"id":"beba6de.c13179","type":"set","name":"set EIPAM level 2 pool info for createPool","xml":"<set>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name\" value=\"`$tmp.v4-level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"","x":1520.3141250610352,"y":863.0601110458374,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"a21e5aab.edf9e8","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1089.3139877319336,"y":815.0600280761719,"z":"6dc3ee07.6f3c9","wires":[["7656dbc4.2063f4","7c2e9c92.c4a764","4e418bcf.7dd274"]]},{"id":"7656dbc4.2063f4","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1289.3140869140625,"y":813.0600357055664,"z":"6dc3ee07.6f3c9","wires":[["7d2cc75f.256b88"]]},{"id":"7c2e9c92.c4a764","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1293.3140869140625,"y":864.0600357055664,"z":"6dc3ee07.6f3c9","wires":[["beba6de.c13179"]]},{"id":"fd1b4bf2.6e8168","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":745.3139228820801,"y":427.06006240844727,"z":"6dc3ee07.6f3c9","wires":[["a76a1da4.57966"]]},{"id":"5be47438.2e9b1c","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1090.322998046875,"y":933.2102432250977,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"6f29513.87d3db","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1008.3138809204102,"y":1852.4505767822266,"z":"6dc3ee07.6f3c9","wires":[["86b1f835.a50a48"]]},{"id":"86b1f835.a50a48","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while creating pool in EIPAM.\" />\n\t","comments":"","x":1172.3139114379883,"y":1855.4506072998047,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"83965803.e534d8","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"N\" />\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"N\" />\n\t<parameter name='eipam-ip-block.plans_length' value='0' />\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"false\"/>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"false\"/>\n\t<parameter name=\"tmp.v4-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v4-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n\t<parameter name=\"tmp.v6-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v6-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />","comments":"","x":372.3430633544922,"y":177.0909013748169,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"8da006d2.7f55a8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":1159.433952331543,"y":1712.0000305175781,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"dd380ea7.76015","type":"set","name":"set EIPAM plan info for createPool & Level 1 pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name\" value=\"`$tmp.v6-level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"Y\" />\n\t<parameter name=\"tmp.v6-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1286.424674987793,"y":1557.2453918457031,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"b98c82b0.46b8b","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":358.42444610595703,"y":1127.6057434082031,"z":"6dc3ee07.6f3c9","wires":[["b12ac9c.df0b238","7329292d.e338f8","7d40e359.db691c"]]},{"id":"7329292d.e338f8","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":629.4244766235352,"y":1171.6057434082031,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"b12ac9c.df0b238","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":634.4245834350586,"y":1126.6057434082031,"z":"6dc3ee07.6f3c9","wires":[["48e3eddd.5cf3a4"]]},{"id":"2554e31c.bafd1c","type":"set","name":"set EIPAM level 2 pool info for createPool","xml":"<set>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name\" value=\"`$tmp.v6-level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1624.4251403808594,"y":1689.3054504394531,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"8d6278e2.6e90d8","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1211.4247131347656,"y":1659.3054504394531,"z":"6dc3ee07.6f3c9","wires":[["ee77392f.cc70e8","51cc56d.7fcaca8","8d5048f5.5af5f8"]]},{"id":"ee77392f.cc70e8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1407.424819946289,"y":1655.3054504394531,"z":"6dc3ee07.6f3c9","wires":[["4da2c6f8.8fd8f8"]]},{"id":"51cc56d.7fcaca8","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1409.424819946289,"y":1688.3054504394531,"z":"6dc3ee07.6f3c9","wires":[["2554e31c.bafd1c"]]},{"id":"48e3eddd.5cf3a4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":782.4245223999023,"y":1131.6057434082031,"z":"6dc3ee07.6f3c9","wires":[["5c12bfff.591ad"]]},{"id":"e1049ec5.94e4f","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1216.433723449707,"y":1761.4557189941406,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"f7dde4c9.c086c8","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":593.3139228820801,"y":509.99999618530273,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"7d40e359.db691c","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":631.3138809204102,"y":1213.0000305175781,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"4e295a6e.146bd4","type":"switchNode","name":"switch: network-model.eipam-v4-address-plan","xml":"<switch test=\"`$network-model.eipam-v4-address-plan`\">","comments":"","outputs":1,"x":1205.8667602539062,"y":485.00001525878906,"z":"6dc3ee07.6f3c9","wires":[["c7f9c5c5.984098","b8f776c8.678198","14d5ccbc.b07fc3","db5e463e.a76ce8","25ce3aeb.1c3556","1e8eee8f.1c8f41","500be3dd.629e5c"]]},{"id":"c7f9c5c5.984098","type":"other","name":"AIC_ATM_UNPROTECTED_V4","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V4\">","comments":"","outputs":1,"x":1589.8666381835938,"y":347,"z":"6dc3ee07.6f3c9","wires":[["1b50937b.47467d"]]},{"id":"1e8eee8f.1c8f41","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1458.866397857666,"y":777.9999532699585,"z":"6dc3ee07.6f3c9","wires":[["1297ddd5.55e232"]]},{"id":"b8f776c8.678198","type":"other","name":"AIC_ATM_PROTECTED_V4","xml":"<outcome value=\"AIC_ATM_PROTECTED_V4\">","comments":"","outputs":1,"x":1584.866455078125,"y":605.0000152587891,"z":"6dc3ee07.6f3c9","wires":[["a8bc86cd.e9adb8"]]},{"id":"c46ef9dd.702ad8","type":"set","name":"set ATM-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-U US/CALA\"/>\n","comments":"","x":2779.616668701172,"y":339.25000381469727,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"a8bc86cd.e9adb8","type":"set","name":"set EIPAM ATM-P...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-P ' + $tmp.region`\"/>\n","comments":"","x":1814.7319641113281,"y":605.2500095367432,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"588def21.4b782","type":"set","name":"set EIPAM DP-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1894.4822120666504,"y":412.25000762939453,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"14d5ccbc.b07fc3","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V4","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V4\">","comments":"","outputs":1,"x":1623.482177734375,"y":411.00001525878906,"z":"6dc3ee07.6f3c9","wires":[["588def21.4b782"]]},{"id":"db5e463e.a76ce8","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V4","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V4\">","comments":"","outputs":1,"x":1605.482177734375,"y":671.9999771118164,"z":"6dc3ee07.6f3c9","wires":[["cc123b02.749538"]]},{"id":"25ce3aeb.1c3556","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V4","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V4\">","comments":"","outputs":1,"x":1596.482177734375,"y":475.00001525878906,"z":"6dc3ee07.6f3c9","wires":[["bf8177bc.929288"]]},{"id":"cc123b02.749538","type":"set","name":"set EIPAM DP-P...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-P ' + $tmp.region`\"/>\n","comments":"","x":1857.4822082519531,"y":671.0000114440918,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"bf8177bc.929288","type":"set","name":"set EIPAM DP-Private...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-Private ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1864.2322082519531,"y":473.75000953674316,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"1297ddd5.55e232","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"EIPAM Address Plan is not valid.\" />\n\t","comments":"","x":1645.4819984436035,"y":778.3002767562866,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"aede8b94.3dd928","type":"get-resource","name":"get-resource V4 - validate if level 1 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1363.8905334472656,"y":153.00000190734863,"z":"6dc3ee07.6f3c9","wires":[["979a0232.c8ca8","d3d655a1.81da98","d0f4f252.81e2f"]]},{"id":"48b02ca2.3c15d4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1862.890365600586,"y":97.99999618530273,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"979a0232.c8ca8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1714.8904571533203,"y":135.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["a8a45e63.55859"]]},{"id":"bd6316dd.01f488","type":"get-resource","name":"get-resource V6 - validate if level 1 pool does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1437.8904113769531,"y":987.4505271911621,"z":"6dc3ee07.6f3c9","wires":[["755fa51f.051f6c","acfb8f9c.8b719","7a94d503.2b709c"]]},{"id":"755fa51f.051f6c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1786.0333633422852,"y":942.4505395889282,"z":"6dc3ee07.6f3c9","wires":[["d76959c0.6c0b08"]]},{"id":"d76959c0.6c0b08","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1891.8904132843018,"y":973.4505271911621,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"acfb8f9c.8b719","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1731.8904132843018,"y":1016.4505271911621,"z":"6dc3ee07.6f3c9","wires":[["6d0fdc64.45e2c4"]]},{"id":"a76a1da4.57966","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":926.9715576171875,"y":153,"z":"6dc3ee07.6f3c9","wires":[["9616eb47.081718","ae32d988.98a7b8","4dfeeca6.6acf74"]]},{"id":"9616eb47.081718","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1105.9716491699219,"y":154,"z":"6dc3ee07.6f3c9","wires":[["aede8b94.3dd928"]]},{"id":"ae32d988.98a7b8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1109.9716796875,"y":188,"z":"6dc3ee07.6f3c9","wires":[["1d817bf1.6e6ed4"]]},{"id":"1d817bf1.6e6ed4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1250.9715576171875,"y":187,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"7d2cc75f.256b88","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1435.9715881347656,"y":817.0000152587891,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"5c12bfff.591ad","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":995.0525360107422,"y":987.1502380371094,"z":"6dc3ee07.6f3c9","wires":[["3091df64.495d8","c1ccb031.3b0dd","66b6b8f5.87f508"]]},{"id":"3091df64.495d8","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1177.0525360107422,"y":988.1502380371094,"z":"6dc3ee07.6f3c9","wires":[["bd6316dd.01f488"]]},{"id":"c1ccb031.3b0dd","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1178.0525360107422,"y":1033.1502380371094,"z":"6dc3ee07.6f3c9","wires":[["cfa3c1cf.d3542"]]},{"id":"cfa3c1cf.d3542","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1317.0525512695312,"y":1033.1502075195312,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"d3eb1f70.63b4f","type":"switchNode","name":"switch: tmp.region","xml":"<switch test=\"`$tmp.region`\">","comments":"","outputs":1,"x":358.61720275878906,"y":327,"z":"6dc3ee07.6f3c9","wires":[["2d405261.474d8e"]]},{"id":"2d405261.474d8e","type":"other","name":"USA","xml":"<outcome value=\"USA\">","comments":"","outputs":1,"x":529.6172103881836,"y":327,"z":"6dc3ee07.6f3c9","wires":[["7d12cbbb.84e944"]]},{"id":"7d12cbbb.84e944","type":"set","name":"set: region to US","xml":"<set>\n\t<parameter name=\"tmp.region\" value=\"US\" />\n","comments":"","x":685.6172103881836,"y":327,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"6e747bb2.c77de4","type":"switchNode","name":"switch: tmp.region","xml":"<switch test=\"`$tmp.region`\">","comments":"","outputs":1,"x":1847.6450500488281,"y":283.7500057220459,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"ea6b61f4.f3c03","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2588.1450576782227,"y":340.25000381469727,"z":"6dc3ee07.6f3c9","wires":[["c46ef9dd.702ad8"]]},{"id":"ec65c0d5.ad202","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2588.145050048828,"y":379.25000381469727,"z":"6dc3ee07.6f3c9","wires":[["c46ef9dd.702ad8"]]},{"id":"1b50937b.47467d","type":"set","name":"set EIPAM ATM-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1831.3718528747559,"y":348.7500057220459,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"9b8273cf.516a7","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2159.6500854492188,"y":413,"z":"6dc3ee07.6f3c9","wires":[["50068753.808278"]]},{"id":"f5544ca1.d2498","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2162.6500854492188,"y":445,"z":"6dc3ee07.6f3c9","wires":[["50068753.808278"]]},{"id":"df5f268.74b93d8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2164.1217651367188,"y":479,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"50068753.808278","type":"set","name":"set EIPAM DP-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-U US/CALA\"/>\n","comments":"","x":2352.1217651367188,"y":422,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"354f6964.9359f6","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2060.1217651367188,"y":519,"z":"6dc3ee07.6f3c9","wires":[["8ed8c8a6.0a2b88"]]},{"id":"55bc8b35.36fae4","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2063.1217651367188,"y":551,"z":"6dc3ee07.6f3c9","wires":[["8ed8c8a6.0a2b88"]]},{"id":"4a22e406.2769ec","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2064.5934448242188,"y":587,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"8ed8c8a6.0a2b88","type":"set","name":"set EIPAM DP-Private US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-Private US/CALA\"/>\n","comments":"","x":2262.121826171875,"y":533,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"3ea5f5f2.660d4a","type":"save","name":"insert EIPAM_IP_POOLS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v4-level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $tmp.v4-qip-pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1649.3138122558594,"y":2026.9009246826172,"z":"6dc3ee07.6f3c9","wires":[["4fc3b13.1b5e75","cb1fbb3e.9ae378","9d9c30f0.bfcd6"]]},{"id":"4f20cdc5.ce5d74","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":316.31373596191406,"y":2024.9009094238281,"z":"6dc3ee07.6f3c9","wires":[["c756b985.74f438","d7077282.32388","7dde4fe0.5fed5"]]},{"id":"d7077282.32388","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":512.3137969970703,"y":2057.900909423828,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"c756b985.74f438","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":511.31382751464844,"y":2022.900894165039,"z":"6dc3ee07.6f3c9","wires":[["eafb15f2.ced188"]]},{"id":"54364f4e.86c9","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1045.3137664794922,"y":2025.9009094238281,"z":"6dc3ee07.6f3c9","wires":[["d1ac24b0.594b48","55c4a88b.3bbf18"]]},{"id":"7dde4fe0.5fed5","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":512.2032012939453,"y":2088.295196533203,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"d1ac24b0.594b48","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1245.3137664794922,"y":2025.9009094238281,"z":"6dc3ee07.6f3c9","wires":[["c5a5d0d6.05f92","8c62f6ce.ae9f38"]]},{"id":"c5a5d0d6.05f92","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1430.5239715576172,"y":2026.9009246826172,"z":"6dc3ee07.6f3c9","wires":[["3ea5f5f2.660d4a"]]},{"id":"8c62f6ce.ae9f38","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1429.5239715576172,"y":2064.900924682617,"z":"6dc3ee07.6f3c9","wires":[["892ac8ba.478b28"]]},{"id":"ac181a44.58b678","type":"switchNode","name":"switch: network-model.eipam-v6-address-plan","xml":"<switch test=\"`$network-model.eipam-v6-address-plan`\">","comments":"","outputs":1,"x":1309.8605346679688,"y":1242.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["998c14eb.3f7248","80c73b8c.18b6f8","a88b17f9.0808e8","196b5b3a.8bc225","31c46282.a455fe","f3fa83c7.d2a72","8e27759a.8d4fc8"]]},{"id":"998c14eb.3f7248","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1657.8606901168823,"y":1239.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["6031017.2f6c7"]]},{"id":"f3fa83c7.d2a72","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1667.8606567382812,"y":1619.6006469726562,"z":"6dc3ee07.6f3c9","wires":[["1bbf3844.a518e8"]]},{"id":"80c73b8c.18b6f8","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value=\"AIC_ATM_PROTECTED_V6\">","comments":"","outputs":1,"x":1658.8606567382812,"y":1361.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["b61678d6.a75618"]]},{"id":"2d4b0cbe.c106a4","type":"set","name":"set ATM-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-U US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2925.861083984375,"y":1132.6006546020508,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"a88b17f9.0808e8","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1692.4761962890625,"y":1409.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["9c87b3d0.2a4ab"]]},{"id":"196b5b3a.8bc225","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":1687.4762573242188,"y":1580.6006774902344,"z":"6dc3ee07.6f3c9","wires":[["ffc23e8a.ea5e7"]]},{"id":"31c46282.a455fe","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":1672.4762573242188,"y":1514.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["260b6372.66e11c"]]},{"id":"683ba220.bdfd4c","type":"set","name":"set EIPAM DP-Private...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-Private ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2980.4761962890625,"y":1543.6006546020508,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"1bbf3844.a518e8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"EIPAM Address Plan is not valid.\" />\n\t","comments":"","x":1816.4764976501465,"y":1618.9008083343506,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"f198d989.da91f8","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2734.3894119262695,"y":1133.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["2d4b0cbe.c106a4"]]},{"id":"1a4744ba.b6db7b","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2734.389404296875,"y":1172.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["2d4b0cbe.c106a4"]]},{"id":"fe10c05f.fd8f2","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2737.1160888671875,"y":1205.6006927490234,"z":"6dc3ee07.6f3c9","wires":[["ce940217.e14ff"]]},{"id":"ce940217.e14ff","type":"set","name":"set EIPAM ATM-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2920.1161499023438,"y":1209.6006546020508,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"1f26bc21.ed2444","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2757.644287109375,"y":1332.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["fa8eca78.b78638"]]},{"id":"a4b8515f.1e731","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2760.644287109375,"y":1364.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["fa8eca78.b78638"]]},{"id":"5d47f6cc.d34df8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2762.115966796875,"y":1398.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["fc2eb964.bbd8e8"]]},{"id":"5b545946.be5228","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2775.1158447265625,"y":1482.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["58832e6d.14734"]]},{"id":"3fc23e86.c0b2e2","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2778.1158447265625,"y":1514.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["58832e6d.14734"]]},{"id":"2e39e070.22d6b","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2779.5875244140625,"y":1550.6006546020508,"z":"6dc3ee07.6f3c9","wires":[["683ba220.bdfd4c"]]},{"id":"58832e6d.14734","type":"set","name":"set EIPAM DP-Private US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-Private US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2977.1159057617188,"y":1496.6006546020508,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"892ac8ba.478b28","type":"save","name":"insert EIPAM_IP_POOLS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v4-level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $tmp.level1-key-value ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1647.8362121582031,"y":2065.7509384155273,"z":"6dc3ee07.6f3c9","wires":[["4fc3b13.1b5e75","cb1fbb3e.9ae378","9d9c30f0.bfcd6"]]},{"id":"ee635c77.3edaa","type":"save","name":"insert EIPAM_IP_POOLS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v6-level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $tmp.v6-qip-pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1646.5000305175781,"y":2187.900924682617,"z":"6dc3ee07.6f3c9","wires":[["80223e6e.1e1bc","cb1fbb3e.9ae378","9d9c30f0.bfcd6"]]},{"id":"81702e48.02ed2","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":315.4999694824219,"y":2183.900909423828,"z":"6dc3ee07.6f3c9","wires":[["4269ade.b697754","fa55f05.ad22e1","1c5e05b8.c0b46a"]]},{"id":"fa55f05.ad22e1","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":511.5000305175781,"y":2216.900909423828,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"4269ade.b697754","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":510.50006103515625,"y":2181.900894165039,"z":"6dc3ee07.6f3c9","wires":[["ff7097a5.2445a8"]]},{"id":"75ad3e3.bae7ac","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1062.5,"y":2185.900909423828,"z":"6dc3ee07.6f3c9","wires":[["b043e234.3ccba","c7888924.cf81f8"]]},{"id":"1c5e05b8.c0b46a","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":511.3894348144531,"y":2247.295196533203,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"b043e234.3ccba","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1265.4999694824219,"y":2159.900909423828,"z":"6dc3ee07.6f3c9","wires":[["480befa6.aff2d","843fced5.bca99"]]},{"id":"480befa6.aff2d","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1426.7102508544922,"y":2188.900924682617,"z":"6dc3ee07.6f3c9","wires":[["ee635c77.3edaa"]]},{"id":"843fced5.bca99","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1428.710189819336,"y":2223.900924682617,"z":"6dc3ee07.6f3c9","wires":[["682ef59d.bd6ccc"]]},{"id":"682ef59d.bd6ccc","type":"save","name":"insert EIPAM_IP_POOLS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v6-level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $tmp.level1-key-value ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1647.022476196289,"y":2224.750778198242,"z":"6dc3ee07.6f3c9","wires":[["80223e6e.1e1bc","cb1fbb3e.9ae378","9d9c30f0.bfcd6"]]},{"id":"94b879b3.2c6d48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\n","comments":"","x":2105.8364219665527,"y":2111.351348876953,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"80223e6e.1e1bc","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1938.8364562988281,"y":2197.201202392578,"z":"6dc3ee07.6f3c9","wires":[["94b879b3.2c6d48"]]},{"id":"4fc3b13.1b5e75","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1960.8364562988281,"y":2040.2012023925781,"z":"6dc3ee07.6f3c9","wires":[["94b879b3.2c6d48"]]},{"id":"d3d655a1.81da98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1713.7522430419922,"y":99.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["48b02ca2.3c15d4"]]},{"id":"d0f4f252.81e2f","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1374.7523193359375,"y":228.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["1cadfb2f.7c4855"]]},{"id":"7a94d503.2b709c","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1496.9744873046875,"y":1077.4504699707031,"z":"6dc3ee07.6f3c9","wires":[["d4642437.67b8a8"]]},{"id":"ab1f59fa.bc8a28","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":2290.974609375,"y":959.4505004882812,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"de6d3f5d.9271","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":254.07363891601562,"y":2269.501739501953,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"4a355dc8.b91904","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1011.6351699829102,"y":1803.2012023925781,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"cb1fbb3e.9ae378","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1938.6353149414062,"y":2137.351348876953,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"9d9c30f0.bfcd6","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1939.3140258789062,"y":2093.351348876953,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"4da2c6f8.8fd8f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1550.3139953613281,"y":1652.6006164550781,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"4e418bcf.7dd274","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1293.401008605957,"y":898.0000381469727,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"8d5048f5.5af5f8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1412.4010314941406,"y":1724.7507629394531,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"4270a1fe.6fc57","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2029.83935546875,"y":130.99999618530273,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"1cadfb2f.7c4855","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":803.4609680175781,"y":614.0000305175781,"z":"6dc3ee07.6f3c9","wires":[["4e295a6e.146bd4","150e6bd8.81df94","a21e5aab.edf9e8","f6408602.6c6e38","5be47438.2e9b1c"]]},{"id":"4dfeeca6.6acf74","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1109.4609375,"y":219,"z":"6dc3ee07.6f3c9","wires":[["1cadfb2f.7c4855"]]},{"id":"36e65a91.f23396","type":"switchNode","name":"switch: tmp.create-v4-pool-flag","xml":"<switch test=\"`$tmp.create-v4-pool-flag`\">","comments":"","outputs":1,"x":836.1005096435547,"y":2024.3513488769531,"z":"6dc3ee07.6f3c9","wires":[["45812ad5.8fc274","f1ff3af9.fb01b8"]]},{"id":"eafb15f2.ced188","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":652.1005096435547,"y":2071.351348876953,"z":"6dc3ee07.6f3c9","wires":[["36e65a91.f23396"]]},{"id":"ff7097a5.2445a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":654.1005096435547,"y":2213.351348876953,"z":"6dc3ee07.6f3c9","wires":[["d466e078.d4e8b"]]},{"id":"d466e078.d4e8b","type":"switchNode","name":"switch: tmp.create-v6-pool-flag","xml":"<switch test=\"`$tmp.create-v6-pool-flag`\">","comments":"","outputs":1,"x":833.1005249023438,"y":2182.351348876953,"z":"6dc3ee07.6f3c9","wires":[["ed3cdb83.f7b648","345e8d8e.846422"]]},{"id":"45812ad5.8fc274","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1020.0675659179688,"y":1978.5014953613281,"z":"6dc3ee07.6f3c9","wires":[["54364f4e.86c9"]]},{"id":"f1ff3af9.fb01b8","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1030.0675659179688,"y":2077.501495361328,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"ed3cdb83.f7b648","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1029.0675659179688,"y":2141.501495361328,"z":"6dc3ee07.6f3c9","wires":[["75ad3e3.bae7ac"]]},{"id":"345e8d8e.846422","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1031.0675659179688,"y":2239.501495361328,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"ea8f54b6.fbc178","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>","comments":"","outputs":1,"x":2025.01953125,"y":1019.4505004882812,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"d4642437.67b8a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":973.5090789794922,"y":1395.9009094238281,"z":"6dc3ee07.6f3c9","wires":[["ac181a44.58b678","dd380ea7.76015","8d6278e2.6e90d8","e1049ec5.94e4f","8da006d2.7f55a8"]]},{"id":"66b6b8f5.87f508","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1180.8153076171875,"y":1074.4505004882812,"z":"6dc3ee07.6f3c9","wires":[["d4642437.67b8a8"]]},{"id":"9ed33bd1.14ef08","type":"switchNode","name":"switch: tmp.create-v4-pool-flag","xml":"<switch test=\"`$tmp.create-v4-pool-flag`\">","comments":"","outputs":1,"x":322.26275634765625,"y":1659.5014953613281,"z":"6dc3ee07.6f3c9","wires":[["519b37d4.1c93f8","d1d416bf.13e748"]]},{"id":"519b37d4.1c93f8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":527.2627563476562,"y":1661.5014953613281,"z":"6dc3ee07.6f3c9","wires":[["dacc275b.c28ca8"]]},{"id":"d1d416bf.13e748","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":527.2627563476562,"y":1713.5014953613281,"z":"6dc3ee07.6f3c9","wires":[["191d33d1.417a7c"]]},{"id":"191d33d1.417a7c","type":"switchNode","name":"switch: tmp.create-v6-pool-flag","xml":"<switch test=\"`$tmp.create-v6-pool-flag`\">","comments":"","outputs":1,"x":391.26275634765625,"y":1823.5014953613281,"z":"6dc3ee07.6f3c9","wires":[["2675fdbd.2ff072","49ecfe56.73744"]]},{"id":"2675fdbd.2ff072","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":582.3138732910156,"y":1827.2012023925781,"z":"6dc3ee07.6f3c9","wires":[["dacc275b.c28ca8"]]},{"id":"55c4a88b.3bbf18","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v4-level1-key-name`\"/>\n<parameter name=\"field6\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.v4-level2-key-name`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1187.611171722412,"y":2070.6517515182495,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"c7888924.cf81f8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v6-level1-key-name`\"/>\n<parameter name=\"field6\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.v6-level2-key-name`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1196.611083984375,"y":2241.6515197753906,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"a8a45e63.55859","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1865.590087890625,"y":135.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["4270a1fe.6fc57","b85dffae.db0b"]]},{"id":"b85dffae.db0b","type":"set","name":"set eipam-pool.v4.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"true\"/>\n","comments":"","x":2068.590087890625,"y":174.99999618530273,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"3315c8cc.a1f408","type":"set","name":"set eipam-pool.v6.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"true\"/>\n","comments":"","x":2088.689208984375,"y":1065.4505004882812,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"6d0fdc64.45e2c4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1881.587158203125,"y":1015.4504699707031,"z":"6dc3ee07.6f3c9","wires":[["ea8f54b6.fbc178","3315c8cc.a1f408"]]},{"id":"49ecfe56.73744","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":581.5780639648438,"y":1880.3513488769531,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"a58ac782.1df4c8","type":"get-resource","name":"get-resource V4 - validate if level 2 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and parent_pool = $tmp.v4-level1-key-value and level = 2 and key_value = $tmp.v4-level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1781.635009765625,"y":218.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["d3d655a1.81da98","d441f2ab.dcc1"]]},{"id":"d441f2ab.dcc1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2100.460693359375,"y":225.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["333eed20.e7d002"]]},{"id":"5c0a8e64.9776a","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>","comments":"","outputs":1,"x":2393.460693359375,"y":203.99999618530273,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"333eed20.e7d002","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2248.21142578125,"y":224.99999618530273,"z":"6dc3ee07.6f3c9","wires":[["5c0a8e64.9776a","ccaeba29.4acba8"]]},{"id":"ccaeba29.4acba8","type":"set","name":"set eipam-pool.v4.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"true\"/>\n\t<parameter name=\"tmp.eipam-pool-row.pool-id\" value=\"$tmp.eipam-pool-row\"/>\t\n","comments":"","x":2463.21142578125,"y":242.99999618530273,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"412eb16f.56358","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2108.7882080078125,"y":1134.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["a043a4f0.fddc18"]]},{"id":"a9b4d095.e336b","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v6-level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>","comments":"","outputs":1,"x":2423.7882080078125,"y":1115.6006164550781,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"a043a4f0.fddc18","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2259.5389404296875,"y":1120.6006164550781,"z":"6dc3ee07.6f3c9","wires":[["a9b4d095.e336b","48066cd9.ab0d14"]]},{"id":"48066cd9.ab0d14","type":"set","name":"set eipam-pool.v6.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"true\"/>\n","comments":"","x":2462.5389404296875,"y":1159.6006164550781,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"7999536.e89ceac","type":"get-resource","name":"get-resource V6 - validate if level 2 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and parent_pool = $tmp.v6-level1-key-value and level = 2 and key_value = $tmp.v6-level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1814.7880859375,"y":1155.4504699707031,"z":"6dc3ee07.6f3c9","wires":[["755fa51f.051f6c","412eb16f.56358"]]},{"id":"d6a82de8.b3cde","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2579.856231689453,"y":313.2612190246582,"z":"6dc3ee07.6f3c9","wires":[["c46ef9dd.702ad8"]]},{"id":"57216709.5730d8","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2153.1062622070312,"y":384.0111999511719,"z":"6dc3ee07.6f3c9","wires":[["50068753.808278"]]},{"id":"a592aecf.0ca4f","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2042.1062622070312,"y":496.0111389160156,"z":"6dc3ee07.6f3c9","wires":[["8ed8c8a6.0a2b88"]]},{"id":"3a2161a3.8dec4e","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2733.1064453125,"y":1096.0111770629883,"z":"6dc3ee07.6f3c9","wires":[["2d4b0cbe.c106a4"]]},{"id":"73369c47.a3a034","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2740.1063232421875,"y":1310.0111770629883,"z":"6dc3ee07.6f3c9","wires":[["fa8eca78.b78638"]]},{"id":"2d62d630.f2cbaa","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2763.106201171875,"y":1460.0111770629883,"z":"6dc3ee07.6f3c9","wires":[["58832e6d.14734"]]},{"id":"fa8eca78.b78638","type":"set","name":"set EIPAM DP-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-U US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2992.1063232421875,"y":1334.0111770629883,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"fc2eb964.bbd8e8","type":"set","name":"set EIPAM DP-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2952.1063232421875,"y":1400.0111770629883,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"6031017.2f6c7","type":"set","name":"set EIPAM ATM-U-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U-V6 ' + $tmp.region`\"/>\n","comments":"","x":1920.50634765625,"y":1240.9999465942383,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"b61678d6.a75618","type":"set","name":"set EIPAM ATM-P-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-P-V6 ' + $tmp.region`\"/>\n","comments":"","x":1919.5062255859375,"y":1360.9999465942383,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"9c87b3d0.2a4ab","type":"set","name":"set EIPAM AIC-DP-U-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-U-V6 ' + $tmp.region`\"/>\n\t<parameter name=\"tmp.v6-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v6-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"","x":1993.106201171875,"y":1408.9999465942383,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"260b6372.66e11c","type":"set","name":"set EIPAM AIC-DP-PRIVATE-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-PRIVATE-V6 ' + $tmp.region`\"/>\n\t<parameter name=\"tmp.v6-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v6-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"","x":1943.106201171875,"y":1514.9999465942383,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"ffc23e8a.ea5e7","type":"set","name":"set EIPAM AIC-DP-P-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-P-V6 ' + $tmp.region`\"/>\n\t<parameter name=\"tmp.v6-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v6-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"","x":1974.106201171875,"y":1577.9999465942383,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"2d4ba575.af754a","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2067.106201171875,"y":739.8000411987305,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"4f23f0e5.6fcf8","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2065.106201171875,"y":706.8000335693359,"z":"6dc3ee07.6f3c9","wires":[["b9a94ee7.e0806"]]},{"id":"b9a94ee7.e0806","type":"set","name":"set EIPAM DP-P CALA...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-P CALA\"/>\n","comments":"","x":2247.3060913085938,"y":703.8000030517578,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"8ba23c37.a01ef","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2469.5562438964844,"y":612.55002784729,"z":"6dc3ee07.6f3c9","wires":[["5eeb30ec.4871b"]]},{"id":"5eeb30ec.4871b","type":"set","name":"set EIPAM ATM-P CALA...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-P CALA\"/>\n","comments":"","x":2651.756134033203,"y":609.5499973297119,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"d6168e7a.a83d2","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2474.5562438964844,"y":648.55002784729,"z":"6dc3ee07.6f3c9","wires":[[]]},{"id":"500be3dd.629e5c","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V4\">","comments":"","outputs":1,"x":1572.5062255859375,"y":727.0000076293945,"z":"6dc3ee07.6f3c9","wires":[["8db5c326.7d3e5"]]},{"id":"8db5c326.7d3e5","type":"set","name":"set AIC-AIM-LANDING-V4...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-AIM-LANDING-V4 ' + $tmp.region`\"/>\n\t<parameter name=\"tmp.v4-level1-key-name\" value=\"CLLI:CLOUD_REGION\" />\n\t<parameter name=\"tmp.v4-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n","comments":"","x":1852.0062522888184,"y":727.2500114440918,"z":"6dc3ee07.6f3c9","wires":[]},{"id":"8e27759a.8d4fc8","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V6\">","comments":"","outputs":1,"x":1680,"y":1293.75,"z":"6dc3ee07.6f3c9","wires":[["915104aa.5dac18"]]},{"id":"915104aa.5dac18","type":"set","name":"set AIC-AIM-LANDING-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-AIM-LANDING-V6 ' + $tmp.region`\"/>\n\n","comments":"","x":1959.5000267028809,"y":1294.0000038146973,"z":"6dc3ee07.6f3c9","wires":[]}]
+[{"id":"b1e35553.e3bfd8","type":"dgstart","name":"DGSTART","outputs":1,"x":93.75,"y":21.25,"z":"671ce86d.8d2c68","wires":[["4a0e5a13.1693c4"]]},{"id":"4a0e5a13.1693c4","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":322.70002365112305,"y":25.99525547027588,"z":"671ce86d.8d2c68","wires":[["33da628b.7f09be"]]},{"id":"465b4154.68803","type":"comment","name":"ChangeLog","info":"1.0.1: Release 1702 - add logic for vIPR & SRIOV address plans\n1.0.2: Release 1702 - Req update to change level 1 & 2 key-name & key-values\n1.0.3: Release 1707 - Add CA to map to ATM-U US/CALA or ATM-P CALA for vIPR & SRIOV\n1.0.4: Release 1702/1707 - SRIOV V6 Data Plane QIP Pool names need to be unique per region due to Regional Registry.\n\t\t\t\t\t\t- Add CA to map to ATM-U US/CALA or ATM-P CALA for V4 vIPR & SRIOV\n1.0.5: Release 1707 - Add AIM V4 Landing Network\n5/10 - 1707 - updated pool key-names for AIC_AIM_LANDING_NETWORK_V4\n6/20 - 1710 - change any underscores _  to colon : for all level 1 and level 2 Pool KeyNames\n6/21 - 1710 - Task 403314 - QIP Parent pool consolidation\n\t\t\t- New V6 plans - \n\t\t\t\tAIC_ATM_UNPROTECTED_V6\n\t\t\t\tAIC_ATM_PROTECTED_V6\n\t\t\t\tAIC_AIM_LANDING_V6\n8/27 - 1710 - QIP parent pool fix:\n\t\t\tqip parent pool initial string is specifying 'AIC-ATM-P-V6 US' instead of 'ATM-P-V6 US'\n \t\tand \n \t\t\tqip parent pool initial string is specifying 'AIC-ATM-U-V6 US' instead of 'ATM-U-V6 US'\n10/16 - 1712 - fix QIP parent pool for AIC_DATA_PLANE_PRIVATE_V6 to\n\t\t\tAIC-DP-Private-V6 \n3/8/18 - 1806 - 506678 -Level 1 keyName CLLI:CLOUD_REGION changed to LOCATION_CLLI8:CLOUD_REGION_ID\n","comments":"","x":82.57898712158203,"y":69.00761580467224,"z":"671ce86d.8d2c68","wires":[]},{"id":"33da628b.7f09be","type":"method","name":"eipam-create-network-role-pool","xml":"<method rpc='eipam-create-network-role-pool' mode='sync'>\n","comments":"","outputs":1,"x":668.7986526489258,"y":24.934850692749023,"z":"671ce86d.8d2c68","wires":[["6fb67e52.127ee"]]},{"id":"72a866ff.265f18","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":1055.7596435546875,"y":881.7043533325195,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"bfd64303.cba0d","type":"set","name":"set EIPAM plan info for createPool & Level 1 pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name\" value=\"`$tmp.v4-level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"Y\" />\n\t<parameter name=\"tmp.v4-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1165.7501525878906,"y":727.2500381469727,"z":"671ce86d.8d2c68","wires":[]},{"id":"8723628f.ec62d","type":"execute","name":"execute EIPAM createPool","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"createPool\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":786.7499618530273,"y":1843.3102111816406,"z":"671ce86d.8d2c68","wires":[["a2d2b13e.347da","fc4487d2.9973a8"]]},{"id":"6fb67e52.127ee","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":103.43618774414062,"y":160.31005859375,"z":"671ce86d.8d2c68","wires":[["73f190a8.da613","ea69d377.6b346","18428726.6668f9","2d645839.a9da98","9b0dcedf.993d8","cc79dafb.5a0f88","42e9f305.5ad03c","2b5dec5a.82a674"]]},{"id":"73f190a8.da613","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":368.7499885559082,"y":451.31005859375,"z":"671ce86d.8d2c68","wires":[["a2f0b15e.70ab1","c08fb879.735408","c4f350f4.e1192"]]},{"id":"c08fb879.735408","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":580.7500495910645,"y":464.31008529663086,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"a2f0b15e.70ab1","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":579.7501068115234,"y":420.31005859375,"z":"671ce86d.8d2c68","wires":[["cbecece7.a9df2"]]},{"id":"77b69955.433aa8","type":"set","name":"set EIPAM level 2 pool info for createPool","xml":"<set>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name\" value=\"`$tmp.v4-level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"","x":1508.7502517700195,"y":855.3101110458374,"z":"671ce86d.8d2c68","wires":[]},{"id":"47c51d56.d814e4","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1077.750114440918,"y":807.3100280761719,"z":"671ce86d.8d2c68","wires":[["98d6658a.f83818","7ebb0f77.f9ebc","f16219cb.07f268"]]},{"id":"98d6658a.f83818","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1277.7502136230469,"y":805.3100357055664,"z":"671ce86d.8d2c68","wires":[["a3017592.1814d8"]]},{"id":"7ebb0f77.f9ebc","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1281.7502136230469,"y":856.3100357055664,"z":"671ce86d.8d2c68","wires":[["77b69955.433aa8"]]},{"id":"cbecece7.a9df2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":733.7500495910645,"y":419.31006240844727,"z":"671ce86d.8d2c68","wires":[["2e9ec5c3.95bffa"]]},{"id":"55b8774.03fed88","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1078.7591247558594,"y":925.4602432250977,"z":"671ce86d.8d2c68","wires":[]},{"id":"a2d2b13e.347da","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":996.7500076293945,"y":1844.7005767822266,"z":"671ce86d.8d2c68","wires":[["c233274b.46fdb8"]]},{"id":"c233274b.46fdb8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while creating pool in EIPAM.\" />\n\t","comments":"","x":1160.7500381469727,"y":1847.7006072998047,"z":"671ce86d.8d2c68","wires":[]},{"id":"ea69d377.6b346","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"N\" />\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"N\" />\n\t<parameter name='eipam-ip-block.plans_length' value='0' />\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"false\"/>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"false\"/>\n\t<parameter name=\"tmp.v4-level1-key-name\" value=\"LOCATION_CLLI8:CLOUD_REGION_ID\" />\n\t<parameter name=\"tmp.v4-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />\n\t<parameter name=\"tmp.v6-level1-key-name\" value=\"LOCATION_CLLI8:CLOUD_REGION_ID\" />\n\t<parameter name=\"tmp.v6-level2-key-name\" value=\"NETWORK_ROLE:NETWORK_ID\" />","comments":"","x":360.77919006347656,"y":169.3409013748169,"z":"671ce86d.8d2c68","wires":[]},{"id":"1370ae94.2ed421","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`\"/>\n","comments":"","outputs":1,"x":1147.8700790405273,"y":1704.2500305175781,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"c2349a89.e63848","type":"set","name":"set EIPAM plan info for createPool & Level 1 pool","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag\" value=\"N\"/>\t\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"`$tmp.qip-pool`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length\" value=\"1\"/>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"1\"/>\n\n\t<!-- Level 1 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name\" value=\"`$tmp.v6-level1-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value\" value=\"`$tmp.level1-key-value`\"/>\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"Y\" />\n\t<parameter name=\"tmp.v6-qip-pool\" value=\"`$tmp.qip-pool`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1274.8608016967773,"y":1549.4953918457031,"z":"671ce86d.8d2c68","wires":[]},{"id":"18428726.6668f9","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":346.8605728149414,"y":1119.8557434082031,"z":"671ce86d.8d2c68","wires":[["cf170a45.39fbd8","8380962.b71d868","fb92f059.9bf3a"]]},{"id":"8380962.b71d868","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":617.8606033325195,"y":1163.8557434082031,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"cf170a45.39fbd8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":622.860710144043,"y":1118.8557434082031,"z":"671ce86d.8d2c68","wires":[["a6ca91b1.cd8ec"]]},{"id":"470604f.1f1defc","type":"set","name":"set EIPAM level 2 pool info for createPool","xml":"<set>\n\t<!-- Number of Pool Levels -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length\" value=\"`$eipam-ip-block.level`\"/>\n\n\t<!-- Level 2 -->\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool\" value=\"\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name\" value=\"`$tmp.v6-level2-key-name`\"/>\n\t<parameter name=\"eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value\" value=\"`$tmp.level2-key-value`\"/>","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1612.8612670898438,"y":1681.5554504394531,"z":"671ce86d.8d2c68","wires":[]},{"id":"53aa667.0545c98","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1199.86083984375,"y":1651.5554504394531,"z":"671ce86d.8d2c68","wires":[["dfd7d84f.278c48","a0dbb883.f07f38","5b58a917.a585a8"]]},{"id":"dfd7d84f.278c48","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1395.8609466552734,"y":1647.5554504394531,"z":"671ce86d.8d2c68","wires":[["111b2725.ddb219"]]},{"id":"a0dbb883.f07f38","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1397.8609466552734,"y":1680.5554504394531,"z":"671ce86d.8d2c68","wires":[["470604f.1f1defc"]]},{"id":"a6ca91b1.cd8ec","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":770.8606491088867,"y":1123.8557434082031,"z":"671ce86d.8d2c68","wires":[["db7c500e.60761"]]},{"id":"f2ef27ec.8abfc8","type":"set","name":"set: eipam-ip-block.plans[]++","xml":"<set>\n\t<parameter name=\"eipam-ip-block.plans_length\" value=\"`$eipam-ip-block.plans_length + 1`\" />","comments":"","x":1204.8698501586914,"y":1753.7057189941406,"z":"671ce86d.8d2c68","wires":[]},{"id":"c4f350f4.e1192","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":581.7500495910645,"y":502.24999618530273,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"fb92f059.9bf3a","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":619.7500076293945,"y":1205.2500305175781,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"c61ef2de.7d164","type":"switchNode","name":"switch: network-model.eipam-v4-address-plan","xml":"<switch test=\"`$network-model.eipam-v4-address-plan`\">","comments":"","outputs":1,"x":1194.3028869628906,"y":477.25001525878906,"z":"671ce86d.8d2c68","wires":[["67b8e0ba.8ece2","41a91841.64b578","1ba1294a.c4b277","5d54f7b2.33c818","a6c98492.4bd7b8","4492594e.6f6158","f266991e.4d8b98"]]},{"id":"67b8e0ba.8ece2","type":"other","name":"AIC_ATM_UNPROTECTED_V4","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V4\">","comments":"","outputs":1,"x":1578.3027648925781,"y":339.25,"z":"671ce86d.8d2c68","wires":[["a2f5b410.adfb98"]]},{"id":"4492594e.6f6158","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1447.3025245666504,"y":770.2499532699585,"z":"671ce86d.8d2c68","wires":[["a17b1de9.fbd48"]]},{"id":"41a91841.64b578","type":"other","name":"AIC_ATM_PROTECTED_V4","xml":"<outcome value=\"AIC_ATM_PROTECTED_V4\">","comments":"","outputs":1,"x":1573.3025817871094,"y":597.2500152587891,"z":"671ce86d.8d2c68","wires":[["6f8af5f.5ba2b0c"]]},{"id":"fbb6f7fb.eb9e68","type":"set","name":"set ATM-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-U US/CALA\"/>\n","comments":"","x":2768.0527954101562,"y":331.50000381469727,"z":"671ce86d.8d2c68","wires":[]},{"id":"6f8af5f.5ba2b0c","type":"set","name":"set EIPAM ATM-P...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-P ' + $tmp.region`\"/>\n","comments":"","x":1803.1680908203125,"y":597.5000095367432,"z":"671ce86d.8d2c68","wires":[]},{"id":"97b65909.e41af8","type":"set","name":"set EIPAM DP-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1882.9183387756348,"y":404.50000762939453,"z":"671ce86d.8d2c68","wires":[]},{"id":"1ba1294a.c4b277","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V4","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V4\">","comments":"","outputs":1,"x":1611.9183044433594,"y":403.25001525878906,"z":"671ce86d.8d2c68","wires":[["97b65909.e41af8"]]},{"id":"5d54f7b2.33c818","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V4","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V4\">","comments":"","outputs":1,"x":1593.9183044433594,"y":664.2499771118164,"z":"671ce86d.8d2c68","wires":[["f12d0d49.6fdfa"]]},{"id":"a6c98492.4bd7b8","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V4","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V4\">","comments":"","outputs":1,"x":1584.9183044433594,"y":467.25001525878906,"z":"671ce86d.8d2c68","wires":[["6bb7a3b7.e1bc6c"]]},{"id":"f12d0d49.6fdfa","type":"set","name":"set EIPAM DP-P...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-P ' + $tmp.region`\"/>\n","comments":"","x":1845.9183349609375,"y":663.2500114440918,"z":"671ce86d.8d2c68","wires":[]},{"id":"6bb7a3b7.e1bc6c","type":"set","name":"set EIPAM DP-Private...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-Private ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1852.6683349609375,"y":466.00000953674316,"z":"671ce86d.8d2c68","wires":[]},{"id":"a17b1de9.fbd48","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"EIPAM Address Plan is not valid.\" />\n\t","comments":"","x":1633.918125152588,"y":770.5502767562866,"z":"671ce86d.8d2c68","wires":[]},{"id":"3c34fa66.819b26","type":"get-resource","name":"get-resource V4 - validate if level 1 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1352.32666015625,"y":145.25000190734863,"z":"671ce86d.8d2c68","wires":[["53145a94.91bb24","f9d620c5.b9fdb","82325a25.6fda68"]]},{"id":"1e38df01.b48511","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1851.3264923095703,"y":90.24999618530273,"z":"671ce86d.8d2c68","wires":[]},{"id":"53145a94.91bb24","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1703.3265838623047,"y":128.24999618530273,"z":"671ce86d.8d2c68","wires":[["98e191b0.3245b"]]},{"id":"6ff05864.4e26e8","type":"get-resource","name":"get-resource V6 - validate if level 1 pool does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1426.3265380859375,"y":979.7005271911621,"z":"671ce86d.8d2c68","wires":[["98e8c8fd.fc8fc8","43ccd693.540118","29943cc2.4ad614"]]},{"id":"98e8c8fd.fc8fc8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1774.4694900512695,"y":934.7005395889282,"z":"671ce86d.8d2c68","wires":[["b4b080e4.6c3ec"]]},{"id":"b4b080e4.6c3ec","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_POOLS failed.\" />\n\t","comments":"","x":1880.3265399932861,"y":965.7005271911621,"z":"671ce86d.8d2c68","wires":[]},{"id":"43ccd693.540118","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1720.3265399932861,"y":1008.7005271911621,"z":"671ce86d.8d2c68","wires":[["f1991d8d.215cf"]]},{"id":"2e9ec5c3.95bffa","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":915.4076843261719,"y":145.25,"z":"671ce86d.8d2c68","wires":[["69ce5101.6e09c","21237994.3b7226","8a1e2363.8393d"]]},{"id":"69ce5101.6e09c","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1094.4077758789062,"y":146.25,"z":"671ce86d.8d2c68","wires":[["3c34fa66.819b26"]]},{"id":"21237994.3b7226","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1098.4078063964844,"y":180.25,"z":"671ce86d.8d2c68","wires":[["ecaaee17.96423"]]},{"id":"ecaaee17.96423","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1239.4076843261719,"y":179.25,"z":"671ce86d.8d2c68","wires":[]},{"id":"a3017592.1814d8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1424.40771484375,"y":809.2500152587891,"z":"671ce86d.8d2c68","wires":[]},{"id":"db7c500e.60761","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":983.4886627197266,"y":979.4002380371094,"z":"671ce86d.8d2c68","wires":[["54d3f13b.69bf3","379a8678.b7d82a","3a748814.f3f638"]]},{"id":"54d3f13b.69bf3","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1165.4886627197266,"y":980.4002380371094,"z":"671ce86d.8d2c68","wires":[["6ff05864.4e26e8"]]},{"id":"379a8678.b7d82a","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1166.4886627197266,"y":1025.4002380371094,"z":"671ce86d.8d2c68","wires":[["853acb8b.376948"]]},{"id":"853acb8b.376948","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1305.4886779785156,"y":1025.4002075195312,"z":"671ce86d.8d2c68","wires":[]},{"id":"2d645839.a9da98","type":"switchNode","name":"switch: tmp.region","xml":"<switch test=\"`$tmp.region`\">","comments":"","outputs":1,"x":347.05332946777344,"y":319.25,"z":"671ce86d.8d2c68","wires":[["b75ffe20.22799"]]},{"id":"b75ffe20.22799","type":"other","name":"USA","xml":"<outcome value=\"USA\">","comments":"","outputs":1,"x":518.053337097168,"y":319.25,"z":"671ce86d.8d2c68","wires":[["deb46eb2.d298e"]]},{"id":"deb46eb2.d298e","type":"set","name":"set: region to US","xml":"<set>\n\t<parameter name=\"tmp.region\" value=\"US\" />\n","comments":"","x":674.053337097168,"y":319.25,"z":"671ce86d.8d2c68","wires":[]},{"id":"2a658604.df3c4a","type":"switchNode","name":"switch: tmp.region","xml":"<switch test=\"`$tmp.region`\">","comments":"","outputs":1,"x":1836.0811767578125,"y":276.0000057220459,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"1a851da0.2e2a02","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2576.581184387207,"y":332.50000381469727,"z":"671ce86d.8d2c68","wires":[["fbb6f7fb.eb9e68"]]},{"id":"bf57b9e0.aef5c8","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2576.5811767578125,"y":371.50000381469727,"z":"671ce86d.8d2c68","wires":[["fbb6f7fb.eb9e68"]]},{"id":"a2f5b410.adfb98","type":"set","name":"set EIPAM ATM-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1819.8079795837402,"y":341.0000057220459,"z":"671ce86d.8d2c68","wires":[]},{"id":"2639a083.65fc7","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2148.086212158203,"y":405.25,"z":"671ce86d.8d2c68","wires":[["a23342d3.cfdf6"]]},{"id":"f7654b11.b2c948","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2151.086212158203,"y":437.25,"z":"671ce86d.8d2c68","wires":[["a23342d3.cfdf6"]]},{"id":"f210b1b7.d48a1","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2152.557891845703,"y":471.25,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"a23342d3.cfdf6","type":"set","name":"set EIPAM DP-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-U US/CALA\"/>\n","comments":"","x":2340.557891845703,"y":414.25,"z":"671ce86d.8d2c68","wires":[]},{"id":"8f3cf7c7.8f4c88","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2048.557891845703,"y":511.25,"z":"671ce86d.8d2c68","wires":[["73c1924a.55773c"]]},{"id":"ade01a79.6d6c78","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2051.557891845703,"y":543.25,"z":"671ce86d.8d2c68","wires":[["73c1924a.55773c"]]},{"id":"b38eed2a.dacce","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2053.029571533203,"y":579.25,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"73c1924a.55773c","type":"set","name":"set EIPAM DP-Private US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-Private US/CALA\"/>\n","comments":"","x":2250.5579528808594,"y":525.25,"z":"671ce86d.8d2c68","wires":[]},{"id":"81959022.63ded","type":"save","name":"insert EIPAM_IP_POOLS for level 1 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v4-level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $tmp.v4-qip-pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1637.7499389648438,"y":2019.1509246826172,"z":"671ce86d.8d2c68","wires":[["65cf4ad7.4cc2a4","609248c0.19a6a8","3dac947.456256c"]]},{"id":"9b0dcedf.993d8","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":304.74986267089844,"y":2017.1509094238281,"z":"671ce86d.8d2c68","wires":[["5341a052.64f08","b3ed9c2d.01d68","207dd074.0c1d5"]]},{"id":"b3ed9c2d.01d68","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":500.7499237060547,"y":2050.150909423828,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"5341a052.64f08","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":499.7499542236328,"y":2015.150894165039,"z":"671ce86d.8d2c68","wires":[["804e6b04.2bc568"]]},{"id":"39ca9f15.9f913","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1033.7498931884766,"y":2018.1509094238281,"z":"671ce86d.8d2c68","wires":[["925ff02f.4fc06","e91bc24.e1f384"]]},{"id":"207dd074.0c1d5","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":500.6393280029297,"y":2080.545196533203,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"925ff02f.4fc06","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1233.7498931884766,"y":2018.1509094238281,"z":"671ce86d.8d2c68","wires":[["5588443c.ce86fc","65c15ebd.8a548"]]},{"id":"5588443c.ce86fc","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1418.9600982666016,"y":2019.1509246826172,"z":"671ce86d.8d2c68","wires":[["81959022.63ded"]]},{"id":"65c15ebd.8a548","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1417.9600982666016,"y":2057.150924682617,"z":"671ce86d.8d2c68","wires":[["dbf17772.efa788"]]},{"id":"9e90b4e5.685478","type":"switchNode","name":"switch: network-model.eipam-v6-address-plan","xml":"<switch test=\"`$network-model.eipam-v6-address-plan`\">","comments":"","outputs":1,"x":1298.2966613769531,"y":1234.8506164550781,"z":"671ce86d.8d2c68","wires":[["f2d0c26b.338f4","3dc70407.23e25c","62218dc9.0b03d4","72e82872.457bd8","8da8e954.08a008","29cbf81d.b5b248","ad40b2c0.1fe35"]]},{"id":"f2d0c26b.338f4","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1646.2968168258667,"y":1231.8506164550781,"z":"671ce86d.8d2c68","wires":[["779a2ab3.4dac84"]]},{"id":"29cbf81d.b5b248","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1656.2967834472656,"y":1611.8506469726562,"z":"671ce86d.8d2c68","wires":[["86866e8b.a9ccf"]]},{"id":"3dc70407.23e25c","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value=\"AIC_ATM_PROTECTED_V6\">","comments":"","outputs":1,"x":1647.2967834472656,"y":1353.8506164550781,"z":"671ce86d.8d2c68","wires":[["ba6ba705.792a38"]]},{"id":"b699dfb9.94482","type":"set","name":"set ATM-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-U US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2914.2972106933594,"y":1124.8506546020508,"z":"671ce86d.8d2c68","wires":[]},{"id":"62218dc9.0b03d4","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":1680.9123229980469,"y":1401.8506546020508,"z":"671ce86d.8d2c68","wires":[["7a13379.3bb03c8"]]},{"id":"72e82872.457bd8","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":1675.9123840332031,"y":1572.8506774902344,"z":"671ce86d.8d2c68","wires":[["97a93bf2.b3eaf8"]]},{"id":"8da8e954.08a008","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":1660.9123840332031,"y":1506.8506164550781,"z":"671ce86d.8d2c68","wires":[["aa300eae.d1cea"]]},{"id":"d136ac74.c3e72","type":"set","name":"set EIPAM DP-Private...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-Private ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2968.912322998047,"y":1535.8506546020508,"z":"671ce86d.8d2c68","wires":[]},{"id":"86866e8b.a9ccf","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"EIPAM Address Plan is not valid.\" />\n\t","comments":"","x":1804.9126243591309,"y":1611.1508083343506,"z":"671ce86d.8d2c68","wires":[]},{"id":"b7101009.44c54","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2722.825538635254,"y":1125.8506546020508,"z":"671ce86d.8d2c68","wires":[["b699dfb9.94482"]]},{"id":"5b0fa391.6713ac","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2722.8255310058594,"y":1164.8506546020508,"z":"671ce86d.8d2c68","wires":[["b699dfb9.94482"]]},{"id":"bd59488.73337b8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2725.552215576172,"y":1197.8506927490234,"z":"671ce86d.8d2c68","wires":[["f0128178.bb014"]]},{"id":"f0128178.bb014","type":"set","name":"set EIPAM ATM-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2908.552276611328,"y":1201.8506546020508,"z":"671ce86d.8d2c68","wires":[]},{"id":"fd003853.3ab588","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2746.0804138183594,"y":1324.8506546020508,"z":"671ce86d.8d2c68","wires":[["beaef1a.a72731"]]},{"id":"f12c9c3a.f80e4","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2749.0804138183594,"y":1356.8506546020508,"z":"671ce86d.8d2c68","wires":[["beaef1a.a72731"]]},{"id":"64a12f23.0b3b4","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2750.5520935058594,"y":1390.8506546020508,"z":"671ce86d.8d2c68","wires":[["35ef16ef.a62d2a"]]},{"id":"8ed5743b.93e438","type":"other","name":"US","xml":"<outcome value=\"US\">","comments":"","outputs":1,"x":2763.551971435547,"y":1474.8506546020508,"z":"671ce86d.8d2c68","wires":[["c789941c.f8b4b8"]]},{"id":"be60672.8d14c98","type":"other","name":"CALA","xml":"<outcome value=\"CALA\">","comments":"","outputs":1,"x":2766.551971435547,"y":1506.8506546020508,"z":"671ce86d.8d2c68","wires":[["c789941c.f8b4b8"]]},{"id":"9e361dca.b20d7","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2768.023651123047,"y":1542.8506546020508,"z":"671ce86d.8d2c68","wires":[["d136ac74.c3e72"]]},{"id":"c789941c.f8b4b8","type":"set","name":"set EIPAM DP-Private US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-Private US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2965.552032470703,"y":1488.8506546020508,"z":"671ce86d.8d2c68","wires":[]},{"id":"dbf17772.efa788","type":"save","name":"insert EIPAM_IP_POOLS for level 2 V4","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v4-level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ,\n             plan_name = $network-model.eipam-v4-address-plan ,\n             address_family = $network-model.ipv4-ip-version ,\n             parent_pool = $tmp.level1-key-value ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v4pool-row'>\n","comments":"","outputs":1,"x":1636.2723388671875,"y":2058.0009384155273,"z":"671ce86d.8d2c68","wires":[["65cf4ad7.4cc2a4","609248c0.19a6a8","3dac947.456256c"]]},{"id":"26bca455.2381fc","type":"save","name":"insert EIPAM_IP_POOLS for level 1 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v6-level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $tmp.v6-qip-pool ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1634.9361572265625,"y":2180.150924682617,"z":"671ce86d.8d2c68","wires":[["49717c3c.d70724","609248c0.19a6a8","3dac947.456256c"]]},{"id":"cc79dafb.5a0f88","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":303.93609619140625,"y":2176.150909423828,"z":"671ce86d.8d2c68","wires":[["33ed8673.d0dd9a","49ebae55.146d3","1aafb008.85465"]]},{"id":"49ebae55.146d3","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":499.9361572265625,"y":2209.150909423828,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"33ed8673.d0dd9a","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":498.9361877441406,"y":2174.150894165039,"z":"671ce86d.8d2c68","wires":[["3f306f73.9afbd"]]},{"id":"516d0114.fd163","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1050.9361267089844,"y":2178.150909423828,"z":"671ce86d.8d2c68","wires":[["6ed4c33b.ceac6c","7f8993e5.f36f2c"]]},{"id":"1aafb008.85465","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":499.8255615234375,"y":2239.545196533203,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"6ed4c33b.ceac6c","type":"switchNode","name":"switch: eipam-ip-block.level","xml":"<switch test=\"`$eipam-ip-block.level`\">","comments":"","outputs":1,"x":1253.9360961914062,"y":2152.150909423828,"z":"671ce86d.8d2c68","wires":[["93c8848c.8c1588","a2247704.ef23a8"]]},{"id":"93c8848c.8c1588","type":"other","name":"1","xml":"<outcome value='1'>","comments":"","outputs":1,"x":1415.1463775634766,"y":2181.150924682617,"z":"671ce86d.8d2c68","wires":[["26bca455.2381fc"]]},{"id":"a2247704.ef23a8","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1417.1463165283203,"y":2216.150924682617,"z":"671ce86d.8d2c68","wires":[["9594d2f3.8e517"]]},{"id":"9594d2f3.8e517","type":"save","name":"insert EIPAM_IP_POOLS for level 2 V6","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_POOLS\n             SET\n             key_name = $tmp.v6-level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ,\n             plan_name = $network-model.eipam-v6-address-plan ,\n             address_family = $network-model.ipv6-ip-version ,\n             parent_pool = $tmp.level1-key-value ,\n             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\n             network_id = $tmp.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-v6pool-row'>\n","comments":"","outputs":1,"x":1635.4586029052734,"y":2217.000778198242,"z":"671ce86d.8d2c68","wires":[["49717c3c.d70724","609248c0.19a6a8","3dac947.456256c"]]},{"id":"75e27eb.4e3088","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\n","comments":"","x":2094.272548675537,"y":2103.601348876953,"z":"671ce86d.8d2c68","wires":[]},{"id":"49717c3c.d70724","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1927.2725830078125,"y":2189.451202392578,"z":"671ce86d.8d2c68","wires":[["75e27eb.4e3088"]]},{"id":"65cf4ad7.4cc2a4","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1949.2725830078125,"y":2032.4512023925781,"z":"671ce86d.8d2c68","wires":[["75e27eb.4e3088"]]},{"id":"f9d620c5.b9fdb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1702.1883697509766,"y":92.24999618530273,"z":"671ce86d.8d2c68","wires":[["1e38df01.b48511"]]},{"id":"82325a25.6fda68","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1363.1884460449219,"y":221.24999618530273,"z":"671ce86d.8d2c68","wires":[["c65b15a0.423ce8"]]},{"id":"29943cc2.4ad614","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1485.4106140136719,"y":1069.7004699707031,"z":"671ce86d.8d2c68","wires":[["fba574b9.9c5788"]]},{"id":"d756a69e.9c4548","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":2279.4107360839844,"y":951.7005004882812,"z":"671ce86d.8d2c68","wires":[]},{"id":"42e9f305.5ad03c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":242.509765625,"y":2261.751739501953,"z":"671ce86d.8d2c68","wires":[]},{"id":"fc4487d2.9973a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1000.0712966918945,"y":1795.4512023925781,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"609248c0.19a6a8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1927.0714416503906,"y":2129.601348876953,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"3dac947.456256c","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1927.7501525878906,"y":2085.601348876953,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"111b2725.ddb219","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Please set the eipam-ip-block.level for appropriate EIPAM request.\" />\n\t","comments":"","x":1538.7501220703125,"y":1644.8506164550781,"z":"671ce86d.8d2c68","wires":[]},{"id":"f16219cb.07f268","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1281.8371353149414,"y":890.2500381469727,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"5b58a917.a585a8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1400.837158203125,"y":1717.0007629394531,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"f5ecd53.ee1ca28","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n","comments":"","outputs":1,"x":2018.2754821777344,"y":123.24999618530273,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"c65b15a0.423ce8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":791.8970947265625,"y":606.2500305175781,"z":"671ce86d.8d2c68","wires":[["c61ef2de.7d164","bfd64303.cba0d","47c51d56.d814e4","72a866ff.265f18","55b8774.03fed88"]]},{"id":"8a1e2363.8393d","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1097.8970642089844,"y":211.25,"z":"671ce86d.8d2c68","wires":[["c65b15a0.423ce8"]]},{"id":"8603a693.0b3078","type":"switchNode","name":"switch: tmp.create-v4-pool-flag","xml":"<switch test=\"`$tmp.create-v4-pool-flag`\">","comments":"","outputs":1,"x":824.5366363525391,"y":2016.6013488769531,"z":"671ce86d.8d2c68","wires":[["3f05b9b9.eb7996","cdd7f409.d7a558"]]},{"id":"804e6b04.2bc568","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":640.5366363525391,"y":2063.601348876953,"z":"671ce86d.8d2c68","wires":[["8603a693.0b3078"]]},{"id":"3f306f73.9afbd","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":642.5366363525391,"y":2205.601348876953,"z":"671ce86d.8d2c68","wires":[["673c772b.a5f748"]]},{"id":"673c772b.a5f748","type":"switchNode","name":"switch: tmp.create-v6-pool-flag","xml":"<switch test=\"`$tmp.create-v6-pool-flag`\">","comments":"","outputs":1,"x":821.5366516113281,"y":2174.601348876953,"z":"671ce86d.8d2c68","wires":[["39c21177.b61cee","5ae38e2b.08254"]]},{"id":"3f05b9b9.eb7996","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1008.5036926269531,"y":1970.7514953613281,"z":"671ce86d.8d2c68","wires":[["39ca9f15.9f913"]]},{"id":"cdd7f409.d7a558","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1018.5036926269531,"y":2069.751495361328,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"39c21177.b61cee","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1017.5036926269531,"y":2133.751495361328,"z":"671ce86d.8d2c68","wires":[["516d0114.fd163"]]},{"id":"5ae38e2b.08254","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1019.5036926269531,"y":2231.751495361328,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"b4192532.9ddbc8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 1 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>","comments":"","outputs":1,"x":2013.4556579589844,"y":1011.7005004882812,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"fba574b9.9c5788","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":961.9452056884766,"y":1388.1509094238281,"z":"671ce86d.8d2c68","wires":[["9e90b4e5.685478","c2349a89.e63848","53aa667.0545c98","f2ef27ec.8abfc8","1370ae94.2ed421"]]},{"id":"3a748814.f3f638","type":"other","name":"2","xml":"<outcome value='2'>","comments":"","outputs":1,"x":1169.2514343261719,"y":1066.7005004882812,"z":"671ce86d.8d2c68","wires":[["fba574b9.9c5788"]]},{"id":"2b5dec5a.82a674","type":"switchNode","name":"switch: tmp.create-v4-pool-flag","xml":"<switch test=\"`$tmp.create-v4-pool-flag`\">","comments":"","outputs":1,"x":310.6988830566406,"y":1651.7514953613281,"z":"671ce86d.8d2c68","wires":[["849ce972.398ce8","f2d274f6.fc2bf8"]]},{"id":"849ce972.398ce8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":515.6988830566406,"y":1653.7514953613281,"z":"671ce86d.8d2c68","wires":[["8723628f.ec62d"]]},{"id":"f2d274f6.fc2bf8","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":515.6988830566406,"y":1705.7514953613281,"z":"671ce86d.8d2c68","wires":[["5b6e0461.e27b6c"]]},{"id":"5b6e0461.e27b6c","type":"switchNode","name":"switch: tmp.create-v6-pool-flag","xml":"<switch test=\"`$tmp.create-v6-pool-flag`\">","comments":"","outputs":1,"x":379.6988830566406,"y":1815.7514953613281,"z":"671ce86d.8d2c68","wires":[["7f8b524a.0e520c","48a8ea56.191444"]]},{"id":"7f8b524a.0e520c","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":570.75,"y":1819.4512023925781,"z":"671ce86d.8d2c68","wires":[["8723628f.ec62d"]]},{"id":"e91bc24.e1f384","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v4-level1-key-name`\"/>\n<parameter name=\"field6\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.v4-level2-key-name`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1176.0472984313965,"y":2062.9017515182495,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"7f8993e5.f36f2c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v6-level1-key-name`\"/>\n<parameter name=\"field6\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field7\" value=\"`$tmp.v6-level2-key-name`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>\n<parameter name=\"field9\" value=\"`$network-model.network-role`\"/>\n<parameter name=\"field10\" value=\"`$tmp.network-id`\"/>\n<parameter name=\"field11\" value=\"Saving to EIPAM_IP_POOLS table.\"/>\n","comments":"","outputs":1,"x":1185.0472106933594,"y":2233.9015197753906,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"98e191b0.3245b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1854.0262145996094,"y":128.24999618530273,"z":"671ce86d.8d2c68","wires":[["f5ecd53.ee1ca28","e553ba19.3496a8"]]},{"id":"e553ba19.3496a8","type":"set","name":"set eipam-pool.v4.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"true\"/>\n","comments":"","x":2057.0262145996094,"y":167.24999618530273,"z":"671ce86d.8d2c68","wires":[]},{"id":"93e6da87.be5cd8","type":"set","name":"set eipam-pool.v6.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"true\"/>\n","comments":"","x":2077.1253356933594,"y":1057.7005004882812,"z":"671ce86d.8d2c68","wires":[]},{"id":"f1991d8d.215cf","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1870.0232849121094,"y":1007.7004699707031,"z":"671ce86d.8d2c68","wires":[["b4192532.9ddbc8","93e6da87.be5cd8"]]},{"id":"48a8ea56.191444","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":570.0141906738281,"y":1872.6013488769531,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"15967988.1c9cf6","type":"get-resource","name":"get-resource V4 - validate if level 2 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and parent_pool = $tmp.v4-level1-key-value and level = 2 and key_value = $tmp.v4-level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1770.0711364746094,"y":211.24999618530273,"z":"671ce86d.8d2c68","wires":[["f9d620c5.b9fdb","1db86321.08547d"]]},{"id":"1db86321.08547d","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2088.8968200683594,"y":218.24999618530273,"z":"671ce86d.8d2c68","wires":[["2d02b4d5.5ba0dc"]]},{"id":"bab14d1a.f6e89","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v4-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>","comments":"","outputs":1,"x":2381.8968200683594,"y":196.24999618530273,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"2d02b4d5.5ba0dc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2236.6475524902344,"y":217.24999618530273,"z":"671ce86d.8d2c68","wires":[["bab14d1a.f6e89","50449dc4.d69064"]]},{"id":"50449dc4.d69064","type":"set","name":"set eipam-pool.v4.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"true\"/>\n\t<parameter name=\"tmp.eipam-pool-row.pool-id\" value=\"$tmp.eipam-pool-row\"/>\t\n","comments":"","x":2451.6475524902344,"y":235.24999618530273,"z":"671ce86d.8d2c68","wires":[]},{"id":"69146eb3.a8b72","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2097.224334716797,"y":1126.8506164550781,"z":"671ce86d.8d2c68","wires":[["2b75247d.4ed9cc"]]},{"id":"4fc18a75.aa3724","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"network-topology-operation\"/>\n<parameter name=\"field3\" value=\"eipam-create-network-role-pool\"/>\n<parameter name=\"field4\" value=\"`$network-model.eipam-v6-address-plan`\"/>\n<parameter name=\"field5\" value=\"`$tmp.v6-level1-key-value`\"/>\n<parameter name=\"field6\" value=\"Level 2 already exists, SKIP.\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-pool-row.pool-id`\"/>\n<parameter name=\"field8\" value=\"`$tmp.level2-key-value`\"/>","comments":"","outputs":1,"x":2412.224334716797,"y":1107.8506164550781,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"2b75247d.4ed9cc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2247.975067138672,"y":1112.8506164550781,"z":"671ce86d.8d2c68","wires":[["4fc18a75.aa3724","faa9253b.c41e38"]]},{"id":"faa9253b.c41e38","type":"set","name":"set eipam-pool.v6.pre-existing","xml":"<set>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"true\"/>\n","comments":"","x":2450.975067138672,"y":1151.8506164550781,"z":"671ce86d.8d2c68","wires":[]},{"id":"ca48c06b.6abbf","type":"get-resource","name":"get-resource V6 - validate if level 2 pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and parent_pool = $tmp.v6-level1-key-value and level = 2 and key_value = $tmp.v6-level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1803.2242126464844,"y":1147.7004699707031,"z":"671ce86d.8d2c68","wires":[["98e8c8fd.fc8fc8","69146eb3.a8b72"]]},{"id":"d28253ff.52d7e","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2568.2923583984375,"y":305.5112190246582,"z":"671ce86d.8d2c68","wires":[["fbb6f7fb.eb9e68"]]},{"id":"7fb79ad1.2afa64","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2141.5423889160156,"y":376.2611999511719,"z":"671ce86d.8d2c68","wires":[["a23342d3.cfdf6"]]},{"id":"619aba98.f43684","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2030.5423889160156,"y":488.2611389160156,"z":"671ce86d.8d2c68","wires":[["73c1924a.55773c"]]},{"id":"f07307d6.211c88","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2721.5425720214844,"y":1088.2611770629883,"z":"671ce86d.8d2c68","wires":[["b699dfb9.94482"]]},{"id":"17b0c8e9.e422d7","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2728.542449951172,"y":1302.2611770629883,"z":"671ce86d.8d2c68","wires":[["beaef1a.a72731"]]},{"id":"9371014c.72917","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2751.5423278808594,"y":1452.2611770629883,"z":"671ce86d.8d2c68","wires":[["c789941c.f8b4b8"]]},{"id":"beaef1a.a72731","type":"set","name":"set EIPAM DP-U US/CALA","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-U US/CALA\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2980.542449951172,"y":1326.2611770629883,"z":"671ce86d.8d2c68","wires":[]},{"id":"35ef16ef.a62d2a","type":"set","name":"set EIPAM DP-U...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'DP-U ' + $tmp.region`\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":2940.542449951172,"y":1392.2611770629883,"z":"671ce86d.8d2c68","wires":[]},{"id":"779a2ab3.4dac84","type":"set","name":"set EIPAM ATM-U-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-U-V6 ' + $tmp.region`\"/>\n","comments":"","x":1908.9424743652344,"y":1233.2499465942383,"z":"671ce86d.8d2c68","wires":[]},{"id":"ba6ba705.792a38","type":"set","name":"set EIPAM ATM-P-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'ATM-P-V6 ' + $tmp.region`\"/>\n","comments":"","x":1907.9423522949219,"y":1353.2499465942383,"z":"671ce86d.8d2c68","wires":[]},{"id":"7a13379.3bb03c8","type":"set","name":"set EIPAM AIC-DP-U-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-U-V6 ' + $tmp.region`\"/>\n","comments":"","x":1981.5423278808594,"y":1401.2499465942383,"z":"671ce86d.8d2c68","wires":[]},{"id":"aa300eae.d1cea","type":"set","name":"set EIPAM AIC-DP-PRIVATE-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-Private-V6 ' + $tmp.region`\"/>\n","comments":"","x":1967.2566146850586,"y":1507.2499558925629,"z":"671ce86d.8d2c68","wires":[]},{"id":"97a93bf2.b3eaf8","type":"set","name":"set EIPAM AIC-DP-P-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-DP-P-V6 ' + $tmp.region`\"/>\n\n","comments":"","x":1962.5423278808594,"y":1570.2499465942383,"z":"671ce86d.8d2c68","wires":[]},{"id":"e0576429.d09e08","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2055.5423278808594,"y":732.0500411987305,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"1a9339e8.6fcd06","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2053.5423278808594,"y":699.0500335693359,"z":"671ce86d.8d2c68","wires":[["da883746.91be98"]]},{"id":"da883746.91be98","type":"set","name":"set EIPAM DP-P CALA...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"DP-P CALA\"/>\n","comments":"","x":2235.742218017578,"y":696.0500030517578,"z":"671ce86d.8d2c68","wires":[]},{"id":"5e2e2641.3c3c18","type":"other","name":"CA","xml":"<outcome value=\"CA\">","comments":"","outputs":1,"x":2457.9923706054688,"y":604.80002784729,"z":"671ce86d.8d2c68","wires":[["59a4cbd0.c70be4"]]},{"id":"59a4cbd0.c70be4","type":"set","name":"set EIPAM ATM-P CALA...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"ATM-P CALA\"/>\n","comments":"","x":2640.1922607421875,"y":601.7999973297119,"z":"671ce86d.8d2c68","wires":[]},{"id":"a2000837.3fc4c8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2462.9923706054688,"y":640.80002784729,"z":"671ce86d.8d2c68","wires":[[]]},{"id":"f266991e.4d8b98","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V4\">","comments":"","outputs":1,"x":1560.9423522949219,"y":719.2500076293945,"z":"671ce86d.8d2c68","wires":[["5fede67.bc7d418"]]},{"id":"5fede67.bc7d418","type":"set","name":"set AIC-AIM-LANDING-V4...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-AIM-LANDING-V4 ' + $tmp.region`\"/>\n","comments":"","x":1840.4423789978027,"y":719.5000114440918,"z":"671ce86d.8d2c68","wires":[]},{"id":"ad40b2c0.1fe35","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value=\"AIC_AIM_LANDING_NETWORK_V6\">","comments":"","outputs":1,"x":1668.4361267089844,"y":1286,"z":"671ce86d.8d2c68","wires":[["4023d30e.17618c"]]},{"id":"4023d30e.17618c","type":"set","name":"set AIC-AIM-LANDING-V6...","xml":"<set>\n\t<parameter name=\"tmp.qip-pool\" value=\"`'AIC-AIM-LANDING-V6 ' + $tmp.region`\"/>\n\n","comments":"","x":1947.9361534118652,"y":1286.2500038146973,"z":"671ce86d.8d2c68","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-FQPN.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-FQPN.json
new file mode 100644 (file)
index 0000000..dece94e
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"79ba259.c7ba2dc","type":"dgstart","name":"DGSTART","outputs":1,"x":128.75,"y":29.321433067321777,"z":"c652763a.596c58","wires":[["834c6c7c.38e56"]]},{"id":"a766aebf.c7668","type":"method","name":"method generate-FQPN","xml":"<method rpc='generate-FQPN' mode='sync'>\n","comments":"","outputs":1,"x":207.92857360839844,"y":80.55556201934814,"z":"c652763a.596c58","wires":[["48815f52.bf419"]]},{"id":"48815f52.bf419","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":199.14287567138672,"y":129.35717582702637,"z":"c652763a.596c58","wires":[["d06c8acf.1c9578","8a089a57.322c78","e7614998.3c8608","52804378.5be62c","11421c9.063bce3","72bce7b0.c625f8"]]},{"id":"e7614998.3c8608","type":"execute","name":"call EIPAM getPlanTopology","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"getPlanTopology\">","comments":"","outputs":1,"x":486.2739562988281,"y":462.1508502960205,"z":"c652763a.596c58","wires":[["6de13210.1501dc"]]},{"id":"6de13210.1501dc","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":702.6550140380859,"y":461.8774833679199,"z":"c652763a.596c58","wires":[["7bb873e9.96d31c"]]},{"id":"7bb873e9.96d31c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while getting Keyname and Keyvalue for address plan, '+ $eipam-ip-block.planName + ', from EIPAM'`\" />\n","comments":"","x":858.5477600097656,"y":461.984712600708,"z":"c652763a.596c58","wires":[]},{"id":"52804378.5be62c","type":"switchNode","name":"switch: TopologyDetails_length","xml":"<switch test='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`'>\n","comments":"","outputs":1,"x":494.3255310058594,"y":513.7897052764893,"z":"c652763a.596c58","wires":[["c388a5c.dc49c58"]]},{"id":"c388a5c.dc49c58","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":714.6429138183594,"y":513.7897171974182,"z":"c652763a.596c58","wires":[["bf892896.f0b5f8"]]},{"id":"556322b7.09182c","type":"switchNode","name":"switch: ADDRESS_PLAN_POLICIES.key-value-source","xml":"<switch test='`$db.address-plan-policies.key-value-source`'>\n","comments":"","outputs":1,"x":1627.8692474365234,"y":1339.2140498161316,"z":"c652763a.596c58","wires":[["17619a28.56be46","a36564be.c9d5d8","ac8b9d9a.5938b","faed7e83.a3dec","6922f413.90927c","58efd662.e89bb8","98de2fde.1b752","342731c4.6e7bfe","428d578.e3b2ea8","e3f636d7.501068","c469dc37.0566","7875fd31.d3ddc4"]]},{"id":"5b3b0420.b4d8fc","type":"get-resource","name":"get-resource ADDRESS_PLAN_POLICIES","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT key_value_source from ADDRESS_PLAN_POLICIES WHERE key_name = $tmp.eipam.key-name '\n  pfx='db.address-plan-policies'>\n\n","comments":"","outputs":1,"x":1590.0676879882812,"y":1091.3571662902832,"z":"c652763a.596c58","wires":[["48d5f70.28eab08","77df7ce.be04c84"]]},{"id":"2611123d.4966de","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No ADDRESS_PLAN_POLICIES entry found for key_name = ' + $eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$key-index].KeyName`\" />\n","comments":"","x":2031.496109008789,"y":1115.785638809204,"z":"c652763a.596c58","wires":[]},{"id":"48d5f70.28eab08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1855.8533782958984,"y":1071.7379970550537,"z":"c652763a.596c58","wires":[["12294024.d7218"]]},{"id":"77df7ce.be04c84","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1864.4248085021973,"y":1116.0237102508545,"z":"c652763a.596c58","wires":[["2611123d.4966de"]]},{"id":"12294024.d7218","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading ADDRESS_PLAN_POLICIES table\" />\n","comments":"","x":2030.8533096313477,"y":1070.8808975219727,"z":"c652763a.596c58","wires":[]},{"id":"17619a28.56be46","type":"outcome","name":"AddressPlanPolicyDG-Routing_Characteristic","xml":"<outcome value='AddressPlanPolicyDG-Routing_Characteristic'>\n","comments":"","outputs":1,"x":2054.6192169189453,"y":1339.214047908783,"z":"c652763a.596c58","wires":[["bc1689b0.948c28"]]},{"id":"a36564be.c9d5d8","type":"outcome","name":"AddressPlanPolicyDG-Location_Clli8","xml":"<outcome value='AddressPlanPolicyDG-Location_Clli8'>\n","comments":"","outputs":1,"x":2029.8691711425781,"y":1658.8528876304626,"z":"c652763a.596c58","wires":[["91b70338.c7b13"]]},{"id":"58efd662.e89bb8","type":"outcome","name":"AddressPlanPolicyDG-Complex_region","xml":"<outcome value='AddressPlanPolicyDG-Complex_region'>\n","comments":"","outputs":1,"x":2035.3413391113281,"y":1886.4084401130676,"z":"c652763a.596c58","wires":[["6742bcbb.0ddaf4"]]},{"id":"ac8b9d9a.5938b","type":"outcome","name":"AddressPlanPolicyDG-Vrf_Name","xml":"<outcome value='AddressPlanPolicyDG-Vrf_Name'>\n","comments":"","outputs":1,"x":2017.1864700317383,"y":1714.79735994339,"z":"c652763a.596c58","wires":[["532b3408.a7a4ec"]]},{"id":"6922f413.90927c","type":"outcome","name":"AddressPlanPolicyDG-Network_Name","xml":"<outcome value='AddressPlanPolicyDG-Network_Name'>\n","comments":"","outputs":1,"x":2033.3413543701172,"y":1944.6584401130676,"z":"c652763a.596c58","wires":[["5608d152.f0554"]]},{"id":"faed7e83.a3dec","type":"outcome","name":"cloud_region_id","xml":"<outcome value='cloud_region_id'>\n","comments":"","outputs":1,"x":1963.9841918945312,"y":1819.1584076881409,"z":"c652763a.596c58","wires":[["b8165c7b.aaca1"]]},{"id":"92c5a401.157c78","type":"get-resource","name":"get-resource ROUTING_CHARACTERISTIC_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ROUTING_CHARACTERISTIC_MAPPING WHERE network_role = $generate-FQPN-input.network-role '\n  pfx='db.routing-characteristic_mapping[]'>\n\n","comments":"","outputs":1,"x":1631.2025299072266,"y":1186.380919456482,"z":"c652763a.596c58","wires":[["b458e390.eafb8","673c853f.b4e3fc"]]},{"id":"ae609e11.948b2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No ROUTING_CHARACTERISTIC_MAPPING entry found for network_role = ' + $generate-FQPN-input.network-role`\" />\n","comments":"","x":2113.8809356689453,"y":1209.5593843460083,"z":"c652763a.596c58","wires":[]},{"id":"b458e390.eafb8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1938.2382049560547,"y":1165.511742591858,"z":"c652763a.596c58","wires":[["156061cd.bc051e"]]},{"id":"673c853f.b4e3fc","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1946.8096351623535,"y":1209.7974557876587,"z":"c652763a.596c58","wires":[["ae609e11.948b2"]]},{"id":"156061cd.bc051e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading ROUTING_CHARACTERISTIC_MAPPING table\" />\n","comments":"","x":2113.238136291504,"y":1165.6546430587769,"z":"c652763a.596c58","wires":[]},{"id":"85a0ca28.00cfa8","type":"switchNode","name":"switch: db.routing-characteristic_mapping_length > 1","xml":"<switch test='`$db.routing-characteristic_mapping_length &gt; 1`'>\n","comments":"","outputs":1,"x":2662.952606201172,"y":1413.6306977272034,"z":"c652763a.596c58","wires":[["2e6904ff.ed698c","af330778.3b34e8"]]},{"id":"1cce08c7.fcb087","type":"switchNode","name":"switch: db | input - vrf-name","xml":"<switch test='`$db.routing-characteristic_mapping[$routing-index].vrf-name == $generate-FQPN-input.vrf-name`'>\n","comments":"","outputs":1,"x":3666.952682495117,"y":1414.1307196617126,"z":"c652763a.596c58","wires":[["799cf5ac.b53bbc"]]},{"id":"e0608aa0.6ff978","type":"for","name":"for : db.routing-characteristic_mapping[]","xml":"<for index=\"routing-index\" start=\"0\" end=\"`$db.routing-characteristic_mapping_length`\">","comments":"","outputs":1,"x":3354.7026748657227,"y":1414.3807139396667,"z":"c652763a.596c58","wires":[["1cce08c7.fcb087"]]},{"id":"87ceba81.9e11c8","type":"comment","name":"Required INPUTS","info":"\ngenerate-FQPN-input.plan-name\n","comments":"","x":733.6984329223633,"y":36.2262396812439,"z":"c652763a.596c58","wires":[]},{"id":"2e6904ff.ed698c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2961.702621459961,"y":1414.130699634552,"z":"c652763a.596c58","wires":[["1b5a8392.ee28fc"]]},{"id":"799cf5ac.b53bbc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3878.4526596069336,"y":1414.1307120323181,"z":"c652763a.596c58","wires":[["94e0b4be.54b248"]]},{"id":"7d4a759a.d52b0c","type":"set","name":"set tmp.key-value = -1","xml":"<set>\n<parameter name='tmp.key-value' value='-1' />\n","comments":"","x":2567.928855895996,"y":1339.5117325782776,"z":"c652763a.596c58","wires":[]},{"id":"7a552f25.1a804","type":"set","name":"set tmp.key-value","xml":"<set>\n<parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[$routing-index].routing-characteristic`' />\n","comments":"","x":4243.647106170654,"y":1413.630639659034,"z":"c652763a.596c58","wires":[]},{"id":"e29adbda.480b38","type":"switchNode","name":"switch: tmp.key-value","xml":"<switch test='`$tmp.key-value`'>\n","comments":"","outputs":1,"x":2563.4884719848633,"y":1570.7456669807434,"z":"c652763a.596c58","wires":[["34acbd6f.5f5a22"]]},{"id":"34acbd6f.5f5a22","type":"outcomeTrue","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":2786.2384719848633,"y":1570.9956669807434,"z":"c652763a.596c58","wires":[["2ba9ab7a.eb4db4"]]},{"id":"2ba9ab7a.eb4db4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No matching ROUTING_CHARACTERISTIC_MAPPING.vrf-name found\" />\n","comments":"","x":2945.7384719848633,"y":1570.7456669807434,"z":"c652763a.596c58","wires":[]},{"id":"bc1689b0.948c28","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2333.369354248047,"y":1339.3806958198547,"z":"c652763a.596c58","wires":[["85a0ca28.00cfa8","e29adbda.480b38","7d4a759a.d52b0c"]]},{"id":"bf892896.f0b5f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"eipam-ip-block.getPlanTopologyResponse.TopologyDetails is null\" />\n","comments":"","x":874.5595855712891,"y":513.9008159637451,"z":"c652763a.596c58","wires":[]},{"id":"7691310e.0f762","type":"set","name":"set pool-index","xml":"<set>\n<parameter name='pool-index'\n   value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />\n","comments":"","x":938.0118560791016,"y":815.2421541213989,"z":"c652763a.596c58","wires":[]},{"id":"94e0b4be.54b248","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4042.8414268493652,"y":1414.07519197464,"z":"c652763a.596c58","wires":[["7a552f25.1a804","5a920854.123588"]]},{"id":"28db23f.554f3dc","type":"set","name":"set tmp.key-value","xml":"<set>\n<parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].routing-characteristic`' />\n","comments":"","x":3134.337303161621,"y":1514.1942734718323,"z":"c652763a.596c58","wires":[]},{"id":"af330778.3b34e8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2960.253860473633,"y":1513.5990109443665,"z":"c652763a.596c58","wires":[["28db23f.554f3dc"]]},{"id":"91b70338.c7b13","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.location-clli8`' />\n","comments":"","x":2333.2618713378906,"y":1658.8251557350159,"z":"c652763a.596c58","wires":[]},{"id":"8a089a57.322c78","type":"set","name":"set eipam-ip-block.plan-name","xml":"<set>\n<parameter name='eipam-ip-block.plan-name' value='`$generate-FQPN-input.plan-name`' />\n","comments":"","x":492.4484329223633,"y":358.41671562194824,"z":"c652763a.596c58","wires":[]},{"id":"83fd072a.1aa948","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1282.3095703125,"y":1091.119131565094,"z":"c652763a.596c58","wires":[["5b3b0420.b4d8fc","556322b7.09182c","e335771d.ce26a8","92c5a401.157c78"]]},{"id":"bdaefa9a.44bad8","type":"switchNode","name":"switch: Response.planName vs eipam-ip-block..plan-name","xml":"<switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>\n","comments":"","outputs":1,"x":1075.6270370483398,"y":768.6031675338745,"z":"c652763a.596c58","wires":[["8ab7144b.dc5198"]]},{"id":"8ab7144b.dc5198","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1390.3572578430176,"y":768.8095111846924,"z":"c652763a.596c58","wires":[["7719b06a.805b2"]]},{"id":"7719b06a.805b2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'eipam response plan-name ['+ $eipam-ip-block.getPlanTopologyResponse.PlanName + ' is not the same as input '+$eipam-ip-block.planName`\" />\n","comments":"","x":1555.7858123779297,"y":768.8095045089722,"z":"c652763a.596c58","wires":[]},{"id":"7266b10d.a764e","type":"comment","name":"eipam-ip-block.getPlanTopologyResponse.TopologyDetails[]","info":"eipam-ip-block.getPlanTopologyResponse.TopologyDetails[0].KeyName = CLLI_CLOUD_REGION\neipam-ip-block.getPlanTopologyResponse.TopologyDetails[0].Level = 1\neipam-ip-block.getPlanTopologyResponse.TopologyDetails[1].Level = 2\neipam-ip-block.getPlanTopologyResponse.TopologyDetails[1].KeyName = NETWORK_ROLE_NETWORK_ID\n\n","comments":"","x":1166.5238189697266,"y":455.3453063964844,"z":"c652763a.596c58","wires":[]},{"id":"b8165c7b.aaca1","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.aic-cloud-region`' />\n","comments":"","x":2199.011947631836,"y":1819.6306710243225,"z":"c652763a.596c58","wires":[]},{"id":"6742bcbb.0ddaf4","type":"set","name":"set tmp.key-value = complex.region","xml":"<set>\n<parameter name='tmp.key-value' value='`$aai.complex.region`' />\n","comments":"","x":2376.369110107422,"y":1885.8807015419006,"z":"c652763a.596c58","wires":[]},{"id":"5608d152.f0554","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.network-name`' />\n","comments":"","x":2344.2263107299805,"y":1944.8450865745544,"z":"c652763a.596c58","wires":[]},{"id":"98de2fde.1b752","type":"other","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1937.6984895978658,"y":2429.8689430100576,"z":"c652763a.596c58","wires":[["732765e4.1228cc"]]},{"id":"732765e4.1228cc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unknown ADDRESS_PLAN_POLICIES: ' + $db.address-plan-policies.key-value-source`\" />\n","comments":"","x":2106.127113342285,"y":2429.8689255714417,"z":"c652763a.596c58","wires":[]},{"id":"d06c8acf.1c9578","type":"switchNode","name":"switch: generate-FQPN-input.plan-name","xml":"<switch test='`$generate-FQPN-input.plan-name`'>\n","comments":"","outputs":1,"x":526.1429901123047,"y":303.9641819000244,"z":"c652763a.596c58","wires":[["4bc5e326.49bffc"]]},{"id":"5a920854.123588","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":4215.761917114258,"y":1458.916515827179,"z":"c652763a.596c58","wires":[]},{"id":"456fc76a.e60c68","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>","comments":"","x":3281.6190338134766,"y":1460.0593342781067,"z":"c652763a.596c58","wires":[]},{"id":"1b5a8392.ee28fc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3110.6191787719727,"y":1414.0593552589417,"z":"c652763a.596c58","wires":[["e0608aa0.6ff978","456fc76a.e60c68"]]},{"id":"20e9e6c3.d21d5a","type":"set","name":"set generate-FQPN-output.pools[]","xml":"<set>\n<parameter name='generate-FQPN-output.pools[$pool-index].key-name'\n   value='`$tmp.getPlanTopologyResponse.key-name`' />\n<parameter name='generate-FQPN-output.pools[$pool-index].key-value'\n\tvalue='`$tmp.final.key-value`' />","comments":"","x":991.9999160766602,"y":1671.2973651885986,"z":"c652763a.596c58","wires":[]},{"id":"722e807f.31865","type":"switchNode","name":"switch: generate-FQPN-input.aic-cloud-region","xml":"<switch test='`$generate-FQPN-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":1348.571632385254,"y":68.10711860656738,"z":"c652763a.596c58","wires":[["6d671e0c.0d3ad"]]},{"id":"6d671e0c.0d3ad","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1621.0716400146484,"y":67.60711860656738,"z":"c652763a.596c58","wires":[["3c163883.e92c88"]]},{"id":"3c163883.e92c88","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.aic-cloud-region is null\" />\n","comments":"","x":1782.9883117675781,"y":67.71821737289429,"z":"c652763a.596c58","wires":[]},{"id":"342731c4.6e7bfe","type":"other","name":"AddressPlanPolicyDG-Subnet_Role","xml":"<outcome value='AddressPlanPolicyDG-Subnet_Role'>\n","comments":"","outputs":1,"x":2024.6191101074219,"y":2039.6307015419006,"z":"c652763a.596c58","wires":[["f9fc2911.d11238"]]},{"id":"fdbcf3f7.07358","type":"comment","name":"Change History","info":"iTrack 8790\n- add validation for network-role in input for null\n- change query of ROUTING_CHARATERISTIC table with network-role from input.\n- Return generate-FQPN-output.pools[]\n- set pools_length to .getPlanTopologyResponse.TopologyDetails_length separately at the end of the call.\niTrack 10846\n- node 35, fixed error-message, generate-FQPN-input.network-role\niTrack 11310\n- changed ADDRESS_PLAN_POLICIES  cloud_region_id from using vnfapi nodestring for cloud-region-id\n- added AddressPlanPolicyDG-Network_Role and AddressPlanPolicyDG-Network_Id to ADDRESS_PLAN_POLICIES  query and resolution\n- updated vrf-name resolution to use tosca data if not found in ADDRESS_PLAN_POLICIES\n- support compound key-name\niTrack 11945\n- added network-collection and zone \n- remove validation of all input except plan-name\n","comments":"","x":938.7500152587891,"y":66.4642915725708,"z":"c652763a.596c58","wires":[]},{"id":"882fb87d.50bb98","type":"switchNode","name":"switch: generate-FQPN-input.location-clli8","xml":"<switch test='`$generate-FQPN-input.location-clli8`'>\n","comments":"","outputs":1,"x":1337.3215713500977,"y":117.8928279876709,"z":"c652763a.596c58","wires":[["5745e190.c2fb9"]]},{"id":"5745e190.c2fb9","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1609.8215789794922,"y":117.3928279876709,"z":"c652763a.596c58","wires":[["52a22cfc.08e524"]]},{"id":"52a22cfc.08e524","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.location-clli8 is null\" />\n","comments":"","x":1771.7382507324219,"y":117.5039267539978,"z":"c652763a.596c58","wires":[]},{"id":"e2f939ea.05fa78","type":"switchNode","name":"switch: generate-FQPN-input.complex-region","xml":"<switch test='`$generate-FQPN-input.complex-region`'>\n","comments":"","outputs":1,"x":1346.8930130004883,"y":167.89282417297363,"z":"c652763a.596c58","wires":[["dfe11059.90d46"]]},{"id":"dfe11059.90d46","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1619.3930206298828,"y":167.39282417297363,"z":"c652763a.596c58","wires":[["5a14e8bf.c22d98"]]},{"id":"5a14e8bf.c22d98","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.complex-region is null\" />\n","comments":"","x":1781.3096923828125,"y":167.50392293930054,"z":"c652763a.596c58","wires":[]},{"id":"d362a8cb.2c2918","type":"switchNode","name":"switch: generate-FQPN-input.network-name","xml":"<switch test='`$generate-FQPN-input.network-name`'>\n","comments":"","outputs":1,"x":1343.6073455810547,"y":216.46425247192383,"z":"c652763a.596c58","wires":[["cbc1f670.e78b58"]]},{"id":"cbc1f670.e78b58","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1616.1073532104492,"y":215.96425247192383,"z":"c652763a.596c58","wires":[["35ddce88.fff762"]]},{"id":"35ddce88.fff762","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.network-name is null\" />\n","comments":"","x":1778.024024963379,"y":216.07535123825073,"z":"c652763a.596c58","wires":[]},{"id":"f706cd27.421b7","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.plan-name is null\" />\n","comments":"","x":958.46435546875,"y":303.74999618530273,"z":"c652763a.596c58","wires":[]},{"id":"4bc5e326.49bffc","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":781.8928985595703,"y":303.7500238418579,"z":"c652763a.596c58","wires":[["f706cd27.421b7"]]},{"id":"e335771d.ce26a8","type":"set","name":"set tmp.key-value = null","xml":"<set>\n<parameter name='tmp.key-value' value='' />\n","comments":"","x":1530.6787338256836,"y":1259.7380094528198,"z":"c652763a.596c58","wires":[]},{"id":"55980981.9f2b58","type":"for","name":"for resp-index: getPlanTopologyResponse.TopologyDetails[]","xml":"<for index=\"resp-index\" start=\"0\" end=\"`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`\">","comments":"","outputs":1,"x":567.9880828857422,"y":768.6667146682739,"z":"c652763a.596c58","wires":[["bdaefa9a.44bad8","7691310e.0f762","49723ed6.b5077","fcb3b4d4.db2118","795df082.1ef0e","20e9e6c3.d21d5a","f02298f2.395ed8"]]},{"id":"eccbf901.ff5b08","type":"switchNode","name":"switch: generate-FQPN-input.network-role","xml":"<switch test='`$generate-FQPN-input.network-role`'>\n","comments":"","outputs":1,"x":1335.6072845458984,"y":312.749963760376,"z":"c652763a.596c58","wires":[["26ab2719.de3898"]]},{"id":"26ab2719.de3898","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1608.107292175293,"y":312.249963760376,"z":"c652763a.596c58","wires":[["ade31dc.cd41ce"]]},{"id":"ade31dc.cd41ce","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.network-role is null\" />\n","comments":"","x":1770.0239639282227,"y":312.3610625267029,"z":"c652763a.596c58","wires":[]},{"id":"11421c9.063bce3","type":"set","name":"empty generate-FQPN-output.","xml":"<set>\n<parameter name='generate-FQPN-output.' value='' />\n","comments":"","x":493.1785888671875,"y":410.89291191101074,"z":"c652763a.596c58","wires":[]},{"id":"e337ea2f.a00878","type":"comment","name":"OUTPUT","info":"generate-FQPN-output.pools[]\ngenerate-FQPN-output.pools_length","comments":"","x":673.0356750488281,"y":100.75001049041748,"z":"c652763a.596c58","wires":[]},{"id":"4a7531a7.3f821","type":"set","name":"set generate-FQPN-output.pools_length","xml":"<set>\n<parameter name='generate-FQPN-output.pools_length' \n\tvalue='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />\n","comments":"","x":503.6071090698242,"y":884.8572025299072,"z":"c652763a.596c58","wires":[]},{"id":"b89d845e.01b468","type":"set","name":"set tmp.key-value = STATIC","xml":"<set>\n<parameter name='tmp.key-value' value='STATIC' />\n","comments":"","x":2825.6906204223633,"y":2039.0593361854553,"z":"c652763a.596c58","wires":[]},{"id":"f9fc2911.d11238","type":"switchNode","name":"switch generate-FQPN-input.subnet-role","xml":"\n<switch test='`$generate-FQPN-input.subnet-role`' >\n","comments":"","outputs":1,"x":2365.6548385620117,"y":2039.7498326301575,"z":"c652763a.596c58","wires":[["4701e013.e7507","6a3c9bf7.7a0944"]]},{"id":"4701e013.e7507","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2613.5120162963867,"y":2039.3212475776672,"z":"c652763a.596c58","wires":[["b89d845e.01b468"]]},{"id":"6a3c9bf7.7a0944","type":"other","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2613.7976608276367,"y":2085.6070103645325,"z":"c652763a.596c58","wires":[["b22212e1.24b38"]]},{"id":"b22212e1.24b38","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.subnet-role`' />\n","comments":"","x":2817.0835494995117,"y":2085.4641880989075,"z":"c652763a.596c58","wires":[]},{"id":"428d578.e3b2ea8","type":"outcome","name":"AddressPlanPolicyDG-Network_Role","xml":"<outcome value='AddressPlanPolicyDG-Network_Role'>\n","comments":"","outputs":1,"x":2030.8610153198242,"y":2152.765600681305,"z":"c652763a.596c58","wires":[["576bc5f5.7d0f5c"]]},{"id":"576bc5f5.7d0f5c","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.network-role`' />\n","comments":"","x":2321.7459716796875,"y":2152.9522471427917,"z":"c652763a.596c58","wires":[]},{"id":"e3f636d7.501068","type":"outcome","name":"AddressPlanPolicyDG-Network_Id","xml":"<outcome value='AddressPlanPolicyDG-Network_Id'>\n","comments":"","outputs":1,"x":2019.7499313354492,"y":2233.8767971992493,"z":"c652763a.596c58","wires":[["50767569.e5490c"]]},{"id":"50767569.e5490c","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.network-id`' />\n","comments":"","x":2310.6348876953125,"y":2234.063443660736,"z":"c652763a.596c58","wires":[]},{"id":"4ca5db34.62be64","type":"switchNode","name":"switch: generate-FQPN-input.network-id","xml":"<switch test='`$generate-FQPN-input.network-id`'>\n","comments":"","outputs":1,"x":1331.321517944336,"y":262.6071357727051,"z":"c652763a.596c58","wires":[["69381626.e9a348"]]},{"id":"69381626.e9a348","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1603.8215255737305,"y":263.1071357727051,"z":"c652763a.596c58","wires":[["2ac78bdc.099524"]]},{"id":"2ac78bdc.099524","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"generate-FQPN-input.network-id is null\" />\n","comments":"","x":1765.7381973266602,"y":263.218234539032,"z":"c652763a.596c58","wires":[]},{"id":"834c6c7c.38e56","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":401.6071472167969,"y":28.75,"z":"c652763a.596c58","wires":[["a766aebf.c7668"]]},{"id":"532b3408.a7a4ec","type":"switchNode","name":"switch: generate-FQPN-input.vrf-name","xml":"<switch test='`$generate-FQPN-input.vrf-name`'>\n","comments":"","outputs":1,"x":2340.797737121582,"y":1715.035650730133,"z":"c652763a.596c58","wires":[["ffd2065c.c1c968"]]},{"id":"ffd2065c.c1c968","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2588.512092590332,"y":1715.035650730133,"z":"c652763a.596c58","wires":[["d2bc39c7.5d9538"]]},{"id":"d2bc39c7.5d9538","type":"set","name":"set tmp.key-value = $db.routing-characteristic_mapping[0].vrf-name","xml":"<set>\n<parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].vrf-name`' />\n","comments":"","x":2927.0235900878906,"y":1714.6626954078674,"z":"c652763a.596c58","wires":[]},{"id":"49723ed6.b5077","type":"set","name":"set tmp.getPlanTopologyResponse.key-name","xml":"<set>\n<parameter name='tmp.getPlanTopologyResponse.key-name' \n\tvalue='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />\n","comments":"","x":1026.9286193847656,"y":918.0714998245239,"z":"c652763a.596c58","wires":[]},{"id":"fcb3b4d4.db2118","type":"execute","name":"split tmp.getPlanTopologyResponse.key-name","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n\t<parameter name=\"original_string\" value=\"`$tmp.getPlanTopologyResponse.key-name`\" />\n\t<parameter name=\"regex\" value=\":\" />\n\t<parameter name=\"ctx_memory_result_key\" value=\"tmp.split.key-name\" />\n","comments":"","outputs":1,"x":1031.071434020996,"y":971.6429176330566,"z":"c652763a.596c58","wires":[[]]},{"id":"795df082.1ef0e","type":"for","name":"for split-index: tmp.split.key-name","xml":"<for index=\"split-index\" start=\"0\" end=\"`$tmp.split.key-name_length`\">","comments":"","outputs":1,"x":993.2500343322754,"y":1023.7857522964478,"z":"c652763a.596c58","wires":[["b59ccbaa.90d0b8","83fd072a.1aa948","b14a8dd9.6e60d"]]},{"id":"b59ccbaa.90d0b8","type":"set","name":"set tmp.eipam.key-name","xml":"<set>\n<parameter name='tmp.eipam.key-name' \n\tvalue='`$tmp.split.key-name[$split-index]`' />\n","comments":"","x":1314.750015258789,"y":1023.5357351303101,"z":"c652763a.596c58","wires":[]},{"id":"7de6547e.574bfc","type":"set","name":"set tmp.final.key-value","xml":"<set>\n<parameter name='tmp.final.key-value' value=\"`$tmp.key-value`\" />\n","comments":"","x":1687.297378540039,"y":1513.1548833847046,"z":"c652763a.596c58","wires":[]},{"id":"b14a8dd9.6e60d","type":"switchNode","name":"switch: split-index == 0","xml":"<switch test='`$split-index == 0`'>\n","comments":"","outputs":1,"x":1294.297477722168,"y":1513.5834398269653,"z":"c652763a.596c58","wires":[["20c1863e.337c1a","975be642.2ad488"]]},{"id":"20c1863e.337c1a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1491.0118026733398,"y":1513.5833616256714,"z":"c652763a.596c58","wires":[["7de6547e.574bfc"]]},{"id":"975be642.2ad488","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1492.8688583374023,"y":1565.011950492859,"z":"c652763a.596c58","wires":[["4c706252.b3c0bc"]]},{"id":"4c706252.b3c0bc","type":"set","name":"set tmp.final.key-value with :","xml":"<set>\n<parameter name='tmp.final.key-value' \n\tvalue=\"`$tmp.final.key-value + ':' + $tmp.key-value`\" />\n","comments":"","x":1706.154655456543,"y":1565.20254611969,"z":"c652763a.596c58","wires":[]},{"id":"f02298f2.395ed8","type":"set","name":"set tmp.final.key-value NULL","xml":"<set>\n<parameter name='tmp.final.key-value' value=\"\" />\n","comments":"","x":982.2500228881836,"y":867.5357341766357,"z":"c652763a.596c58","wires":[]},{"id":"c469dc37.0566","type":"outcome","name":"AddressPlanPolicyDG-Network_Collection","xml":"<outcome value='AddressPlanPolicyDG-Network_Collection'>\n","comments":"","outputs":1,"x":2044.6428833007812,"y":2300.357177734375,"z":"c652763a.596c58","wires":[["c8b4a61c.5dc488"]]},{"id":"c8b4a61c.5dc488","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.network-collection`' />\n","comments":"","x":2335.5278396606445,"y":2300.543824195862,"z":"c652763a.596c58","wires":[]},{"id":"7875fd31.d3ddc4","type":"outcome","name":"AddressPlanPolicyDG-Zone","xml":"<outcome value='AddressPlanPolicyDG-Zone'>\n","comments":"","outputs":1,"x":1998.3928833007812,"y":2360.3571796417236,"z":"c652763a.596c58","wires":[["3cd2f123.1a42be"]]},{"id":"3cd2f123.1a42be","type":"set","name":"set tmp.key-value = input","xml":"<set>\n<parameter name='tmp.key-value' value='`$generate-FQPN-input.zone`' />\n","comments":"","x":2289.2778396606445,"y":2360.5438261032104,"z":"c652763a.596c58","wires":[]},{"id":"72bce7b0.c625f8","type":"switchNode","name":"switch: sdnc-generated-cloud-resources","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\n","comments":"","outputs":1,"x":251.42862701416016,"y":571.285698890686,"z":"c652763a.596c58","wires":[["6ad0b534.7aedfc","53e1e9c2.959dc8","dee69902.b8b9c8"]]},{"id":"6ad0b534.7aedfc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":525.1430282592773,"y":571.4285879135132,"z":"c652763a.596c58","wires":[["cbe4345b.0405f8"]]},{"id":"cbe4345b.0405f8","type":"call","name":"call GENERIC-RESOURCE-API:self-serve-generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' >\n","comments":"","outputs":1,"x":840.0001487731934,"y":571.000002861023,"z":"c652763a.596c58","wires":[[]]},{"id":"53e1e9c2.959dc8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":523.7143249511719,"y":654.2856321334839,"z":"c652763a.596c58","wires":[["6e3a5ada.ae9324"]]},{"id":"dee69902.b8b9c8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":523.7143249511719,"y":614.2857723236084,"z":"c652763a.596c58","wires":[["6e3a5ada.ae9324"]]},{"id":"6e3a5ada.ae9324","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":224.28572845458984,"y":831.8571043014526,"z":"c652763a.596c58","wires":[["55980981.9f2b58","4a7531a7.3f821"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-allottedresource-id.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-allottedresource-id.json
new file mode 100644 (file)
index 0000000..b1ed442
--- /dev/null
@@ -0,0 +1,398 @@
+[
+    {
+        "id": "4eb410ec.15c8",
+        "type": "execute",
+        "name": "execute: generateUUID",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-allottedresource-id.id\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 538.3333129882812,
+        "y": 515.8333282470703,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "a4997c46.9d57f"
+            ]
+        ]
+    },
+    {
+        "id": "a4997c46.9d57f",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 734.0833206176758,
+        "y": 515.8333282470703,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "5525e405.5a720c"
+            ]
+        ]
+    },
+    {
+        "id": "5525e405.5a720c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<!-- Used to work around execute node bug -->\n\t<parameter name=\"execute_failure\" value=\"false\" />\n\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"An error occured while generating a UUID for L3-NETWORK.\" />",
+        "comments": "",
+        "x": 899.0833206176758,
+        "y": 516.0833253860474,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "66d02173.cfc28",
+        "type": "get-resource",
+        "name": "Query AnAI -  allotted-resource",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n              resource=\"allotted-resource\"\n              key=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\t\t\tservice-subscription.service-type = $cto-api.service-type AND\n\t\t\t\t\tservice-instance.service-instance-id = $cto-api.port-mirror-configuration-instance-id AND\n\t\t\t\t\tallotted-resource.id = $tmp.return.generate-allottedresource-id.id\"\n              local-only=\"false\"\n              pfx=\"tmp.local-variables.generate-allottedresource-id.ALLOTTEDRESOURCE\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 750.2500305175781,
+        "y": 605.4166297912598,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "954e6938.90cb08",
+                "c3f9027.48ad5",
+                "88fbf3ed.1e4ec",
+                "167962db.dfa98d"
+            ]
+        ]
+    },
+    {
+        "id": "5835198f.dc0b38",
+        "type": "for",
+        "name": "for n: true",
+        "xml": "<for atomic=\"true\" index=\"n\" start=\"0\" end=\"1\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 487.5833206176758,
+        "y": 607.0833253860474,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "66d02173.cfc28"
+            ]
+        ]
+    },
+    {
+        "id": "954e6938.90cb08",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1071.416603088379,
+        "y": 603.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "5a93b788.462aa8"
+            ]
+        ]
+    },
+    {
+        "id": "c3f9027.48ad5",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1067.416603088379,
+        "y": 683.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "9a1a9def.d6a4"
+            ]
+        ]
+    },
+    {
+        "id": "88fbf3ed.1e4ec",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1076.416603088379,
+        "y": 643.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "3401c5c.83c4e3a"
+            ]
+        ]
+    },
+    {
+        "id": "9a1a9def.d6a4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-allottedresource-id\" value=\"`'An error occured while checking if a generated allotted-resource-id was unique. allotted-resource-id = ' + $tmp.local-variables.generate-allottedresource-id.id`\" />",
+        "comments": "",
+        "x": 1233.9166107177734,
+        "y": 708.7499704360962,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "5a93b788.462aa8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1229.416603088379,
+        "y": 603.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "42f40b02.0f1b64",
+                "a99c317d.5b194"
+            ]
+        ]
+    },
+    {
+        "id": "42f40b02.0f1b64",
+        "type": "set",
+        "name": "set: ...local...is-unique = 0",
+        "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-allottedresource-id.is-unique\" value=\"0\" />",
+        "comments": "",
+        "x": 1446.9167022705078,
+        "y": 603.7499361038208,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "a99c317d.5b194",
+        "type": "execute",
+        "name": "execute: generateUUID",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-allottedresource-id.id\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1440.416603088379,
+        "y": 643.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "e5672b.69ed28d8"
+            ]
+        ]
+    },
+    {
+        "id": "e5672b.69ed28d8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1627.416603088379,
+        "y": 643.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "d2e9bf0a.cb123"
+            ]
+        ]
+    },
+    {
+        "id": "d2e9bf0a.cb123",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-allottedresource-id\" value=\"An error occured while generating a UUID for ALLOTTED-RESOURCE.\" />",
+        "comments": "",
+        "x": 1779.7499923706055,
+        "y": 643.7499656677246,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "3401c5c.83c4e3a",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1207.416603088379,
+        "y": 643.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6a875f8d.73cc2",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 244.58331680297852,
+        "y": 203.33332443237305,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "20c9128.11698ee"
+            ]
+        ]
+    },
+    {
+        "id": "20c9128.11698ee",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 268.58331298828125,
+        "y": 249.58332443237305,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "c9e0323.6c392d"
+            ]
+        ]
+    },
+    {
+        "id": "c9e0323.6c392d",
+        "type": "method",
+        "name": "method generate-allottedresource-id",
+        "xml": "<method rpc=\"generate-allottedresource-id\" mode=\"sync\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 354.33331298828125,
+        "y": 302.08332443237305,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "11f29edc.8e12b1"
+            ]
+        ]
+    },
+    {
+        "id": "aa4e1446.234628",
+        "type": "comment",
+        "name": "GENERIC-RESOURCE-API: GENERATE-L3NETWORK-NETWORK-ID",
+        "info": "",
+        "comments": "",
+        "x": 796.0833282470703,
+        "y": 209.5833225250244,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "11f29edc.8e12b1",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 306.0833206176758,
+        "y": 427.08332538604736,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "4eb410ec.15c8",
+                "5835198f.dc0b38",
+                "96991ff7.0c0e5",
+                "8eb23908.bf31d8"
+            ]
+        ]
+    },
+    {
+        "id": "5be115d7.3547fc",
+        "type": "comment",
+        "name": "LOOP UNTIL GENERATED ALLOTTED-RESOURCE ISN'T FOUND IN A&AI",
+        "info": "",
+        "comments": "",
+        "x": 707.3333129882812,
+        "y": 563.3333292007446,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "f6ac6a5d.3c4308",
+        "type": "comment",
+        "name": "GENERATE A NETWORK-ID",
+        "info": "",
+        "comments": "",
+        "x": 571.0833129882812,
+        "y": 473.333327293396,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "96991ff7.0c0e5",
+        "type": "set",
+        "name": "unset: local-variables & return",
+        "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-allottedresource-id.\" value=\"\" />\n\t<parameter name=\"tmp.return.generate-allottedresource-id.\" value=\"\" />",
+        "comments": "",
+        "x": 558.7499885559082,
+        "y": 427.083309173584,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "b4d56db.b9ad09",
+        "type": "comment",
+        "name": "CLEANUP LOCAL VARIABLES TO BE USED",
+        "info": "",
+        "comments": "",
+        "x": 641.3333129882812,
+        "y": 383.3333263397217,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "1c2f28d9.80ec27",
+        "type": "comment",
+        "name": "GLOBAL VARIABLES USED",
+        "info": "// RETURN VALUES\nerror-message.generate-l3network-network-id\ntmp.return.generate-l3network-network-id.uuid\n\n// LOCAL VARIABLES (erased at beginning & end of DG)\ntmp.local-variables.generate-l3network-network-id.*\ntmp.return.generate-l3network-network-id.*\n",
+        "comments": "",
+        "x": 782.5833435058594,
+        "y": 249.5833225250244,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "8eb23908.bf31d8",
+        "type": "set",
+        "name": "unset: local-variables & return",
+        "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-allottedresource-id.\" value=\"\" />",
+        "comments": "",
+        "x": 557.0833206176758,
+        "y": 707.0833253860474,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "13e6bec1.8c1fd1",
+        "type": "comment",
+        "name": "CLEANUP LOCAL VARIABLES",
+        "info": "",
+        "comments": "",
+        "x": 598.5833129882812,
+        "y": 664.583330154419,
+        "z": "4903bad.edade44",
+        "wires": []
+    },
+    {
+        "id": "167962db.dfa98d",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value=\"Other\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1067.416603088379,
+        "y": 723.7499647140503,
+        "z": "4903bad.edade44",
+        "wires": [
+            [
+                "9a1a9def.d6a4"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.json
new file mode 100755 (executable)
index 0000000..9068ce6
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"b46c7669.faf458","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-host-routes-host-route-id.uuid\" />","comments":"","outputs":1,"x":535.0039138793945,"y":420.83342695236206,"z":"6a6a71ad.8750d","wires":[["ccd2b56.c05d548"]]},{"id":"ccd2b56.c05d548","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":735.7539138793945,"y":420.50007820129395,"z":"6a6a71ad.8750d","wires":[["edbf364.8ce48c8"]]},{"id":"edbf364.8ce48c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<!-- Used to work around execute node bug -->\n\t<parameter name=\"execute_failure\" value=\"false\" />\n\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"An error occured while generating a UUID for L3-NETWORK.\" />","comments":"","x":900.7539138793945,"y":420.750075340271,"z":"6a6a71ad.8750d","wires":[]},{"id":"bc391592.12cd58","type":"get-resource","name":"Query AnAI -  host-route","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"subnet\"\n\t\tkey=\"l3-network.network-id = $tmp.local.network-id \n\t\t\tAND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid \n\t\t\tAND host-route.host-route-id = $tmp.return.generate-host-routes-host-route-id.uuid\" \n\t\tlocal-only=\"false\"\n\t\tpfx=\"tmp.local-variables.generate-host-routes-host-route-id.HOST_ROUTE\" >","comments":"","outputs":1,"x":665.2539138793945,"y":511.750075340271,"z":"6a6a71ad.8750d","wires":[["73d58c11.7a5074","1b298f59.abe1a1","a74019fb.6b7638","888b565f.7cd9e8"]]},{"id":"a6e69c08.b975","type":"for","name":"for s: true","xml":"<for atomic=\"true\" index=\"s\" start=\"0\" end=\"1\" >","comments":"","outputs":1,"x":489.25391387939453,"y":511.750075340271,"z":"6a6a71ad.8750d","wires":[["bc391592.12cd58"]]},{"id":"73d58c11.7a5074","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":869.7539138793945,"y":511.750075340271,"z":"6a6a71ad.8750d","wires":[["82631946.34ce68"]]},{"id":"1b298f59.abe1a1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":865.7539138793945,"y":591.750075340271,"z":"6a6a71ad.8750d","wires":[["8e99ea56.3c3f98"]]},{"id":"a74019fb.6b7638","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":874.7539138793945,"y":551.750075340271,"z":"6a6a71ad.8750d","wires":[["f99aabd0.438828"]]},{"id":"8e99ea56.3c3f98","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-host-routes-host-route-id\" value=\"`'An error occured while checking if a generated host-routes-host-route-id was unique. host-route-id = ' + $tmp.local-variables.generate-host-routes-host-route-id.uuid`\" />","comments":"","x":1032.253921508789,"y":616.7500810623169,"z":"6a6a71ad.8750d","wires":[]},{"id":"82631946.34ce68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1027.7539138793945,"y":511.750075340271,"z":"6a6a71ad.8750d","wires":[["65b722dd.cc3b2c","b429d230.cec2"]]},{"id":"65b722dd.cc3b2c","type":"set","name":"set: ...local...is-unique = 0","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-host-routes-host-route-id.is-unique\" value=\"0\" />","comments":"","x":1245.2539672851562,"y":511.7500810623169,"z":"6a6a71ad.8750d","wires":[]},{"id":"b429d230.cec2","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-host-routes-host-route-id.uuid\" />","comments":"","outputs":1,"x":1238.7539138793945,"y":551.750075340271,"z":"6a6a71ad.8750d","wires":[["1988b05c.8294a"]]},{"id":"1988b05c.8294a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1425.7539138793945,"y":551.750075340271,"z":"6a6a71ad.8750d","wires":[["fb704f42.47d16"]]},{"id":"fb704f42.47d16","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-host-routes-host-route-id\" value=\"An error occured while generating a UUID for HOST_ROUTE.\" />","comments":"","x":1578.0873336791992,"y":553.4167652130127,"z":"6a6a71ad.8750d","wires":[]},{"id":"f99aabd0.438828","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1005.7539138793945,"y":551.750075340271,"z":"6a6a71ad.8750d","wires":[[]]},{"id":"3061b9b4.8398a6","type":"dgstart","name":"DGSTART","outputs":1,"x":246.25391006469727,"y":108.00007438659668,"z":"6a6a71ad.8750d","wires":[["3d685829.268188"]]},{"id":"3d685829.268188","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":270.25390625,"y":154.25007438659668,"z":"6a6a71ad.8750d","wires":[["a93ee3ca.ee07b"]]},{"id":"a93ee3ca.ee07b","type":"method","name":"method generate-host-routes-host-route-id","xml":"<method rpc=\"generate-host-routes-host-route-id\" mode=\"sync\">","comments":"","outputs":1,"x":356.00390625,"y":206.75007438659668,"z":"6a6a71ad.8750d","wires":[["d7498ee5.c88ba"]]},{"id":"d7498ee5.c88ba","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":307.75391387939453,"y":331.750075340271,"z":"6a6a71ad.8750d","wires":[["b46c7669.faf458","cfe8a10b.dbcb8","137705c6.07742a","a6e69c08.b975"]]},{"id":"75e8d152.6f8c4","type":"comment","name":"LOOP UNTIL GENERATED HOST_ROUTE-ID ISN'T FOUND IN A&AI","info":"","comments":"","x":709.00390625,"y":468.00007915496826,"z":"6a6a71ad.8750d","wires":[]},{"id":"d11c9793.21a9d8","type":"comment","name":"GENERATE A HOST-ROUTE-ID","info":"","comments":"","x":572.75390625,"y":378.00007724761963,"z":"6a6a71ad.8750d","wires":[]},{"id":"cfe8a10b.dbcb8","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-host-routes-host-route-id.\" value=\"\" />\n\t<parameter name=\"tmp.return.generate-host-routes-host-route-id.\" value=\"\" />","comments":"","x":558.7539138793945,"y":331.750075340271,"z":"6a6a71ad.8750d","wires":[]},{"id":"559b5a57.4342e4","type":"comment","name":"CLEANUP LOCAL VARIABLES TO BE USED","info":"","comments":"","x":643.00390625,"y":288.0000762939453,"z":"6a6a71ad.8750d","wires":[]},{"id":"7626b04.8cb7f5","type":"comment","name":"GLOBAL VARIABLES USED","info":"// RETURN VALUES\nerror-message.generate-host-routes-host-route-id\ntmp.return.generate-host-routes-host-route-id.uuid\n\n// LOCAL VARIABLES (erased at beginning & end of DG)\ntmp.local-variables.generate-host-routes-host-route-id.*\ntmp.local-variables.generate-host-routes-host-route.HOST_ROUTE.*","comments":"","x":784.2539367675781,"y":154.25007247924805,"z":"6a6a71ad.8750d","wires":[]},{"id":"137705c6.07742a","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-host-routes-host-route-id.\" value=\"\" />","comments":"","x":558.7539138793945,"y":611.750075340271,"z":"6a6a71ad.8750d","wires":[]},{"id":"490d997f.134258","type":"comment","name":"CLEANUP LOCAL VARIABLES","info":"","comments":"","x":600.25390625,"y":569.2500801086426,"z":"6a6a71ad.8750d","wires":[]},{"id":"888b565f.7cd9e8","type":"other","name":"Other","xml":"<outcome value=\"Other\">","comments":"","outputs":1,"x":865.7539138793945,"y":631.750075340271,"z":"6a6a71ad.8750d","wires":[["8e99ea56.3c3f98"]]}]
\ No newline at end of file
index 747692e..2aecf29 100644 (file)
 [
     {
-        "id": "32a337db.ae5aa8",
+        "id": "e7bd9a65.20fdd8",
         "type": "execute",
         "name": "execute: generateUUID",
         "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-l3network-network-id.uuid\" />",
         "comments": "",
         "outputs": 1,
-        "x": 475.8888854980469,
-        "y": 396.50000381469727,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 545,
+        "y": 418.5,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "aee3b0da.c79fb"
+                "bebe20e6.50ef2"
             ]
         ]
     },
     {
-        "id": "aee3b0da.c79fb",
+        "id": "bebe20e6.50ef2",
         "type": "failure",
         "name": "failure",
         "xml": "<outcome value='failure'>\n",
         "comments": "",
         "outputs": 1,
-        "x": 671.6388931274414,
-        "y": 396.50000381469727,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 744.7500076293945,
+        "y": 416.50000381469727,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "2e6b8196.18f09e"
+                "9eddb187.db4bb"
             ]
         ]
     },
     {
-        "id": "2e6b8196.18f09e",
+        "id": "9eddb187.db4bb",
         "type": "returnFailure",
         "name": "return failure",
         "xml": "<return status='failure'>\n\t<!-- Used to work around execute node bug -->\n\t<parameter name=\"execute_failure\" value=\"false\" />\n\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"An error occured while generating a UUID for L3-NETWORK.\" />",
         "comments": "",
-        "x": 836.6388931274414,
-        "y": 396.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 909.7500076293945,
+        "y": 416.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "19e3e967.c281b7",
+        "id": "31a24297.e15d1e",
         "type": "get-resource",
         "name": "Query AnAI -  l3-network",
         "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n              resource=\"l3-network\"\n              key=\"l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid\"\n              local-only=\"false\"\n              pfx=\"tmp.local-variables.generate-l3network-network-id.L3NETWORK\" >",
         "comments": "",
         "outputs": 1,
-        "x": 601.1388931274414,
-        "y": 487.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 674.2500076293945,
+        "y": 507.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "2807c6fa.8fbd4a",
-                "94e9ced3.238",
-                "4ecb327.82397cc",
-                "a2e8b62.4d66748"
+                "fbe58eaa.4092f",
+                "bf4ce186.fe5b4",
+                "45826101.ef494",
+                "25b3888f.ec6cf8"
             ]
         ]
     },
     {
-        "id": "c1a23e2e.3f106",
+        "id": "7ec5dc21.02fc54",
         "type": "for",
         "name": "for n: true",
         "xml": "<for atomic=\"true\" index=\"n\" start=\"0\" end=\"1\" >",
         "comments": "",
         "outputs": 1,
-        "x": 425.1388931274414,
-        "y": 487.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 498.25000762939453,
+        "y": 507.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "19e3e967.c281b7"
+                "31a24297.e15d1e"
             ]
         ]
     },
     {
-        "id": "2807c6fa.8fbd4a",
+        "id": "fbe58eaa.4092f",
         "type": "success",
         "name": "success",
         "xml": "<outcome value='success'>\n",
         "comments": "",
         "outputs": 1,
-        "x": 805.6388931274414,
-        "y": 487.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 878.7500076293945,
+        "y": 507.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "6fcc46f3.9af1a8"
+                "cf545076.3189e"
             ]
         ]
     },
     {
-        "id": "94e9ced3.238",
+        "id": "bf4ce186.fe5b4",
         "type": "failure",
         "name": "failure",
         "xml": "<outcome value='failure'>\n",
         "comments": "",
         "outputs": 1,
-        "x": 801.6388931274414,
-        "y": 567.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 874.7500076293945,
+        "y": 587.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "537fe43b.f1146c"
+                "d07d9c69.54e1d"
             ]
         ]
     },
     {
-        "id": "4ecb327.82397cc",
+        "id": "45826101.ef494",
         "type": "not-found",
         "name": "not-found",
         "xml": "<outcome value='not-found'>\n",
         "comments": "",
         "outputs": 1,
-        "x": 810.6388931274414,
-        "y": 527.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 883.7500076293945,
+        "y": 547.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "4292e2a6.5346ac"
+                "f2604c68.2cc79"
             ]
         ]
     },
     {
-        "id": "537fe43b.f1146c",
+        "id": "d07d9c69.54e1d",
         "type": "returnFailure",
         "name": "return failure",
         "xml": "<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"`'An error occured while checking if a generated l3network-network-id was unique. network-id = ' + $tmp.local-variables.generate-l3network-network-id.uuid`\" />",
         "comments": "",
-        "x": 968.1389007568359,
-        "y": 592.7500066757202,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1041.250015258789,
+        "y": 612.7500066757202,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "6fcc46f3.9af1a8",
+        "id": "cf545076.3189e",
         "type": "block",
         "name": "block : atomic",
         "xml": "<block atomic='true'>",
         "atomic": "true",
         "comments": "",
         "outputs": 1,
-        "x": 963.6388931274414,
-        "y": 487.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1036.7500076293945,
+        "y": 507.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "17797a19.8abea6",
-                "4e358d48.be92b4"
+                "28421263.2994fe",
+                "c44a7adf.25dce8"
             ]
         ]
     },
     {
-        "id": "17797a19.8abea6",
+        "id": "28421263.2994fe",
         "type": "set",
         "name": "set: ...local...is-unique = 0",
         "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-l3network-network-id.is-unique\" value=\"0\" />",
         "comments": "",
-        "x": 1181.1389465332031,
-        "y": 487.7500066757202,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1254.2500610351562,
+        "y": 507.7500066757202,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "4e358d48.be92b4",
+        "id": "c44a7adf.25dce8",
         "type": "execute",
         "name": "execute: generateUUID",
         "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-l3network-network-id.uuid\" />",
         "comments": "",
         "outputs": 1,
-        "x": 1174.6388931274414,
-        "y": 527.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1247.7500076293945,
+        "y": 547.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "4cf76132.02956"
+                "9de63c0c.60c61"
             ]
         ]
     },
     {
-        "id": "4cf76132.02956",
+        "id": "9de63c0c.60c61",
         "type": "failure",
         "name": "failure",
         "xml": "<outcome value='failure'>\n",
         "comments": "",
         "outputs": 1,
-        "x": 1361.6388931274414,
-        "y": 527.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1434.7500076293945,
+        "y": 547.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "dea8bdbf.c6534"
+                "ee927e4f.a8611"
             ]
         ]
     },
     {
-        "id": "dea8bdbf.c6534",
+        "id": "ee927e4f.a8611",
         "type": "returnFailure",
         "name": "return failure",
         "xml": "<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"An error occured while generating a UUID for L3-NETWORK.\" />",
         "comments": "",
-        "x": 1515.6388931274414,
-        "y": 527.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1588.7500076293945,
+        "y": 547.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "4292e2a6.5346ac",
+        "id": "f2604c68.2cc79",
         "type": "block",
         "name": "block",
         "xml": "<block>",
         "atomic": "false",
         "comments": "",
         "outputs": 1,
-        "x": 941.6388931274414,
-        "y": 527.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 1014.7500076293945,
+        "y": 547.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             []
         ]
     },
     {
-        "id": "dfc540f2.ccff2",
+        "id": "d5946e5a.154dc",
         "type": "dgstart",
         "name": "DGSTART",
         "outputs": 1,
-        "x": 182.13888931274414,
-        "y": 84,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 255.25000381469727,
+        "y": 104,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "b386b9cc.e3d508"
+                "4ec5f49c.6b21fc"
             ]
         ]
     },
     {
-        "id": "b386b9cc.e3d508",
+        "id": "4ec5f49c.6b21fc",
         "type": "service-logic",
         "name": "GENERIC-RESOURCE-API ${project.version}",
         "module": "GENERIC-RESOURCE-API",
         "comments": "",
         "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
         "outputs": 1,
-        "x": 206.13888549804688,
-        "y": 130.25,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 279.25,
+        "y": 150.25,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "a7f05089.bec56"
+                "f579c708.74a9d8"
             ]
         ]
     },
     {
-        "id": "a7f05089.bec56",
+        "id": "f579c708.74a9d8",
         "type": "method",
         "name": "method generate-l3network-network-id",
         "xml": "<method rpc=\"generate-l3network-network-id\" mode=\"sync\">",
         "comments": "",
         "outputs": 1,
-        "x": 291.8888854980469,
-        "y": 182.75,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 365,
+        "y": 202.75,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "34f40852.137a58"
+                "71096650.ece918"
             ]
         ]
     },
     {
-        "id": "f5b14600.c43d28",
+        "id": "3149511f.d3441e",
         "type": "comment",
         "name": "GENERIC-RESOURCE-API: GENERATE-L3NETWORK-NETWORK-ID",
         "info": "",
         "comments": "",
-        "x": 733.6389007568359,
-        "y": 90.24999809265137,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 806.7500152587891,
+        "y": 110.24999809265137,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "34f40852.137a58",
+        "id": "71096650.ece918",
         "type": "block",
         "name": "block : atomic",
         "xml": "<block atomic=\"true\">",
         "atomic": "true",
         "comments": "",
         "outputs": 1,
-        "x": 243.6388931274414,
-        "y": 307.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 316.75000762939453,
+        "y": 327.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "32a337db.ae5aa8",
-                "c1a23e2e.3f106",
-                "6d1bc386.49356c",
-                "2d49b311.80b8cc"
+                "e7bd9a65.20fdd8",
+                "7ec5dc21.02fc54",
+                "29c55a03.c43e16",
+                "d535cedb.29a8b"
             ]
         ]
     },
     {
-        "id": "de1da0bf.8163b",
+        "id": "3ab649c5.b819f6",
         "type": "comment",
         "name": "LOOP UNTIL GENERATED NETWORK-ID ISN'T FOUND IN A&AI",
         "info": "",
         "comments": "",
-        "x": 644.8888854980469,
-        "y": 444.0000047683716,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 718,
+        "y": 464.0000047683716,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "6ed54c0.6154fb4",
+        "id": "59df6115.cb391",
         "type": "comment",
         "name": "GENERATE A NETWORK-ID",
         "info": "",
         "comments": "",
-        "x": 508.6388854980469,
-        "y": 354.00000286102295,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 581.75,
+        "y": 374.00000286102295,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "6d1bc386.49356c",
+        "id": "29c55a03.c43e16",
         "type": "set",
         "name": "unset: local-variables & return",
         "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-l3network-network-id.\" value=\"\" />\n\t<parameter name=\"tmp.return.generate-l3network-network-id.\" value=\"\" />",
         "comments": "",
-        "x": 494.6388931274414,
-        "y": 307.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 567.7500076293945,
+        "y": 327.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "b0ae69a3.56e508",
+        "id": "a5a22a52.0df378",
         "type": "comment",
         "name": "CLEANUP LOCAL VARIABLES TO BE USED",
         "info": "",
         "comments": "",
-        "x": 578.8888854980469,
-        "y": 264.00000190734863,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 652,
+        "y": 284.00000190734863,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "5a56764d.91fa68",
+        "id": "9f21f02f.9e3ca",
         "type": "comment",
         "name": "GLOBAL VARIABLES USED",
         "info": "// RETURN VALUES\nerror-message.generate-l3network-network-id\ntmp.return.generate-l3network-network-id.uuid\n\n// LOCAL VARIABLES (erased at beginning & end of DG)\ntmp.local-variables.generate-l3network-network-id.*\ntmp.return.generate-l3network-network-id.*\n",
         "comments": "",
-        "x": 720.138916015625,
-        "y": 130.24999809265137,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 793.2500305175781,
+        "y": 150.24999809265137,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "2d49b311.80b8cc",
+        "id": "d535cedb.29a8b",
         "type": "set",
         "name": "unset: local-variables & return",
         "xml": "<set>\n\t<parameter name=\"tmp.local-variables.generate-l3network-network-id.\" value=\"\" />",
         "comments": "",
-        "x": 494.6388931274414,
-        "y": 587.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 567.7500076293945,
+        "y": 607.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "979528d.92883d8",
+        "id": "b578cb06.12eea8",
         "type": "comment",
         "name": "CLEANUP LOCAL VARIABLES",
         "info": "",
         "comments": "",
-        "x": 536.1388854980469,
-        "y": 545.2500057220459,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 609.25,
+        "y": 565.2500057220459,
+        "z": "86afe909.dcb228",
         "wires": []
     },
     {
-        "id": "a2e8b62.4d66748",
+        "id": "25b3888f.ec6cf8",
         "type": "other",
         "name": "Other",
         "xml": "<outcome value=\"Other\">",
         "comments": "",
         "outputs": 1,
-        "x": 801.6388931274414,
-        "y": 607.7500009536743,
-        "z": "ed9b1fd8.6f0a7",
+        "x": 874.7500076293945,
+        "y": 627.7500009536743,
+        "z": "86afe909.dcb228",
         "wires": [
             [
-                "537fe43b.f1146c"
+                "d07d9c69.54e1d"
             ]
         ]
     }
-]
+]
\ No newline at end of file
index 674c865..c27eaa9 100755 (executable)
@@ -1 +1,654 @@
-[{"id":"86ab255a.7522f8","type":"dgstart","name":"DGSTART","outputs":1,"x":110.23809051513672,"y":45.23809242248535,"z":"58bca720.478948","wires":[["678d9d6c.30b764"]]},{"id":"678d9d6c.30b764","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":213.14283752441406,"y":119.5238208770752,"z":"58bca720.478948","wires":[["b2221892.cef528"]]},{"id":"b2221892.cef528","type":"method","name":"generate-panorama-name","xml":"<method rpc='generate-panorama-name' mode='sync'>\n","comments":"","outputs":1,"x":203.8215560913086,"y":205.95234966278076,"z":"58bca720.478948","wires":[["f0364dcb.e5f17"]]},{"id":"3d24b231.0488de","type":"execute","name":"SliStringUtils - untrusted name length","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\n    <parameter name=\"source\" value=\"`$new-name`\" />\n    <parameter name=\"outputPath\" value=\"tmp.strlen\"/>\n  \n","comments":"","outputs":1,"x":619.2857666015625,"y":451.9047336578369,"z":"58bca720.478948","wires":[[]]},{"id":"209cc858.355be8","type":"switchNode","name":"switch strlen > 14","xml":"<switch test='`$tmp.strlen > 14`'>\n","comments":"","outputs":1,"x":557.6191902160645,"y":506.6667060852051,"z":"58bca720.478948","wires":[["5e19e3e9.a31dfc","f283f234.fff93"]]},{"id":"5e19e3e9.a31dfc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":748.0952911376953,"y":514.2856960296631,"z":"58bca720.478948","wires":[["cc102d9.0977bd"]]},{"id":"f283f234.fff93","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":750.0000343322754,"y":567.8571586608887,"z":"58bca720.478948","wires":[["237a8ded.5a3e32"]]},{"id":"f0364dcb.e5f17","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":221.6666717529297,"y":288.33328199386597,"z":"58bca720.478948","wires":[["3d24b231.0488de","209cc858.355be8","66cd5e7f.c924a","64e4cd4b.fe6024","41133073.515b5","675c7c6.f01b184","8effe6b3.282828","67ad6570.58f12c","a3bbbbad.a464e8","5b9cfe55.47f8e","c675a56.6ee6d58","f88531c9.a42ed","969e46d2.b374b8","94f4e81f.b72c58","1956129b.dcb17d"]]},{"id":"64e4cd4b.fe6024","type":"execute","name":"SliStringUtils - split after .","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\.\"/>\n    <parameter name=\"limit\" value=\"2\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"splits\" />\n  \n","comments":"","outputs":1,"x":584.9999237060547,"y":365.0000514984131,"z":"58bca720.478948","wires":[[]]},{"id":"cc102d9.0977bd","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":919.9999771118164,"y":514.9999675750732,"z":"58bca720.478948","wires":[["18e960c5.ed36bf"]]},{"id":"237a8ded.5a3e32","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":918.3332824707031,"y":569.9999866485596,"z":"58bca720.478948","wires":[["433f13a6.865dec"]]},{"id":"433f13a6.865dec","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$new-name`' />\n","comments":"","x":1111.666893005371,"y":568.3333539962769,"z":"58bca720.478948","wires":[]},{"id":"66cd5e7f.c924a","type":"set","name":"set original-name","xml":"<set>\n<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`' />\n","comments":"","x":563.3332672119141,"y":328.3333225250244,"z":"58bca720.478948","wires":[]},{"id":"ea3b507a.625f2","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$splits[1]`' />\n","comments":"","x":991.666576385498,"y":380.6666660308838,"z":"58bca720.478948","wires":[]},{"id":"41133073.515b5","type":"switchNode","name":"switch splits length","xml":"<switch test='`$splits_length`'>\n","comments":"","outputs":1,"x":566.666633605957,"y":404.99998664855957,"z":"58bca720.478948","wires":[["f70ab86.5576d48","a0a0b61d.244a98","41e61d00.f9cea4"]]},{"id":"f70ab86.5576d48","type":"outcome","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":814.9999961853027,"y":350.0000400543213,"z":"58bca720.478948","wires":[["d7fc706c.8b686"]]},{"id":"a0a0b61d.244a98","type":"outcome","name":"outcome 2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":814.999927520752,"y":379.99999809265137,"z":"58bca720.478948","wires":[["ea3b507a.625f2"]]},{"id":"d7fc706c.8b686","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$splits[0]`' />\n","comments":"","x":988.3331985473633,"y":345.00002574920654,"z":"58bca720.478948","wires":[]},{"id":"41e61d00.f9cea4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":801.6666374206543,"y":413.3333396911621,"z":"58bca720.478948","wires":[["f60e104a.d022b"]]},{"id":"f60e104a.d022b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unexpected network role used for panorama naming' />\n","comments":"","x":993.333324432373,"y":413.3333559036255,"z":"58bca720.478948","wires":[]},{"id":"18e960c5.ed36bf","type":"execute","name":"SliStringUtils - 14 len substring","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\n    <parameter name=\"string\" value=\"`$new-name`\" />\n    <parameter name=\"result\" value=\"new-name\"/>\n    <parameter name=\"begin-index\" value=\"0\" />\n    <parameter name=\"end-index\" value=\"14\" />\n  \n","comments":"","outputs":1,"x":1168.3332061767578,"y":503.33331966400146,"z":"58bca720.478948","wires":[[]]},{"id":"f88531c9.a42ed","type":"execute","name":"SliStringUtils - untrusted name length","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\n    <parameter name=\"source\" value=\"`$new-name`\" />\n    <parameter name=\"outputPath\" value=\"tmp.strlen\"/>\n  \n","comments":"","outputs":1,"x":618.3332824707031,"y":799.9999866485596,"z":"58bca720.478948","wires":[[]]},{"id":"969e46d2.b374b8","type":"switchNode","name":"switch strlen > 14","xml":"<switch test='`$tmp.strlen > 14`'>\n","comments":"","outputs":1,"x":556.6667060852051,"y":854.7619590759277,"z":"58bca720.478948","wires":[["2eb1e963.8f58a6","af892ecf.e3fc8"]]},{"id":"2eb1e963.8f58a6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":747.1428070068359,"y":862.3809490203857,"z":"58bca720.478948","wires":[["22bdc134.447f8e"]]},{"id":"af892ecf.e3fc8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":749.047550201416,"y":915.9524116516113,"z":"58bca720.478948","wires":[["b9e7b020.1beb"]]},{"id":"5b9cfe55.47f8e","type":"execute","name":"SliStringUtils - split after .","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\.\"/>\n    <parameter name=\"limit\" value=\"2\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"splits\" />\n  \n","comments":"","outputs":1,"x":584.0474395751953,"y":713.0953044891357,"z":"58bca720.478948","wires":[[]]},{"id":"22bdc134.447f8e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":919.047492980957,"y":863.0952205657959,"z":"58bca720.478948","wires":[["4f716d08.83a7d4"]]},{"id":"b9e7b020.1beb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":917.3807983398438,"y":918.0952396392822,"z":"58bca720.478948","wires":[["b4fb00b0.5d6e"]]},{"id":"b4fb00b0.5d6e","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$new-name`' />\n","comments":"","x":1110.7144088745117,"y":916.4286069869995,"z":"58bca720.478948","wires":[]},{"id":"a3bbbbad.a464e8","type":"set","name":"set original-name","xml":"<set>\n<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`' />\n","comments":"","x":562.3807830810547,"y":676.4285755157471,"z":"58bca720.478948","wires":[]},{"id":"a908f194.577e2","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$splits[1]`' />\n","comments":"","x":990.7140922546387,"y":728.7619190216064,"z":"58bca720.478948","wires":[]},{"id":"c675a56.6ee6d58","type":"switchNode","name":"switch splits length","xml":"<switch test='`$splits_length`'>\n","comments":"","outputs":1,"x":565.7141494750977,"y":753.0952396392822,"z":"58bca720.478948","wires":[["db39b4ca.681638","b28e57b5.d7f178","97c9e8ea.f63768"]]},{"id":"db39b4ca.681638","type":"outcome","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":814.0475120544434,"y":698.095293045044,"z":"58bca720.478948","wires":[["c17629d6.f61e28"]]},{"id":"b28e57b5.d7f178","type":"outcome","name":"outcome 2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":814.0474433898926,"y":728.095251083374,"z":"58bca720.478948","wires":[["a908f194.577e2"]]},{"id":"c17629d6.f61e28","type":"set","name":"set newname","xml":"<set>\n<parameter name='new-name' value='`$splits[0]`' />\n","comments":"","x":987.3807563781738,"y":693.0952663421631,"z":"58bca720.478948","wires":[]},{"id":"97c9e8ea.f63768","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":800.7141532897949,"y":761.4285926818848,"z":"58bca720.478948","wires":[["6cb0731e.f3e13c"]]},{"id":"6cb0731e.f3e13c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unexpected network role used for panorama naming' />\n","comments":"","x":992.3808403015137,"y":761.4286088943481,"z":"58bca720.478948","wires":[]},{"id":"4f716d08.83a7d4","type":"execute","name":"SliStringUtils - 14 len substring","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\n    <parameter name=\"string\" value=\"`$new-name`\" />\n    <parameter name=\"result\" value=\"new-name\"/>\n    <parameter name=\"begin-index\" value=\"0\" />\n    <parameter name=\"end-index\" value=\"14\" />\n  \n","comments":"","outputs":1,"x":1167.3807220458984,"y":851.4285726547241,"z":"58bca720.478948","wires":[[]]},{"id":"675c7c6.f01b184","type":"set","name":"set trust and untrust sz name","xml":"<set>\n<parameter name='tmp.trust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_T' />\n<parameter name='tmp.untrust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_U' />\n","comments":"","x":599.9999084472656,"y":289.999960899353,"z":"58bca720.478948","wires":[]},{"id":"8effe6b3.282828","type":"execute","name":"execute SliStringUtils - replace TenantOAMNetworkRole - trust-sz","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.trust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.trust-sz\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n","comments":"","outputs":1,"x":706.9049072265625,"y":611.1904067993164,"z":"58bca720.478948","wires":[[]]},{"id":"94f4e81f.b72c58","type":"execute","name":"execute SliStringUtils - replace LandingNetworkRole - trust-sz","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.trust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.trust-sz\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n","comments":"","outputs":1,"x":692.5240325927734,"y":985.7141342163086,"z":"58bca720.478948","wires":[[]]},{"id":"1956129b.dcb17d","type":"execute","name":"execute SliStringUtils - replace LandingNetworkRole untrust-sz","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.untrust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.untrust-sz\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n","comments":"","outputs":1,"x":690.6665954589844,"y":1018.8092594146729,"z":"58bca720.478948","wires":[[]]},{"id":"67ad6570.58f12c","type":"execute","name":"execute SliStringUtils - replace TenantOAMNetworkRole - untrust-sz","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.untrust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.untrust-sz\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n","comments":"","outputs":1,"x":711.6665954589844,"y":643.3332996368408,"z":"58bca720.478948","wires":[[]]},{"id":"e32a37ab.31d3f8","type":"outcome","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":814.9999084472656,"y":316.66665840148926,"z":"58bca720.478948","wires":[[]]}]
+[
+    {
+        "id": "86ab255a.7522f8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 110.23809051513672,
+        "y": 45.23809242248535,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "678d9d6c.30b764"
+            ]
+        ]
+    },
+    {
+        "id": "678d9d6c.30b764",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 213.14283752441406,
+        "y": 119.5238208770752,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "b2221892.cef528"
+            ]
+        ]
+    },
+    {
+        "id": "b2221892.cef528",
+        "type": "method",
+        "name": "generate-panorama-name",
+        "xml": "<method rpc='generate-panorama-name' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 203.8215560913086,
+        "y": 205.95234966278076,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "f0364dcb.e5f17"
+            ]
+        ]
+    },
+    {
+        "id": "3d24b231.0488de",
+        "type": "execute",
+        "name": "SliStringUtils - untrusted name length",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\n    <parameter name=\"source\" value=\"`$new-name`\" />\n    <parameter name=\"outputPath\" value=\"tmp.strlen\"/>\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 619.2857666015625,
+        "y": 451.9047336578369,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "209cc858.355be8",
+        "type": "switchNode",
+        "name": "switch strlen > 14",
+        "xml": "<switch test='`$tmp.strlen > 14`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 557.6191902160645,
+        "y": 506.6667060852051,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "5e19e3e9.a31dfc",
+                "f283f234.fff93"
+            ]
+        ]
+    },
+    {
+        "id": "5e19e3e9.a31dfc",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 748.0952911376953,
+        "y": 514.2856960296631,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "cc102d9.0977bd"
+            ]
+        ]
+    },
+    {
+        "id": "f283f234.fff93",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 750.0000343322754,
+        "y": 567.8571586608887,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "237a8ded.5a3e32"
+            ]
+        ]
+    },
+    {
+        "id": "f0364dcb.e5f17",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 221.6666717529297,
+        "y": 288.33328199386597,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "3d24b231.0488de",
+                "209cc858.355be8",
+                "66cd5e7f.c924a",
+                "64e4cd4b.fe6024",
+                "41133073.515b5",
+                "675c7c6.f01b184",
+                "8effe6b3.282828",
+                "67ad6570.58f12c",
+                "a3bbbbad.a464e8",
+                "5b9cfe55.47f8e",
+                "c675a56.6ee6d58",
+                "f88531c9.a42ed",
+                "969e46d2.b374b8",
+                "94f4e81f.b72c58",
+                "1956129b.dcb17d"
+            ]
+        ]
+    },
+    {
+        "id": "64e4cd4b.fe6024",
+        "type": "execute",
+        "name": "SliStringUtils - split after .",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\.\"/>\n    <parameter name=\"limit\" value=\"2\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"splits\" />\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 584.9999237060547,
+        "y": 365.0000514984131,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "cc102d9.0977bd",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 919.9999771118164,
+        "y": 514.9999675750732,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "18e960c5.ed36bf"
+            ]
+        ]
+    },
+    {
+        "id": "237a8ded.5a3e32",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 918.3332824707031,
+        "y": 569.9999866485596,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "433f13a6.865dec"
+            ]
+        ]
+    },
+    {
+        "id": "433f13a6.865dec",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$new-name`' />\n",
+        "comments": "",
+        "x": 1111.666893005371,
+        "y": 568.3333539962769,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "66cd5e7f.c924a",
+        "type": "set",
+        "name": "set original-name",
+        "xml": "<set>\n<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`' />\n",
+        "comments": "",
+        "x": 563.3332672119141,
+        "y": 328.3333225250244,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "ea3b507a.625f2",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$splits[1]`' />\n",
+        "comments": "",
+        "x": 991.666576385498,
+        "y": 380.6666660308838,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "41133073.515b5",
+        "type": "switchNode",
+        "name": "switch splits length",
+        "xml": "<switch test='`$splits_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 566.666633605957,
+        "y": 404.99998664855957,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "f70ab86.5576d48",
+                "a0a0b61d.244a98",
+                "41e61d00.f9cea4"
+            ]
+        ]
+    },
+    {
+        "id": "f70ab86.5576d48",
+        "type": "outcome",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 814.9999961853027,
+        "y": 350.0000400543213,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "d7fc706c.8b686"
+            ]
+        ]
+    },
+    {
+        "id": "a0a0b61d.244a98",
+        "type": "outcome",
+        "name": "outcome 2",
+        "xml": "<outcome value='2'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 814.999927520752,
+        "y": 379.99999809265137,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "ea3b507a.625f2"
+            ]
+        ]
+    },
+    {
+        "id": "d7fc706c.8b686",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$splits[0]`' />\n",
+        "comments": "",
+        "x": 988.3331985473633,
+        "y": 345.00002574920654,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "41e61d00.f9cea4",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 801.6666374206543,
+        "y": 413.3333396911621,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "f60e104a.d022b"
+            ]
+        ]
+    },
+    {
+        "id": "f60e104a.d022b",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unexpected network role used for panorama naming' />\n",
+        "comments": "",
+        "x": 993.333324432373,
+        "y": 413.3333559036255,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "18e960c5.ed36bf",
+        "type": "execute",
+        "name": "SliStringUtils - 14 len substring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\n    <parameter name=\"string\" value=\"`$new-name`\" />\n    <parameter name=\"result\" value=\"new-name\"/>\n    <parameter name=\"begin-index\" value=\"0\" />\n    <parameter name=\"end-index\" value=\"14\" />\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1168.3332061767578,
+        "y": 503.33331966400146,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f88531c9.a42ed",
+        "type": "execute",
+        "name": "SliStringUtils - untrusted name length",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\n    <parameter name=\"source\" value=\"`$new-name`\" />\n    <parameter name=\"outputPath\" value=\"tmp.strlen\"/>\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 618.3332824707031,
+        "y": 799.9999866485596,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "969e46d2.b374b8",
+        "type": "switchNode",
+        "name": "switch strlen > 14",
+        "xml": "<switch test='`$tmp.strlen > 14`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 556.6667060852051,
+        "y": 854.7619590759277,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "2eb1e963.8f58a6",
+                "af892ecf.e3fc8"
+            ]
+        ]
+    },
+    {
+        "id": "2eb1e963.8f58a6",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 747.1428070068359,
+        "y": 862.3809490203857,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "22bdc134.447f8e"
+            ]
+        ]
+    },
+    {
+        "id": "af892ecf.e3fc8",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 749.047550201416,
+        "y": 915.9524116516113,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "b9e7b020.1beb"
+            ]
+        ]
+    },
+    {
+        "id": "5b9cfe55.47f8e",
+        "type": "execute",
+        "name": "SliStringUtils - split after .",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\.\"/>\n    <parameter name=\"limit\" value=\"2\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"splits\" />\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 584.0474395751953,
+        "y": 713.0953044891357,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "22bdc134.447f8e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 919.047492980957,
+        "y": 863.0952205657959,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "4f716d08.83a7d4"
+            ]
+        ]
+    },
+    {
+        "id": "b9e7b020.1beb",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 917.3807983398438,
+        "y": 918.0952396392822,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "b4fb00b0.5d6e"
+            ]
+        ]
+    },
+    {
+        "id": "b4fb00b0.5d6e",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$new-name`' />\n",
+        "comments": "",
+        "x": 1110.7144088745117,
+        "y": 916.4286069869995,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "a3bbbbad.a464e8",
+        "type": "set",
+        "name": "set original-name",
+        "xml": "<set>\n<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`' />\n",
+        "comments": "",
+        "x": 562.3807830810547,
+        "y": 676.4285755157471,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "a908f194.577e2",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$splits[1]`' />\n",
+        "comments": "",
+        "x": 990.7140922546387,
+        "y": 728.7619190216064,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "c675a56.6ee6d58",
+        "type": "switchNode",
+        "name": "switch splits length",
+        "xml": "<switch test='`$splits_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 565.7141494750977,
+        "y": 753.0952396392822,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "db39b4ca.681638",
+                "b28e57b5.d7f178",
+                "97c9e8ea.f63768"
+            ]
+        ]
+    },
+    {
+        "id": "db39b4ca.681638",
+        "type": "outcome",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 814.0475120544434,
+        "y": 698.095293045044,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "c17629d6.f61e28"
+            ]
+        ]
+    },
+    {
+        "id": "b28e57b5.d7f178",
+        "type": "outcome",
+        "name": "outcome 2",
+        "xml": "<outcome value='2'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 814.0474433898926,
+        "y": 728.095251083374,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "a908f194.577e2"
+            ]
+        ]
+    },
+    {
+        "id": "c17629d6.f61e28",
+        "type": "set",
+        "name": "set newname",
+        "xml": "<set>\n<parameter name='new-name' value='`$splits[0]`' />\n",
+        "comments": "",
+        "x": 987.3807563781738,
+        "y": 693.0952663421631,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "97c9e8ea.f63768",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 800.7141532897949,
+        "y": 761.4285926818848,
+        "z": "58bca720.478948",
+        "wires": [
+            [
+                "6cb0731e.f3e13c"
+            ]
+        ]
+    },
+    {
+        "id": "6cb0731e.f3e13c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Unexpected network role used for panorama naming' />\n",
+        "comments": "",
+        "x": 992.3808403015137,
+        "y": 761.4286088943481,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "4f716d08.83a7d4",
+        "type": "execute",
+        "name": "SliStringUtils - 14 len substring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\n    <parameter name=\"string\" value=\"`$new-name`\" />\n    <parameter name=\"result\" value=\"new-name\"/>\n    <parameter name=\"begin-index\" value=\"0\" />\n    <parameter name=\"end-index\" value=\"14\" />\n  \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1167.3807220458984,
+        "y": 851.4285726547241,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "675c7c6.f01b184",
+        "type": "set",
+        "name": "set trust and untrust sz name",
+        "xml": "<set>\n<parameter name='tmp.trust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_T' />\n<parameter name='tmp.untrust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_U' />\n",
+        "comments": "",
+        "x": 599.9999084472656,
+        "y": 289.999960899353,
+        "z": "58bca720.478948",
+        "wires": []
+    },
+    {
+        "id": "8effe6b3.282828",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace TenantOAMNetworkRole - trust-sz",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.trust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.trust-sz\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 706.9049072265625,
+        "y": 611.1904067993164,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "94f4e81f.b72c58",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace LandingNetworkRole - trust-sz",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.trust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.trust-sz\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 692.5240325927734,
+        "y": 985.7141342163086,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1956129b.dcb17d",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace LandingNetworkRole untrust-sz",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.untrust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.untrust-sz\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 690.6665954589844,
+        "y": 1018.8092594146729,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "67ad6570.58f12c",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace TenantOAMNetworkRole - untrust-sz",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.untrust-sz`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.untrust-sz\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$new-name`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 711.6665954589844,
+        "y": 643.3332996368408,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e32a37ab.31d3f8",
+        "type": "outcome",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 814.9999084472656,
+        "y": 316.66665840148926,
+        "z": "58bca720.478948",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-subnets-subnet-id.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-subnets-subnet-id.json
new file mode 100755 (executable)
index 0000000..fdfc9f1
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"4ebb72d6.ff1bec","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-subnets-subnet-id.uuid\" />","comments":"","outputs":1,"x":511.00390625,"y":443.50000381469727,"z":"28d7e005.9dc58","wires":[["ccc38b6a.bf2db8"]]},{"id":"ccc38b6a.bf2db8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":706.7539138793945,"y":443.50000381469727,"z":"28d7e005.9dc58","wires":[["80297807.6e63d8"]]},{"id":"80297807.6e63d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<!-- Used to work around execute node bug -->\n\t<parameter name=\"execute_failure\" value=\"false\" />\n\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-l3network-network-id\" value=\"An error occured while generating a UUID for L3-NETWORK.\" />","comments":"","x":871.7539138793945,"y":443.7500009536743,"z":"28d7e005.9dc58","wires":[]},{"id":"98f4a42f.f0aa68","type":"get-resource","name":"Query AnAI -  subnets","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"subnet\"\n\t\tkey=\"l3-network.network-id = $tmp.local.network-id \n\t\t\tAND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid\"\n\t\tlocal-only=\"false\"\n\t\tpfx=\"tmp.local-variables.generate-subnets-subnet-id.SUBNETS\" >","comments":"","outputs":1,"x":636.2539138793945,"y":534.7500009536743,"z":"28d7e005.9dc58","wires":[["250376fc.66acba","9aa930de.201cb","fabd9e45.fdd79","fcad957.1d68c68"]]},{"id":"39a85d44.1f0ee2","type":"for","name":"for s: true","xml":"<for atomic=\"true\" index=\"s\" start=\"0\" end=\"1\" >","comments":"","outputs":1,"x":460.25391387939453,"y":534.7500009536743,"z":"28d7e005.9dc58","wires":[["98f4a42f.f0aa68"]]},{"id":"250376fc.66acba","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":840.7539138793945,"y":534.7500009536743,"z":"28d7e005.9dc58","wires":[["ab106203.c8209"]]},{"id":"9aa930de.201cb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":836.7539138793945,"y":614.7500009536743,"z":"28d7e005.9dc58","wires":[["a28b9983.a32208"]]},{"id":"fabd9e45.fdd79","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":845.7539138793945,"y":574.7500009536743,"z":"28d7e005.9dc58","wires":[["6419a706.22a868"]]},{"id":"a28b9983.a32208","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-subnets-subnet-id\" value=\"`'An error occured while checking if a generated subnets-subnet-id was unique. subnet-id = ' + $tmp.local-variables.generate-subnets-subnet-id.uuid`\" />","comments":"","x":1003.2539215087891,"y":639.7500066757202,"z":"28d7e005.9dc58","wires":[]},{"id":"ab106203.c8209","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":998.7539138793945,"y":534.7500009536743,"z":"28d7e005.9dc58","wires":[["7430890a.e8ebd8","32538d2e.99dd82"]]},{"id":"7430890a.e8ebd8","type":"set","name":"set: ...local...is-unique = 0","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-subnets-subnet-id.is-unique\" value=\"0\" />","comments":"","x":1216.2539672851562,"y":534.7500066757202,"z":"28d7e005.9dc58","wires":[]},{"id":"32538d2e.99dd82","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-subnets-subnet-id.uuid\" />","comments":"","outputs":1,"x":1207.2539749145508,"y":574.7500381469727,"z":"28d7e005.9dc58","wires":[["5842cf96.43c34"]]},{"id":"5842cf96.43c34","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1396.7539138793945,"y":574.7500009536743,"z":"28d7e005.9dc58","wires":[["3fc57a3a.796596"]]},{"id":"3fc57a3a.796596","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-subnets-subnet-id\" value=\"An error occured while generating a UUID for SUBNETS.\" />","comments":"","x":1550.7539138793945,"y":574.7500009536743,"z":"28d7e005.9dc58","wires":[]},{"id":"6419a706.22a868","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":976.7539138793945,"y":574.7500009536743,"z":"28d7e005.9dc58","wires":[[]]},{"id":"3fe1a03a.3fae4","type":"dgstart","name":"DGSTART","outputs":1,"x":217.25391006469727,"y":131,"z":"28d7e005.9dc58","wires":[["9f41e76f.77e068"]]},{"id":"9f41e76f.77e068","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":241.25390625,"y":177.25,"z":"28d7e005.9dc58","wires":[["a001ce75.e6d8e"]]},{"id":"a001ce75.e6d8e","type":"method","name":"method generate-subnets-subnet-id","xml":"<method rpc=\"generate-subnets-subnet-id\" mode=\"sync\">","comments":"","outputs":1,"x":327.00390625,"y":229.75,"z":"28d7e005.9dc58","wires":[["71e8f6e6.9eb8a8"]]},{"id":"9e2de549.ffe678","type":"comment","name":"VNF-API: GENERATE-SUBNETS-SUBNET-ID","info":"","comments":"","x":768.7539215087891,"y":137.24999809265137,"z":"28d7e005.9dc58","wires":[]},{"id":"71e8f6e6.9eb8a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":278.75391387939453,"y":354.7500009536743,"z":"28d7e005.9dc58","wires":[["4ebb72d6.ff1bec","91e0fb46.daf918","7ad9adf7.13cf04","39a85d44.1f0ee2"]]},{"id":"70a1888b.537578","type":"comment","name":"LOOP UNTIL GENERATED NETWORK-ID ISN'T FOUND IN A&AI","info":"","comments":"","x":680.00390625,"y":491.0000047683716,"z":"28d7e005.9dc58","wires":[]},{"id":"60051b45.3530e4","type":"comment","name":"GENERATE A SUBNET-ID","info":"","comments":"","x":543.75390625,"y":401.00000286102295,"z":"28d7e005.9dc58","wires":[]},{"id":"91e0fb46.daf918","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-subnets-subnet-id.\" value=\"\" />\n\t<parameter name=\"tmp.return.generate-subnets-subnet-id.\" value=\"\" />","comments":"","x":529.7539138793945,"y":354.7500009536743,"z":"28d7e005.9dc58","wires":[]},{"id":"365f8dfe.0527b2","type":"comment","name":"CLEANUP LOCAL VARIABLES TO BE USED","info":"","comments":"","x":614.00390625,"y":311.00000190734863,"z":"28d7e005.9dc58","wires":[]},{"id":"a3c943fd.bba14","type":"comment","name":"GLOBAL VARIABLES USED","info":"// RETURN VALUES\nerror-message.generate-generic-vnf-id\ntmp.return.generate-generic-vnf-id.uuid\n\n// LOCAL VARIABLES (erased at beginning & end of DG)\ntmp.local-variables.generate-generic-vnf-id.*\ntmp.local-variables.generate-generic-vnf-id.GENERIC_VNF.*","comments":"","x":755.2539367675781,"y":177.24999809265137,"z":"28d7e005.9dc58","wires":[]},{"id":"7ad9adf7.13cf04","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-subnets-subnet-id.\" value=\"\" />","comments":"","x":529.7539138793945,"y":634.7500009536743,"z":"28d7e005.9dc58","wires":[]},{"id":"5b3c94ff.b7624c","type":"comment","name":"CLEANUP LOCAL VARIABLES","info":"","comments":"","x":571.25390625,"y":592.2500057220459,"z":"28d7e005.9dc58","wires":[]},{"id":"fcad957.1d68c68","type":"other","name":"Other","xml":"<outcome value=\"Other\">","comments":"","outputs":1,"x":836.7539138793945,"y":654.7500009536743,"z":"28d7e005.9dc58","wires":[["a28b9983.a32208"]]}]
\ No newline at end of file
index db31408..546f0ef 100755 (executable)
@@ -1 +1 @@
-[{"id":"67de88fb.8c7938","type":"comment","name":"Validation of required data","info":"","comments":"","x":1057.142822265625,"y":515.5803684507098,"z":"90110745.0f08b8","wires":[]},{"id":"94850767.18cb88","type":"dgstart","name":"DGSTART","outputs":1,"x":102.17857578822532,"y":85.27079963684082,"z":"90110745.0f08b8","wires":[["9515dbaf.7cfdd8"]]},{"id":"9515dbaf.7cfdd8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":217.46428680419922,"y":126.5089168548584,"z":"90110745.0f08b8","wires":[["e2f684c5.eb7ee8"]]},{"id":"e2f684c5.eb7ee8","type":"method","name":"method generate-unique-name","xml":"<method rpc='generate-unique-name' mode='sync'>\n","comments":"","outputs":1,"x":173.5238800048828,"y":168.1874546323504,"z":"90110745.0f08b8","wires":[["68aae923.1b9ef8"]]},{"id":"2c60d5c7.2f6a4a","type":"comment","name":"generate-unique-name","info":"Input arguments:\ngenerate-unique-name-input.index-table-name - name of INDEX table\ngenerate-unique-name-input.index-table-prefix-column - name of prefix column in above table\ngenerate-unique-name-input.name-table-name - name of table holding all generated names\ngenerate-unique-name-input.index-length - non-null digit if index should be fixed length\n\nOutput arguments:\ngenerate-unique-name-output.generated-name - generated name (null if error)\ngenerate-unique-name-output.error-message - error message (non-null if error)\n","comments":"","x":496.52343205043235,"y":32.85714340209961,"z":"90110745.0f08b8","wires":[]},{"id":"c38467.17e88b98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":552.0595245361328,"y":1462.4405617032733,"z":"90110745.0f08b8","wires":[["e07193e1.224fa","db37eadb.3a3d08","f2d5b5.74cefa48","e4e1fe0e.7ce86","536fad15.81aec4","54f8ebb1.fbd3a4","56d20088.dca34","a0df1e14.0a77c","2db87246.6ac1ae","a9e87bf7.6d8b68","4e23a92d.e2e488"]]},{"id":"e07193e1.224fa","type":"switchNode","name":"switch generate-unique-name-input.index-table-name","xml":"<switch test='`$generate-unique-name-input.index-table-name`'>\n","comments":"","outputs":1,"x":993.7262115478516,"y":561.1905063901629,"z":"90110745.0f08b8","wires":[["18433a18.3228e6"]]},{"id":"18433a18.3228e6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1323.726131439209,"y":561.1904958997454,"z":"90110745.0f08b8","wires":[["631b8d51.8c1104"]]},{"id":"631b8d51.8c1104","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-name not supplied' />\n","comments":"","x":1497.0594520568848,"y":561.1904873166766,"z":"90110745.0f08b8","wires":[]},{"id":"db37eadb.3a3d08","type":"switchNode","name":"switch generate-unique-name-input.index-table-prefix-column","xml":"<switch test='`$generate-unique-name-input.index-table-prefix-column`'>\n","comments":"","outputs":1,"x":1018.7261810302734,"y":604.5238422666278,"z":"90110745.0f08b8","wires":[["1d937744.b083a9"]]},{"id":"1d937744.b083a9","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1322.0594444274902,"y":604.5238212857928,"z":"90110745.0f08b8","wires":[["545cc85f.e1dd58"]]},{"id":"545cc85f.e1dd58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-prefix-column not supplied' />\n","comments":"","x":1495.3927612304688,"y":604.8571647916522,"z":"90110745.0f08b8","wires":[]},{"id":"f2d5b5.74cefa48","type":"switchNode","name":"switch generate-unique-name-input.name-table-type","xml":"<switch test='`$generate-unique-name-input.name-table-type`'>\n","comments":"","outputs":1,"x":989.726188659668,"y":649.5238346372332,"z":"90110745.0f08b8","wires":[["c3a054c.71adaa8"]]},{"id":"c3a054c.71adaa8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1322.0593852996826,"y":649.5238441739764,"z":"90110745.0f08b8","wires":[["a9d236bd.19e0f8"]]},{"id":"a9d236bd.19e0f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\n","comments":"","x":1493.726161956787,"y":649.8571476255145,"z":"90110745.0f08b8","wires":[]},{"id":"56d20088.dca34","type":"get-resource","name":"get-resource current name index","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.prefixdb'>\n\n","comments":"","outputs":1,"x":921.3927917480469,"y":1090.2855362210955,"z":"90110745.0f08b8","wires":[["145a06ca.15e939","b91db4d1.5863b8","c98722cf.dc1a3"]]},{"id":"145a06ca.15e939","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1146.5832595825195,"y":1168.8094429288592,"z":"90110745.0f08b8","wires":[["5ade3940.140eb8"]]},{"id":"5ade3940.140eb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Error reading the ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":1309.2023811340332,"y":1170.238171032497,"z":"90110745.0f08b8","wires":[]},{"id":"43b733f4.e9302c","type":"for","name":"for idx from current index to list-end","xml":"<for index='tmp.gun.idx' start='`$tmp.gun.index-number`' end='`$tmp.gun.list-end`' >\n","comments":"","outputs":1,"x":1073.7261962890625,"y":1492.8571519851685,"z":"90110745.0f08b8","wires":[["91d927f9.353948"]]},{"id":"e4e1fe0e.7ce86","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":836.3451919555664,"y":1492.8571171079363,"z":"90110745.0f08b8","wires":[["43b733f4.e9302c","c322ca3a.666808"]]},{"id":"c322ca3a.666808","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n\n","comments":"","x":1024.6786041259766,"y":2067.857247761318,"z":"90110745.0f08b8","wires":[]},{"id":"536fad15.81aec4","type":"switchNode","name":"switch generate-unique-name-input.prefix","xml":"<switch test='`$generate-unique-name-input.prefix`'>\n","comments":"","outputs":1,"x":955.3928298950195,"y":694.5238136563983,"z":"90110745.0f08b8","wires":[["82c1a7dd.32a6a8"]]},{"id":"82c1a7dd.32a6a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1322.7260189056396,"y":694.5238384519305,"z":"90110745.0f08b8","wires":[["db83eab5.1248c8"]]},{"id":"db83eab5.1248c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\n","comments":"","x":1495.3927955627441,"y":694.8571419034686,"z":"90110745.0f08b8","wires":[]},{"id":"54f8ebb1.fbd3a4","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":978.7261962890625,"y":829.523755482265,"z":"90110745.0f08b8","wires":[["f7c6d6ff.541f78","ce184e71.86be8","4c11c2f5.d535ac","d88178cc.f88d98","febff3b8.f5c6e"]]},{"id":"f7c6d6ff.541f78","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1322.0595092773438,"y":737.8571419034686,"z":"90110745.0f08b8","wires":[["5b517f27.498b7"]]},{"id":"febff3b8.f5c6e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1319.3928985595703,"y":914.5238022123065,"z":"90110745.0f08b8","wires":[["2531a549.b793aa"]]},{"id":"ce184e71.86be8","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1320.3928565979004,"y":782.8571819577899,"z":"90110745.0f08b8","wires":[["31a1c558.a77dba"]]},{"id":"4c11c2f5.d535ac","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":1320.3928413391113,"y":827.8571724210467,"z":"90110745.0f08b8","wires":[["510f4c1a.709e14"]]},{"id":"d88178cc.f88d98","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":1318.7261772155762,"y":871.1905082975115,"z":"90110745.0f08b8","wires":[["9efb14fc.5f68e8"]]},{"id":"31a1c558.a77dba","type":"set","name":"set list-end = 10","xml":"<set>\n<parameter name='tmp.gun.list-end' value='10' />\n","comments":"","x":1503.0595932006836,"y":782.8571705136981,"z":"90110745.0f08b8","wires":[]},{"id":"510f4c1a.709e14","type":"set","name":"set list-end = 100","xml":"<set>\n<parameter name='tmp.gun.list-end' value='100' />\n","comments":"","x":1506.392822265625,"y":827.8571724210467,"z":"90110745.0f08b8","wires":[]},{"id":"9efb14fc.5f68e8","type":"set","name":"set list-end = 1000","xml":"<set>\n<parameter name='tmp.gun.list-end' value='1000' />\n","comments":"","x":1508.392822265625,"y":871.190485409328,"z":"90110745.0f08b8","wires":[]},{"id":"2531a549.b793aa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\n","comments":"","x":1490.392822265625,"y":913.8571724210467,"z":"90110745.0f08b8","wires":[]},{"id":"70192d95.678c34","type":"set","name":"set new index number to 1","xml":"<set>\n<parameter name='tmp.gun.index-number' value='1' />\n","comments":"","x":1481.8216018676758,"y":1113.4288276944842,"z":"90110745.0f08b8","wires":[]},{"id":"5b517f27.498b7","type":"set","name":"set list-end = 10000 (infinity basically)","xml":"<set>\n<parameter name='tmp.gun.list-end' value='10000' />\n","comments":"","x":1571.0594482421875,"y":738.190485409328,"z":"90110745.0f08b8","wires":[]},{"id":"314df997.3fe296","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1635.3927764892578,"y":1419.5237907682147,"z":"90110745.0f08b8","wires":[["d05e660d.be4cd8","c3985438.571b88","b03a2186.83945","f88e445.6bd78b8"]]},{"id":"d05e660d.be4cd8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1915.3927764892578,"y":1349.523851803371,"z":"90110745.0f08b8","wires":[["4bdac272.02882c"]]},{"id":"c3985438.571b88","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1913.7261238098145,"y":1394.5238918576922,"z":"90110745.0f08b8","wires":[["4bdac272.02882c"]]},{"id":"b03a2186.83945","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":1913.7262115478516,"y":1447.8572391782488,"z":"90110745.0f08b8","wires":[["aa9d44e3.177b58"]]},{"id":"f88e445.6bd78b8","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":1913.726089477539,"y":1544.5239719663348,"z":"90110745.0f08b8","wires":[["9cdd86f.ae52778"]]},{"id":"4bdac272.02882c","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2100.392925262451,"y":1367.8571953092303,"z":"90110745.0f08b8","wires":[]},{"id":"aa9d44e3.177b58","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2080.3928413391113,"y":1447.857137135097,"z":"90110745.0f08b8","wires":[["db28baee.042fe8","31a49c00.cbd4c4"]]},{"id":"db28baee.042fe8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2242.0594749450684,"y":1421.1905102048602,"z":"90110745.0f08b8","wires":[["1f2e15a5.5c898a"]]},{"id":"31a49c00.cbd4c4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2242.0594329833984,"y":1469.523846081325,"z":"90110745.0f08b8","wires":[["5fd3a71c.4e8c88"]]},{"id":"1f2e15a5.5c898a","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2433.726234436035,"y":1420.523737362453,"z":"90110745.0f08b8","wires":[]},{"id":"5fd3a71c.4e8c88","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2417.05948638916,"y":1469.1904529844012,"z":"90110745.0f08b8","wires":[]},{"id":"9cdd86f.ae52778","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2082.059425354004,"y":1542.8570999417987,"z":"90110745.0f08b8","wires":[["4dff528e.5fe12c","e36c83c7.3522d"]]},{"id":"4dff528e.5fe12c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2242.0594024658203,"y":1516.1904777799334,"z":"90110745.0f08b8","wires":[["3d8d515c.20155e"]]},{"id":"e36c83c7.3522d","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2243.726058959961,"y":1591.1904358182635,"z":"90110745.0f08b8","wires":[["5210620f.f035ac"]]},{"id":"3d8d515c.20155e","type":"set","name":"set index-string to '00' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '00' + $tmp.gun.idx`\" />\n","comments":"","x":2437.0594940185547,"y":1516.1903686523438,"z":"90110745.0f08b8","wires":[]},{"id":"5210620f.f035ac","type":"switchNode","name":"switch idx < 100","xml":"<switch test='`$tmp.gun.idx &lt; 100`'>\n","comments":"","outputs":1,"x":2400.059440612793,"y":1589.5237964902606,"z":"90110745.0f08b8","wires":[["bb2d2969.5be9a8","f8c44cdb.e372f"]]},{"id":"bb2d2969.5be9a8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2557.0594177246094,"y":1562.8571743283953,"z":"90110745.0f08b8","wires":[["7621b36e.37c05c"]]},{"id":"f8c44cdb.e372f","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2557.0593757629395,"y":1611.1905102048602,"z":"90110745.0f08b8","wires":[["c1d12981.5578f8"]]},{"id":"7621b36e.37c05c","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2749.726203918457,"y":1562.5238289151873,"z":"90110745.0f08b8","wires":[]},{"id":"c1d12981.5578f8","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2733.726188659668,"y":1610.8571323667254,"z":"90110745.0f08b8","wires":[]},{"id":"630383d6.9584cc","type":"set","name":"set generated-name to prefix + index-string","xml":"<set>\n<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\n","comments":"","x":1619.3928680419922,"y":1696.1904396329608,"z":"90110745.0f08b8","wires":[]},{"id":"e52dd26e.0f4e","type":"set","name":"increment index number","xml":"<set>\n<parameter name='tmp.gun.index-number' value='`$tmp.gun.prefixdb.index-number + 1`' />\n","comments":"","x":1473.7261962890625,"y":1023.4761659417834,"z":"90110745.0f08b8","wires":[]},{"id":"73c9dbdb.c05d54","type":"comment","name":"First check from the current index to the max index","info":"","comments":"","x":1037.0595397949219,"y":1431.1905206952777,"z":"90110745.0f08b8","wires":[]},{"id":"1b12fce7.736083","type":"comment","name":"check if we've used this name before","info":"","comments":"","x":1616.1073913574219,"y":1780.4765853881836,"z":"90110745.0f08b8","wires":[]},{"id":"60c15f95.e82e1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1723.7261924743652,"y":1857.8573679242816,"z":"90110745.0f08b8","wires":[["d699e5de.1c2618"]]},{"id":"38122015.0cd4f","type":"set","name":"set generate-unique-name-output.error-message","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value=\"`'Error reading the GENERIC_RESOURCE_NAME table'`\" />\n","comments":"","x":2169.6784439086914,"y":1831.4287008558001,"z":"90110745.0f08b8","wires":[]},{"id":"9f978d91.b34da","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2034.916690826416,"y":1876.4287885938372,"z":"90110745.0f08b8","wires":[]},{"id":"48493fbe.6eb1a","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2037.7737121582031,"y":1971.33347933633,"z":"90110745.0f08b8","wires":[]},{"id":"ff71e11.cb7392","type":"comment","name":"found one we can use","info":"","comments":"","x":1855.6311683654785,"y":1902.3814014707293,"z":"90110745.0f08b8","wires":[]},{"id":"a0df1e14.0a77c","type":"switchNode","name":"switch generate-unique-name-output.error-message","xml":"<switch test='`$generate-unique-name-output.error-message`'>\n","comments":"","outputs":1,"x":987.8928833007812,"y":2185.7143883023946,"z":"90110745.0f08b8","wires":[["47956a10.f7f354","822e2233.58978"]]},{"id":"47956a10.f7f354","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1261.2262916564941,"y":2159.0476402555196,"z":"90110745.0f08b8","wires":[["9fcbb9ed.6b3558"]]},{"id":"9fcbb9ed.6b3558","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1396.2262916564941,"y":2159.0476402555196,"z":"90110745.0f08b8","wires":[[]]},{"id":"822e2233.58978","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1261.2262573242188,"y":2209.0476612363545,"z":"90110745.0f08b8","wires":[["d471ec21.e29e1"]]},{"id":"d471ec21.e29e1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1411.2262573242188,"y":2209.0476612363545,"z":"90110745.0f08b8","wires":[]},{"id":"2db87246.6ac1ae","type":"switchNode","name":"switch found-flag","xml":"<switch test='`$tmp.gun.found-flag`'>\n","comments":"","outputs":1,"x":859.6071929931641,"y":2468.5715078626363,"z":"90110745.0f08b8","wires":[["1afe7988.3e2406","382ec618.a7ddba"]]},{"id":"1afe7988.3e2406","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1033.9405326843262,"y":2468.5715088163106,"z":"90110745.0f08b8","wires":[["3d2939f2.411d96"]]},{"id":"97761528.22f748","type":"set","name":"set generate-unique-name-output.generated-name","xml":"<set>\n<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\n","comments":"","x":1504.6071472167969,"y":2313.5717949186055,"z":"90110745.0f08b8","wires":[]},{"id":"eda538a7.a89168","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":1386.6547164916992,"y":2650.952589443752,"z":"90110745.0f08b8","wires":[]},{"id":"3d2939f2.411d96","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1185.607162475586,"y":2467.9049228940694,"z":"90110745.0f08b8","wires":[["97761528.22f748","8aabfd4d.0ee5a","b24cce42.caeba","eda538a7.a89168","76d2de9f.d1d72"]]},{"id":"77a666ae.651d38","type":"set","name":"set index-exists flag to false","xml":"<set>\n<parameter name='tmp.gun.index-exists' value='false' />\n","comments":"","x":1485.8689880371094,"y":1067.142887524196,"z":"90110745.0f08b8","wires":[]},{"id":"21842051.8fdc8","type":"set","name":"set index-exists flag to true","xml":"<set>\n<parameter name='tmp.gun.index-exists' value='true' />\n","comments":"","x":1482.0120010375977,"y":978.571439913341,"z":"90110745.0f08b8","wires":[]},{"id":"4cecef4a.45b81","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1288.7262725830078,"y":1000.0000459466662,"z":"90110745.0f08b8","wires":[["21842051.8fdc8","e52dd26e.0f4e"]]},{"id":"8aabfd4d.0ee5a","type":"switchNode","name":"switch index-exists","xml":"<switch test='`$tmp.gun.index-exists`'>\n","comments":"","outputs":1,"x":1400.369155883789,"y":2445.714796475002,"z":"90110745.0f08b8","wires":[["346f0424.17228c","2db882f9.07b2be"]]},{"id":"346f0424.17228c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1578.9405212402344,"y":2421.429064205715,"z":"90110745.0f08b8","wires":[["46d7a7fe.5f3bf8"]]},{"id":"2db882f9.07b2be","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1578.9405364990234,"y":2468.571989468166,"z":"90110745.0f08b8","wires":[["a296a95c.85f908"]]},{"id":"783bc8f9.d13d28","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1974.6548461914062,"y":2422.857480457851,"z":"90110745.0f08b8","wires":[["67762a25.ef1984"]]},{"id":"c608a7c.ab02058","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1967.5118255615234,"y":2517.1429485593526,"z":"90110745.0f08b8","wires":[["396de0c3.36e29"]]},{"id":"67762a25.ef1984","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2167.512046813965,"y":2422.8574995313375,"z":"90110745.0f08b8","wires":[["77e2ebe5.4aacd4"]]},{"id":"396de0c3.36e29","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2164.6546173095703,"y":2515.71446459634,"z":"90110745.0f08b8","wires":[["a64a1c5c.548e1"]]},{"id":"b24cce42.caeba","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1434.797752380371,"y":2604.2857708249776,"z":"90110745.0f08b8","wires":[["6e840dcf.98d2c4"]]},{"id":"6e840dcf.98d2c4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1644.7976837158203,"y":2604.2858223233907,"z":"90110745.0f08b8","wires":[["14711303.85363d"]]},{"id":"14711303.85363d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":1799.0834999084473,"y":2604.285841396877,"z":"90110745.0f08b8","wires":[]},{"id":"a9e87bf7.6d8b68","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from ' + $generate-unique-name-input.index-table-name\n+ ' WHERE ' + $generate-unique-name-input.index-table-prefix-column + ' = '\n+ '$generate-unique-name-input.prefix'`\" />\n","comments":"","x":877.2976760864258,"y":958.5715393338885,"z":"90110745.0f08b8","wires":[]},{"id":"91d927f9.353948","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1315.8690567016602,"y":1491.428631237575,"z":"90110745.0f08b8","wires":[["314df997.3fe296","630383d6.9584cc","3e27b62f.f1d58a","880d7037.87ac9"]]},{"id":"d699e5de.1c2618","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1876.1071891784668,"y":1857.3812870298113,"z":"90110745.0f08b8","wires":[["38122015.0cd4f","9f978d91.b34da"]]},{"id":"46d7a7fe.5f3bf8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1756.226333618164,"y":2398.5715927396504,"z":"90110745.0f08b8","wires":[["d44f050d.8c0008","783bc8f9.d13d28"]]},{"id":"a296a95c.85f908","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1753.3691864013672,"y":2494.285911015102,"z":"90110745.0f08b8","wires":[["c608a7c.ab02058","462aa6c7.448d08"]]},{"id":"d44f050d.8c0008","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'update ' + $generate-unique-name-input.index-table-name\n+ ' set index_number = ' + $tmp.gun.index-string + ' where '\n+ $generate-unique-name-input.index-table-prefix-column\n+ ' = $generate-unique-name-input.prefix'`\" />\n","comments":"","x":1944.7976150512695,"y":2374.285564354488,"z":"90110745.0f08b8","wires":[]},{"id":"462aa6c7.448d08","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into ' + $generate-unique-name-input.index-table-name\n+ '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\n+ ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`\" />\n\n","comments":"","x":1943.3691635131836,"y":2468.571381023952,"z":"90110745.0f08b8","wires":[]},{"id":"bbed7686.7c8a78","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1730.3929290771484,"y":1948.8097633634295,"z":"90110745.0f08b8","wires":[["193702b8.5c51ed"]]},{"id":"6d5c7c0e.2718a4","type":"for","name":"for idx from 1 to current index","xml":"<for index='tmp.gun.idx' start='1' end='`$tmp.gun.index-number`' >\n","comments":"","outputs":1,"x":1580.1787033081055,"y":3060.5239128385274,"z":"90110745.0f08b8","wires":[["c87de081.2b7b6"]]},{"id":"1185013a.772fcf","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1348.5119857788086,"y":3060.5239137922017,"z":"90110745.0f08b8","wires":[["6d5c7c0e.2718a4","bf365e0a.2dfca"]]},{"id":"bf365e0a.2dfca","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n\n","comments":"","x":1531.1310958862305,"y":3635.5240434919087,"z":"90110745.0f08b8","wires":[]},{"id":"9144f7d0.dfe548","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":2141.8452682495117,"y":2987.1905864988057,"z":"90110745.0f08b8","wires":[["644f5421.41381c","e5c0619b.7a065","e0c68335.db7ab","41de4558.401f8c"]]},{"id":"644f5421.41381c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2421.8452682495117,"y":2917.190647533962,"z":"90110745.0f08b8","wires":[["fb2ee76c.834068"]]},{"id":"e5c0619b.7a065","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":2420.1786155700684,"y":2962.1906875882833,"z":"90110745.0f08b8","wires":[["fb2ee76c.834068"]]},{"id":"e0c68335.db7ab","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":2420.1787033081055,"y":3015.52403490884,"z":"90110745.0f08b8","wires":[["21e6c935.f093a6"]]},{"id":"41de4558.401f8c","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":2420.178581237793,"y":3112.190767696926,"z":"90110745.0f08b8","wires":[["ae67a8d.0fd0d58"]]},{"id":"fb2ee76c.834068","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2606.845417022705,"y":2935.5239910398213,"z":"90110745.0f08b8","wires":[]},{"id":"21e6c935.f093a6","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2586.8453330993652,"y":3015.523932865688,"z":"90110745.0f08b8","wires":[["c00eb747.c971c8","7a0fee3a.c8155"]]},{"id":"c00eb747.c971c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2748.5119667053223,"y":2988.857305935451,"z":"90110745.0f08b8","wires":[["c515b54.3569d48"]]},{"id":"7a0fee3a.c8155","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2748.5119247436523,"y":3037.190641811916,"z":"90110745.0f08b8","wires":[["de2fc71d.e11088"]]},{"id":"c515b54.3569d48","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2940.178726196289,"y":2988.190533093044,"z":"90110745.0f08b8","wires":[]},{"id":"de2fc71d.e11088","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2923.511978149414,"y":3036.8572487149922,"z":"90110745.0f08b8","wires":[]},{"id":"ae67a8d.0fd0d58","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2588.511917114258,"y":3110.5238956723897,"z":"90110745.0f08b8","wires":[["c8925f4d.077c6","12f4b493.683e8b"]]},{"id":"c8925f4d.077c6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2748.511894226074,"y":3083.8572735105245,"z":"90110745.0f08b8","wires":[["c22d1aeb.d63b48"]]},{"id":"12f4b493.683e8b","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2750.178550720215,"y":3158.8572315488545,"z":"90110745.0f08b8","wires":[["90f5c134.3ca9"]]},{"id":"c22d1aeb.d63b48","type":"set","name":"set index-string to '00' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '00' + $tmp.gun.idx`\" />\n","comments":"","x":2943.511978149414,"y":3083.8572487149922,"z":"90110745.0f08b8","wires":[]},{"id":"90f5c134.3ca9","type":"switchNode","name":"switch idx < 100","xml":"<switch test='`$tmp.gun.idx &lt; 100`'>\n","comments":"","outputs":1,"x":2906.511932373047,"y":3157.1905922208516,"z":"90110745.0f08b8","wires":[["87f17e57.81d71","f8e50bff.aaa1f8"]]},{"id":"87f17e57.81d71","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3063.5119094848633,"y":3130.5239700589864,"z":"90110745.0f08b8","wires":[["caf5e13b.23238"]]},{"id":"f8e50bff.aaa1f8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3063.5118675231934,"y":3178.857305935451,"z":"90110745.0f08b8","wires":[["2e72859.272837a"]]},{"id":"caf5e13b.23238","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":3256.178695678711,"y":3130.1906246457784,"z":"90110745.0f08b8","wires":[]},{"id":"2e72859.272837a","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":3240.178680419922,"y":3178.5239280973165,"z":"90110745.0f08b8","wires":[]},{"id":"9775d1bd.a31a5","type":"set","name":"set generated-name to prefix + index-string","xml":"<set>\n<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\n","comments":"","x":2125.845359802246,"y":3263.857235363552,"z":"90110745.0f08b8","wires":[]},{"id":"35bc5497.2d892c","type":"comment","name":"Wrapping around - now check from 1 to the original index","info":"","comments":"","x":1553.5120162963867,"y":2946.000319889614,"z":"90110745.0f08b8","wires":[]},{"id":"ccb5f6ab.ef5478","type":"comment","name":"check if we've used this name before","info":"","comments":"","x":2112.5598068237305,"y":3378.8575090680806,"z":"90110745.0f08b8","wires":[]},{"id":"e74cf3af.ae8e8","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":2050.178623199463,"y":3519.571578979492,"z":"90110745.0f08b8","wires":[["2f478f3e.e0607","398f430e.7a743c"]]},{"id":"2f478f3e.e0607","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2228.5120162963867,"y":3473.8574156079976,"z":"90110745.0f08b8","wires":[["c9df5194.5868"]]},{"id":"9ffe2099.9294f","type":"set","name":"set generate-unique-name-output.error-message","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value=\"Error reading the GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":2674.464267730713,"y":3447.428748539516,"z":"90110745.0f08b8","wires":[]},{"id":"745383f6.b6740c","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2539.7025146484375,"y":3492.4288362775533,"z":"90110745.0f08b8","wires":[]},{"id":"cd5abdec.20e31","type":"switchNode","name":"switch generate-unique-name-output.error-message","xml":"<switch test='`$generate-unique-name-output.error-message`'>\n","comments":"","outputs":1,"x":1512.5595932006836,"y":3743.381119183132,"z":"90110745.0f08b8","wires":[["8a7bb59.e987548","ec85a0b6.70f26"]]},{"id":"8a7bb59.e987548","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1785.8930015563965,"y":3716.714371136257,"z":"90110745.0f08b8","wires":[["13932aab.cff7c5"]]},{"id":"13932aab.cff7c5","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1920.8930015563965,"y":3716.714371136257,"z":"90110745.0f08b8","wires":[[]]},{"id":"ec85a0b6.70f26","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1785.892967224121,"y":3766.714392117092,"z":"90110745.0f08b8","wires":[["a496c9cc.3afe48"]]},{"id":"a496c9cc.3afe48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1935.892967224121,"y":3766.714392117092,"z":"90110745.0f08b8","wires":[]},{"id":"e38bddb.6889c2","type":"switchNode","name":"switch found-flag","xml":"<switch test='`$tmp.gun.found-flag`'>\n","comments":"","outputs":1,"x":1394.2738723754883,"y":3922.905027798244,"z":"90110745.0f08b8","wires":[["d6f25ad7.1e9978"]]},{"id":"70380c05.64b0a4","type":"comment","name":"if db name is null we found an index we can use","info":"","comments":"","x":1560.9882125854492,"y":3872.428802898952,"z":"90110745.0f08b8","wires":[]},{"id":"d6f25ad7.1e9978","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1553.607192993164,"y":3922.9049848829,"z":"90110745.0f08b8","wires":[["e5da090c.731d68"]]},{"id":"feb55f31.73e7a","type":"set","name":"set generate-unique-name-output.generated-name","xml":"<set>\n<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\n","comments":"","x":2029.2738571166992,"y":3871.238525799343,"z":"90110745.0f08b8","wires":[]},{"id":"89e6e738.067dc8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\n","comments":"","x":1912.7499084472656,"y":4210.047996929714,"z":"90110745.0f08b8","wires":[]},{"id":"e5da090c.731d68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1720.2738876342773,"y":3921.238203457424,"z":"90110745.0f08b8","wires":[["feb55f31.73e7a","4da56fe5.e07a7","e153c7a4.007a58","89e6e738.067dc8","9ece7ac0.84e2b8"]]},{"id":"4da56fe5.e07a7","type":"switchNode","name":"switch index-exists","xml":"<switch test='`$tmp.gun.index-exists`'>\n","comments":"","outputs":1,"x":1925.0358657836914,"y":4003.3815273557393,"z":"90110745.0f08b8","wires":[["a21cdd7a.49ed","31ea122e.79dede"]]},{"id":"a21cdd7a.49ed","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2103.6072311401367,"y":3979.095795086452,"z":"90110745.0f08b8","wires":[["63c24c47.93cb44"]]},{"id":"31ea122e.79dede","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2103.607246398926,"y":4026.2387203489034,"z":"90110745.0f08b8","wires":[["a5ce5bde.1b0538"]]},{"id":"c6f53c8c.15009","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":2499.3215560913086,"y":3980.5242113385884,"z":"90110745.0f08b8","wires":[["5f753ea1.c860f"]]},{"id":"93519bfb.b8ef58","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":2492.178535461426,"y":4074.80967944009,"z":"90110745.0f08b8","wires":[["cb6afb42.e26668"]]},{"id":"5f753ea1.c860f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2692.178756713867,"y":3980.5242304120748,"z":"90110745.0f08b8","wires":[["87791e94.3a263"]]},{"id":"87791e94.3a263","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2846.464572906494,"y":3980.524249485561,"z":"90110745.0f08b8","wires":[]},{"id":"cb6afb42.e26668","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2689.3213272094727,"y":4073.381195477077,"z":"90110745.0f08b8","wires":[["7e817d75.e13cb4"]]},{"id":"7e817d75.e13cb4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2843.6071434020996,"y":4073.3812145505635,"z":"90110745.0f08b8","wires":[]},{"id":"e153c7a4.007a58","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1959.4644622802734,"y":4161.952501705715,"z":"90110745.0f08b8","wires":[["3737e1de.1f275e"]]},{"id":"3737e1de.1f275e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2169.4643936157227,"y":4161.952553204128,"z":"90110745.0f08b8","wires":[["c41eb84f.1afce8"]]},{"id":"c41eb84f.1afce8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":2323.7502098083496,"y":4161.952572277614,"z":"90110745.0f08b8","wires":[]},{"id":"c87de081.2b7b6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1822.321548461914,"y":3059.095426968166,"z":"90110745.0f08b8","wires":[["9144f7d0.dfe548","9775d1bd.a31a5","e74cf3af.ae8e8","49a5595e.684d18","30eb1a83.c57be6"]]},{"id":"c9df5194.5868","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2380.8930130004883,"y":3473.3813347135274,"z":"90110745.0f08b8","wires":[["9ffe2099.9294f","745383f6.b6740c"]]},{"id":"63c24c47.93cb44","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2280.8930435180664,"y":3956.2383236203877,"z":"90110745.0f08b8","wires":[["9f7397b5.b8e698","c6f53c8c.15009"]]},{"id":"a5ce5bde.1b0538","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2278.0358963012695,"y":4051.9526418958394,"z":"90110745.0f08b8","wires":[["93519bfb.b8ef58","2396ee2e.6296a2"]]},{"id":"9f7397b5.b8e698","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'update ' + $generate-unique-name-input.index-table-name\n+ ' set index_number = ' + $tmp.gun.index-string + ' where '\n+ $generate-unique-name-input.index-table-prefix-column\n+ ' = $generate-unique-name-input.prefix'`\" />\n","comments":"","x":2469.464324951172,"y":3931.9522952352254,"z":"90110745.0f08b8","wires":[]},{"id":"2396ee2e.6296a2","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into ' + $generate-unique-name-input.index-table-name\n+ '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\n+ ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`\" />\n\n","comments":"","x":2468.035873413086,"y":4026.2381119046895,"z":"90110745.0f08b8","wires":[]},{"id":"398f430e.7a743c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2235.17875289917,"y":3564.8098110471456,"z":"90110745.0f08b8","wires":[["efb43154.90976"]]},{"id":"49a5595e.684d18","type":"set","name":"clear namedb.name","xml":"<set>\n<parameter name='tmp.gun.namedb.name' value='' />\n","comments":"","x":2050.892936706543,"y":3314.8097442899434,"z":"90110745.0f08b8","wires":[]},{"id":"4c9e63b6.428eec","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1497.1786651611328,"y":2807.190584591457,"z":"90110745.0f08b8","wires":[["a88c76d2.c57508"]]},{"id":"a88c76d2.c57508","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1752.8929977416992,"y":2808.095493725368,"z":"90110745.0f08b8","wires":[["7d718b44.ba6f14"]]},{"id":"7d718b44.ba6f14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"We have exhausted the naming index count\" />\n","comments":"","x":1910.0358810424805,"y":2808.095493725368,"z":"90110745.0f08b8","wires":[]},{"id":"15057783.9b13f8","type":"comment","name":"if we get here when there is no index length, then we have used up all 1000","info":"","comments":"","x":1628.6072616577148,"y":2763.8098081861226,"z":"90110745.0f08b8","wires":[]},{"id":"48f231a0.1295b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"We have exhausted the naming index count\" />\n","comments":"","x":1388.6072807312012,"y":4323.095478466579,"z":"90110745.0f08b8","wires":[]},{"id":"4e23a92d.e2e488","type":"set","name":"set found-flag=false","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='false' />\n","comments":"","x":883.0119400024414,"y":1234.2857422147479,"z":"90110745.0f08b8","wires":[]},{"id":"90ee10e.7fdccf","type":"set","name":"set found-flag=true","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='true' />\n","comments":"","x":2074.6786308288574,"y":1923.0953316007342,"z":"90110745.0f08b8","wires":[]},{"id":"193702b8.5c51ed","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1881.8214530944824,"y":1949.2382759366717,"z":"90110745.0f08b8","wires":[["90ee10e.7fdccf","48493fbe.6eb1a"]]},{"id":"e2c9737b.99e7f","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2540.035732269287,"y":3585.952526501247,"z":"90110745.0f08b8","wires":[]},{"id":"be7d48f6.6006d8","type":"comment","name":"found one we can use","info":"","comments":"","x":2357.8931884765625,"y":3517.0004486356465,"z":"90110745.0f08b8","wires":[]},{"id":"66fa06ee.f98f28","type":"set","name":"set found-flag=true","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='true' />\n","comments":"","x":2576.9406509399414,"y":3537.7143787656514,"z":"90110745.0f08b8","wires":[]},{"id":"efb43154.90976","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2384.0834732055664,"y":3563.857323101589,"z":"90110745.0f08b8","wires":[["66fa06ee.f98f28","e2c9737b.99e7f"]]},{"id":"583423a0.c77f8c","type":"switchNode","name":"switch generate-unique-name-input.supplied-name","xml":"<switch test='`$generate-unique-name-input.supplied-name`'>\n","comments":"","outputs":1,"x":434.79754638671875,"y":340.7143215451922,"z":"90110745.0f08b8","wires":[["86bad139.04091","9dd1d0d8.1bd5f"]]},{"id":"86bad139.04091","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":693.3690452575684,"y":367.85711710793635,"z":"90110745.0f08b8","wires":[["c38467.17e88b98"]]},{"id":"9dd1d0d8.1bd5f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":693.3690223693848,"y":310.7142872129168,"z":"90110745.0f08b8","wires":[["f19bef1d.3057b"]]},{"id":"1f92ba68.4441e6","type":"switchNode","name":"switch generate-unique-name-input.name-table-type","xml":"<switch test='`$generate-unique-name-input.name-table-type`'>\n","comments":"","outputs":1,"x":1162.6546936035156,"y":246.42856829507014,"z":"90110745.0f08b8","wires":[["3cf36f75.3d9c6"]]},{"id":"3cf36f75.3d9c6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1495.9878902435303,"y":246.4285778318133,"z":"90110745.0f08b8","wires":[["c20913bc.b8956"]]},{"id":"c20913bc.b8956","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\n","comments":"","x":1667.6546669006348,"y":246.76188128335139,"z":"90110745.0f08b8","wires":[]},{"id":"f19bef1d.3057b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":847.6547470092773,"y":309.28571741921564,"z":"90110745.0f08b8","wires":[["1f92ba68.4441e6","a5541836.ef0a18","f1e52879.fa9cb8"]]},{"id":"f1e52879.fa9cb8","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1056.2261581420898,"y":339.2857326780047,"z":"90110745.0f08b8","wires":[["324fd762.c67938","5bbbc00e.34e41","85249bc8.1ea708"]]},{"id":"324fd762.c67938","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1238.8452072143555,"y":326.42862837655207,"z":"90110745.0f08b8","wires":[["bf63fff2.0717"]]},{"id":"a5541836.ef0a18","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $generate-unique-name-input.supplied-name'`\" />\n","comments":"","x":1049.7977104187012,"y":291.66675036294123,"z":"90110745.0f08b8","wires":[]},{"id":"5bbbc00e.34e41","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1246.9405632019043,"y":371.66673891884943,"z":"90110745.0f08b8","wires":[["2dce07c3.4cdde8"]]},{"id":"bf63fff2.0717","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value=\"`'Error reading the ' + $generate-unique-name-input.name-table-index + ' table'`\" />\n\n","comments":"","x":1394.7976303100586,"y":326.00003378731867,"z":"90110745.0f08b8","wires":[]},{"id":"85249bc8.1ea708","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1239.0833320617676,"y":413.57143252236506,"z":"90110745.0f08b8","wires":[["b470dc23.972cf"]]},{"id":"b470dc23.972cf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value=\"`'The name ' + $generate-unique-name-input.supplied-name + ' has already been used'`\" />\n\n","comments":"","x":1394.7975692749023,"y":412.99999659402033,"z":"90110745.0f08b8","wires":[]},{"id":"beb8c925.e74138","type":"comment","name":"Caller supplied name - make sure it's not already used","info":"","comments":"","x":1192.5119018554688,"y":199.85713999611994,"z":"90110745.0f08b8","wires":[]},{"id":"2dce07c3.4cdde8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1396.2262573242188,"y":372.1428455625262,"z":"90110745.0f08b8","wires":[["8c2318a2.ecf138","2d4f1679.5fff5a"]]},{"id":"2d4f1679.5fff5a","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1636.2262573242188,"y":396.42858164651057,"z":"90110745.0f08b8","wires":[["e58686f1.2a8ec8"]]},{"id":"e58686f1.2a8ec8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1846.226188659668,"y":396.42863314492365,"z":"90110745.0f08b8","wires":[["c3a9c01e.0e1a8"]]},{"id":"c3a9c01e.0e1a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":2000.512004852295,"y":396.42865221841,"z":"90110745.0f08b8","wires":[]},{"id":"8c2318a2.ecf138","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into GENERIC_RESOURCE_NAME values ( '\n+ ' $generate-unique-name-input.name-table-type , $generate-unique-name-input.supplied-name )'`\" />\n\n","comments":"","x":1596.226188659668,"y":346.4287590299334,"z":"90110745.0f08b8","wires":[]},{"id":"76d2de9f.d1d72","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into GENERIC_RESOURCE_NAME values ( '\n+ ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`\" />\n\n","comments":"","x":1396.2262115478516,"y":2557.8571314130513,"z":"90110745.0f08b8","wires":[]},{"id":"30eb1a83.c57be6","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $tmp.gun.generated-name'`\" />\n","comments":"","x":2044.3215103149414,"y":3430.238300732204,"z":"90110745.0f08b8","wires":[]},{"id":"9ece7ac0.84e2b8","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into GENERIC_RESOURCE_NAME values ( '\n+ ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`\" />\n\n","comments":"","x":1920.0357055664062,"y":4114.523828915188,"z":"90110745.0f08b8","wires":[]},{"id":"77e2ebe5.4aacd4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2319.083396911621,"y":2422.1428484235494,"z":"90110745.0f08b8","wires":[]},{"id":"a64a1c5c.548e1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2316.2260093688965,"y":2515.4286293302266,"z":"90110745.0f08b8","wires":[]},{"id":"382ec618.a7ddba","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1032.178508758545,"y":2752.8571705136983,"z":"90110745.0f08b8","wires":[["75ff300b.6f6dc"]]},{"id":"75ff300b.6f6dc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1183.0119171142578,"y":3364.523694447109,"z":"90110745.0f08b8","wires":[["4c9e63b6.428eec","1185013a.772fcf","cd5abdec.20e31","e38bddb.6889c2","48f231a0.1295b"]]},{"id":"c98722cf.dc1a3","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1149.65482711792,"y":999.2857116971697,"z":"90110745.0f08b8","wires":[["4cecef4a.45b81"]]},{"id":"b91db4d1.5863b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1156.2262916564941,"y":1088.4285854612078,"z":"90110745.0f08b8","wires":[["2195c896.9afd38"]]},{"id":"2195c896.9afd38","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1287.654842376709,"y":1087.857191494533,"z":"90110745.0f08b8","wires":[["77a666ae.651d38","70192d95.678c34"]]},{"id":"880d7037.87ac9","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $tmp.gun.generated-name'`\" />\n","comments":"","x":1540.0000267028809,"y":1821.4285945892334,"z":"90110745.0f08b8","wires":[]},{"id":"3e27b62f.f1d58a","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1541.4286346435547,"y":1908.571517944336,"z":"90110745.0f08b8","wires":[["60c15f95.e82e1","bbed7686.7c8a78"]]},{"id":"68aae923.1b9ef8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":133.75,"y":315.0000047683716,"z":"90110745.0f08b8","wires":[["583423a0.c77f8c","f553193.f9377e8"]]},{"id":"f553193.f9377e8","type":"set","name":"clear variables","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value='' />\n<parameter name='generate-unique-name-output.generated-name' value='' />\n","comments":"","x":322.50000381469727,"y":290.00000381469727,"z":"90110745.0f08b8","wires":[]}]
+[{"id":"5b6ea5fe.a10cec","type":"comment","name":"Validation of required data","info":"","comments":"","x":1040,"y":442.2946882247925,"z":"f1e12e88.dbd29","wires":[]},{"id":"93fd3d5a.38a48","type":"dgstart","name":"DGSTART","outputs":1,"x":110.75010299682617,"y":47.699371337890625,"z":"f1e12e88.dbd29","wires":[["aac966e5.94dc28"]]},{"id":"dc433da4.fccac","type":"method","name":"method generate-unique-name","xml":"<method rpc='generate-unique-name' mode='sync'>\n","comments":"","outputs":1,"x":243.66683197021484,"y":120.04460334777832,"z":"f1e12e88.dbd29","wires":[["60a7ef67.eff89"]]},{"id":"b889af43.15dcd","type":"comment","name":"generate-unique-name","info":"Input arguments:\ngenerate-unique-name-input.index-table-name - name of INDEX table\ngenerate-unique-name-input.index-table-prefix-column - name of prefix column in above table\ngenerate-unique-name-input.name-table-name - name of table holding all generated names\ngenerate-unique-name-input.index-length - non-null digit if index should be fixed length\n\nOutput arguments:\ngenerate-unique-name-output.generated-name - generated name (null if error)\ngenerate-unique-name-output.error-message - error message (non-null if error)\n","comments":"","x":798.3092651367188,"y":41.000000953674316,"z":"f1e12e88.dbd29","wires":[]},{"id":"a425a788.03f3d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":527.7739067077637,"y":1433.4405617032733,"z":"f1e12e88.dbd29","wires":[["2a6cb077.ef737","f0dd32ba.66fbf","a9866d98.169d3","eed1508e.a01b2","5e02ffba.3acbd","84b01c6c.b12d8","ef001b85.7a6e68","6e4c2e50.7dca3","39fa9d31.ea2ad2","beeebf14.93926","7217aa55.91f204","706a513d.637ee"]]},{"id":"2a6cb077.ef737","type":"switchNode","name":"switch generate-unique-name-input.index-table-name","xml":"<switch test='`$generate-unique-name-input.index-table-name`'>\n","comments":"","outputs":1,"x":976.5833892822266,"y":487.9048261642456,"z":"f1e12e88.dbd29","wires":[["421c8ec.5e66a7"]]},{"id":"421c8ec.5e66a7","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1306.583309173584,"y":487.9048156738281,"z":"f1e12e88.dbd29","wires":[["92b6be8f.41af"]]},{"id":"92b6be8f.41af","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-name not supplied' />\n","comments":"","x":1479.9166297912598,"y":487.9048070907593,"z":"f1e12e88.dbd29","wires":[]},{"id":"f0dd32ba.66fbf","type":"switchNode","name":"switch generate-unique-name-input.index-table-prefix-column","xml":"<switch test='`$generate-unique-name-input.index-table-prefix-column`'>\n","comments":"","outputs":1,"x":1001.5833587646484,"y":531.2381620407104,"z":"f1e12e88.dbd29","wires":[["666567a9.3407d8"]]},{"id":"666567a9.3407d8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1304.9166221618652,"y":531.2381410598755,"z":"f1e12e88.dbd29","wires":[["43b6f623.865d98"]]},{"id":"43b6f623.865d98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-prefix-column not supplied' />\n","comments":"","x":1478.2499389648438,"y":531.5714845657349,"z":"f1e12e88.dbd29","wires":[]},{"id":"a9866d98.169d3","type":"switchNode","name":"switch generate-unique-name-input.name-table-type","xml":"<switch test='`$generate-unique-name-input.name-table-type`'>\n","comments":"","outputs":1,"x":972.583366394043,"y":576.2381544113159,"z":"f1e12e88.dbd29","wires":[["2ae7c50f.d2fd9a"]]},{"id":"2ae7c50f.d2fd9a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1304.9165630340576,"y":576.2381639480591,"z":"f1e12e88.dbd29","wires":[["591f7d2b.9bf0f4"]]},{"id":"591f7d2b.9bf0f4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\n","comments":"","x":1476.583339691162,"y":576.5714673995972,"z":"f1e12e88.dbd29","wires":[]},{"id":"ef001b85.7a6e68","type":"get-resource","name":"get-resource current name index","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.prefixdb'>\n\n","comments":"","outputs":1,"x":894.6072196960449,"y":1135.0355415344238,"z":"f1e12e88.dbd29","wires":[["4eecf394.fb658c","f0e796cc.5e5b28","5ca0dae8.3c52d4"]]},{"id":"4eecf394.fb658c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1122.2976512908936,"y":1221.0594511032104,"z":"f1e12e88.dbd29","wires":[["6d1e421b.6740ec"]]},{"id":"6d1e421b.6740ec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Error reading the ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":1284.9167728424072,"y":1222.4881792068481,"z":"f1e12e88.dbd29","wires":[]},{"id":"957cb7c6.3113b8","type":"for","name":"for idx from current index to list-end","xml":"<for index='tmp.gun.idx' start='`$tmp.gun.index-number`' end='`$tmp.gun.list-end`' >\n","comments":"","outputs":1,"x":1049.4405784606934,"y":1463.8571519851685,"z":"f1e12e88.dbd29","wires":[["4f159cba.6ab794"]]},{"id":"eed1508e.a01b2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":812.0595741271973,"y":1463.8571171079363,"z":"f1e12e88.dbd29","wires":[["957cb7c6.3113b8","6ea70a13.c40744","ebfd433a.e0d77"]]},{"id":"6ea70a13.c40744","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n\n","comments":"","x":1005.2500746590749,"y":2488.2858543395996,"z":"f1e12e88.dbd29","wires":[]},{"id":"5e02ffba.3acbd","type":"switchNode","name":"switch generate-unique-name-input.prefix","xml":"<switch test='`$generate-unique-name-input.prefix`'>\n","comments":"","outputs":1,"x":938.2500076293945,"y":621.238133430481,"z":"f1e12e88.dbd29","wires":[["98c00727.25f188"]]},{"id":"98c00727.25f188","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1305.5831966400146,"y":621.2381582260132,"z":"f1e12e88.dbd29","wires":[["f5507926.67dac8"]]},{"id":"f5507926.67dac8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\n","comments":"","x":1478.2499732971191,"y":621.5714616775513,"z":"f1e12e88.dbd29","wires":[]},{"id":"84b01c6c.b12d8","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":961.5833740234375,"y":756.2380752563477,"z":"f1e12e88.dbd29","wires":[["b01197c1.9f5b68","1668f0f4.b7049f","5c4f6407.833d3c","2511d7bc.5d4d38","bbae7527.125758","c6f1af5a.468da","6bb9091e.5be0b8"]]},{"id":"b01197c1.9f5b68","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1304.9166870117188,"y":664.5714616775513,"z":"f1e12e88.dbd29","wires":[["39b018b7.123508"]]},{"id":"bbae7527.125758","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1303.6785926818848,"y":939.8095893859863,"z":"f1e12e88.dbd29","wires":[["d11f9831.a4b3e8"]]},{"id":"1668f0f4.b7049f","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1301.8214950561523,"y":755.2858009338379,"z":"f1e12e88.dbd29","wires":[["e8815a38.ebcec8"]]},{"id":"5c4f6407.833d3c","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":1301.8214797973633,"y":800.2857913970947,"z":"f1e12e88.dbd29","wires":[["b9e1aba2.d09518"]]},{"id":"2511d7bc.5d4d38","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":1300.1548156738281,"y":843.6191272735596,"z":"f1e12e88.dbd29","wires":[["e264801f.5501d"]]},{"id":"e8815a38.ebcec8","type":"set","name":"set list-end = 10","xml":"<set>\n<parameter name='tmp.gun.list-end' value='10' />\n","comments":"","x":1484.4882316589355,"y":755.2857894897461,"z":"f1e12e88.dbd29","wires":[]},{"id":"b9e1aba2.d09518","type":"set","name":"set list-end = 100","xml":"<set>\n<parameter name='tmp.gun.list-end' value='100' />\n","comments":"","x":1487.821460723877,"y":800.2857913970947,"z":"f1e12e88.dbd29","wires":[]},{"id":"e264801f.5501d","type":"set","name":"set list-end = 1000","xml":"<set>\n<parameter name='tmp.gun.list-end' value='1000' />\n","comments":"","x":1489.821460723877,"y":843.619104385376,"z":"f1e12e88.dbd29","wires":[]},{"id":"d11f9831.a4b3e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\n","comments":"","x":1474.6785163879395,"y":939.1429595947266,"z":"f1e12e88.dbd29","wires":[]},{"id":"a70d8048.c5db1","type":"set","name":"set new index number to 1","xml":"<set>\n<parameter name='tmp.gun.index-number' value='1' />\n","comments":"","x":1988.7860374450684,"y":1184.428880929947,"z":"f1e12e88.dbd29","wires":[]},{"id":"39b018b7.123508","type":"set","name":"set list-end = 100000 (infinity basically)","xml":"<set>\n<parameter name='tmp.gun.list-end' value='100000' />\n","comments":"","x":1553.9166259765625,"y":664.9048051834106,"z":"f1e12e88.dbd29","wires":[]},{"id":"2842a52b.c3092a","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1611.1071586608887,"y":1390.5237907682147,"z":"f1e12e88.dbd29","wires":[["c819156a.3ce748","6f44c357.91b7ec","c092243f.d97f98","41dfeb65.32e554","f7fa28a8.8b0758"]]},{"id":"c819156a.3ce748","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1895.3929023742676,"y":1241.952398300171,"z":"f1e12e88.dbd29","wires":[["e2fc126.78e32f"]]},{"id":"6f44c357.91b7ec","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1893.7262496948242,"y":1286.9524383544922,"z":"f1e12e88.dbd29","wires":[["e2fc126.78e32f"]]},{"id":"c092243f.d97f98","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":1893.7262344360352,"y":1336.0000648498535,"z":"f1e12e88.dbd29","wires":[["b78d385e.819818"]]},{"id":"41dfeb65.32e554","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":1895.1549072265625,"y":1438.3811464309692,"z":"f1e12e88.dbd29","wires":[["864ddb73.e1c088"]]},{"id":"e2fc126.78e32f","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2080.393051147461,"y":1260.2857418060303,"z":"f1e12e88.dbd29","wires":[]},{"id":"b78d385e.819818","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2060.392864227295,"y":1335.9999628067017,"z":"f1e12e88.dbd29","wires":[["58eb6760.799338","4c2137d1.5285d8"]]},{"id":"58eb6760.799338","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2222.059497833252,"y":1309.3333358764648,"z":"f1e12e88.dbd29","wires":[["7c64d513.d4933c"]]},{"id":"4c2137d1.5285d8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2222.059455871582,"y":1357.6666717529297,"z":"f1e12e88.dbd29","wires":[["664eaffa.40e23"]]},{"id":"7c64d513.d4933c","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2413.7262573242188,"y":1308.6665630340576,"z":"f1e12e88.dbd29","wires":[]},{"id":"664eaffa.40e23","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2397.0595092773438,"y":1357.3332786560059,"z":"f1e12e88.dbd29","wires":[]},{"id":"864ddb73.e1c088","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2063.4882431030273,"y":1436.714274406433,"z":"f1e12e88.dbd29","wires":[["9dacf730.7b2f88","52fac67f.9cafa8"]]},{"id":"9dacf730.7b2f88","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2223.4882202148438,"y":1410.0476522445679,"z":"f1e12e88.dbd29","wires":[["57d20365.2c02cc"]]},{"id":"52fac67f.9cafa8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2228.0118408203125,"y":1486.4762344360352,"z":"f1e12e88.dbd29","wires":[["c6f950ba.72e2f"]]},{"id":"57d20365.2c02cc","type":"set","name":"set index-string to '00' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '00' + $tmp.gun.idx`\" />\n","comments":"","x":2418.488311767578,"y":1410.0475431169782,"z":"f1e12e88.dbd29","wires":[]},{"id":"c6f950ba.72e2f","type":"switchNode","name":"switch idx < 100","xml":"<switch test='`$tmp.gun.idx &lt; 100`'>\n","comments":"","outputs":1,"x":2384.3452224731445,"y":1484.8095951080322,"z":"f1e12e88.dbd29","wires":[["768ee20e.0df19c","ee684381.ae72b"]]},{"id":"768ee20e.0df19c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2541.345199584961,"y":1458.142972946167,"z":"f1e12e88.dbd29","wires":[["dd903531.c82708"]]},{"id":"ee684381.ae72b","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2541.345157623291,"y":1506.4763088226318,"z":"f1e12e88.dbd29","wires":[["738812f4.25f07c"]]},{"id":"dd903531.c82708","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2734.0119857788086,"y":1457.809627532959,"z":"f1e12e88.dbd29","wires":[]},{"id":"738812f4.25f07c","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2718.0119705200195,"y":1506.142930984497,"z":"f1e12e88.dbd29","wires":[]},{"id":"e0bb12a5.d5624","type":"set","name":"set generated-name to prefix + index-string","xml":"<set>\n<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\n","comments":"","x":1595.107250213623,"y":1667.1904396329608,"z":"f1e12e88.dbd29","wires":[]},{"id":"9d1b9e26.d3c45","type":"comment","name":"First check from the current index to the max index","info":"","comments":"","x":1012.7739219665527,"y":1402.1905206952777,"z":"f1e12e88.dbd29","wires":[]},{"id":"bbf1440c.7b6b08","type":"comment","name":"check if we've used this name before","info":"","comments":"","x":1591.8217735290527,"y":1751.4765853881836,"z":"f1e12e88.dbd29","wires":[]},{"id":"b6303af3.dbe008","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1699.440574645996,"y":1828.8573679242816,"z":"f1e12e88.dbd29","wires":[["9e644b97.adba68"]]},{"id":"f763d5fa.3726b8","type":"set","name":"set generate-unique-name-output.error-message","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value=\"`'Error reading the GENERIC_RESOURCE_NAME table'`\" />\n","comments":"","x":2145.3928260803223,"y":1802.4287008558001,"z":"f1e12e88.dbd29","wires":[]},{"id":"ac21b4cf.7fce08","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2010.6310729980469,"y":1847.4287885938372,"z":"f1e12e88.dbd29","wires":[]},{"id":"d6d443c8.ce2b6","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2013.488094329834,"y":1942.33347933633,"z":"f1e12e88.dbd29","wires":[]},{"id":"2c035417.669d2c","type":"comment","name":"found one we can use","info":"","comments":"","x":1831.3455505371094,"y":1873.3814014707293,"z":"f1e12e88.dbd29","wires":[]},{"id":"6e4c2e50.7dca3","type":"switchNode","name":"switch generate-unique-name-output.error-message","xml":"<switch test='`$generate-unique-name-output.error-message`'>\n","comments":"","outputs":1,"x":887.3215468270437,"y":2700.2858333587646,"z":"f1e12e88.dbd29","wires":[["6d67de69.d407b","640c5685.806a28"]]},{"id":"6d67de69.d407b","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1160.6549551827566,"y":2673.6190853118896,"z":"f1e12e88.dbd29","wires":[["1274de2b.bc9e42"]]},{"id":"1274de2b.bc9e42","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1295.6549551827566,"y":2673.6190853118896,"z":"f1e12e88.dbd29","wires":[[]]},{"id":"640c5685.806a28","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1160.6549208504812,"y":2723.6191062927246,"z":"f1e12e88.dbd29","wires":[["39b9ac92.ad6b44"]]},{"id":"39b9ac92.ad6b44","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1310.6549208504812,"y":2723.6191062927246,"z":"f1e12e88.dbd29","wires":[]},{"id":"39fa9d31.ea2ad2","type":"switchNode","name":"switch found-flag","xml":"<switch test='`$tmp.gun.found-flag`'>\n","comments":"","outputs":1,"x":779.3215926034109,"y":3054.5714559555054,"z":"f1e12e88.dbd29","wires":[["f6bec616.a81998","e00e3d85.de173"]]},{"id":"f6bec616.a81998","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":953.654932294573,"y":3054.5714569091797,"z":"f1e12e88.dbd29","wires":[["9254d2ea.79ae4"]]},{"id":"29e6035d.31b61c","type":"set","name":"set generate-unique-name-output.generated-name","xml":"<set>\n<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\n","comments":"","x":1424.3215468270437,"y":2899.5717430114746,"z":"f1e12e88.dbd29","wires":[]},{"id":"33cdeff6.998bf","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":1306.369116101946,"y":3236.952537536621,"z":"f1e12e88.dbd29","wires":[]},{"id":"9254d2ea.79ae4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1105.3215620858327,"y":3053.9048709869385,"z":"f1e12e88.dbd29","wires":[["29e6035d.31b61c","f475b8d6.5aa468","9dac70dd.b9c4","33cdeff6.998bf","14acf8c4.4ea607"]]},{"id":"f1c7051f.090048","type":"set","name":"set index-exists flag to false","xml":"<set>\n<parameter name='tmp.gun.index-exists' value='false' />\n","comments":"","x":1456.5834312438965,"y":1101.8929462432861,"z":"f1e12e88.dbd29","wires":[]},{"id":"ac64bfb2.ceaee","type":"set","name":"set index-exists flag to true","xml":"<set>\n<parameter name='tmp.gun.index-exists' value='true' />\n","comments":"","x":1455.226375579834,"y":1005.8214721679688,"z":"f1e12e88.dbd29","wires":[]},{"id":"31a7d4ee.e0d5ec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1261.9406471252441,"y":1027.250078201294,"z":"f1e12e88.dbd29","wires":[["ac64bfb2.ceaee","57b67a51.276aa4"]]},{"id":"f475b8d6.5aa468","type":"switchNode","name":"switch index-exists","xml":"<switch test='`$tmp.gun.index-exists`'>\n","comments":"","outputs":1,"x":1320.0835554940359,"y":3031.714744567871,"z":"f1e12e88.dbd29","wires":[["30ff52d9.46315e","803c3e83.57863"]]},{"id":"30ff52d9.46315e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1498.6549208504812,"y":3007.429012298584,"z":"f1e12e88.dbd29","wires":[["2442b85b.370aa8"]]},{"id":"803c3e83.57863","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1498.6549361092702,"y":3054.571937561035,"z":"f1e12e88.dbd29","wires":[["6736e8b8.35f518"]]},{"id":"c73c710f.201a4","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1894.369245801653,"y":3008.85742855072,"z":"f1e12e88.dbd29","wires":[["ef34220f.bc074"]]},{"id":"c9a768e8.3720e8","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1887.2262251717702,"y":3103.1428966522217,"z":"f1e12e88.dbd29","wires":[["176ae97.d993b17"]]},{"id":"ef34220f.bc074","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2087.2264464242116,"y":3008.8574476242065,"z":"f1e12e88.dbd29","wires":[["1b9917f.36c93e8"]]},{"id":"176ae97.d993b17","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2084.369016919817,"y":3101.714412689209,"z":"f1e12e88.dbd29","wires":[["24410c66.8ac314"]]},{"id":"9dac70dd.b9c4","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1354.512151990618,"y":3190.2857189178467,"z":"f1e12e88.dbd29","wires":[["c5598bb0.7e6e78"]]},{"id":"c5598bb0.7e6e78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1564.512083326067,"y":3190.2857704162598,"z":"f1e12e88.dbd29","wires":[["dd091dc.0be3be"]]},{"id":"dd091dc.0be3be","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":1718.797899518694,"y":3190.285789489746,"z":"f1e12e88.dbd29","wires":[]},{"id":"beeebf14.93926","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from ' + $generate-unique-name-input.index-table-name\n+ ' WHERE ' + $generate-unique-name-input.index-table-prefix-column + ' = '\n+ '$generate-unique-name-input.prefix'`\" />\n","comments":"","x":850.5120506286621,"y":985.8215715885162,"z":"f1e12e88.dbd29","wires":[]},{"id":"4f159cba.6ab794","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1291.583438873291,"y":1463.428631237575,"z":"f1e12e88.dbd29","wires":[["2842a52b.c3092a","e0bb12a5.d5624","d9d55bdd.8116a8","8992b5cf.163d88"]]},{"id":"9e644b97.adba68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1851.8215713500977,"y":1828.3812870298113,"z":"f1e12e88.dbd29","wires":[["f763d5fa.3726b8","ac21b4cf.7fce08"]]},{"id":"2442b85b.370aa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1675.9407332284109,"y":2984.5715408325195,"z":"f1e12e88.dbd29","wires":[["fcf6ad85.d78d3","c73c710f.201a4"]]},{"id":"6736e8b8.35f518","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1673.083586011614,"y":3080.285859107971,"z":"f1e12e88.dbd29","wires":[["c9a768e8.3720e8","eeade568.838b38"]]},{"id":"fcf6ad85.d78d3","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'update ' + $generate-unique-name-input.index-table-name\n+ ' set index_number = ' + $tmp.gun.index-string + ' where '\n+ $generate-unique-name-input.index-table-prefix-column\n+ ' = $generate-unique-name-input.prefix'`\" />\n","comments":"","x":1864.5120146615163,"y":2960.285512447357,"z":"f1e12e88.dbd29","wires":[]},{"id":"eeade568.838b38","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into ' + $generate-unique-name-input.index-table-name\n+ '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\n+ ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`\" />\n\n","comments":"","x":1863.0835631234304,"y":3054.5713291168213,"z":"f1e12e88.dbd29","wires":[]},{"id":"ddebf1f4.503c3","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1706.1073112487793,"y":1919.8097633634295,"z":"f1e12e88.dbd29","wires":[["aa402dd4.177b"]]},{"id":"b1f05088.d4abe","type":"for","name":"for idx from 1 to current index","xml":"<for index='tmp.gun.idx' start='1' end='`$tmp.gun.index-number`' >\n","comments":"","outputs":1,"x":1505.8931334359304,"y":3726.523895263672,"z":"f1e12e88.dbd29","wires":[["3bf64b64.93b004"]]},{"id":"a42cc5a7.7e7d28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1292.2263799394877,"y":3726.523873874119,"z":"f1e12e88.dbd29","wires":[["b1f05088.d4abe","2e340f8e.08d25"]]},{"id":"2e340f8e.08d25","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n\n","comments":"","x":1456.8455260140554,"y":4301.524025917053,"z":"f1e12e88.dbd29","wires":[]},{"id":"ea903bbb.dad038","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":2053.559706006731,"y":3681.1906394958496,"z":"f1e12e88.dbd29","wires":[["d39dfe33.e52ee","15377217.566a0e","6fb57a2b.791e34","88754865.1e3488"]]},{"id":"d39dfe33.e52ee","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2333.559706006731,"y":3611.190700531006,"z":"f1e12e88.dbd29","wires":[["e0fc2653.b5a9d8"]]},{"id":"15377217.566a0e","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":2331.893053327288,"y":3656.190740585327,"z":"f1e12e88.dbd29","wires":[["e0fc2653.b5a9d8"]]},{"id":"6fb57a2b.791e34","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":2331.893141065325,"y":3709.524087905884,"z":"f1e12e88.dbd29","wires":[["22683870.b1ed58"]]},{"id":"88754865.1e3488","type":"outcome","name":"3","xml":"<outcome value='3'>\n","comments":"","outputs":1,"x":2331.8930189950124,"y":3806.1908206939697,"z":"f1e12e88.dbd29","wires":[["9964319c.015b6"]]},{"id":"e0fc2653.b5a9d8","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2518.5598547799245,"y":3629.5240440368652,"z":"f1e12e88.dbd29","wires":[]},{"id":"22683870.b1ed58","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2498.5597708565847,"y":3709.523985862732,"z":"f1e12e88.dbd29","wires":[["fd63838f.e7e9c","949bf879.77d3c8"]]},{"id":"fd63838f.e7e9c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2660.2264044625417,"y":3682.857358932495,"z":"f1e12e88.dbd29","wires":[["be0b2546.58c728"]]},{"id":"949bf879.77d3c8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2660.226362500872,"y":3731.19069480896,"z":"f1e12e88.dbd29","wires":[["a160f12b.73d5"]]},{"id":"be0b2546.58c728","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":2851.8931639535085,"y":3682.190586090088,"z":"f1e12e88.dbd29","wires":[]},{"id":"a160f12b.73d5","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":2835.2264159066335,"y":3730.857301712036,"z":"f1e12e88.dbd29","wires":[]},{"id":"9964319c.015b6","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2500.2263548714773,"y":3804.5239486694336,"z":"f1e12e88.dbd29","wires":[["4c2de49a.6d4a3c","3d1cf51.768400a"]]},{"id":"4c2de49a.6d4a3c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2660.2263319832937,"y":3777.8573265075684,"z":"f1e12e88.dbd29","wires":[["605de097.16c15"]]},{"id":"3d1cf51.768400a","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2661.8929884774343,"y":3852.8572845458984,"z":"f1e12e88.dbd29","wires":[["338224b6.d4dd2c"]]},{"id":"605de097.16c15","type":"set","name":"set index-string to '00' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '00' + $tmp.gun.idx`\" />\n","comments":"","x":2855.2264159066335,"y":3777.857301712036,"z":"f1e12e88.dbd29","wires":[]},{"id":"338224b6.d4dd2c","type":"switchNode","name":"switch idx < 100","xml":"<switch test='`$tmp.gun.idx &lt; 100`'>\n","comments":"","outputs":1,"x":2818.2263701302663,"y":3851.1906452178955,"z":"f1e12e88.dbd29","wires":[["71f60fbd.93b51","8bf344e.ac152b8"]]},{"id":"71f60fbd.93b51","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2975.2263472420827,"y":3824.5240230560303,"z":"f1e12e88.dbd29","wires":[["2681091f.7b64f6"]]},{"id":"8bf344e.ac152b8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2975.226305280413,"y":3872.857358932495,"z":"f1e12e88.dbd29","wires":[["ab9cdd55.a692d"]]},{"id":"2681091f.7b64f6","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":3167.8931334359304,"y":3824.1906776428223,"z":"f1e12e88.dbd29","wires":[]},{"id":"ab9cdd55.a692d","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":3151.8931181771413,"y":3872.5239810943604,"z":"f1e12e88.dbd29","wires":[]},{"id":"865573f6.c807c","type":"set","name":"set generated-name to prefix + index-string","xml":"<set>\n<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\n","comments":"","x":2051.559789930071,"y":3929.8572177886963,"z":"f1e12e88.dbd29","wires":[]},{"id":"e52e080b.7ba108","type":"comment","name":"Wrapping around - now check from 1 to the original index","info":"","comments":"","x":1483.2264540536062,"y":3656.0002098083496,"z":"f1e12e88.dbd29","wires":[]},{"id":"6fdc8a5e.f15724","type":"comment","name":"check if we've used this name before","info":"","comments":"","x":2038.2742369515554,"y":4044.857491493225,"z":"f1e12e88.dbd29","wires":[]},{"id":"443092d4.e835dc","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1975.8930533272878,"y":4185.571561404637,"z":"f1e12e88.dbd29","wires":[["16301a88.7ccc65","83a2d6cc.4538d8"]]},{"id":"16301a88.7ccc65","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2154.2264464242116,"y":4139.857398033142,"z":"f1e12e88.dbd29","wires":[["4bb524f1.7a834c"]]},{"id":"a294c827.4f7908","type":"set","name":"set generate-unique-name-output.error-message","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value=\"Error reading the GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":2600.178697858538,"y":4113.428730964661,"z":"f1e12e88.dbd29","wires":[]},{"id":"8324bda6.96f7f","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2465.4169447762624,"y":4158.428818702698,"z":"f1e12e88.dbd29","wires":[]},{"id":"9d5efe94.83a7e","type":"switchNode","name":"switch generate-unique-name-output.error-message","xml":"<switch test='`$generate-unique-name-output.error-message`'>\n","comments":"","outputs":1,"x":1438.2740233285085,"y":4409.381101608276,"z":"f1e12e88.dbd29","wires":[["735742ed.b743cc","c5f4c315.ae27c"]]},{"id":"735742ed.b743cc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1711.6074316842214,"y":4382.714353561401,"z":"f1e12e88.dbd29","wires":[["c08d106b.f3041"]]},{"id":"c08d106b.f3041","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1846.6074316842214,"y":4382.714353561401,"z":"f1e12e88.dbd29","wires":[[]]},{"id":"c5f4c315.ae27c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1711.607397351946,"y":4432.714374542236,"z":"f1e12e88.dbd29","wires":[["784fd2e4.d424fc"]]},{"id":"784fd2e4.d424fc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1861.607397351946,"y":4432.714374542236,"z":"f1e12e88.dbd29","wires":[]},{"id":"22053b23.007ca4","type":"switchNode","name":"switch found-flag","xml":"<switch test='`$tmp.gun.found-flag`'>\n","comments":"","outputs":1,"x":1319.9883025033132,"y":4588.905010223389,"z":"f1e12e88.dbd29","wires":[["64dd1e57.0cf4b"]]},{"id":"58ee3c1e.25b284","type":"comment","name":"if db name is null we found an index we can use","info":"","comments":"","x":1486.7026427132741,"y":4538.428785324097,"z":"f1e12e88.dbd29","wires":[]},{"id":"64dd1e57.0cf4b","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1479.321623120989,"y":4588.904967308044,"z":"f1e12e88.dbd29","wires":[["1e08c131.416c3f"]]},{"id":"e19c0e72.390b3","type":"set","name":"set generate-unique-name-output.generated-name","xml":"<set>\n<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\n","comments":"","x":1954.9882872445241,"y":4537.238508224487,"z":"f1e12e88.dbd29","wires":[]},{"id":"da7a4cc6.7a4b7","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\n","comments":"","x":1838.4643385750906,"y":4876.047979354858,"z":"f1e12e88.dbd29","wires":[]},{"id":"1e08c131.416c3f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1645.9883177621023,"y":4587.238185882568,"z":"f1e12e88.dbd29","wires":[["e19c0e72.390b3","530f53e4.b4631c","4a33679f.e661d8","da7a4cc6.7a4b7","ac52d5a5.4eeac8"]]},{"id":"530f53e4.b4631c","type":"switchNode","name":"switch index-exists","xml":"<switch test='`$tmp.gun.index-exists`'>\n","comments":"","outputs":1,"x":1850.7502959115163,"y":4669.381509780884,"z":"f1e12e88.dbd29","wires":[["894e0555.9183d8","f6d39e88.57e67"]]},{"id":"894e0555.9183d8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2029.3216612679616,"y":4645.095777511597,"z":"f1e12e88.dbd29","wires":[["84dd83e3.603cb"]]},{"id":"f6d39e88.57e67","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2029.3216765267507,"y":4692.238702774048,"z":"f1e12e88.dbd29","wires":[["1881d83b.6c3b98"]]},{"id":"2701fa7a.652186","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":2425.0359862191335,"y":4646.524193763733,"z":"f1e12e88.dbd29","wires":[["1772ebad.0bb7b4"]]},{"id":"25fb41f1.5f6a4e","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":2417.8929655892507,"y":4740.809661865234,"z":"f1e12e88.dbd29","wires":[["a9beb64.74fc348"]]},{"id":"1772ebad.0bb7b4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2617.893186841692,"y":4646.524212837219,"z":"f1e12e88.dbd29","wires":[["73a12b01.342b54"]]},{"id":"73a12b01.342b54","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2772.179003034319,"y":4646.524231910706,"z":"f1e12e88.dbd29","wires":[]},{"id":"a9beb64.74fc348","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2615.0357573372976,"y":4739.381177902222,"z":"f1e12e88.dbd29","wires":[["e117c34b.1acb3"]]},{"id":"e117c34b.1acb3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2769.3215735299245,"y":4739.381196975708,"z":"f1e12e88.dbd29","wires":[]},{"id":"4a33679f.e661d8","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1885.1788924080984,"y":4827.952484130859,"z":"f1e12e88.dbd29","wires":[["e9db4101.94534"]]},{"id":"e9db4101.94534","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2095.1788237435476,"y":4827.9525356292725,"z":"f1e12e88.dbd29","wires":[["6bf99d85.c468e4"]]},{"id":"6bf99d85.c468e4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":2249.4646399361745,"y":4827.952554702759,"z":"f1e12e88.dbd29","wires":[]},{"id":"3bf64b64.93b004","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1748.035978589739,"y":3725.0954093933105,"z":"f1e12e88.dbd29","wires":[["ea903bbb.dad038","865573f6.c807c","443092d4.e835dc","1ee0add9.d02322","f046eae1.13e1a8"]]},{"id":"4bb524f1.7a834c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2306.607443128313,"y":4139.381317138672,"z":"f1e12e88.dbd29","wires":[["a294c827.4f7908","8324bda6.96f7f"]]},{"id":"84dd83e3.603cb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2206.6074736458913,"y":4622.238306045532,"z":"f1e12e88.dbd29","wires":[["a04f698c.bf35d8","2701fa7a.652186"]]},{"id":"1881d83b.6c3b98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2203.7503264290945,"y":4717.952624320984,"z":"f1e12e88.dbd29","wires":[["25fb41f1.5f6a4e","7a06259f.cb1dac"]]},{"id":"a04f698c.bf35d8","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'update ' + $generate-unique-name-input.index-table-name\n+ ' set index_number = ' + $tmp.gun.index-string + ' where '\n+ $generate-unique-name-input.index-table-prefix-column\n+ ' = $generate-unique-name-input.prefix'`\" />\n","comments":"","x":2395.178755078997,"y":4597.95227766037,"z":"f1e12e88.dbd29","wires":[]},{"id":"7a06259f.cb1dac","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into ' + $generate-unique-name-input.index-table-name\n+ '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\n+ ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`\" />\n\n","comments":"","x":2393.750303540911,"y":4692.238094329834,"z":"f1e12e88.dbd29","wires":[]},{"id":"83a2d6cc.4538d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2160.893183026995,"y":4230.80979347229,"z":"f1e12e88.dbd29","wires":[["9212938c.255c4"]]},{"id":"1ee0add9.d02322","type":"set","name":"clear namedb.name","xml":"<set>\n<parameter name='tmp.gun.namedb.name' value='' />\n","comments":"","x":1976.607366834368,"y":3980.809726715088,"z":"f1e12e88.dbd29","wires":[]},{"id":"832af1c7.3004c","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1420.8930800301687,"y":3559.1906394958496,"z":"f1e12e88.dbd29","wires":[["c7e25132.ae6"]]},{"id":"c7e25132.ae6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1676.607412610735,"y":3560.0955486297607,"z":"f1e12e88.dbd29","wires":[["203d7826.0538c8"]]},{"id":"203d7826.0538c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"We have exhausted the naming index count\" />\n","comments":"","x":1833.7502959115163,"y":3560.0955486297607,"z":"f1e12e88.dbd29","wires":[]},{"id":"9ed8f268.5a5d6","type":"comment","name":"if we get here when there is no index length, then we have used up all 1000","info":"","comments":"","x":1552.3216765267507,"y":3515.809863090515,"z":"f1e12e88.dbd29","wires":[]},{"id":"41c5c579.61921c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"We have exhausted the naming index count\" />\n","comments":"","x":1314.321710859026,"y":4989.095460891724,"z":"f1e12e88.dbd29","wires":[]},{"id":"7217aa55.91f204","type":"set","name":"set found-flag=false","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='false' />\n","comments":"","x":856.2262992858887,"y":1279.0357704162598,"z":"f1e12e88.dbd29","wires":[]},{"id":"29714e04.6f3a92","type":"set","name":"set found-flag=true","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='true' />\n","comments":"","x":2050.3930130004883,"y":1894.0953316007342,"z":"f1e12e88.dbd29","wires":[]},{"id":"aa402dd4.177b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1857.5358352661133,"y":1920.2382759366717,"z":"f1e12e88.dbd29","wires":[["29714e04.6f3a92","d6d443c8.ce2b6"]]},{"id":"8d8bde9e.c8652","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2465.750162397112,"y":4251.952508926392,"z":"f1e12e88.dbd29","wires":[]},{"id":"ccf0e3fc.549a1","type":"comment","name":"found one we can use","info":"","comments":"","x":2283.6076186043874,"y":4183.000431060791,"z":"f1e12e88.dbd29","wires":[]},{"id":"970b46d4.d93098","type":"set","name":"set found-flag=true","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='true' />\n","comments":"","x":2502.6550810677663,"y":4203.714361190796,"z":"f1e12e88.dbd29","wires":[]},{"id":"9212938c.255c4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2309.7979033333913,"y":4229.857305526733,"z":"f1e12e88.dbd29","wires":[["970b46d4.d93098","8d8bde9e.c8652"]]},{"id":"f61bdd4.52b982","type":"switchNode","name":"switch generate-unique-name-input.supplied-name","xml":"<switch test='`$generate-unique-name-input.supplied-name`'>\n","comments":"","outputs":1,"x":410.5119285583496,"y":311.7143215451922,"z":"f1e12e88.dbd29","wires":[["c49ad7b9.5d3278","1aeafc45.343a74"]]},{"id":"c49ad7b9.5d3278","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":669.0834274291992,"y":338.85711710793635,"z":"f1e12e88.dbd29","wires":[["a425a788.03f3d8"]]},{"id":"1aeafc45.343a74","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":669.0834045410156,"y":280.7142872129168,"z":"f1e12e88.dbd29","wires":[["8624fc7e.b9621"]]},{"id":"9759df7c.13a96","type":"switchNode","name":"switch generate-unique-name-input.name-table-type","xml":"<switch test='`$generate-unique-name-input.name-table-type`'>\n","comments":"","outputs":1,"x":1138.3690757751465,"y":217.42856829507014,"z":"f1e12e88.dbd29","wires":[["23752f6f.cacc9"]]},{"id":"23752f6f.cacc9","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1471.7022724151611,"y":217.4285778318133,"z":"f1e12e88.dbd29","wires":[["2eec993e.ef0966"]]},{"id":"2eec993e.ef0966","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\n","comments":"","x":1643.3690490722656,"y":217.76188128335139,"z":"f1e12e88.dbd29","wires":[]},{"id":"8624fc7e.b9621","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":823.3691291809082,"y":280.28571741921564,"z":"f1e12e88.dbd29","wires":[["9759df7c.13a96","b91aa1fb.934b4","8acc2f04.bfefa"]]},{"id":"8acc2f04.bfefa","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1031.9405403137207,"y":310.2857326780047,"z":"f1e12e88.dbd29","wires":[["43898a84.7f7954","a18341a.51fc7c","ccbd4481.14d7b8"]]},{"id":"43898a84.7f7954","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1214.5595893859863,"y":297.42862837655207,"z":"f1e12e88.dbd29","wires":[["96fb3176.fb5ed"]]},{"id":"b91aa1fb.934b4","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $generate-unique-name-input.supplied-name'`\" />\n","comments":"","x":1025.512092590332,"y":262.66675036294123,"z":"f1e12e88.dbd29","wires":[]},{"id":"a18341a.51fc7c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1222.6549453735352,"y":342.66673891884943,"z":"f1e12e88.dbd29","wires":[["be7be542.3e0818"]]},{"id":"96fb3176.fb5ed","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value=\"`'Error reading the ' + $generate-unique-name-input.name-table-index + ' table'`\" />\n\n","comments":"","x":1370.5120124816895,"y":297.00003378731867,"z":"f1e12e88.dbd29","wires":[]},{"id":"ccbd4481.14d7b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1214.7977142333984,"y":384.57143252236506,"z":"f1e12e88.dbd29","wires":[["e95ba061.e1905"]]},{"id":"e95ba061.e1905","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value=\"`'The name ' + $generate-unique-name-input.supplied-name + ' has already been used'`\" />\n\n","comments":"","x":1370.5119514465332,"y":383.99999659402033,"z":"f1e12e88.dbd29","wires":[]},{"id":"86bd22cb.352e7","type":"comment","name":"Caller supplied name - make sure it's not already used","info":"","comments":"","x":1065.5477447509766,"y":175.14285850524902,"z":"f1e12e88.dbd29","wires":[]},{"id":"be7be542.3e0818","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1371.9406394958496,"y":343.1428455625262,"z":"f1e12e88.dbd29","wires":[["d1938292.094a8","4ad7b9e3.bb3628"]]},{"id":"4ad7b9e3.bb3628","type":"save","name":"save (insert) generated name","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":1611.9406394958496,"y":367.42858164651057,"z":"f1e12e88.dbd29","wires":[["d2df8a47.916c58"]]},{"id":"d2df8a47.916c58","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1821.9405708312988,"y":367.42863314492365,"z":"f1e12e88.dbd29","wires":[["590cc59c.108cec"]]},{"id":"590cc59c.108cec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name=\"generate-unique-name-output.error-message\" value=\"Failed insert into GENERIC_RESOURCE_NAME table\" />\n","comments":"","x":1976.2263870239258,"y":367.42865221841,"z":"f1e12e88.dbd29","wires":[]},{"id":"d1938292.094a8","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'insert into GENERIC_RESOURCE_NAME values ( '\n+ ' $generate-unique-name-input.name-table-type , $generate-unique-name-input.supplied-name , null , null, null )'`\" />\n\n","comments":"","x":1571.9405708312988,"y":317.4287590299334,"z":"f1e12e88.dbd29","wires":[]},{"id":"14acf8c4.4ea607","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' \n\tvalue=\"`'insert into GENERIC_RESOURCE_NAME values ( $generate-unique-name-input.name-table-type , $tmp.gun.generated-name , $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ' , $tmp.gun.transient )'`\" />\n\n","comments":"","x":1315.9406111580984,"y":3143.8570795059204,"z":"f1e12e88.dbd29","wires":[]},{"id":"f046eae1.13e1a8","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $tmp.gun.generated-name'`\" />\n","comments":"","x":1970.0359404427663,"y":4096.238283157349,"z":"f1e12e88.dbd29","wires":[]},{"id":"ac52d5a5.4eeac8","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' \n\tvalue=\"`'insert into GENERIC_RESOURCE_NAME values ( $generate-unique-name-input.name-table-type , $tmp.gun.generated-name , $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ' , $tmp.gun.transient )'`\" />\n\n","comments":"","x":1845.7501356942312,"y":4780.523811340332,"z":"f1e12e88.dbd29","wires":[]},{"id":"1b9917f.36c93e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2238.797796521868,"y":3008.1427965164185,"z":"f1e12e88.dbd29","wires":[]},{"id":"24410c66.8ac314","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`\" />\n","comments":"","x":2235.9404089791433,"y":3101.4285774230957,"z":"f1e12e88.dbd29","wires":[]},{"id":"e00e3d85.de173","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":957.8929388863698,"y":3418.857152938843,"z":"f1e12e88.dbd29","wires":[["ce5f3d64.bd4d6"]]},{"id":"ce5f3d64.bd4d6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1108.7263472420827,"y":4030.5236768722534,"z":"f1e12e88.dbd29","wires":[["832af1c7.3004c","a42cc5a7.7e7d28","9d5efe94.83a7e","22053b23.007ca4","41c5c579.61921c","6a9c7774.522518"]]},{"id":"5ca0dae8.3c52d4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1122.8692016601562,"y":1026.5357439517975,"z":"f1e12e88.dbd29","wires":[["31a7d4ee.e0d5ec"]]},{"id":"f0e796cc.5e5b28","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1129.4407196044922,"y":1133.1785907745361,"z":"f1e12e88.dbd29","wires":[["9bfd8f34.2ebbf"]]},{"id":"9bfd8f34.2ebbf","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1260.869270324707,"y":1132.6071968078613,"z":"f1e12e88.dbd29","wires":[["f1c7051f.090048","9d744b1.e34eeb8"]]},{"id":"8992b5cf.163d88","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $tmp.gun.generated-name'`\" />\n","comments":"","x":1515.7144088745117,"y":1792.4285945892334,"z":"f1e12e88.dbd29","wires":[]},{"id":"d9d55bdd.8116a8","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1517.1430168151855,"y":1879.571517944336,"z":"f1e12e88.dbd29","wires":[["b6303af3.dbe008","ddebf1f4.503c3"]]},{"id":"60a7ef67.eff89","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":109.46438217163086,"y":286.0000047683716,"z":"f1e12e88.dbd29","wires":[["f61bdd4.52b982","b759fda7.dbd08"]]},{"id":"b759fda7.dbd08","type":"set","name":"clear variables","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value='' />\n<parameter name='generate-unique-name-output.generated-name' value='' />\n","comments":"","x":296.7858123779297,"y":263.8571434020996,"z":"f1e12e88.dbd29","wires":[]},{"id":"c6f1af5a.468da","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1301.8927192687988,"y":711.3571701049805,"z":"f1e12e88.dbd29","wires":[["cfd9fd80.ec344"]]},{"id":"cfd9fd80.ec344","type":"set","name":"set list-end = 0","xml":"<set>\n<parameter name='tmp.gun.list-end' value='0' />\n","comments":"","x":1491.5593643188477,"y":711.3571472167969,"z":"f1e12e88.dbd29","wires":[]},{"id":"ebfd433a.e0d77","type":"switchNode","name":"switch tmp.gun.noindex-flag","xml":"<switch test='`$tmp.gun.noindex-flag`'>\n","comments":"","outputs":1,"x":1066.3928358895437,"y":2075.000087738037,"z":"f1e12e88.dbd29","wires":[["498f27f9.e120c8"]]},{"id":"57b67a51.276aa4","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1522.6786460876465,"y":1051.4285888671875,"z":"f1e12e88.dbd29","wires":[["2cbac97b.4aa416","80e4c28.5603a4"]]},{"id":"2cbac97b.4aa416","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1788.9286460876465,"y":1079.6785907745361,"z":"f1e12e88.dbd29","wires":[["173615cc.d05fca"]]},{"id":"80e4c28.5603a4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1790.4286422729492,"y":1019.6785888671875,"z":"f1e12e88.dbd29","wires":[["38120565.948afa"]]},{"id":"38120565.948afa","type":"set","name":"increment index number","xml":"<set>\n<parameter name='tmp.gun.index-number' value='`$tmp.gun.prefixdb.index-number + 1`' />\n","comments":"","x":1982.9286422729492,"y":1019.4285888671875,"z":"f1e12e88.dbd29","wires":[]},{"id":"e01c4063.09502","type":"set","name":"set  index number to 0","xml":"<set>\n<parameter name='tmp.gun.index-number' value='0' />\n","comments":"","x":2126.9288902282715,"y":1081.4285888671875,"z":"f1e12e88.dbd29","wires":[]},{"id":"9d744b1.e34eeb8","type":"switchNode","name":"switch generate-unique-name-input.index-length","xml":"<switch test='`$generate-unique-name-input.index-length`'>\n","comments":"","outputs":1,"x":1520.1786460876465,"y":1162.4285907745361,"z":"f1e12e88.dbd29","wires":[["5d9c7805.26da48","6787684c.f60838"]]},{"id":"6787684c.f60838","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1790.1786422729492,"y":1184.4285907745361,"z":"f1e12e88.dbd29","wires":[["a70d8048.c5db1"]]},{"id":"5d9c7805.26da48","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1790.1786651611328,"y":1128.178546667099,"z":"f1e12e88.dbd29","wires":[["173615cc.d05fca"]]},{"id":"173615cc.d05fca","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1938.928638458252,"y":1106.9285888671875,"z":"f1e12e88.dbd29","wires":[["e01c4063.09502","5a7b56b9.1a2218"]]},{"id":"5a7b56b9.1a2218","type":"set","name":"set noindex-flag=true","xml":"<set>\n<parameter name='tmp.gun.noindex-flag' value='true' />\n","comments":"","x":2126.428607940674,"y":1130.4285736083984,"z":"f1e12e88.dbd29","wires":[]},{"id":"a6319eb9.a478a","type":"set","name":"set generated-name to prefix","xml":"<set>\n<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix`' />\n","comments":"","x":1669.428686414446,"y":2126.4286251068115,"z":"f1e12e88.dbd29","wires":[]},{"id":"498f27f9.e120c8","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1263.714372907366,"y":2075.0000705718994,"z":"f1e12e88.dbd29","wires":[["84f25abb.9b33c8"]]},{"id":"84f25abb.9b33c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1415.1427290780202,"y":2075.000192642212,"z":"f1e12e88.dbd29","wires":[["eeece4af.c0a578","46e6bbe6.b96de4","a6319eb9.a478a","895039d.ab466c8"]]},{"id":"46e6bbe6.b96de4","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.gun.sql' value=\"`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\n+ ' AND name = $tmp.gun.generated-name'`\" />\n","comments":"","x":1636.4167921883718,"y":2169.2860288619995,"z":"f1e12e88.dbd29","wires":[]},{"id":"eeece4af.c0a578","type":"get-resource","name":"get-resource name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.gun.sql`\" pfx='tmp.gun.namedb'>\n\n","comments":"","outputs":1,"x":1643.1311858040945,"y":2213.4287099838257,"z":"f1e12e88.dbd29","wires":[["6b264088.c0c0f","f6389af4.2322a8","d39377b1.8101a8"]]},{"id":"6b264088.c0c0f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1835.4287970406667,"y":2212.7145666394917,"z":"f1e12e88.dbd29","wires":[["b37543f9.81217"]]},{"id":"f6389af4.2322a8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1842.09553364345,"y":2303.6669620786397,"z":"f1e12e88.dbd29","wires":[["a344bbb4.7d2768"]]},{"id":"a344bbb4.7d2768","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2024.9524617876323,"y":2303.095464706421,"z":"f1e12e88.dbd29","wires":[["4df3f5e0.14d1ec","c46e5537.98d148"]]},{"id":"c46e5537.98d148","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2180.904720851353,"y":2325.190668106079,"z":"f1e12e88.dbd29","wires":[]},{"id":"4df3f5e0.14d1ec","type":"set","name":"set found-flag=true","xml":"<set>\n<parameter name='tmp.gun.found-flag' value='true' />\n","comments":"","x":2217.8096395220073,"y":2276.9525203704834,"z":"f1e12e88.dbd29","wires":[]},{"id":"df613651.9951c8","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>\n","comments":"","x":2146.6192953927175,"y":2231.2859873090474,"z":"f1e12e88.dbd29","wires":[]},{"id":"98632bf4.b7ffc8","type":"set","name":"set generate-unique-name-output.error-message","xml":"<set>\n<parameter name='generate-unique-name-output.error-message' value=\"`'Error reading the GENERIC_RESOURCE_NAME table'`\" />\n","comments":"","x":2281.381048474993,"y":2186.2858995710103,"z":"f1e12e88.dbd29","wires":[]},{"id":"b37543f9.81217","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1987.8097937447683,"y":2212.2384857450215,"z":"f1e12e88.dbd29","wires":[["98632bf4.b7ffc8","df613651.9951c8"]]},{"id":"e550dd50.78cb9","type":"comment","name":"found one we can use","info":"","comments":"","x":1998.7621770586284,"y":2256.2385902404785,"z":"f1e12e88.dbd29","wires":[]},{"id":"8564972f.d7ac28","type":"comment","name":"NEW","info":"","comments":"","x":1195.7141478402273,"y":718.1428843906947,"z":"f1e12e88.dbd29","wires":[]},{"id":"1e004cfc.176c53","type":"comment","name":"NEW","info":"","comments":"","x":1065.1429557800293,"y":2040.7142515182495,"z":"f1e12e88.dbd29","wires":[]},{"id":"3ee36ab0.29b546","type":"comment","name":"NEW","info":"","comments":"","x":1665.7143363952637,"y":1018.142822265625,"z":"f1e12e88.dbd29","wires":[]},{"id":"d4074d8c.bfb16","type":"comment","name":"NEW","info":"","comments":"","x":1658.5715599060059,"y":1132.4285736083984,"z":"f1e12e88.dbd29","wires":[]},{"id":"895039d.ab466c8","type":"set","name":"set index-string to 0","xml":"<set>\n<parameter name='tmp.gun.index-string' value='0' />\n","comments":"","x":1653.7142393929616,"y":2075.285786628723,"z":"f1e12e88.dbd29","wires":[]},{"id":"6a9c7774.522518","type":"switchNode","name":"switch tmp.gun.noindex-flag","xml":"<switch test='`$tmp.gun.noindex-flag`'>\n","comments":"","outputs":1,"x":1357.1429579598562,"y":3442.2859592437744,"z":"f1e12e88.dbd29","wires":[["11834167.ca210f"]]},{"id":"11834167.ca210f","type":"outcome","name":"true","xml":"<outcome value='true'>","comments":"","outputs":1,"x":1562.8572371346609,"y":3442.2858657836914,"z":"f1e12e88.dbd29","wires":[["d2b73835.0ea468"]]},{"id":"d2b73835.0ea468","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n    <parameter name=\"generate-unique-name-output.error-message\" value=\"naming exhausted for input with index-length = 0\" />\n","comments":"","x":1727.1430800301687,"y":3440.8571434020996,"z":"f1e12e88.dbd29","wires":[]},{"id":"d39377b1.8101a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1837.6072202410014,"y":2359.1427116394043,"z":"f1e12e88.dbd29","wires":[["a344bbb4.7d2768"]]},{"id":"6bb9091e.5be0b8","type":"outcome","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1301.428611755371,"y":892.4285907745361,"z":"f1e12e88.dbd29","wires":[["17a0d309.719f1d"]]},{"id":"17a0d309.719f1d","type":"set","name":"set list-end = 10000","xml":"<set>\n<parameter name='tmp.gun.list-end' value='10000' />\n","comments":"","x":1491.09525680542,"y":892.4285678863525,"z":"f1e12e88.dbd29","wires":[]},{"id":"f7fa28a8.8b0758","type":"outcome","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1885.7142295837402,"y":1605.28568649292,"z":"f1e12e88.dbd29","wires":[["d1b531f0.8a652"]]},{"id":"d1b531f0.8a652","type":"switchNode","name":"switch idx < 10","xml":"<switch test='`$tmp.gun.idx &lt; 10`'>\n","comments":"","outputs":1,"x":2054.047565460205,"y":1603.6188144683838,"z":"f1e12e88.dbd29","wires":[["af04c09f.28afb","c2c9d02e.99182"]]},{"id":"af04c09f.28afb","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2222.6188926696777,"y":1556.5236530303955,"z":"f1e12e88.dbd29","wires":[["8bcb9864.611948"]]},{"id":"c2c9d02e.99182","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2235.714199066162,"y":1681.9521503448486,"z":"f1e12e88.dbd29","wires":[["e3787088.01e29"]]},{"id":"706a513d.637ee","type":"set","name":"set noindex-flag=false","xml":"<set>\n<parameter name='tmp.gun.noindex-flag' value='false' />\n","comments":"","x":868.5714378356934,"y":895.2857322692871,"z":"f1e12e88.dbd29","wires":[]},{"id":"5ed13069.e993c","type":"set","name":"set index-string to '00' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '00' + $tmp.gun.idx`\" />\n","comments":"","x":2778.571449279785,"y":1637.4285531725202,"z":"f1e12e88.dbd29","wires":[]},{"id":"967f183e.788928","type":"switchNode","name":"switch idx < 1000","xml":"<switch test='`$tmp.gun.idx &lt; 1000`'>\n","comments":"","outputs":1,"x":2741.5713958740234,"y":1716.761981010437,"z":"f1e12e88.dbd29","wires":[["655f0a60.0c9ae4","22ea7aed.7a52d6"]]},{"id":"655f0a60.0c9ae4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2898.57137298584,"y":1690.0953588485718,"z":"f1e12e88.dbd29","wires":[["90b513ea.13f85"]]},{"id":"22ea7aed.7a52d6","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2898.57133102417,"y":1738.4286947250366,"z":"f1e12e88.dbd29","wires":[["549cf9ae.d15f78"]]},{"id":"90b513ea.13f85","type":"set","name":"set index-string to '0' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '0' + $tmp.gun.idx`\" />\n","comments":"","x":3091.2381591796875,"y":1689.7620134353638,"z":"f1e12e88.dbd29","wires":[]},{"id":"549cf9ae.d15f78","type":"set","name":"set index-string to idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\n","comments":"","x":3075.2381439208984,"y":1738.0953168869019,"z":"f1e12e88.dbd29","wires":[]},{"id":"8bcb9864.611948","type":"set","name":"set index-string to '000' + idx","xml":"<set>\n<parameter name='tmp.gun.index-string' value=\"`'' + '000' + $tmp.gun.idx`\" />\n","comments":"","x":2429.9999389648438,"y":1556.1429405212402,"z":"f1e12e88.dbd29","wires":[]},{"id":"e3787088.01e29","type":"switchNode","name":"switch idx < 100","xml":"<switch test='`$tmp.gun.idx &lt; 100`'>\n","comments":"","outputs":1,"x":2404.428535461426,"y":1681.90490763528,"z":"f1e12e88.dbd29","wires":[["f37b934d.d7ebd","9d6030ea.5eef2"]]},{"id":"f37b934d.d7ebd","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2561.428512573242,"y":1637.2382854734149,"z":"f1e12e88.dbd29","wires":[["5ed13069.e993c"]]},{"id":"9d6030ea.5eef2","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2561.4284706115723,"y":1717.5716213498797,"z":"f1e12e88.dbd29","wires":[["967f183e.788928"]]},{"id":"f51a568e.900f58","type":"comment","name":"Change History","info":"iTrack 10767\n- insert new column (index, prefix, info)\niTrack 11252\n- use tmp.gun.index-string as opposed to tmp.gun.idx as prefix for GENERIC_RESOURCE_NAME insert","comments":"","x":141.42860412597656,"y":422.42858505249023,"z":"f1e12e88.dbd29","wires":[]},{"id":"a3dd9b78.e64078","type":"comment","name":"iTrack 10767","info":"","comments":"","x":1444.285831451416,"y":3126.7143383026123,"z":"f1e12e88.dbd29","wires":[]},{"id":"54436640.a3b2b8","type":"set","name":"set tmp.gun.transient","xml":"<set>\n<parameter name='tmp.gun.transient' value='TRANSIENT' />\n","comments":"","x":789.9999694824219,"y":2800.9999918937683,"z":"f1e12e88.dbd29","wires":[]},{"id":"aac966e5.94dc28","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":398.66668701171875,"y":47.666669845581055,"z":"f1e12e88.dbd29","wires":[["dc433da4.fccac"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-vpn-binding-id.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generate-vpn-binding-id.json
new file mode 100755 (executable)
index 0000000..2c95f3a
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"1a17b23a.398bee","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-vpn-binding-id.uuid\" />","comments":"","outputs":1,"x":590.00390625,"y":504.00390625,"z":"9bc3cabb.e50c08","wires":[["ac061fd2.f40dc"]]},{"id":"ac061fd2.f40dc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":789.7539138793945,"y":502.00391006469727,"z":"9bc3cabb.e50c08","wires":[["50437676.be3b28"]]},{"id":"50437676.be3b28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<!-- Used to work around execute node bug -->\n\t<parameter name=\"execute_failure\" value=\"false\" />\n\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-vpn-binding-id\" value=\"An error occured while generating a UUID for VPN-BINDING.\" />","comments":"","x":954.7539138793945,"y":502.2539072036743,"z":"9bc3cabb.e50c08","wires":[]},{"id":"11d9fee1.397451","type":"get-resource","name":"Query AnAI -  vpn-binding","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n              resource=\"vpn-binding\"\n              key=\"vpn-binding.vpn-id = $tmp.return.generate-vpn-binding-id.uuid\"\n              local-only=\"false\"\n              pfx=\"tmp.local-variables.generate-vpn-binding-id.VPNBINDING\" >","comments":"","outputs":1,"x":719.2539138793945,"y":593.2539072036743,"z":"9bc3cabb.e50c08","wires":[["dfc2747e.ba2038","51b22a2f.6bf894","12ade5c4.1b0faa","696eb74c.68c8f8"]]},{"id":"b3abd428.d17188","type":"for","name":"for n: true","xml":"<for atomic=\"true\" index=\"n\" start=\"0\" end=\"1\" >","comments":"","outputs":1,"x":543.2539138793945,"y":593.2539072036743,"z":"9bc3cabb.e50c08","wires":[["11d9fee1.397451"]]},{"id":"dfc2747e.ba2038","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":923.7539138793945,"y":593.2539072036743,"z":"9bc3cabb.e50c08","wires":[["1ede93e1.58a0ac"]]},{"id":"51b22a2f.6bf894","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":919.7539138793945,"y":673.2539072036743,"z":"9bc3cabb.e50c08","wires":[["250b4141.5700fe"]]},{"id":"12ade5c4.1b0faa","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":928.7539138793945,"y":633.2539072036743,"z":"9bc3cabb.e50c08","wires":[["fe51a67a.13b8e8"]]},{"id":"250b4141.5700fe","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-vpn-binding-id\" value=\"`'An error occured while checking if a generated vpn-binding-id was unique. vpn-id = ' + $tmp.local-variables.generate-vpn-binding-id.uuid`\" />","comments":"","x":1086.253921508789,"y":698.2539129257202,"z":"9bc3cabb.e50c08","wires":[]},{"id":"1ede93e1.58a0ac","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1081.7539138793945,"y":593.2539072036743,"z":"9bc3cabb.e50c08","wires":[["18f3303f.51929","84dadf6d.8d15a"]]},{"id":"18f3303f.51929","type":"set","name":"set: ...local...is-unique = 0","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-vpn-binding-id.is-unique\" value=\"0\" />","comments":"","x":1299.2539672851562,"y":593.2539129257202,"z":"9bc3cabb.e50c08","wires":[]},{"id":"84dadf6d.8d15a","type":"execute","name":"execute: generateUUID","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n\t<parameter name=\"ctx-destination\" value=\"tmp.return.generate-vpn-binding-id.uuid\" />","comments":"","outputs":1,"x":1292.7539138793945,"y":633.2539072036743,"z":"9bc3cabb.e50c08","wires":[["d9152ade.264048"]]},{"id":"d9152ade.264048","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1479.7539138793945,"y":633.2539072036743,"z":"9bc3cabb.e50c08","wires":[["9921f2ce.1a66b"]]},{"id":"9921f2ce.1a66b","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<!-- return parameters -->\n\t<parameter name=\"error-message.generate-vpn-binding-id\" value=\"An error occured while generating a UUID for VPN-BINDING.\" />","comments":"","x":1633.7539138793945,"y":633.2539072036743,"z":"9bc3cabb.e50c08","wires":[]},{"id":"fe51a67a.13b8e8","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1059.7539138793945,"y":633.2539072036743,"z":"9bc3cabb.e50c08","wires":[[]]},{"id":"9006edb0.5ad67","type":"dgstart","name":"DGSTART","outputs":1,"x":300.25391006469727,"y":189.50390625,"z":"9bc3cabb.e50c08","wires":[["955ef40d.b75168"]]},{"id":"955ef40d.b75168","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":324.25390625,"y":235.75390625,"z":"9bc3cabb.e50c08","wires":[["1bda7a11.ba70b6"]]},{"id":"1bda7a11.ba70b6","type":"method","name":"method generate-vpn-binding-id","xml":"<method rpc=\"generate-vpn-binding-id\" mode=\"sync\">","comments":"","outputs":1,"x":341.00392150878906,"y":302.25392055511475,"z":"9bc3cabb.e50c08","wires":[["f99e10ed.a3ff1"]]},{"id":"586fb295.3f906c","type":"comment","name":"GENERIC-RESOURCE-API: GENERATE-L3NETWORK-NETWORK-ID","info":"","comments":"","x":851.7539215087891,"y":195.75390434265137,"z":"9bc3cabb.e50c08","wires":[]},{"id":"f99e10ed.a3ff1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":361.75391387939453,"y":413.2539072036743,"z":"9bc3cabb.e50c08","wires":[["1a17b23a.398bee","b3abd428.d17188","3c008100.ccda4e","ae4c9e12.036ca"]]},{"id":"f9cf86ae.e11878","type":"comment","name":"LOOP UNTIL GENERATED VPN-BINDING-ID ISN'T FOUND IN A&AI","info":"","comments":"","x":763.00390625,"y":549.5039110183716,"z":"9bc3cabb.e50c08","wires":[]},{"id":"b7af4772.fef138","type":"comment","name":"GENERATE A VPN-BINDING-ID","info":"","comments":"","x":626.75390625,"y":459.50390911102295,"z":"9bc3cabb.e50c08","wires":[]},{"id":"3c008100.ccda4e","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-vpn-binding-id.\" value=\"\" />\n\t<parameter name=\"tmp.return.generate-vpn-binding-id.\" value=\"\" />","comments":"","x":612.7539138793945,"y":413.2539072036743,"z":"9bc3cabb.e50c08","wires":[]},{"id":"ccbe8c66.d109a","type":"comment","name":"CLEANUP LOCAL VARIABLES TO BE USED","info":"","comments":"","x":697.00390625,"y":369.50390815734863,"z":"9bc3cabb.e50c08","wires":[]},{"id":"83e132e1.812b7","type":"comment","name":"GLOBAL VARIABLES USED","info":"// RETURN VALUES\nerror-message.generate-l3network-network-id\ntmp.return.generate-l3network-network-id.uuid\n\n// LOCAL VARIABLES (erased at beginning & end of DG)\ntmp.local-variables.generate-l3network-network-id.*\ntmp.return.generate-l3network-network-id.*\n","comments":"","x":838.2539367675781,"y":235.75390434265137,"z":"9bc3cabb.e50c08","wires":[]},{"id":"ae4c9e12.036ca","type":"set","name":"unset: local-variables & return","xml":"<set>\n\t<parameter name=\"tmp.local-variables.generate-vpn-binding-id.\" value=\"\" />","comments":"","x":612.7539138793945,"y":693.2539072036743,"z":"9bc3cabb.e50c08","wires":[]},{"id":"6844957a.c26bbc","type":"comment","name":"CLEANUP LOCAL VARIABLES","info":"","comments":"","x":654.25390625,"y":650.7539119720459,"z":"9bc3cabb.e50c08","wires":[]},{"id":"696eb74c.68c8f8","type":"other","name":"Other","xml":"<outcome value=\"Other\">","comments":"","outputs":1,"x":919.7539138793945,"y":713.2539072036743,"z":"9bc3cabb.e50c08","wires":[["250b4141.5700fe"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-activate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-activate.json
new file mode 100755 (executable)
index 0000000..ff5de61
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"748c5e12.ee05f","type":"dgstart","name":"DGSTART","outputs":1,"x":98.33332824707031,"y":78.33332824707031,"z":"f39a1209.6ec59","wires":[["75ce25e8.a289dc"]]},{"id":"75ce25e8.a289dc","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":213.61902618408203,"y":118.57143688201904,"z":"f39a1209.6ec59","wires":[["752ca0e8.9e0c2"]]},{"id":"752ca0e8.9e0c2","type":"method","name":"method generic-configuration-notification-activate","xml":"<method rpc='generic-configuration-notification-activate' mode='sync'>\n","comments":"","outputs":1,"x":221.76195526123047,"y":159.3333225250244,"z":"f39a1209.6ec59","wires":[["43784d88.bf3334"]]},{"id":"81b84b04.741458","type":"comment","name":"generic-configuration-notification-activate","info":"","comments":"","x":492.67818450927734,"y":25.9196720123291,"z":"f39a1209.6ec59","wires":[]},{"id":"43784d88.bf3334","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":146.6666717529297,"y":528.3333139419556,"z":"f39a1209.6ec59","wires":[["689f4588.4fb38c","6b66e766.d901c8","ecdec83a.0eea48","c0c55ed4.616a4","598a34a2.6f524c","9985c36c.7c9c1","bf385492.e7b548","f0a42717.253648","c53c80e.cc1d68"]]},{"id":"689f4588.4fb38c","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":396.6666488647461,"y":301.6666784286499,"z":"f39a1209.6ec59","wires":[[]]},{"id":"6b66e766.d901c8","type":"execute","name":"generate gc-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.gc-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.gc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.configuration-information.configuration-id`\"/>\n","comments":"","outputs":1,"x":411.66663360595703,"y":353.3333320617676,"z":"f39a1209.6ec59","wires":[[]]},{"id":"56854966.d5ae88","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":746.6665420532227,"y":404.9998531341553,"z":"f39a1209.6ec59","wires":[["8c7d47d8.35cfc8"]]},{"id":"ecdec83a.0eea48","type":"execute","name":"execute RestApiCallNode - GET gc-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":475.0000534057617,"y":404.99998664855957,"z":"f39a1209.6ec59","wires":[["56854966.d5ae88"]]},{"id":"8c7d47d8.35cfc8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":874.9998626708984,"y":404.99997901916504,"z":"f39a1209.6ec59","wires":[["6c3e40a9.1ac7d","7e782342.e3086c"]]},{"id":"6c3e40a9.1ac7d","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1053.3331756591797,"y":373.3333225250244,"z":"f39a1209.6ec59","wires":[[]]},{"id":"7e782342.e3086c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n","comments":"","x":1029.9998245239258,"y":425.0000047683716,"z":"f39a1209.6ec59","wires":[]},{"id":"c53c80e.cc1d68","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":370,"y":788.3333129882812,"z":"f39a1209.6ec59","wires":[]},{"id":"f0a42717.253648","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\n","comments":"","outputs":1,"x":363.3333320617676,"y":742.4135932922363,"z":"f39a1209.6ec59","wires":[[]]},{"id":"bf385492.e7b548","type":"configure","name":"send success to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"`$generic-configuration-notification-input.ack-final-indicator`\" />\n<parameter name=\"input.response-code\"\n  value=\"`$generic-configuration-notification-input.response-code`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":393.33338928222656,"y":697.4136219024658,"z":"f39a1209.6ec59","wires":[[]]},{"id":"9985c36c.7c9c1","type":"execute","name":"execute RestApiCallNode - PUT port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":503.33348083496094,"y":624.0802850723267,"z":"f39a1209.6ec59","wires":[["7f4b784c.bb4798","6c51d8f0.b04b08"]]},{"id":"7f4b784c.bb4798","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":803.4033012390137,"y":645.4118404388428,"z":"f39a1209.6ec59","wires":[["41d31794.266388"]]},{"id":"6c51d8f0.b04b08","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":795.8319358825684,"y":603.9118604660034,"z":"f39a1209.6ec59","wires":[["41d31794.266388"]]},{"id":"41d31794.266388","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":958.8214454650879,"y":617.9846868515015,"z":"f39a1209.6ec59","wires":[["9014b16d.c022e"]]},{"id":"9014b16d.c022e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Error updating md-sal for gc-configuration' />\n","comments":"","x":1131.666835784912,"y":617.4136619567871,"z":"f39a1209.6ec59","wires":[]},{"id":"c0c55ed4.616a4","type":"set","name":"set order-status to Active","xml":"<set>\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\n  value='Active' />\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-action'\n  value='CreateGenericConfigurationInstance' />\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-rpc-action'\n  value='activate' />\n","comments":"","x":410.0001754760742,"y":469.0803680419922,"z":"f39a1209.6ec59","wires":[]},{"id":"598a34a2.6f524c","type":"set","name":"copy mdsal-gc.gc-configuration[0]. to gc.","xml":"<set>\n<parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\n","comments":"","x":451.6668167114258,"y":550.7471122741699,"z":"f39a1209.6ec59","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-assign.json
new file mode 100755 (executable)
index 0000000..517d8f4
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"3cc1250e.772baa","type":"dgstart","name":"DGSTART","outputs":1,"x":102.5,"y":81.25,"z":"ae8dc4de.f4dc68","wires":[["3402eab5.73f3c6"]]},{"id":"3402eab5.73f3c6","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":217.78569793701172,"y":121.48810863494873,"z":"ae8dc4de.f4dc68","wires":[["c7e6ed9c.afa8c"]]},{"id":"c7e6ed9c.afa8c","type":"method","name":"method generic-configuration-notification-assign","xml":"<method rpc='generic-configuration-notification-assign' mode='sync'>\n","comments":"","outputs":1,"x":221.92862701416016,"y":162.2499942779541,"z":"ae8dc4de.f4dc68","wires":[["4767442b.f6c4ac"]]},{"id":"f1cc6d3c.1df33","type":"comment","name":"generic-configuration-notification-assign","info":"","comments":"","x":496.84485626220703,"y":28.83634376525879,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"4767442b.f6c4ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":134.16668701171875,"y":1781.7530403137207,"z":"ae8dc4de.f4dc68","wires":[["35944643.078a2a","146f698f.4e6226","d50bb092.cd571","8a5cfd84.4d1b4","d95d1950.bfe9f8","d52389db.225f08","7cc00fe8.04bdc","66091730.734bc8","522d7ed3.d05ac","9701d1bb.39173","3e76235a.0128ac","8568c1b1.c067e","84f34e5d.99cf4","da804b8e.c31568","7b830214.43feec","5d7d0687.7531f8","26306c7b.99f5a4","1d596143.fb1def","2f677052.127b9","7751357c.f0a3cc","9ed7f37f.7e0ba","1193a369.1cbf5d","d08c3347.9e6b8","f219dd.0348962","a1de031b.00549","5fb22bd5.354cf4","c4805bf4.e29698","1ddae120.504e2f","2def915d.1e931e","f1d80dd8.29bb8","d36d4389.7f7d9","8ba3a63e.d10ba8","33c48630.2bf5ba","57bab6ea.edaec8","d08f8ccc.1a7f7","1ea13a3.ea552c6","eafe9b0d.7484d8","61dbdcf5.d51804","57b4b7f.10e8948"]]},{"id":"35944643.078a2a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":379.99983978271484,"y":2749.2528038024902,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"146f698f.4e6226","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":411.6666488647461,"y":276.6666679382324,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"d50bb092.cd571","type":"execute","name":"generate gc-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.gc-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.gc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.configuration-information.configuration-id`\"/>\n","comments":"","outputs":1,"x":428.33331298828125,"y":335,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"13678d4c.8f5533","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":763.3332214355469,"y":386.6665210723877,"z":"ae8dc4de.f4dc68","wires":[["6d9a2e0a.afa9c"]]},{"id":"8a5cfd84.4d1b4","type":"execute","name":"execute RestApiCallNode - GET gc-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":495.00003814697266,"y":386.6666717529297,"z":"ae8dc4de.f4dc68","wires":[["13678d4c.8f5533"]]},{"id":"d95d1950.bfe9f8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\n","comments":"","outputs":1,"x":373.3331718444824,"y":2703.3330841064453,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"d52389db.225f08","type":"switchNode","name":"switch response-code","xml":"<switch test='`$generic-configuration-notification-input.response-code`'>\n","comments":"","outputs":1,"x":409.9999542236328,"y":495.00000953674316,"z":"ae8dc4de.f4dc68","wires":[["e66bcbd9.adfbd8","8765b92f.58af98"]]},{"id":"e66bcbd9.adfbd8","type":"outcome","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":596.6667327880859,"y":526.6666688919067,"z":"ae8dc4de.f4dc68","wires":[["655312ec.c6ca4c"]]},{"id":"8765b92f.58af98","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":599.9999809265137,"y":466.66667556762695,"z":"ae8dc4de.f4dc68","wires":[["23f6b332.6a269c"]]},{"id":"84b95e52.d26aa","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"`$generic-configuration-notification-input.ack-final-indicator`\" />\n<parameter name=\"input.response-code\"\n  value=\"`$generic-configuration-notification-input.response-code`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":905.0000381469727,"y":443.3333206176758,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"1ea13a3.ea552c6","type":"configure","name":"send success to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"`$generic-configuration-notification-input.ack-final-indicator`\" />\n<parameter name=\"input.response-code\"\n  value=\"`$generic-configuration-notification-input.response-code`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":403.3332290649414,"y":2658.333112716675,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"7cc00fe8.04bdc","type":"switchNode","name":"switch provided-configuration_length","xml":"<switch test='`$service-data.provided-configurations.provided-configuration_length`'>\n","comments":"","outputs":1,"x":455.00001525878906,"y":628.3333387374878,"z":"ae8dc4de.f4dc68","wires":[["ba800083.1956e"]]},{"id":"ba800083.1956e","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":678.3333129882812,"y":626.6666259765625,"z":"ae8dc4de.f4dc68","wires":[["89b0cf6a.10519"]]},{"id":"89b0cf6a.10519","type":"set","name":"set provided-configuration_length to 0","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration_length' value='0' />\n","comments":"","x":908.3332824707031,"y":626.666711807251,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"66091730.734bc8","type":"set","name":"set found-provided-configuration to false","xml":"<set>\n<parameter name='found-provided-configuration' value='false' />\n","comments":"","x":465.00001525878906,"y":676.6666965484619,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"522d7ed3.d05ac","type":"for","name":"for each provided-configuration","xml":"<for silentFailure='true' index='pc-index' start='0' end='`$service-data.provided-configurations.provided-configuration_length`' >\n","comments":"","outputs":1,"x":434.99999237060547,"y":780.0000705718994,"z":"ae8dc4de.f4dc68","wires":[["b8acf999.6ad398"]]},{"id":"b8acf999.6ad398","type":"switchNode","name":"switch configuration-ids match?","xml":"<switch test='`$service-data.provided-configurations.provided-configuration[$pc-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":715.0000381469727,"y":780.0000305175781,"z":"ae8dc4de.f4dc68","wires":[["77441f9a.3950f"]]},{"id":"77441f9a.3950f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":928.3333435058594,"y":778.3333225250244,"z":"ae8dc4de.f4dc68","wires":[["53f19e9a.4c592"]]},{"id":"53f19e9a.4c592","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1064.9999313354492,"y":778.3333339691162,"z":"ae8dc4de.f4dc68","wires":[["f80ba273.e518","794072c0.94b0fc"]]},{"id":"655312ec.c6ca4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":731.6666259765625,"y":525,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"23f6b332.6a269c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":731.6666259765625,"y":466.6666564941406,"z":"ae8dc4de.f4dc68","wires":[["84b95e52.d26aa","2eee38b0.9cc638"]]},{"id":"f80ba273.e518","type":"set","name":"set found-provided-configuration to true","xml":"<set>\n<parameter name='found-provided-configuration' value='true' />\n","comments":"","x":1293.333351135254,"y":748.3332796096802,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"794072c0.94b0fc","type":"break","name":"break","xml":"<break>\n","comments":"","x":1191.6666870117188,"y":796.6666769981384,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"9701d1bb.39173","type":"switchNode","name":"switch found-provided-configuration","xml":"<switch test='`$found-provided-configuration`'>\n","comments":"","outputs":1,"x":448.33335876464844,"y":833.3333644866943,"z":"ae8dc4de.f4dc68","wires":[["3bf36f48.88521"]]},{"id":"3bf36f48.88521","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":663.3333129882812,"y":833.3333435058594,"z":"ae8dc4de.f4dc68","wires":[["e204449a.562808"]]},{"id":"e204449a.562808","type":"set","name":"increment provided-configuration_length","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration_length'\n  value='`$service-data.provided-configurations.provided-configuration_length + 1`' />\n","comments":"","x":894.9999847412109,"y":833.3333225250244,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"3e76235a.0128ac","type":"set","name":"set provided-configuration data","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-id'\n  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-type'\n  value='`$generic-configuration-notification-input.configuration-information.configuration-type`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-sub-type'\n  value='`$generic-configuration-notification-input.configuration-information.configuration-sub-type`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-topology-link'\n  value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n   + $generic-configuration-notification-input.service-information.service-instance-id\n   + '/service-data/provided-configurations/provided-configuration/'\n   + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n","comments":"","x":431.66666412353516,"y":888.333306312561,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"f496c6ed.5771a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":813.3332901000977,"y":1181.6666851043701,"z":"ae8dc4de.f4dc68","wires":[["9cb35e05.54f97"]]},{"id":"8568c1b1.c067e","type":"execute","name":"execute RestApiCallNode - GET vnf-sub-interface-group","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vsig\" />\n\n","comments":"","outputs":1,"x":511.6666564941406,"y":1183.3335456848145,"z":"ae8dc4de.f4dc68","wires":[["f496c6ed.5771a8"]]},{"id":"84f34e5d.99cf4","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf-sub-interface-group`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\"/>\n","comments":"","outputs":1,"x":454.9999694824219,"y":938.3333206176758,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"da804b8e.c31568","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnf-id`\"/>\n","comments":"","outputs":1,"x":454.9999465942383,"y":988.3333654403687,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"7b830214.43feec","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{vnfc-instance-group-function}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnfc-instance-group-function`\"/>\n","comments":"","outputs":1,"x":454.99993896484375,"y":1038.3332872390747,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"5d7d0687.7531f8","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{network-instance-group-function}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-instance-group-function`\"/>\n","comments":"","outputs":1,"x":454.99996185302734,"y":1086.6665840148926,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"26306c7b.99f5a4","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vsig-url\"/>\n    <parameter name=\"target\" value=\"{parent-port-role}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.parent-port-role`\"/>\n","comments":"","outputs":1,"x":454.99993896484375,"y":1135.0000438690186,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"ef8bdf4c.8e0fb","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\" />\n","comments":"","x":1100.0003967285156,"y":1199.9998970031738,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"6d9a2e0a.afa9c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":891.6665420532227,"y":386.66664695739746,"z":"ae8dc4de.f4dc68","wires":[["a8eb0918.9f1948","6dad07ad.23e0c8"]]},{"id":"a8eb0918.9f1948","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1069.999855041504,"y":354.99999046325684,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"6dad07ad.23e0c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n","comments":"","x":1046.66650390625,"y":406.666672706604,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"2eee38b0.9cc638","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`$generic-configuration-notification-input.response-message`\" />\n","comments":"","x":883.3333129882812,"y":489.9999694824219,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"9cb35e05.54f97","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":953.3332748413086,"y":1181.6666774749756,"z":"ae8dc4de.f4dc68","wires":[["ef8bdf4c.8e0fb","15aaaf48.cec541"]]},{"id":"15aaaf48.cec541","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1119.999900817871,"y":1154.9999294281006,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"1d596143.fb1def","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":376.666690826416,"y":1256.6666355133057,"z":"ae8dc4de.f4dc68","wires":[["78c2892b.27f7b8"]]},{"id":"78c2892b.27f7b8","type":"for","name":"for each vnic","xml":"<for silentFailure='true' index='vnic-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic_length`' >\n","comments":"","outputs":1,"x":545,"y":1255,"z":"ae8dc4de.f4dc68","wires":[["71029de0.105574"]]},{"id":"71029de0.105574","type":"for","name":"for each subinterface","xml":"<for silentFailure='true' index='si-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface_length`' >\n","comments":"","outputs":1,"x":736.6666564941406,"y":1255.0000495910645,"z":"ae8dc4de.f4dc68","wires":[["ec687857.094fb8"]]},{"id":"ec687857.094fb8","type":"switchNode","name":"switch lower-tag-ids equal?","xml":"<switch test='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].vlan-tags.lower-tag-id\n  == $generic-configuration-notification-input.vnr-parameters.lower-tag-id`'>\n","comments":"","outputs":1,"x":973.3333053588867,"y":1253.3332614898682,"z":"ae8dc4de.f4dc68","wires":[["a2c19f89.3b803"]]},{"id":"a2c19f89.3b803","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1168.3333435058594,"y":1251.6667175292969,"z":"ae8dc4de.f4dc68","wires":[["52075d54.ad5254"]]},{"id":"52075d54.ad5254","type":"set","name":"set sub-interface-status to 'assigned'","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].sub-interface-status'\n  value='assigned' />\n","comments":"","x":1393.3331832885742,"y":1249.9998865127563,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"2f677052.127b9","type":"switchNode","name":"switch customer-bonding-request_length","xml":"<switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`'>\n","comments":"","outputs":1,"x":461.66664123535156,"y":1331.66667842865,"z":"ae8dc4de.f4dc68","wires":[["49eafbd8.217b14"]]},{"id":"49eafbd8.217b14","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":696.6666259765625,"y":1330,"z":"ae8dc4de.f4dc68","wires":[["876b66b2.c44fc8"]]},{"id":"876b66b2.c44fc8","type":"set","name":"set customer-bonding-request_length to 0","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\n  value='0' />\n","comments":"","x":934.9999694824219,"y":1329.999930381775,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"7751357c.f0a3cc","type":"for","name":"for each customer-bonding-request","xml":"<for index='cbr-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":443.3332977294922,"y":1441.6666831970215,"z":"ae8dc4de.f4dc68","wires":[["52b7e9d6.3b8d68"]]},{"id":"52b7e9d6.3b8d68","type":"switchNode","name":"switch configuration-ids equal?","xml":"<switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":738.3333206176758,"y":1441.666603088379,"z":"ae8dc4de.f4dc68","wires":[["668d8732.ab0708"]]},{"id":"9ed7f37f.7e0ba","type":"set","name":"set found-customer-bonding-request to false","xml":"<set>\n<parameter name='found-customer-bonding-request' value='false' />\n","comments":"","x":473.3333435058594,"y":1381.6665992736816,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"668d8732.ab0708","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":939.9999389648438,"y":1441.6666259765625,"z":"ae8dc4de.f4dc68","wires":[["18edad9e.582f42"]]},{"id":"18edad9e.582f42","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1076.6665267944336,"y":1441.6666374206543,"z":"ae8dc4de.f4dc68","wires":[["4224a75f.aa5358","ebf48469.47ca38"]]},{"id":"4224a75f.aa5358","type":"set","name":"set found-customer-bonding-request to true","xml":"<set>\n<parameter name='found-customer-bonding-request' value='true' />\n","comments":"","x":1318.3333015441895,"y":1411.6666011810303,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"ebf48469.47ca38","type":"break","name":"break","xml":"<break>\n","comments":"","x":1203.3332824707031,"y":1459.9999804496765,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"1193a369.1cbf5d","type":"switchNode","name":"switch found-customer-bonding-request","xml":"<switch test='`$found-customer-bonding-request`'>\n","comments":"","outputs":1,"x":459.9999809265137,"y":1526.666748046875,"z":"ae8dc4de.f4dc68","wires":[["9422191b.a944a8"]]},{"id":"9422191b.a944a8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":704.9998817443848,"y":1526.666748046875,"z":"ae8dc4de.f4dc68","wires":[["c651b8bd.b62478"]]},{"id":"3b053b7e.793854","type":"set","name":"increment provided-configuration_length","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\n  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length + 1`' />\n","comments":"","x":1068.3331909179688,"y":1548.3332347869873,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"c651b8bd.b62478","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":833.3332862854004,"y":1526.6666870117188,"z":"ae8dc4de.f4dc68","wires":[["3b053b7e.793854","50457e5a.648f3"]]},{"id":"50457e5a.648f3","type":"set","name":"set configuration-id","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length].configuration-id'\n  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\n","comments":"","x":1003.3332901000977,"y":1500.0001430511475,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"d08c3347.9e6b8","type":"execute","name":"execute RestApiCallNode - PUT vnf-sub-interface-group","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vnfsubinterfacegroup.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vsig\" />\n\n","comments":"","outputs":1,"x":511.66663360595703,"y":1638.333152770996,"z":"ae8dc4de.f4dc68","wires":[["721a4c33.94a274"]]},{"id":"721a4c33.94a274","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":798.3332901000977,"y":1636.6665267944336,"z":"ae8dc4de.f4dc68","wires":[["a09798f2.5efdb8"]]},{"id":"762136cc.984f68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure writing vnf-sub-interface-group\" />\n","comments":"","x":1083.3331336975098,"y":1653.333194732666,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"a09798f2.5efdb8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":929.9999389648438,"y":1634.9998779296875,"z":"ae8dc4de.f4dc68","wires":[["762136cc.984f68","3ab13842.69d928"]]},{"id":"f219dd.0348962","type":"set","name":"set pc-index to 0","xml":"<set>\n<parameter name='pc-index' value='0' />\n","comments":"","x":389.9999694824219,"y":728.3333873748779,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"a1de031b.00549","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-instance-group-network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\"/>\n","comments":"","outputs":1,"x":484.9999084472656,"y":1716.6664113998413,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"5fb22bd5.354cf4","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{network-instance-group-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-instance-group-id`\"/>\n","comments":"","outputs":1,"x":484.99989318847656,"y":1763.3332405090332,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"c4805bf4.e29698","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.nign-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-id`\"/>\n","comments":"","outputs":1,"x":484.9998779296875,"y":1806.6664543151855,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"53f66c5f.db0e04","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":852.0000152587891,"y":1922.6666278839111,"z":"ae8dc4de.f4dc68","wires":[["f74392fc.d0a05"]]},{"id":"1ddae120.504e2f","type":"execute","name":"execute RestApiCallNode - GET network-instance-group-network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-nign\" />\n\n","comments":"","outputs":1,"x":541.6666946411133,"y":1923.3334884643555,"z":"ae8dc4de.f4dc68","wires":[["53f66c5f.db0e04"]]},{"id":"511e8517.fc5a2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\" />\n","comments":"","x":1128.3337020874023,"y":1949.999834060669,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"f74392fc.d0a05","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":983.3333129882812,"y":1921.6666202545166,"z":"ae8dc4de.f4dc68","wires":[["511e8517.fc5a2c","8ace224e.0988d"]]},{"id":"8ace224e.0988d","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1148.3332977294922,"y":1899.9998707771301,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"2def915d.1e931e","type":"switchNode","name":"switch customer-bonding-request_length","xml":"<switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`'>\n","comments":"","outputs":1,"x":463.33331298828125,"y":2019.9998779296875,"z":"ae8dc4de.f4dc68","wires":[["2e033362.ff3efc"]]},{"id":"2e033362.ff3efc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":698.3332977294922,"y":2018.3331995010376,"z":"ae8dc4de.f4dc68","wires":[["9f1b41b9.a2ee4"]]},{"id":"9f1b41b9.a2ee4","type":"set","name":"set customer-bonding-request_length to 0","xml":"<set>\n<parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\n  value='0' />\n","comments":"","x":936.6666412353516,"y":2018.3331298828125,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"8ba3a63e.d10ba8","type":"for","name":"for each customer-bonding-request","xml":"<for index='cbr-index' start='0' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":444.9999542236328,"y":2170.0000038146973,"z":"ae8dc4de.f4dc68","wires":[["731cd6b2.d705e8"]]},{"id":"731cd6b2.d705e8","type":"switchNode","name":"switch configuration-ids equal?","xml":"<switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":739.9999771118164,"y":2169.9999237060547,"z":"ae8dc4de.f4dc68","wires":[["172328ac.80fd77"]]},{"id":"f1d80dd8.29bb8","type":"set","name":"set found-customer-bonding-request to false","xml":"<set>\n<parameter name='found-customer-bonding-request' value='false' />\n","comments":"","x":475.00001525878906,"y":2069.9997987747192,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"172328ac.80fd77","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":941.6665954589844,"y":2169.9999465942383,"z":"ae8dc4de.f4dc68","wires":[["722ff3a4.17f61c"]]},{"id":"722ff3a4.17f61c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1078.3331832885742,"y":2169.99995803833,"z":"ae8dc4de.f4dc68","wires":[["19bd2de.2f9ddd2","deca096b.06e4b8"]]},{"id":"19bd2de.2f9ddd2","type":"set","name":"set found-customer-bonding-request to true","xml":"<set>\n<parameter name='found-customer-bonding-request' value='true' />\n","comments":"","x":1319.99995803833,"y":2139.999921798706,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"deca096b.06e4b8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1204.9999389648438,"y":2188.3333010673523,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"33c48630.2bf5ba","type":"switchNode","name":"switch found-customer-bonding-request","xml":"<switch test='`$found-customer-bonding-request`'>\n","comments":"","outputs":1,"x":461.6666374206543,"y":2255.000068664551,"z":"ae8dc4de.f4dc68","wires":[["5e701dee.5b5824"]]},{"id":"5e701dee.5b5824","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":706.6665382385254,"y":2255.000068664551,"z":"ae8dc4de.f4dc68","wires":[["697b5fb8.beda5"]]},{"id":"e84cf705.8fbbd8","type":"set","name":"increment provided-configuration_length","xml":"<set>\n<parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\n  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length + 1`' />\n","comments":"","x":1069.9998474121094,"y":2276.666555404663,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"697b5fb8.beda5","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":834.999942779541,"y":2255.0000076293945,"z":"ae8dc4de.f4dc68","wires":[["e84cf705.8fbbd8","f6b7d527.816a38"]]},{"id":"f6b7d527.816a38","type":"set","name":"set configuration-id","xml":"<set>\n<parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length].configuration-id'\n  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\n","comments":"","x":1004.9999465942383,"y":2228.3334636688232,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"d36d4389.7f7d9","type":"set","name":"set cbr-index to 0","xml":"<set>\n<parameter name='cbr-index' value='0' />\n","comments":"","x":390.0000228881836,"y":2118.3332557678223,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"57bab6ea.edaec8","type":"set","name":"set network-status to assigned","xml":"<set>\n<parameter name='mdsal-nign.network[0].network-status' value='assigned' />\n","comments":"","x":431.6666717529297,"y":2313.3336696624756,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"b626d1d9.7a40b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":848.333251953125,"y":2361.6664476394653,"z":"ae8dc4de.f4dc68","wires":[["e67173fb.9bd5b"]]},{"id":"711125b6.dfa3fc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure writing network-instance-group network\" />\n","comments":"","x":1133.333095550537,"y":2378.3331155776978,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"e67173fb.9bd5b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":979.9999008178711,"y":2359.9997987747192,"z":"ae8dc4de.f4dc68","wires":[["711125b6.dfa3fc","eb1f5008.a5906"]]},{"id":"d08f8ccc.1a7f7","type":"execute","name":"execute RestApiCallNode - PUT network-instance-group-network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-network.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-nign\" />\n\n","comments":"","outputs":1,"x":538.3332977294922,"y":2363.333101272583,"z":"ae8dc4de.f4dc68","wires":[["b626d1d9.7a40b"]]},{"id":"eb1f5008.a5906","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"Failure writing network-instance-group network\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1156.6666259765625,"y":2333.333251953125,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"3ab13842.69d928","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"Failure writing vnf-sub-interface-group\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1105,"y":1606.6666259765625,"z":"ae8dc4de.f4dc68","wires":[[]]},{"id":"61dbdcf5.d51804","type":"execute","name":"execute RestApiCallNode - PUT port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":513.3333206176758,"y":2584.9997758865356,"z":"ae8dc4de.f4dc68","wires":[["bfa7d1bb.33253","66bbb3f8.ea0f1c"]]},{"id":"bfa7d1bb.33253","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":813.4031410217285,"y":2606.3313312530518,"z":"ae8dc4de.f4dc68","wires":[["a48c4403.7a82c8"]]},{"id":"66bbb3f8.ea0f1c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":805.8317756652832,"y":2564.8313512802124,"z":"ae8dc4de.f4dc68","wires":[["a48c4403.7a82c8"]]},{"id":"a48c4403.7a82c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":968.8212852478027,"y":2578.9041776657104,"z":"ae8dc4de.f4dc68","wires":[["264f1cac.56b1a4","f64485c8.232168"]]},{"id":"264f1cac.56b1a4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Error updating md-sal for gc-configuration' />\n","comments":"","x":1143.3333358764648,"y":2600.000020980835,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"eafe9b0d.7484d8","type":"set","name":"set order-status to Created","xml":"<set>\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\n  value='Created' />\n","comments":"","x":420.00001525878906,"y":2429.999858856201,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"57b4b7f.10e8948","type":"set","name":"copy mdsal-gc.gc-configuration[0]. to gc.","xml":"<set>\n<parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\n","comments":"","x":461.6666564941406,"y":2511.666603088379,"z":"ae8dc4de.f4dc68","wires":[]},{"id":"f64485c8.232168","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"Error updating md-sal for gc-configuration\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1165,"y":2553.333251953125,"z":"ae8dc4de.f4dc68","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.json
new file mode 100755 (executable)
index 0000000..0594578
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"581097fa.f08428","type":"dgstart","name":"DGSTART","outputs":1,"x":109.99999237060547,"y":85,"z":"556dacae.20cff4","wires":[["d9b9ed23.bda82"]]},{"id":"d9b9ed23.bda82","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":225.2856903076172,"y":125.23810863494873,"z":"556dacae.20cff4","wires":[["bb24c20b.23cad"]]},{"id":"bb24c20b.23cad","type":"method","name":"method generic-configuration-notification-deactivate","xml":"<method rpc='generic-configuration-notification-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":239.42861938476562,"y":165.9999942779541,"z":"556dacae.20cff4","wires":[["4bb7c400.4b7fdc"]]},{"id":"d4b5fa2.03e5108","type":"comment","name":"generic-configuration-notification-deactivate","info":"","comments":"","x":504.3448486328125,"y":32.58634376525879,"z":"556dacae.20cff4","wires":[]},{"id":"4bb7c400.4b7fdc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":158.33333587646484,"y":534.9999856948853,"z":"556dacae.20cff4","wires":[["3c635801.633328","625b4226.ce6f6c","f25f3503.b5e368","250622a8.b0928e","bb670b13.22a4e8","55e6d825.5666e8","23046880.f0a148","defede2a.a7fc2","f97342ec.26eae"]]},{"id":"3c635801.633328","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":408.33331298828125,"y":308.3333501815796,"z":"556dacae.20cff4","wires":[[]]},{"id":"625b4226.ce6f6c","type":"execute","name":"generate gc-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.gc-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.gc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.configuration-information.configuration-id`\"/>\n","comments":"","outputs":1,"x":423.3332977294922,"y":360.00000381469727,"z":"556dacae.20cff4","wires":[[]]},{"id":"d8184515.19b268","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":758.3332061767578,"y":411.66652488708496,"z":"556dacae.20cff4","wires":[["ee8e0ca5.c303a"]]},{"id":"f25f3503.b5e368","type":"execute","name":"execute RestApiCallNode - GET gc-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":486.6667175292969,"y":411.66665840148926,"z":"556dacae.20cff4","wires":[["d8184515.19b268"]]},{"id":"ee8e0ca5.c303a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":886.6665267944336,"y":411.6666507720947,"z":"556dacae.20cff4","wires":[["c1f6c677.83fa88","27d67c5a.263724"]]},{"id":"c1f6c677.83fa88","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1064.9998397827148,"y":379.9999942779541,"z":"556dacae.20cff4","wires":[[]]},{"id":"27d67c5a.263724","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n","comments":"","x":1041.666488647461,"y":431.66667652130127,"z":"556dacae.20cff4","wires":[]},{"id":"f97342ec.26eae","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":381.6666488647461,"y":795.0000114440918,"z":"556dacae.20cff4","wires":[]},{"id":"defede2a.a7fc2","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\n","comments":"","outputs":1,"x":374.99999618530273,"y":749.080265045166,"z":"556dacae.20cff4","wires":[[]]},{"id":"23046880.f0a148","type":"configure","name":"send success to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"`$generic-configuration-notification-input.ack-final-indicator`\" />\n<parameter name=\"input.response-code\"\n  value=\"`$generic-configuration-notification-input.response-code`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":405.0000534057617,"y":704.0802936553955,"z":"556dacae.20cff4","wires":[[]]},{"id":"55e6d825.5666e8","type":"execute","name":"execute RestApiCallNode - PUT port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":515.0001449584961,"y":630.7469568252563,"z":"556dacae.20cff4","wires":[["7ecf2bec.09b4a4","60e9d18f.0ae6a"]]},{"id":"7ecf2bec.09b4a4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":815.0699653625488,"y":652.0785121917725,"z":"556dacae.20cff4","wires":[["f40a17d9.9878c8"]]},{"id":"60e9d18f.0ae6a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":807.4986000061035,"y":610.5785322189331,"z":"556dacae.20cff4","wires":[["f40a17d9.9878c8"]]},{"id":"f40a17d9.9878c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":970.488109588623,"y":624.6513586044312,"z":"556dacae.20cff4","wires":[["2433e521.9188fa"]]},{"id":"2433e521.9188fa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Error updating md-sal for gc-configuration' />\n","comments":"","x":1143.3334999084473,"y":624.0803337097168,"z":"556dacae.20cff4","wires":[]},{"id":"250622a8.b0928e","type":"set","name":"set order-status to PendingDelete","xml":"<set>\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\n  value='PendingDelete' />\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-action'\n  value='DeleteGenericConfigurationInstance' />\n<parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-rpc-action'\n  value='deactivate' />\n","comments":"","x":438.33349609375,"y":477.4137153625488,"z":"556dacae.20cff4","wires":[]},{"id":"bb670b13.22a4e8","type":"set","name":"copy mdsal-gc.gc-configuration[0]. to gc.","xml":"<set>\n<parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\n","comments":"","x":463.33348083496094,"y":557.4137840270996,"z":"556dacae.20cff4","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.json
new file mode 100755 (executable)
index 0000000..a1464e8
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"201ea6db.6a157a","type":"dgstart","name":"DGSTART","outputs":1,"x":103.33332824707031,"y":83.33332824707031,"z":"462a845d.7a55ec","wires":[["6373faef.9fa8d4"]]},{"id":"6373faef.9fa8d4","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":218.61902618408203,"y":123.57143688201904,"z":"462a845d.7a55ec","wires":[["a586e6ad.c379d8"]]},{"id":"a586e6ad.c379d8","type":"method","name":"method generic-configuration-notification-unassign","xml":"<method rpc='generic-configuration-notification-unassign' mode='sync'>\n","comments":"","outputs":1,"x":232.76195526123047,"y":164.3333225250244,"z":"462a845d.7a55ec","wires":[["5157a50e.bfb98c"]]},{"id":"7182ac18.2a8da4","type":"comment","name":"generic-configuration-notification-unassign","info":"","comments":"","x":497.67818450927734,"y":30.9196720123291,"z":"462a845d.7a55ec","wires":[]},{"id":"5157a50e.bfb98c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":119.99999237060547,"y":896.6666278839111,"z":"462a845d.7a55ec","wires":[["feb106b8.185f08","743bcc3f.3da104","3bc8a57a.fffb6a","15e56521.8bda1b","232ddbdd.dd7dd4","be916a84.c5bca8","7a624451.7c32dc","99aec2bc.e7b95","4283d7ba.9952f8","ebc4f87b.eab5e8","9a8cd3f.4488d3","bcd4a78e.93b5c8","2de89f29.06878","4196df91.f32b6","a5f8fb7a.8abc58","fc495104.33dc3","7139e5d3.00113c","daafa96f.aa2648","18e5598d.08c946","605d38fd.0f4688","e7df9303.b3ed4","aa8c2298.733db","fdcad0e0.6c236"]]},{"id":"feb106b8.185f08","type":"for","name":"for each provided-configuration","xml":"<for silentFailure='true' index='pc-index' start='0' end='`$service-data.provided-configurations.provided-configuration_length`' >\n","comments":"","outputs":1,"x":398.3333168029785,"y":348.33334732055664,"z":"462a845d.7a55ec","wires":[["d390f9b0.7081f8"]]},{"id":"d390f9b0.7081f8","type":"switchNode","name":"switch configuration-ids match?","xml":"<switch test='`$service-data.provided-configurations.provided-configuration[$pc-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":678.3333587646484,"y":348.3333168029785,"z":"462a845d.7a55ec","wires":[["d31ad60e.b1f1f8"]]},{"id":"d31ad60e.b1f1f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":879.9999961853027,"y":347.33325576782227,"z":"462a845d.7a55ec","wires":[["6a4df8fe.70aab8"]]},{"id":"6a4df8fe.70aab8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1001.6665649414062,"y":346.66658878326416,"z":"462a845d.7a55ec","wires":[["af80512.cac3db","70ebbfad.95d07"]]},{"id":"af80512.cac3db","type":"for","name":"for each subsequent provided-configuration","xml":"<for index='pc2-index' start='`$pc-index + 1`' end='`$service-data.provided-configurations.provided-configuration_length`' >\n","comments":"","outputs":1,"x":1244.9999237060547,"y":308.33337593078613,"z":"462a845d.7a55ec","wires":[["4b371501.33929c"]]},{"id":"d89c75f4.daac28","type":"set","name":"copy provided-configuration down 1","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration[$prev-index].'\n  value='`$service-data.provided-configurations.provided-configuration[$pc2-index].`' />\n","comments":"","x":1698.333480834961,"y":329.9999828338623,"z":"462a845d.7a55ec","wires":[]},{"id":"a41927b6.539518","type":"set","name":"set prev-index","xml":"<set>\n<parameter name='prev-index' value='`$pc2-index - 1`' />\n","comments":"","x":1630.0000648498535,"y":283.3333330154419,"z":"462a845d.7a55ec","wires":[]},{"id":"4b371501.33929c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1483.3333129882812,"y":308.33329486846924,"z":"462a845d.7a55ec","wires":[["a41927b6.539518","d89c75f4.daac28"]]},{"id":"70ebbfad.95d07","type":"set","name":"decrement provided-configuration_length","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration_length'\n  value='`$service-data.provided-configurations.provided-configuration_length - 1`' />\n","comments":"","x":1238.3333587646484,"y":369.99998474121094,"z":"462a845d.7a55ec","wires":[]},{"id":"743bcc3f.3da104","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\n","comments":"","outputs":1,"x":334.9999809265137,"y":1706.6665802001953,"z":"462a845d.7a55ec","wires":[[]]},{"id":"3bc8a57a.fffb6a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":340.0000114440918,"y":1763.3332171440125,"z":"462a845d.7a55ec","wires":[]},{"id":"15e56521.8bda1b","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":374.9999771118164,"y":294.9999809265137,"z":"462a845d.7a55ec","wires":[[]]},{"id":"61329315.59089c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":730,"y":461.6666564941406,"z":"462a845d.7a55ec","wires":[["8c8877e4.459b28"]]},{"id":"232ddbdd.dd7dd4","type":"execute","name":"execute RestApiCallNode - GET gc-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":461.6668167114258,"y":461.6668071746826,"z":"462a845d.7a55ec","wires":[["61329315.59089c"]]},{"id":"be916a84.c5bca8","type":"switchNode","name":"switch response-code","xml":"<switch test='`$generic-configuration-notification-input.response-code`'>\n","comments":"","outputs":1,"x":376.66673278808594,"y":570.0001449584961,"z":"462a845d.7a55ec","wires":[["363cba9.0083046","a644d93e.546118"]]},{"id":"363cba9.0083046","type":"outcome","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":563.3335113525391,"y":601.6668043136597,"z":"462a845d.7a55ec","wires":[["a7987d23.c7534"]]},{"id":"a644d93e.546118","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":566.6667594909668,"y":541.6668109893799,"z":"462a845d.7a55ec","wires":[["60956527.03093c"]]},{"id":"de12b292.1d4d8","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"`$generic-configuration-notification-input.ack-final-indicator`\" />\n<parameter name=\"input.response-code\"\n  value=\"`$generic-configuration-notification-input.response-code`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":871.6668167114258,"y":518.3334560394287,"z":"462a845d.7a55ec","wires":[[]]},{"id":"a7987d23.c7534","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":698.3334045410156,"y":600.0001354217529,"z":"462a845d.7a55ec","wires":[[]]},{"id":"60956527.03093c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":698.3334045410156,"y":541.6667919158936,"z":"462a845d.7a55ec","wires":[["de12b292.1d4d8","daa831f1.ce526"]]},{"id":"8c8877e4.459b28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":858.3333206176758,"y":461.6667823791504,"z":"462a845d.7a55ec","wires":[["b12fb0d2.3cd05","82d9f693.6d4228"]]},{"id":"b12fb0d2.3cd05","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1036.666633605957,"y":430.00012588500977,"z":"462a845d.7a55ec","wires":[[]]},{"id":"82d9f693.6d4228","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`\" />\n","comments":"","x":1013.333251953125,"y":476.66680812835693,"z":"462a845d.7a55ec","wires":[]},{"id":"daa831f1.ce526","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`$generic-configuration-notification-input.response-message`\" />\n","comments":"","x":850.0000915527344,"y":565.0001049041748,"z":"462a845d.7a55ec","wires":[]},{"id":"9d3fc40a.429ad8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":786.6665992736816,"y":891.6666259765625,"z":"462a845d.7a55ec","wires":[["fe1afab9.59d2c8"]]},{"id":"bcd4a78e.93b5c8","type":"execute","name":"execute RestApiCallNode - GET vnf-sub-interface-group","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vsig\" />\n\n","comments":"","outputs":1,"x":484.9999656677246,"y":893.3334865570068,"z":"462a845d.7a55ec","wires":[["9d3fc40a.429ad8"]]},{"id":"7a624451.7c32dc","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf-sub-interface-group`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\"/>\n","comments":"","outputs":1,"x":428.33327865600586,"y":648.3332614898682,"z":"462a845d.7a55ec","wires":[[]]},{"id":"99aec2bc.e7b95","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnf-id`\"/>\n","comments":"","outputs":1,"x":428.33325576782227,"y":698.333306312561,"z":"462a845d.7a55ec","wires":[[]]},{"id":"4283d7ba.9952f8","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{vnfc-instance-group-function}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.vnfc-instance-group-function`\"/>\n","comments":"","outputs":1,"x":428.33324813842773,"y":748.3332281112671,"z":"462a845d.7a55ec","wires":[[]]},{"id":"ebc4f87b.eab5e8","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{network-instance-group-function}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-instance-group-function`\"/>\n","comments":"","outputs":1,"x":428.3332710266113,"y":796.666524887085,"z":"462a845d.7a55ec","wires":[[]]},{"id":"9a8cd3f.4488d3","type":"execute","name":"generate vnf-sub-interface-group URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.vsig-url\"/>\n    <parameter name=\"target\" value=\"{parent-port-role}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.parent-port-role`\"/>\n","comments":"","outputs":1,"x":428.33324813842773,"y":844.9999847412109,"z":"462a845d.7a55ec","wires":[[]]},{"id":"68d41889.f26408","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\" />\n","comments":"","x":1073.3337059020996,"y":909.9998378753662,"z":"462a845d.7a55ec","wires":[]},{"id":"fe1afab9.59d2c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":926.6665840148926,"y":891.666618347168,"z":"462a845d.7a55ec","wires":[["68d41889.f26408","d5349d79.2f912"]]},{"id":"d5349d79.2f912","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1093.333209991455,"y":864.999870300293,"z":"462a845d.7a55ec","wires":[[]]},{"id":"2de89f29.06878","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":350,"y":966.666576385498,"z":"462a845d.7a55ec","wires":[["bf4c44a8.d8c458"]]},{"id":"bf4c44a8.d8c458","type":"for","name":"for each vnic","xml":"<for silentFailure='true' index='vnic-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic_length`' >\n","comments":"","outputs":1,"x":518.333309173584,"y":964.9999408721924,"z":"462a845d.7a55ec","wires":[["3bfe2398.75c6ac"]]},{"id":"3bfe2398.75c6ac","type":"for","name":"for each subinterface","xml":"<for silentFailure='true' index='si-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface_length`' >\n","comments":"","outputs":1,"x":709.9999656677246,"y":964.9999904632568,"z":"462a845d.7a55ec","wires":[["a28308b1.7f8368"]]},{"id":"a28308b1.7f8368","type":"switchNode","name":"switch lower-tag-ids equal?","xml":"<switch test='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].vlan-tags.lower-tag-id\n  == $generic-configuration-notification-input.vnr-parameters.lower-tag-id`'>\n","comments":"","outputs":1,"x":946.6666145324707,"y":963.3332023620605,"z":"462a845d.7a55ec","wires":[["eec5958.2c75968"]]},{"id":"eec5958.2c75968","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1141.6666526794434,"y":961.6666584014893,"z":"462a845d.7a55ec","wires":[["67f77c07.c29934"]]},{"id":"67f77c07.c29934","type":"set","name":"set sub-interface-status to 'unassigned'","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].sub-interface-status'\n  value='unassigned' />\n","comments":"","x":1366.6664924621582,"y":959.9998273849487,"z":"462a845d.7a55ec","wires":[]},{"id":"4196df91.f32b6","type":"for","name":"for each customer-bonding-request","xml":"<for index='cbr-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":418.3333168029785,"y":1054.9999599456787,"z":"462a845d.7a55ec","wires":[["2f1abe51.e1c4a2"]]},{"id":"2f1abe51.e1c4a2","type":"switchNode","name":"switch configuration-ids equal?","xml":"<switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":713.3333396911621,"y":1054.9998798370361,"z":"462a845d.7a55ec","wires":[["1778fe32.933392"]]},{"id":"1778fe32.933392","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":914.9999580383301,"y":1054.9999027252197,"z":"462a845d.7a55ec","wires":[["b61ca28e.22135"]]},{"id":"b61ca28e.22135","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1051.66654586792,"y":1054.9999141693115,"z":"462a845d.7a55ec","wires":[["29b16af.c298e96","493e3e18.a8299"]]},{"id":"29b16af.c298e96","type":"for","name":"for each subsequent customer-bonding-request","xml":"<for index='cbr2-index' start='`$cbr-index + 1`' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":1308.3333129882812,"y":1025.0000410079956,"z":"462a845d.7a55ec","wires":[["5e184404.a0005c"]]},{"id":"af6f633f.1bf22","type":"set","name":"copy customer-bonding-request down 1","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$prev-index].'\n  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$cbr2-index].`' />\n","comments":"","x":1788.3335647583008,"y":1043.333254814148,"z":"462a845d.7a55ec","wires":[]},{"id":"10512a43.f555c6","type":"set","name":"set prev-index","xml":"<set>\n<parameter name='prev-index' value='`$cbr2-index - 1`' />\n","comments":"","x":1711.666732788086,"y":996.666624546051,"z":"462a845d.7a55ec","wires":[]},{"id":"5e184404.a0005c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1559.9999809265137,"y":1023.3332109451294,"z":"462a845d.7a55ec","wires":[["10512a43.f555c6","af6f633f.1bf22"]]},{"id":"493e3e18.a8299","type":"set","name":"decrement customer-bonding-request_length","xml":"<set>\n<parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\n  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length - 1`' />\n","comments":"","x":1298.3333435058594,"y":1086.6666278839111,"z":"462a845d.7a55ec","wires":[]},{"id":"a5f8fb7a.8abc58","type":"execute","name":"execute RestApiCallNode - PUT vnf-sub-interface-group","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.vnfsubinterfacegroup.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-vsig\" />\n\n","comments":"","outputs":1,"x":481.6666564941406,"y":1163.333251953125,"z":"462a845d.7a55ec","wires":[["5c3a8408.94105c"]]},{"id":"5c3a8408.94105c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":768.3333129882812,"y":1161.6666259765625,"z":"462a845d.7a55ec","wires":[["27b02686.17ee3a"]]},{"id":"3e1f0516.25a45a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure writing vnf-sub-interface-group\" />\n","comments":"","x":1053.3331565856934,"y":1178.333293914795,"z":"462a845d.7a55ec","wires":[]},{"id":"27b02686.17ee3a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":899.9999618530273,"y":1159.9999771118164,"z":"462a845d.7a55ec","wires":[["3e1f0516.25a45a","a9a8b082.418af"]]},{"id":"a9a8b082.418af","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"Failure writing vnf-sub-interface-group\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1075.0000228881836,"y":1131.6667251586914,"z":"462a845d.7a55ec","wires":[[]]},{"id":"fc495104.33dc3","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.network-instance-group-network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\"/>\n","comments":"","outputs":1,"x":449.9999694824219,"y":1225,"z":"462a845d.7a55ec","wires":[[]]},{"id":"7139e5d3.00113c","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.part\"/>\n    <parameter name=\"target\" value=\"{network-instance-group-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-instance-group-id`\"/>\n","comments":"","outputs":1,"x":449.9999542236328,"y":1271.666829109192,"z":"462a845d.7a55ec","wires":[[]]},{"id":"daafa96f.aa2648","type":"execute","name":"generate network-instance-group-network URL","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.part`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.nign-url\"/>\n    <parameter name=\"target\" value=\"{network-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.vnr-parameters.network-id`\"/>\n","comments":"","outputs":1,"x":449.99993896484375,"y":1315.0000429153442,"z":"462a845d.7a55ec","wires":[[]]},{"id":"b267769a.522148","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":813.666748046875,"y":1387.6669368743896,"z":"462a845d.7a55ec","wires":[["c3a172b7.4a32"]]},{"id":"18e5598d.08c946","type":"execute","name":"execute RestApiCallNode - GET network-instance-group-network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-nign\" />\n\n","comments":"","outputs":1,"x":503.3334274291992,"y":1388.333797454834,"z":"462a845d.7a55ec","wires":[["b267769a.522148"]]},{"id":"f9692724.b9c848","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\" />\n","comments":"","x":1090.000576019287,"y":1411.6668195724487,"z":"462a845d.7a55ec","wires":[]},{"id":"c3a172b7.4a32","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":945.0000457763672,"y":1386.6669292449951,"z":"462a845d.7a55ec","wires":[["f9692724.b9c848","10ebce63.454392"]]},{"id":"10ebce63.454392","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1111.6666946411133,"y":1365.0002307891846,"z":"462a845d.7a55ec","wires":[[]]},{"id":"605d38fd.0f4688","type":"set","name":"set network-status to unassigned","xml":"<set>\n<parameter name='mdsal-nign.network[0].network-status' value='unassigned' />\n","comments":"","x":404.99996185302734,"y":1451.6666431427002,"z":"462a845d.7a55ec","wires":[]},{"id":"e7df9303.b3ed4","type":"for","name":"for each customer-bonding-request","xml":"<for index='cbr-index' start='0' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":411.6666564941406,"y":1525,"z":"462a845d.7a55ec","wires":[["bc3a07a0.b0f0a8"]]},{"id":"bc3a07a0.b0f0a8","type":"switchNode","name":"switch configuration-ids equal?","xml":"<switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\n  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":706.6666793823242,"y":1524.9999198913574,"z":"462a845d.7a55ec","wires":[["e2828627.9da258"]]},{"id":"e2828627.9da258","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":908.3332977294922,"y":1524.999942779541,"z":"462a845d.7a55ec","wires":[["7d6ffcd0.c7d9d4"]]},{"id":"7d6ffcd0.c7d9d4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1044.999885559082,"y":1524.9999542236328,"z":"462a845d.7a55ec","wires":[["e5828168.c3282","c09d77aa.e01ed8"]]},{"id":"e5828168.c3282","type":"for","name":"for each subsequent customer-bonding-request","xml":"<for index='cbr2-index' start='`$cbr-index + 1`' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\n","comments":"","outputs":1,"x":1300,"y":1500,"z":"462a845d.7a55ec","wires":[["574acab7.cf9ec4"]]},{"id":"53bd2896.a56ae8","type":"set","name":"copy customer-bonding-request down 1","xml":"<set>\n<parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$prev-index].'\n  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$cbr2-index].`' />\n","comments":"","x":1785.0002708435059,"y":1518.33323097229,"z":"462a845d.7a55ec","wires":[]},{"id":"d477fb7.3840808","type":"set","name":"set prev-index","xml":"<set>\n<parameter name='prev-index' value='`$cbr2-index - 1`' />\n","comments":"","x":1711.666835784912,"y":1471.666563987732,"z":"462a845d.7a55ec","wires":[]},{"id":"574acab7.cf9ec4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1551.6666679382324,"y":1498.3331699371338,"z":"462a845d.7a55ec","wires":[["d477fb7.3840808","53bd2896.a56ae8"]]},{"id":"c09d77aa.e01ed8","type":"set","name":"decrement customer-bonding-request_length","xml":"<set>\n<parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\n  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length - 1`' />\n","comments":"","x":1290.0000305175781,"y":1561.6665868759155,"z":"462a845d.7a55ec","wires":[]},{"id":"53f7902d.9645e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":811.6665802001953,"y":1636.6666259765625,"z":"462a845d.7a55ec","wires":[["be62c173.ab2f6"]]},{"id":"39a45b74.1e8284","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure writing network-instance-group network\" />\n","comments":"","x":1096.6664237976074,"y":1653.333293914795,"z":"462a845d.7a55ec","wires":[]},{"id":"be62c173.ab2f6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":943.3332290649414,"y":1634.9999771118164,"z":"462a845d.7a55ec","wires":[["39a45b74.1e8284","596e5185.7c17a"]]},{"id":"aa8c2298.733db","type":"execute","name":"execute RestApiCallNode - PUT network-instance-group-network","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-network.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-nign\" />\n\n","comments":"","outputs":1,"x":501.6666259765625,"y":1638.3332796096802,"z":"462a845d.7a55ec","wires":[["53f7902d.9645e"]]},{"id":"596e5185.7c17a","type":"configure","name":"send failure to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\"\n  value=\"`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\"\n  value=\"Y\" />\n<parameter name=\"input.response-code\"\n  value=\"500\" />\n<parameter name=\"input.response-message\"\n  value=\"Failure writing network-instance-group network\" />\n<parameter name=\"input.svc-request-id\"\n  value=\"`$generic-configuration-notification-input.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\"\n  value=\"`$generic-configuration-notification-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\"\n  value=\"`$generic-configuration-notification-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1119.9999542236328,"y":1608.3334302902222,"z":"462a845d.7a55ec","wires":[[]]},{"id":"fdcad0e0.6c236","type":"execute","name":"generate gc-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.gc-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.gc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-notification-input.configuration-information.configuration-id`\"/>\n","comments":"","outputs":1,"x":398.3333206176758,"y":404.99999618530273,"z":"462a845d.7a55ec","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-notification.json
new file mode 100755 (executable)
index 0000000..cd19985
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"63b56222.53c10c","type":"dgstart","name":"DGSTART","outputs":1,"x":101.66666412353516,"y":78.33332824707031,"z":"794e08c5.967a38","wires":[["f43fc669.bbb2b8"]]},{"id":"f43fc669.bbb2b8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":216.95236206054688,"y":118.57143688201904,"z":"794e08c5.967a38","wires":[["d4e42d76.2f865"]]},{"id":"d4e42d76.2f865","type":"method","name":"method generic-configuration-notification","xml":"<method rpc='generic-configuration-notification' mode='sync'>\n","comments":"","outputs":1,"x":200.0952911376953,"y":159.3333225250244,"z":"794e08c5.967a38","wires":[["2d430053.50355"]]},{"id":"663becf9.b215e4","type":"comment","name":"generic-configuration-notification","info":"","comments":"","x":496.0115203857422,"y":25.9196720123291,"z":"794e08c5.967a38","wires":[]},{"id":"eeebbecc.02a6e","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$generic-configuration-notification-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":356.6665802001953,"y":283.3333148956299,"z":"794e08c5.967a38","wires":[["1de83622.ab53ca","7610ca58.648c34","4e280e1f.f8ed5","7a1dd7bf.a0cec8"]]},{"id":"1de83622.ab53ca","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":555.1189101082937,"y":219.52379853384832,"z":"794e08c5.967a38","wires":[["edbdf88d.799378"]]},{"id":"7610ca58.648c34","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":556.3688452584402,"y":266.7767377580915,"z":"794e08c5.967a38","wires":[["69b05b29.692134"]]},{"id":"4e280e1f.f8ed5","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":563.666593824114,"y":315.7528939928327,"z":"794e08c5.967a38","wires":[["c5f99a0c.f65e08"]]},{"id":"7a1dd7bf.a0cec8","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":559.9165137154714,"y":361.00580460684637,"z":"794e08c5.967a38","wires":[["dc40fd05.e761e"]]},{"id":"edbdf88d.799378","type":"call","name":"call GENERIC-RESOURCE-API:generic-configuration-notification-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-assign' mode='sync' >\n","comments":"","outputs":1,"x":926.6665496826172,"y":218.3333225250244,"z":"794e08c5.967a38","wires":[["8923dec1.7cfb4"]]},{"id":"2d430053.50355","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":148.33334350585938,"y":356.66668128967285,"z":"794e08c5.967a38","wires":[["eeebbecc.02a6e","174e3f9b.e9865"]]},{"id":"174e3f9b.e9865","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\n","comments":"","x":343.3333435058594,"y":438.33333015441895,"z":"794e08c5.967a38","wires":[]},{"id":"8923dec1.7cfb4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1277.3333854675293,"y":216.66667556762695,"z":"794e08c5.967a38","wires":[["5d37cc4a.cbbc24"]]},{"id":"5d37cc4a.cbbc24","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1429.000015258789,"y":214.99999237060547,"z":"794e08c5.967a38","wires":[]},{"id":"69b05b29.692134","type":"call","name":"call GENERIC-RESOURCE-API:generic-configuration-notification-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-activate' mode='sync' >\n","comments":"","outputs":1,"x":927.9999389648438,"y":266.6666564941406,"z":"794e08c5.967a38","wires":[["fb975a21.5f50d8"]]},{"id":"fb975a21.5f50d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1275.6667747497559,"y":265.00000953674316,"z":"794e08c5.967a38","wires":[["522f267f.cb6b28"]]},{"id":"522f267f.cb6b28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1427.3334045410156,"y":263.3333263397217,"z":"794e08c5.967a38","wires":[]},{"id":"dc40fd05.e761e","type":"call","name":"call GENERIC-RESOURCE-API:generic-configuration-notification-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-unassign' mode='sync' >\n","comments":"","outputs":1,"x":933.9999084472656,"y":359.99998664855957,"z":"794e08c5.967a38","wires":[["8be85800.046918"]]},{"id":"78678a19.d7db04","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1275.6667747497559,"y":313.33335304260254,"z":"794e08c5.967a38","wires":[["3903b8bc.b8d808"]]},{"id":"3903b8bc.b8d808","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1427.3334045410156,"y":311.66666984558105,"z":"794e08c5.967a38","wires":[]},{"id":"c5f99a0c.f65e08","type":"call","name":"call GENERIC-RESOURCE-API:generic-configuration-notification-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":936.6666564941406,"y":314.9999933242798,"z":"794e08c5.967a38","wires":[["78678a19.d7db04"]]},{"id":"8be85800.046918","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1274.0001487731934,"y":358.6666660308838,"z":"794e08c5.967a38","wires":[["783f445d.e96abc"]]},{"id":"783f445d.e96abc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1425.6667785644531,"y":357.9999828338623,"z":"794e08c5.967a38","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_generic-configuration-topology-operation.json
new file mode 100755 (executable)
index 0000000..c2de555
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"e883356.34111c8","type":"dgstart","name":"DGSTART","outputs":1,"x":112.5,"y":81.25,"z":"82021e0d.6c10f","wires":[["ada3b9c3.42b808"]]},{"id":"ada3b9c3.42b808","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":227.78569793701172,"y":121.48810863494873,"z":"82021e0d.6c10f","wires":[["3899865b.b33ffa"]]},{"id":"3899865b.b33ffa","type":"method","name":"method generic-configuration-topology-operation","xml":"<method rpc='generic-configuration-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":235.92862701416016,"y":162.2499942779541,"z":"82021e0d.6c10f","wires":[["5086b18d.4ec67"]]},{"id":"547b438e.e416cc","type":"comment","name":"generic-configuration-topology-operation","info":"","comments":"","x":506.84485626220703,"y":28.83634376525879,"z":"82021e0d.6c10f","wires":[]},{"id":"5086b18d.4ec67","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":150.83333587646484,"y":541.7530136108398,"z":"82021e0d.6c10f","wires":[["1b7b7f55.ca75f1","a234c467.3f1f18","4bb61d5b.460ef4","f8173995.43a8a8","25fce84e.946c28","e57bf2bf.a171e","79a2f2.c117fd1","732b206f.3ad56","6b6ce288.401eec"]]},{"id":"1b7b7f55.ca75f1","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"`$bonding-service-response.ackFinalIndicator`\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":366.6667137145996,"y":889.2529363632202,"z":"82021e0d.6c10f","wires":[]},{"id":"a234c467.3f1f18","type":"call","name":"call GENERIC-RESOURCE-API:validate-generic-configuration-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-generic-configuration-input' mode='sync' >\n","comments":"","outputs":1,"x":533.3333129882812,"y":243.33332920074463,"z":"82021e0d.6c10f","wires":[["c918f524.db0e78"]]},{"id":"c918f524.db0e78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":843.3334159851074,"y":243.33349132537842,"z":"82021e0d.6c10f","wires":[["c74b0c40.892c5"]]},{"id":"c74b0c40.892c5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":995.0000228881836,"y":241.66668319702148,"z":"82021e0d.6c10f","wires":[]},{"id":"be78a275.a3a47","type":"set","name":"create gc structure and set input data","xml":"<set>\n<parameter name='gc.configuration-id'\n  value='`$generic-configuration-topology-operation-input.configuration-information.configuration-id`' />\n<parameter name='gc.configuration-data.configuration-operation-information.sdnc-request-header.'\n  value='`$generic-configuration-topology-operation-input.sdnc-request-header.`' />\n<parameter name='gc.configuration-data.configuration-operation-information.request-information.'\n  value='`$generic-configuration-topology-operation-input.request-information.`' />\n<parameter name='gc.configuration-data.configuration-operation-information.service-information.'\n  value='`$generic-configuration-topology-operation-input.service-information.`' />\n<parameter name='gc.configuration-data.configuration-operation-information.configuration-information.'\n  value='`$generic-configuration-topology-operation-input.configuration-information.`' />\n<parameter name='gc.configuration-data.configuration-operation-information.gc-request-input.'\n  value='`$generic-configuration-topology-operation-input.gc-request-input.`' />\n","comments":"","x":948.3334121704102,"y":340.00002670288086,"z":"82021e0d.6c10f","wires":[]},{"id":"4bb61d5b.460ef4","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-genconfig.log' />\n","comments":"","outputs":1,"x":360.0000114440918,"y":841.666615486145,"z":"82021e0d.6c10f","wires":[[]]},{"id":"27bbd4ba.ada15c","type":"execute","name":"execute RestApiCallNode - PUT port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-gc\" />\n\n","comments":"","outputs":1,"x":1009.9999618530273,"y":509.9999656677246,"z":"82021e0d.6c10f","wires":[["944485f3.4bf438","6f7f6f23.f4a3f"]]},{"id":"944485f3.4bf438","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1310.06978225708,"y":531.3315210342407,"z":"82021e0d.6c10f","wires":[["410435ab.f840ec"]]},{"id":"6f7f6f23.f4a3f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1302.4984169006348,"y":489.83154106140137,"z":"82021e0d.6c10f","wires":[["410435ab.f840ec"]]},{"id":"ff91012.f4d53","type":"execute","name":"generate gc-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.gc-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.gc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$gc.configuration-id`\"/>\n","comments":"","outputs":1,"x":922.9166107177734,"y":443.33325958251953,"z":"82021e0d.6c10f","wires":[[]]},{"id":"410435ab.f840ec","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1465.4879264831543,"y":503.9043674468994,"z":"82021e0d.6c10f","wires":[["c0640b05.6555b8"]]},{"id":"c0640b05.6555b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Error updating md-sal for gc-configuration' />\n","comments":"","x":1638.3333168029785,"y":503.33334255218506,"z":"82021e0d.6c10f","wires":[]},{"id":"f8173995.43a8a8","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":394.9999542236328,"y":289.99999046325684,"z":"82021e0d.6c10f","wires":[[]]},{"id":"25fce84e.946c28","type":"execute","name":"generate bonding service url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.bondingservice.server + $prop.bondingservice.uri`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.bs-url\"/>\n    <parameter name=\"target\" value=\"{action}\"/>\n    <parameter name=\"replacement\" value=\"`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`\"/>\n","comments":"","outputs":1,"x":413.3332977294922,"y":644.9999618530273,"z":"82021e0d.6c10f","wires":[[]]},{"id":"6b6ce288.401eec","type":"execute","name":"execute RestApiCallNode - POST to bonding service","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.bondingservice.templatefile`\" />\n    <parameter name='restapiUrl' value='`$tmp.bs-url`' />\n    <parameter name='restapiUser' value='`$prop.bondingservice.user`' />\n    <parameter name='restapiPassword' value='`$prop.bondingservice.password`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name=\"responsePrefix\" value=\"bonding-service-response\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.bondingservice.authorization`\" />\n","comments":"","outputs":1,"x":488.33331298828125,"y":693.3332386016846,"z":"82021e0d.6c10f","wires":[["242a445f.6d5b3c"]]},{"id":"242a445f.6d5b3c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":760.8317565917969,"y":693.1649036407471,"z":"82021e0d.6c10f","wires":[["81f40e9f.9fbe8"]]},{"id":"81f40e9f.9fbe8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Error calling bonding service; ' + $error-message`\" />\n","comments":"","x":913.3332977294922,"y":692.3333005905151,"z":"82021e0d.6c10f","wires":[]},{"id":"e699d882.2d0db8","type":"set","name":"set order-status, etc","xml":"<set>\n<parameter name='gc.configuration-data.configuration-oper-status.order-status'\n  value='PendingCreate' />\n<parameter name='gc.configuration-data.configuration-oper-status.last-rpc-action'\n  value='assign' />\n<parameter name='gc.configuration-data.configuration-oper-status.last-action'\n  value='CreateGenericConfigurationInstance' />\n","comments":"","x":896.6666641235352,"y":393.3333101272583,"z":"82021e0d.6c10f","wires":[]},{"id":"85748cfd.60ffd","type":"set","name":"dummy set ackFinalIndicator","xml":"<set>\n<parameter name='bonding-service-response.ackFinalIndicator' value='N' />\n","comments":"","x":411.6667137145996,"y":743.3334188461304,"z":"82021e0d.6c10f","wires":[]},{"id":"e57bf2bf.a171e","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":391.6666603088379,"y":793.3332767486572,"z":"82021e0d.6c10f","wires":[]},{"id":"79a2f2.c117fd1","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":376.66666412353516,"y":433.3333320617676,"z":"82021e0d.6c10f","wires":[["c3bb199d.f6e318"]]},{"id":"c3bb199d.f6e318","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":536.6666259765625,"y":431.6666564941406,"z":"82021e0d.6c10f","wires":[["9a06a155.15de7"]]},{"id":"9a06a155.15de7","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":685,"y":429.9999694824219,"z":"82021e0d.6c10f","wires":[["be78a275.a3a47","e699d882.2d0db8","ff91012.f4d53","27bbd4ba.ada15c"]]},{"id":"732b206f.3ad56","type":"set","name":"set notification-url","xml":"<set>\n<parameter name='notification-url'\n  value=\"`$prop.controller.url + '/restconf/operations/GENERIC-RESOURCE-API:generic-configuration-notification'`\" />\n","comments":"","x":379.9999771118164,"y":596.6667308807373,"z":"82021e0d.6c10f","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-complex-resource-service-model.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-complex-resource-service-model.json
new file mode 100755 (executable)
index 0000000..f209dcc
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"7246862.0315f78","type":"dgstart","name":"DGSTART","outputs":1,"x":167.00390625,"y":95.00390625,"z":"c1342c00.7cc71","wires":[["149dc604.07732a"]]},{"id":"149dc604.07732a","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":378.86101722717285,"y":200.4801082611084,"z":"c1342c00.7cc71","wires":[["8d2d3504.574348"]]},{"id":"8d2d3504.574348","type":"method","name":"get-complex-resource-service-model","xml":"<method rpc='get-complex-resource-service-model' mode='sync'>\n","comments":"","outputs":1,"x":357.7777976989746,"y":281.99200439453125,"z":"c1342c00.7cc71","wires":[["8392c399.34438"]]},{"id":"8392c399.34438","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":382.7181854248047,"y":369.2896385192871,"z":"c1342c00.7cc71","wires":[["af8eb329.85854","fca55797.b483e8","882ed672.708e58","c214de01.d27ed","43f711ff.395f1"]]},{"id":"af8eb329.85854","type":"get-resource","name":"get-resource COMPLEX_RESOURCE","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from COMPLEX_RESOURCE \n  WHERE customization_uuid = $get-complex-resource-service-model-input.customization-uuid'\n  pfx='db.complex-resource'>","comments":"","outputs":1,"x":653.0039367675781,"y":369.00391006469727,"z":"c1342c00.7cc71","wires":[["fb31d15e.ce461","79350b6.fc3eff4"]]},{"id":"9bb1c659.926d78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`\" />\n","comments":"","x":1104.0873260498047,"y":367.75403690338135,"z":"c1342c00.7cc71","wires":[]},{"id":"fb31d15e.ce461","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":905.3374061584473,"y":363.111252784729,"z":"c1342c00.7cc71","wires":[["9bb1c659.926d78"]]},{"id":"79350b6.fc3eff4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":899.0874061584473,"y":395.611252784729,"z":"c1342c00.7cc71","wires":[["9bb1c659.926d78"]]},{"id":"3915ef9f.1f9e2","type":"comment","name":"If service model uuid not passed in input, use from service-data","info":"","comments":"","x":748.380859375,"y":329.78454971313477,"z":"c1342c00.7cc71","wires":[]},{"id":"fca55797.b483e8","type":"get-resource","name":"get-resource ATTRIBUTE_VALUE_PAIR","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ATTRIBUTE_VALUE_PAIR \n  WHERE resource_uuid = $db.complex-resource.uuid\n  and resource_type = $db.complex-resource.type'\n  pfx='db.av-pair'>","comments":"","outputs":1,"x":651.00390625,"y":497.0039234161377,"z":"c1342c00.7cc71","wires":[["c3fdf072.cbc36","bd6efdf4.3a7f1","39121dbd.f60c12"]]},{"id":"fbd9c790.21e678","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No attribute found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`\" />\n","comments":"","x":1104.0873260498047,"y":494.7540330886841,"z":"c1342c00.7cc71","wires":[]},{"id":"c3fdf072.cbc36","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":905.3374061584473,"y":490.11124897003174,"z":"c1342c00.7cc71","wires":[["fbd9c790.21e678"]]},{"id":"bd6efdf4.3a7f1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":899.0874061584473,"y":522.6112489700317,"z":"c1342c00.7cc71","wires":[["fbd9c790.21e678"]]},{"id":"39121dbd.f60c12","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":902.0039329528809,"y":553.0039405822754,"z":"c1342c00.7cc71","wires":[["2c8a69c5.55d806"]]},{"id":"2c8a69c5.55d806","type":"for","name":"for 0..av-pair_length","xml":"<for silentFailure='true' index='idx' start='0' end='`$db.av-pair_length`' >\n","comments":"","outputs":1,"x":1081.0039520263672,"y":553.0039405822754,"z":"c1342c00.7cc71","wires":[["c6cc13a6.0adc5"]]},{"id":"c6cc13a6.0adc5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1294.00390625,"y":553.00390625,"z":"c1342c00.7cc71","wires":[["17cbace9.1db563","a1a1fd08.f5777","abbe50b8.6f184","941f5f58.ff131","3199b3e1.936edc","9a866943.9112b8"]]},{"id":"17cbace9.1db563","type":"switchNode","name":"switch cr_function","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'cr_function' `\">","comments":"","outputs":1,"x":1486.0040283203125,"y":553.003924369812,"z":"c1342c00.7cc71","wires":[["e60bfd5e.02208"]]},{"id":"5e6fa5c7.eecf2c","type":"other","name":"set output cr-function","xml":"<set>\n<parameter name='get-complex-resource-service-model-output.cr-function' value='`$db.sdn-circuit-req[$idx].attribute-value`' />\n","comments":"","outputs":1,"x":1894.504322052002,"y":556.4205236434937,"z":"c1342c00.7cc71","wires":[[]]},{"id":"a1a1fd08.f5777","type":"switchNode","name":"switch cr_role","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'cr_role'`\">","comments":"","outputs":1,"x":1478.5041580200195,"y":599.0039749145508,"z":"c1342c00.7cc71","wires":[["f0c30516.5d8e38"]]},{"id":"2b45c282.ff1aee","type":"other","name":"set output cr-role","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.cr-role\" value=\"`$db.sdn-circuit-req[$idx].attribute-value`\" />\n","comments":"","outputs":1,"x":1882.0041961669922,"y":602.4205322265625,"z":"c1342c00.7cc71","wires":[[]]},{"id":"abbe50b8.6f184","type":"switchNode","name":"switch cr_type","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'cr_type'`\">","comments":"","outputs":1,"x":1482.5039138793945,"y":645.0039110183716,"z":"c1342c00.7cc71","wires":[["b7345862.d6b868"]]},{"id":"f089c8db.52f4a8","type":"other","name":"set output cr-type","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.cr-type\" value=\"`$db.sdn-circuit-req[$idx].attribute-value`\" />\n","comments":"","outputs":1,"x":1883.0041666030884,"y":649.4205408096313,"z":"c1342c00.7cc71","wires":[[]]},{"id":"941f5f58.ff131","type":"switchNode","name":"switch network_collection_function","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'network_collection_function'`\">","comments":"","outputs":1,"x":1547.5040283203125,"y":694.0039501190186,"z":"c1342c00.7cc71","wires":[["dbfe27cd.9e7158"]]},{"id":"d901122c.d751c","type":"other","name":"set output network_collection_function","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.network-collection-function\" value=\"`$db.sdn-circuit-req[$idx].attribute-value`\" />\n","comments":"","outputs":1,"x":2071.004409790039,"y":694.4206619262695,"z":"c1342c00.7cc71","wires":[[]]},{"id":"3199b3e1.936edc","type":"switchNode","name":"switch network_collection_description","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'network_collection_description'`\">","comments":"","outputs":1,"x":1552.50390625,"y":746.00390625,"z":"c1342c00.7cc71","wires":[["6522088b.b68998"]]},{"id":"6cec4f8f.bbbde","type":"other","name":"set output network_collection_description","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.network-collection-description\" value=\"`$db.sdn-circuit-req[$idx].attribute-value`\" />\n","comments":"","outputs":1,"x":2076.0042877197266,"y":753.420618057251,"z":"c1342c00.7cc71","wires":[[]]},{"id":"9a866943.9112b8","type":"switchNode","name":"switch subinterface_network_quantity","xml":"<switch test=\"`$db.sdn-circuit-req[$idx].attribute-name == 'subinterface_network_quantity'`\">","comments":"","outputs":1,"x":1552.5039367675781,"y":797.0039510726929,"z":"c1342c00.7cc71","wires":[["ceff2e83.44c5e"]]},{"id":"dc61aeab.805fe","type":"other","name":"set output subinterface_network_quantity","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.subinterface-network-quantity\" value=\"`$db.sdn-circuit-req[$idx].attribute-value`\" />\n","comments":"","outputs":1,"x":2098.004325866699,"y":799.4206323623657,"z":"c1342c00.7cc71","wires":[[]]},{"id":"882ed672.708e58","type":"get-resource","name":"get-resource NETWORK-MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL \n  WHERE complex_resource_uuid = $db.complex-resource.uuid'\n  pfx='db.network-model'>","comments":"","outputs":1,"x":661.50390625,"y":880.0039219856262,"z":"c1342c00.7cc71","wires":[["e0511d98.9cd7d","9be95fd4.166bc"]]},{"id":"5ba01895.439578","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No network model found\" />\n","comments":"","x":1115.5873260498047,"y":877.7540330886841,"z":"c1342c00.7cc71","wires":[]},{"id":"e0511d98.9cd7d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":916.8374061584473,"y":873.1112489700317,"z":"c1342c00.7cc71","wires":[["5ba01895.439578"]]},{"id":"9be95fd4.166bc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":910.5874061584473,"y":905.6112489700317,"z":"c1342c00.7cc71","wires":[["5ba01895.439578"]]},{"id":"c214de01.d27ed","type":"get-resource","name":"get-resource RESOURCE_POLICY_TO_TARGET_NODE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from RESOURCE_POLICY_TO_TARGET_NODE_MAPPING\n  WHERE target_node_uuid = $db.network-model.uuid\n  AND target_node_customization_uuid = db.network-model.customization-uuid'\n  pfx='db.respoltargetnodemap' >","comments":"","outputs":1,"x":776.5039367675781,"y":980.0040149688721,"z":"c1342c00.7cc71","wires":[["d87c1534.00efa8","1cad27f0.155218"]]},{"id":"b73674e1.097898","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No resource_policy_to_target_node_mapping found\"  />\n","comments":"","x":1374.5873374938965,"y":985.7540988922119,"z":"c1342c00.7cc71","wires":[]},{"id":"d87c1534.00efa8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1175.837417602539,"y":981.1113147735596,"z":"c1342c00.7cc71","wires":[["b73674e1.097898"]]},{"id":"1cad27f0.155218","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1169.587417602539,"y":1013.6113147735596,"z":"c1342c00.7cc71","wires":[["b73674e1.097898"]]},{"id":"43f711ff.395f1","type":"get-resource","name":"get-resource RESOURCE_POLICY ","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"SELECT * from RESOURCE_POLICY  \n  WHERE policy_uuid = $db.respoltargetnodemap.policy_uuid\n  and policy_type = 'ecomp.policies.External' \"\n  pfx='db.resource-policy'>","comments":"","outputs":1,"x":667.5039215087891,"y":1114.0039138793945,"z":"c1342c00.7cc71","wires":[["163efefb.1f83e1","5d15704a.bf524","d793ba58.2e3dc8"]]},{"id":"dc73836a.6adea","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`\" />\n","comments":"","x":1140.5873260498047,"y":1117.7540159225464,"z":"c1342c00.7cc71","wires":[]},{"id":"163efefb.1f83e1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":941.8374061584473,"y":1113.111231803894,"z":"c1342c00.7cc71","wires":[["dc73836a.6adea"]]},{"id":"5d15704a.bf524","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":935.5874061584473,"y":1145.611231803894,"z":"c1342c00.7cc71","wires":[["dc73836a.6adea"]]},{"id":"d793ba58.2e3dc8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":938.5039329528809,"y":1176.0039234161377,"z":"c1342c00.7cc71","wires":[["638f63d4.2707dc"]]},{"id":"638f63d4.2707dc","type":"for","name":"for 0..resource-policy_length","xml":"<for silentFailure='true' index='idx' start='0' end='`$db.resource-policy_length`' >\n","comments":"","outputs":1,"x":1146.5039672851562,"y":1176.003978729248,"z":"c1342c00.7cc71","wires":[["b37f473d.ce6b48"]]},{"id":"b37f473d.ce6b48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1408.5039596557617,"y":1179.0039777755737,"z":"c1342c00.7cc71","wires":[["acd487ad.c295a8","3c1c13d9.4dd6dc","8fde22b4.2e926"]]},{"id":"acd487ad.c295a8","type":"switchNode","name":"switch network naming policy","xml":"<switch test=\"`$db.resource-policy[$idx].property-type == 'Name' and $db.resource-policy[$idx].property-name == 'Network Collection Name'`\">","comments":"","outputs":1,"x":1664.5041809082031,"y":1178.0040845870972,"z":"c1342c00.7cc71","wires":[["5f96620e.7e45dc"]]},{"id":"9e19f5ec.575f78","type":"other","name":"set output network-naming-policy","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.network-naming-policy\" value=\"`$db.resource-policy[$idx].policy-name`\" />\n","comments":"","outputs":1,"x":2148.0047454833984,"y":1176.4208145141602,"z":"c1342c00.7cc71","wires":[[]]},{"id":"3c1c13d9.4dd6dc","type":"switchNode","name":"switch subnet-assignment-policy","xml":"<switch test=\"`$db.resource-policy[$idx].property-type == 'subnetwork assignments' and $db.resource-policy[$idx].property-name == 'subnet'`\">","comments":"","outputs":1,"x":1670.00390625,"y":1227.00390625,"z":"c1342c00.7cc71","wires":[["3a98b11c.474f1e"]]},{"id":"a3edcd86.5d9e6","type":"other","name":"set output subnet-assignment-policy","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.subnet-assignment-policy\" value=\"`$db.resource-policy[$idx].policy-name`\" />\n","comments":"","outputs":1,"x":2168.5042572021484,"y":1228.4205703735352,"z":"c1342c00.7cc71","wires":[[]]},{"id":"8fde22b4.2e926","type":"switchNode","name":"switch vpn-binding-policy","xml":"<switch test=\"`$db.resource-policy[$idx].property-type == 'network assignments' and $db.resource-policy[$idx].property-name == 'route target'`\">","comments":"","outputs":1,"x":1650.0039596557617,"y":1274.0040826797485,"z":"c1342c00.7cc71","wires":[["b18f5745.6edad8"]]},{"id":"478beed0.6a4bc","type":"other","name":"set output vpn-binding-policy","xml":"<set>\n<parameter name=\"get-complex-resource-service-model-output.vpn-binding-policy\" value=\"`$db.resource-policy[$idx].policy-name`\" />\n","comments":"","outputs":1,"x":2167.5042572021484,"y":1275.4205856323242,"z":"c1342c00.7cc71","wires":[[]]},{"id":"e60bfd5e.02208","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1676.50390625,"y":555.00390625,"z":"c1342c00.7cc71","wires":[["5e6fa5c7.eecf2c"]]},{"id":"f0c30516.5d8e38","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1665.5039176940918,"y":601.00390625,"z":"c1342c00.7cc71","wires":[["2b45c282.ff1aee"]]},{"id":"b7345862.d6b868","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1659.50390625,"y":645.00390625,"z":"c1342c00.7cc71","wires":[["f089c8db.52f4a8"]]},{"id":"dbfe27cd.9e7158","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1809.50390625,"y":696.00390625,"z":"c1342c00.7cc71","wires":[["d901122c.d751c"]]},{"id":"6522088b.b68998","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1816.50390625,"y":754.00390625,"z":"c1342c00.7cc71","wires":[["6cec4f8f.bbbde"]]},{"id":"ceff2e83.44c5e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1813.50390625,"y":801.00390625,"z":"c1342c00.7cc71","wires":[["dc61aeab.805fe"]]},{"id":"5f96620e.7e45dc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1907.0039520263672,"y":1179.003958582878,"z":"c1342c00.7cc71","wires":[["9e19f5ec.575f78"]]},{"id":"3a98b11c.474f1e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1929.0039806365967,"y":1228.0039596557617,"z":"c1342c00.7cc71","wires":[["a3edcd86.5d9e6"]]},{"id":"b18f5745.6edad8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1920.00390625,"y":1275.00390625,"z":"c1342c00.7cc71","wires":[["478beed0.6a4bc"]]},{"id":"a06eb349.3703e","type":"comment","name":"Input/Output","info":"Input:\n\tget-complex-resource-service-model-input.customization-uuid\n\t\nOutput\n\tget-complex-resource-service-model-output.network-naming-policy\n\tget-complex-resource-service-model-output.subnet-assignment-policy\n\tget-complex-resource-service-model-output.vpn-binding-policy\n\tget-complex-resource-service-model-output.cr-function\n\tget-complex-resource-service-model-output.cr-role\n\tget-complex-resource-service-model-output.cr-type\n\tget-complex-resource-service-model-output.network-collection-function\n\tget-complex-resource-service-model-output.network-collection-description\n\tget-complex-resource-service-model-output.subinterface-network-quantity\n\n\t","comments":"","x":365.00390625,"y":108.00391864776611,"z":"c1342c00.7cc71","wires":[]},{"id":"f2e46e54.4cd1a","type":"comment","name":"tosca-vlan-tagging-1030","info":"","comments":"","x":400.00390625,"y":75.00390625,"z":"c1342c00.7cc71","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-data-from-policy.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_get-data-from-policy.json
new file mode 100755 (executable)
index 0000000..c2101f6
--- /dev/null
@@ -0,0 +1,1026 @@
+[\r
+    {\r
+        "id": "b83fc37f.f69e88",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 160,\r
+        "y": 45,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "78e991f6.6f7c58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1dd92dc7.5da5d2",\r
+        "type": "method",\r
+        "name": "method get-data-from-policy",\r
+        "xml": "<method rpc='get-data-from-policy' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 750,\r
+        "y": 45,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "33ec20fb.28aa18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78e991f6.6f7c58",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 427.9403991699219,\r
+        "y": 45.32145690917969,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "1dd92dc7.5da5d2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbf06f1d.725928",\r
+        "type": "comment",\r
+        "name": "Call Policy Manager getPolicy",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 314,\r
+        "y": 228,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "46375ae1.7b558c",\r
+        "type": "execute",\r
+        "name": "execute RestapiCallNode",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/getConfig'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />  \n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n\t<parameter name=\"responsePrefix\" value=\"tmp.pm-response\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 468,\r
+        "y": 352,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "a789fff2.8e6668",\r
+                "f694d7c1.52ec1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19b66f4d.72dee9",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n<parameter name='tmp.policy-name' value=\"`$get-data-from-policy-input.policy-instance-name`\" />\n",\r
+        "comments": "",\r
+        "x": 414,\r
+        "y": 273,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4ce19c9e.b25124",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 271,\r
+        "y": 271,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "19b66f4d.72dee9",\r
+                "46375ae1.7b558c",\r
+                "ac19e1c6.8e36a8",\r
+                "d8d1e5cb.101cc",\r
+                "f617542d.84f16",\r
+                "a278ba14.2107c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ac19e1c6.8e36a8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: restapi-call-node Call Policy Manager getPolicy\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 414,\r
+        "y": 313,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7e1c7cf.a18d1",\r
+        "type": "execute",\r
+        "name": "execute readProperties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977,\r
+        "y": 117,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "59fd6138.91c4f8",\r
+                "d5dccc24.0e693"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "59fd6138.91c4f8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1224,\r
+        "y": 95,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "b5511e69.3d8618"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d5dccc24.0e693",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1222,\r
+        "y": 136,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "947a2b69.ec9398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33ec20fb.28aa18",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 162,\r
+        "y": 85,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "4ce19c9e.b25124",\r
+                "a8f9fb15.acf4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72af1062.d19fd8",\r
+        "type": "comment",\r
+        "name": "Read properties",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 952,\r
+        "y": 70,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f3a9b2ce.918548",\r
+        "type": "comment",\r
+        "name": "Process Policy Manager response",\r
+        "info": "Use the three naming components returned from Policy Manager to build the name\n\nExtract from json response three data components:\n\n1. VNFNAME\n2. CONSTANT_TAG\n3. SEQUENCE",\r
+        "comments": "",\r
+        "x": 498,\r
+        "y": 443,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d8d1e5cb.101cc",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"policy-config\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"true\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 474,\r
+        "y": 523,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "9bb879f3.58bda",\r
+                "8ddbc03f.308d9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f617542d.84f16",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: call jsonStringToCtx\"/>\n<parameter name='field3' value='`$policy-config`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 419,\r
+        "y": 481,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a789fff2.8e6668",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 671,\r
+        "y": 342,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "b2b110f6.fc0288"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a2680ce.7f8d88",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: Error calling Policy Manager getPolicy\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932,\r
+        "y": 303,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f694d7c1.52ec1",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 673,\r
+        "y": 384,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "4b6fc822.22489"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f53edd55.57cb58",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: getPolicy SUCCESS\"/>\n<parameter name='field3' value='`$tmp.pm-response.type`' />\n<parameter name='field4' value='`$tmp.pm-response.matchingConditions`' />\n<parameter name='field5' value='`$tmp.pm-response.config`' />\n<parameter name='field6' value='`$tmp.pm-response.response-code`' />\n<parameter name='field7' value='`$tmp.pm-response.response-message`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 927,\r
+        "y": 380,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf2f9549.b5432",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n<parameter name='policy-config' value=\"`$tmp.pm-response.config`\" />\n",\r
+        "comments": "",\r
+        "x": 928,\r
+        "y": 418,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9bb879f3.58bda",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 671,\r
+        "y": 524,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "e4a38d89.8cc9c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb351685.940688",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: Error calling jsonStringToCtx\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 925,\r
+        "y": 515,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8ddbc03f.308d9",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 491,\r
+        "y": 573,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "3c75d70f.d3c808"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "596244e1.06352c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: jsonStringToCtx SUCCESS: policyName|policy-data|\"/>\n<parameter name='field3' value='`$jsonContextPrefix.policyName`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.policy-data`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674,\r
+        "y": 620,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c75d70f.d3c808",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 502,\r
+        "y": 616,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "596244e1.06352c",\r
+                "dd037e4c.c7bb3",\r
+                "5c9052.5d187fb",\r
+                "17b1aaaa.debfa5",\r
+                "11920eb2.868ba1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c8a4a5d.6a7de4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='502' />\n<parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\n",\r
+        "comments": "",\r
+        "x": 950,\r
+        "y": 341,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2b6fd24.7801",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='504' />\n<parameter name='error-message' value='get-data-from-policy: failed to parse Policy Manger getPolicy response' />\n",\r
+        "comments": "",\r
+        "x": 941,\r
+        "y": 554,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b2b110f6.fc0288",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 798,\r
+        "y": 341,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "9a2680ce.7f8d88",\r
+                "6c8a4a5d.6a7de4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4a38d89.8cc9c8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799,\r
+        "y": 524,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "bb351685.940688",\r
+                "f2b6fd24.7801"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "61c23f62.ad7b28",\r
+        "type": "comment",\r
+        "name": "Validate inputs",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 948,\r
+        "y": 178,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "392811b2.b8197e",\r
+        "type": "switchNode",\r
+        "name": "switch input.policy-instance-name",\r
+        "xml": "<switch test='`$get-data-from-policy-input.policy-instance-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1007,\r
+        "y": 226,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "71c6380.f2d7cc8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "71c6380.f2d7cc8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1224,\r
+        "y": 229,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "ac7758e6.06c038"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a8f9fb15.acf4e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 270,\r
+        "y": 178,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "d7e1c7cf.a18d1",\r
+                "392811b2.b8197e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0858194.bb868",\r
+        "type": "comment",\r
+        "name": "Read properties and validate inputs",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 341,\r
+        "y": 132,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4b6fc822.22489",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 799,\r
+        "y": 385,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "f53edd55.57cb58",\r
+                "bf2f9549.b5432",\r
+                "9c6a1592.fb19c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c6a1592.fb19c8",\r
+        "type": "switchNode",\r
+        "name": "switch response-code",\r
+        "xml": "<switch test='`$tmp.pm-response.response-code`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 983,\r
+        "y": 462,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "6e86997d.26955"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e86997d.26955",\r
+        "type": "outcome",\r
+        "name": "500",\r
+        "xml": "<outcome value='500'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1165,\r
+        "y": 463,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "659860d.dc39e2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "659860d.dc39e2",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1168,\r
+        "y": 511,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "10b87f4.b81b681",\r
+                "cb7b17e7.127258"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "10b87f4.b81b681",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: Error calling Policy Manager getPolicy\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1316,\r
+        "y": 489,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb7b17e7.127258",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='502' />\n<parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\n",\r
+        "comments": "",\r
+        "x": 1336,\r
+        "y": 528,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b5511e69.3d8618",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1380,\r
+        "y": 95,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "4f062576.7b6584"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "947a2b69.ec9398",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1359,\r
+        "y": 138,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "24195f46.ca98f8",\r
+                "566a8d54.f462dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f062576.7b6584",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: read properties file.\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1527,\r
+        "y": 95,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "24195f46.ca98f8",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: Could not read properties file.\"/>\n<parameter name=\"field3\" value='`$prop.restapi.pm.getpolicy.templatefile`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1528,\r
+        "y": 135,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "566a8d54.f462dc",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='501' />\n<parameter name='error-message' value='get-data-from-policy: could not read generic-resource-api properties' />\n",\r
+        "comments": "",\r
+        "x": 1547,\r
+        "y": 176,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ac7758e6.06c038",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1368,\r
+        "y": 229,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "d28d8a99.9ae948",\r
+                "3c7d35d5.15560a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d28d8a99.9ae948",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: input.policy-instance-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1530,\r
+        "y": 228,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c7d35d5.15560a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='507' />\n<parameter name='error-message' value='get-data-from-policy: input.policy-instance-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 1545,\r
+        "y": 264,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "925a65d4.ac3ab8",\r
+        "type": "comment",\r
+        "name": "Loop thru policy-data when it is a list",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 588,\r
+        "y": 691,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c1f590f5.8f2c5",\r
+        "type": "for",\r
+        "name": "for each policy-data element",\r
+        "xml": "<for index='policyDataIndex' start='0' end='`$jsonContextPrefix.content.policy-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1014,\r
+        "y": 737,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "e9c505d9.7641f8",\r
+                "27b7d1c2.c574de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56f2caaf.a21404",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 793,\r
+        "y": 737,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "c1f590f5.8f2c5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9c505d9.7641f8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: policyDataIndex|nf-role|rule-1|rule-2:\"/>\n<parameter name='field3' value='`$policyDataIndex`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].nf-role`' />\n<parameter name='field5' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-1`' />\n<parameter name='field6' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-2`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 987,\r
+        "y": 837,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5c9052.5d187fb",\r
+        "type": "set",\r
+        "name": "set known policy-data element name and value",\r
+        "xml": "<set>\n<parameter name='get-data-from-policy-output.' value='`$jsonContextPrefix.content.policy-data.`'  />",\r
+        "comments": "",\r
+        "x": 619,\r
+        "y": 1187,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3f8ba63d.63076a",\r
+        "type": "for",\r
+        "name": "for each nested extended-params element extract name and value",\r
+        "xml": "<for index='policyDataExtendedParamsIndex' start='0' end='`$jsonContextPrefix.content.policy-data.extended-params_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1125,\r
+        "y": 947,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "46e505f4.b9ba4c",\r
+                "f735acce.c6ff4",\r
+                "478129ad.d071b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2112800.e14638",\r
+        "type": "comment",\r
+        "name": "Get extended-params when policy-data is not a list",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 627,\r
+        "y": 893,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dff4e845.8c2d38",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792,\r
+        "y": 947,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "3f8ba63d.63076a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "46e505f4.b9ba4c",\r
+        "type": "set",\r
+        "name": "set name and value from extended params element",\r
+        "xml": "<set>\n<parameter name='output-param-name' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-name`'  />\n<parameter name='output-param-value' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-value`'  />",\r
+        "comments": "",\r
+        "x": 1115,\r
+        "y": 1000,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dd037e4c.c7bb3",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$jsonContextPrefix.content.policy-data_length > 0`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 505,\r
+        "y": 737,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "72c5a068.2a844"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "72c5a068.2a844",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 634,\r
+        "y": 737,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "56f2caaf.a21404"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1414756.a77f98b",\r
+        "type": "comment",\r
+        "name": "Set known output params",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 550,\r
+        "y": 1140,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "17b1aaaa.debfa5",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: get-data-from-policy-output.:\"/>\n<parameter name='field3' value='`$get-data-from-policy-output.`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 499,\r
+        "y": 1232,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "11920eb2.868ba1",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$jsonContextPrefix.content.policy-data.extended-params_length > 0`'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 504,\r
+        "y": 947,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "6f485d54.b981f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f485d54.b981f4",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 633,\r
+        "y": 947,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            [\r
+                "dff4e845.8c2d38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7e9500f.a774f",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/get-data-from-policy.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 516,\r
+        "y": 1305,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a278ba14.2107c8",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>",\r
+        "comments": "",\r
+        "x": 473,\r
+        "y": 1413,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f735acce.c6ff4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: get-data-from-policy: policyDataExtendedParamsIndex|output-param-name|output-param-value:\"/>\n<parameter name='field3' value='`$policyDataExtendedParamsIndex`' />\n<parameter name='field4' value='`$output-param-name`' />\n<parameter name='field5' value='`$output-param-value`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 977,\r
+        "y": 1100,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "478129ad.d071b8",\r
+        "type": "set",\r
+        "name": "set output name and value pair from extended params",\r
+        "xml": "<set>\n<parameter name=\"`'get-data-from-policy-output.' + $output-param-name`\" value=\"`$output-param-value`\" />",\r
+        "comments": "",\r
+        "x": 1119,\r
+        "y": 1048,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "56f0abfe.71e324",\r
+        "type": "set",\r
+        "name": "set output element for name and values",\r
+        "xml": "<set>\n<parameter name=\"`'get-data-from-policy-output[' + $policyDataIndex + '].nf-role'`\" value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].nf-role`' />\n<parameter name=\"`'get-data-from-policy-output[' + $policyDataIndex + '].rule-1'`\" value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-1`' />\n<parameter name=\"`'get-data-from-policy-output[' + $policyDataIndex + '].rule-2'`\" value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-2`' />",\r
+        "comments": "",\r
+        "x": 1350,\r
+        "y": 737,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "27b7d1c2.c574de",\r
+        "type": "set",\r
+        "name": "set known policy-data element name and value",\r
+        "xml": "<set>\n<parameter name=\"`'get-data-from-policy-output[' + $policyDataIndex + ']'`.\" value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].`' />",\r
+        "comments": "",\r
+        "x": 1107,\r
+        "y": 789,\r
+        "z": "9eef7e7e.8f1058",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.json
new file mode 100755 (executable)
index 0000000..aeebce1
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"60f1051e.51114c","type":"dgstart","name":"DGSTART","outputs":1,"x":108,"y":98,"z":"5cacde28.0dfa3","wires":[["226b7544.1cd84a"]]},{"id":"226b7544.1cd84a","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":223.28570556640625,"y":138.23810577392578,"z":"5cacde28.0dfa3","wires":[["9c9ac68.fd6d738"]]},{"id":"9c9ac68.fd6d738","type":"method","name":"method getpathsegment-composite-match-pair","xml":"<method rpc='getpathsegment-composite-match-pair' mode='sync'>\n","comments":"","outputs":1,"x":224.9286346435547,"y":179.0000114440918,"z":"5cacde28.0dfa3","wires":[["83e11bf8.f3a498"]]},{"id":"9a71b461.101558","type":"comment","name":"getpathsegment-composite-match-pair","info":"","comments":"","x":502.34486389160156,"y":45.58634376525879,"z":"5cacde28.0dfa3","wires":[]},{"id":"83e11bf8.f3a498","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":99.25,"y":391.75001430511475,"z":"5cacde28.0dfa3","wires":[["e727e1ef.1186a","66e90d38.a7bf64","3ef2d82e.d22a58","eec5f9fe.49c248","19a7e137.4341bf","75d577c9.53e138"]]},{"id":"e727e1ef.1186a","type":"for","name":"for each node but the last","xml":"<for index='left-node-index' start='0' end='`$serv-cust_length - 1`' >\n","comments":"","outputs":1,"x":378.5,"y":350.5863494873047,"z":"5cacde28.0dfa3","wires":[["65ea0789.62ae18"]]},{"id":"cf819cdf.14b8a","type":"for","name":"for each service in left node","xml":"<for silentFailure='true' index='left-serv-index' start='0' end='`$serv-cust[$left-node-index].serv-insts_length`' >\n","comments":"","outputs":1,"x":762.25,"y":374.33636474609375,"z":"5cacde28.0dfa3","wires":[["b468d48.edcdb28"]]},{"id":"e1650602.b338c8","type":"for","name":"for each service in right node","xml":"<for silentFailure='true' index='right-serv-index' start='0' end='`$serv-cust[$right-node-index].serv-insts_length`' >\n","comments":"","outputs":1,"x":1147.2498931884766,"y":390.05064392089844,"z":"5cacde28.0dfa3","wires":[["f4ac3454.22ddd8"]]},{"id":"87ef791e.386cd8","type":"switchNode","name":"switch match-type","xml":"<switch test='`$match-type`'>\n","comments":"","outputs":1,"x":329.75001525878906,"y":868.0863962173462,"z":"5cacde28.0dfa3","wires":[["560beca3.cb95c4"]]},{"id":"560beca3.cb95c4","type":"outcome","name":"network-name","xml":"<outcome value='network-name'>\n","comments":"","outputs":1,"x":522.2500152587891,"y":869.3363962173462,"z":"5cacde28.0dfa3","wires":[["7508df39.fbe66"]]},{"id":"7508df39.fbe66","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":691.0000267028809,"y":868.0864028930664,"z":"5cacde28.0dfa3","wires":[["ae0a31f1.db164","be0877c3.8f5bf8"]]},{"id":"65ea0789.62ae18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":567.25,"y":349.3363437652588,"z":"5cacde28.0dfa3","wires":[["fb53fc76.a42eb","cf819cdf.14b8a"]]},{"id":"fb53fc76.a42eb","type":"set","name":"set right-node-index","xml":"<set>\n<parameter name='right-node-index' value='`$left-node-index + 1`' />\n","comments":"","x":739.3928375244141,"y":326.4792003631592,"z":"5cacde28.0dfa3","wires":[]},{"id":"ae0a31f1.db164","type":"set","name":"set found-match = false","xml":"<set>\n<parameter name='found-match' value='false' />\n","comments":"","x":948.8690185546875,"y":821.9435329437256,"z":"5cacde28.0dfa3","wires":[]},{"id":"2c195116.8a04be","type":"for","name":"for each left vnf-network","xml":"<for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":2075.6429595947266,"y":435.8006811141968,"z":"5cacde28.0dfa3","wires":[["85ef7f7.ded368"]]},{"id":"860961af.af4c4","type":"for","name":"for each right vnf-network","xml":"<for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":2841.357109069824,"y":409.3720760345459,"z":"5cacde28.0dfa3","wires":[["9877f782.81eab8"]]},{"id":"9877f782.81eab8","type":"switchNode","name":"network-names match?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\n","comments":"","outputs":1,"x":3086.357109069824,"y":408.1220760345459,"z":"5cacde28.0dfa3","wires":[["a993df3a.e43cb"]]},{"id":"a993df3a.e43cb","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3285.1071166992188,"y":406.8720760345459,"z":"5cacde28.0dfa3","wires":[["11e00112.b1064f"]]},{"id":"85ef7f7.ded368","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2261.5356521606445,"y":434.5506525039673,"z":"5cacde28.0dfa3","wires":[["8974cd6.def433","b680f42.8583a08"]]},{"id":"8974cd6.def433","type":"switchNode","name":"network-name == 'oam'?","xml":"<switch test=\"`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n  == 'oam'`\">\n","comments":"","outputs":1,"x":2458.857093811035,"y":411.8720760345459,"z":"5cacde28.0dfa3","wires":[["a157ecc8.bcfdf"]]},{"id":"a157ecc8.bcfdf","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2642.6070976257324,"y":410.6220760345459,"z":"5cacde28.0dfa3","wires":[["860961af.af4c4"]]},{"id":"11e00112.b1064f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3408.500015258789,"y":406.33636236190796,"z":"5cacde28.0dfa3","wires":[["89a060b2.d5ff","8174835e.b0019","ce80d485.5c26a8","c1ed5d08.86204"]]},{"id":"b468d48.edcdb28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":956.357177734375,"y":371.6577854156494,"z":"5cacde28.0dfa3","wires":[["36c59b84.446674","e1650602.b338c8"]]},{"id":"36c59b84.446674","type":"set","name":"set path-segments_length to 0","xml":"<set>\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length' value='0' />\n","comments":"","x":1150.9998931884766,"y":347.7292318344116,"z":"5cacde28.0dfa3","wires":[]},{"id":"b680f42.8583a08","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":2445.9998626708984,"y":465.8006134033203,"z":"5cacde28.0dfa3","wires":[["33eb5f41.dd6cf"]]},{"id":"33eb5f41.dd6cf","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2613.1427154541016,"y":464.37206649780273,"z":"5cacde28.0dfa3","wires":[["f08e8298.4c51"]]},{"id":"f08e8298.4c51","type":"break","name":"break","xml":"<break>\n","comments":"","x":2743.1427841186523,"y":462.94351387023926,"z":"5cacde28.0dfa3","wires":[]},{"id":"f4ac3454.22ddd8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":163.14286041259766,"y":868.0864095687866,"z":"5cacde28.0dfa3","wires":[["87ef791e.386cd8"]]},{"id":"bf180b7c.c25418","type":"comment","name":"First pass: create path segments","info":"","comments":"","x":423.5,"y":281.83634757995605,"z":"5cacde28.0dfa3","wires":[]},{"id":"3f086c1d.66b174","type":"comment","name":"Second pass: create end-to-end paths","info":"","comments":"","x":513.3809242248535,"y":1782.9077297449112,"z":"5cacde28.0dfa3","wires":[]},{"id":"66e90d38.a7bf64","type":"for","name":"for each service instance in the first node","xml":"<for silentFailure='true' index='first-serv-index' start='0' end='`$serv-cust[0].serv-insts_length`' >\n","comments":"","outputs":1,"x":445.166690826416,"y":2026.8363507986069,"z":"5cacde28.0dfa3","wires":[["6efb0085.c861d"]]},{"id":"fefe27b3.5a2c68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1170.9167251586914,"y":2176.586459994316,"z":"5cacde28.0dfa3","wires":[["2b3ebaca.9cf8e6","1bdd6f16.30ab91","26b15761.3793b8","17e80c1e.4449a4","38807c57.9d8824","5419a18d.9f41f","4f5954be.ca26ac","30084bb6.339224"]]},{"id":"2c60d4e2.0aa0fc","type":"set","name":"add first service to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length' value='1' />\n<parameter name='service-paths.service-path[$path-index].service[0].service-instance-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[0].service-path-sequence-id'\n  value='1' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-instance-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-path-sequence-id'\n  value='`$cur-vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-name'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-role'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vf-module-id`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf_length'\n  value='1' />\n  ","comments":"","x":1877.8812408447266,"y":1802.1214971542358,"z":"5cacde28.0dfa3","wires":[]},{"id":"3ef2d82e.d22a58","type":"set","name":"set path-index to 0","xml":"<set>\n<parameter name='path-index' value='0' />\n","comments":"","x":376.4166679382324,"y":1835.5863132476807,"z":"5cacde28.0dfa3","wires":[]},{"id":"2b3ebaca.9cf8e6","type":"set","name":"increment path-index","xml":"<set>\n<parameter name='path-index' value='`$path-index + 1`' />\n","comments":"","x":1365.9166564941406,"y":3006.586118221283,"z":"5cacde28.0dfa3","wires":[]},{"id":"eec5f9fe.49c248","type":"set","name":"set service-path_length","xml":"<set>\n<parameter name='service-paths.service-path_length' value='`$path-index`' />\n","comments":"","x":378.91674041748047,"y":3110.1697940826416,"z":"5cacde28.0dfa3","wires":[]},{"id":"1bdd6f16.30ab91","type":"for","name":"for each subsequent node","xml":"<for index='node-index' start='1' end='`$serv-cust_length`' >\n","comments":"","outputs":1,"x":1386.3334121704102,"y":2792.836263179779,"z":"5cacde28.0dfa3","wires":[["e3b78719.a70e18"]]},{"id":"7a6e2ea4.84e","type":"for","name":"for each service instance","xml":"<for index='serv-index' start='0' end='`$serv-cust[$node-index].serv-insts_length`' >\n","comments":"","outputs":1,"x":1843.250316619873,"y":2685.336263179779,"z":"5cacde28.0dfa3","wires":[["65851b43.a70314"]]},{"id":"fcbb2eb9.7cc05","type":"set","name":"set found-match to false","xml":"<set>\n<parameter name='found-match' value='false' />\n","comments":"","x":1839.583610534668,"y":2633.836224079132,"z":"5cacde28.0dfa3","wires":[]},{"id":"a3466db9.3197e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2446.7502670288086,"y":2734.0029430389404,"z":"5cacde28.0dfa3","wires":[["14a2dcd7.47e9d3"]]},{"id":"14a2dcd7.47e9d3","type":"switchNode","name":"service-instance-id match?","xml":"<switch test='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id\n  == $next-service-instance-id`'>\n","comments":"","outputs":1,"x":2644.2502670288086,"y":2731.5029430389404,"z":"5cacde28.0dfa3","wires":[["322a5e0f.988a02"]]},{"id":"4f5954be.ca26ac","type":"set","name":"set prev and next variables","xml":"<set>\n<parameter name='next-service-instance-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-service-instance-id`' />\n<parameter name='prev-network-name' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\n<parameter name='prev-network-role' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\n<parameter name='next-vnf-instance-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-vnf-instance-id`' />\n<parameter name='next-vf-module-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-vf-module-id`' />\n","comments":"","x":1381.2739562988281,"y":2303.193883895874,"z":"5cacde28.0dfa3","wires":[]},{"id":"322a5e0f.988a02","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2838.0002727508545,"y":2731.5029430389404,"z":"5cacde28.0dfa3","wires":[["d815e001.989e6"]]},{"id":"d815e001.989e6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2970.500244140625,"y":2730.2529296875,"z":"5cacde28.0dfa3","wires":[["e5a8f57d.59e968","1dc46255.409c3e","cd8dc738.071968"]]},{"id":"e5a8f57d.59e968","type":"set","name":"set found-match to true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":3158.2504692077637,"y":2681.5030102729797,"z":"5cacde28.0dfa3","wires":[]},{"id":"bb3c7e5a.29289","type":"set","name":"add service to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length'\n  value='`$service-paths.service-path[$path-index].service_length + 1`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\n  value='`$node-index + 1`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\n  value='`$cur-vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\n  value='`$prev-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\n  value='`$prev-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\n  value='1' />\n","comments":"","x":4060.08349609375,"y":2800.7533683776855,"z":"5cacde28.0dfa3","wires":[]},{"id":"1dc46255.409c3e","type":"break","name":"break","xml":"<break>\n","comments":"","x":3100.917190551758,"y":2775.753050327301,"z":"5cacde28.0dfa3","wires":[]},{"id":"1ba49669.9cd81a","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":1831.7503204345703,"y":2844.0862641334534,"z":"5cacde28.0dfa3","wires":[["7392011e.9a1cc"]]},{"id":"7392011e.9a1cc","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2001.7502975463867,"y":2842.8362498283386,"z":"5cacde28.0dfa3","wires":[["8a419e53.f32ef"]]},{"id":"e475d330.d9506","type":"break","name":"break","xml":"<break>\n","comments":"","x":2271.750328063965,"y":2865.3362641334534,"z":"5cacde28.0dfa3","wires":[]},{"id":"8a419e53.f32ef","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2131.750301361084,"y":2842.8362488746643,"z":"5cacde28.0dfa3","wires":[["e475d330.d9506","b38cde1a.6e7f6"]]},{"id":"b38cde1a.6e7f6","type":"set","name":"clear the service-path-instance-id","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service-path-instance-id' value='' />\n","comments":"","x":2354.250331878662,"y":2820.3362641334534,"z":"5cacde28.0dfa3","wires":[]},{"id":"77e655a4.3d7c2c","type":"comment","name":"no end-to-end path found","info":"","comments":"","x":2343.416923522949,"y":2772.836211204529,"z":"5cacde28.0dfa3","wires":[]},{"id":"99fffdb3.40d12","type":"set","name":"set prev and next variables","xml":"<set>\n<parameter name='next-service-instance-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-service-instance-id`' />\n<parameter name='prev-network-name' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\n<parameter name='prev-network-role' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\n<parameter name='next-vnf-instance-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-vnf-instance-id`' />\n<parameter name='next-vf-module-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-vf-module-id`' />\n","comments":"","x":1854.2503128051758,"y":2897.8362650871277,"z":"5cacde28.0dfa3","wires":[]},{"id":"cd8dc738.071968","type":"switchNode","name":"is this the last node in the path","xml":"<switch test='`$node-index == $serv-cust_length - 1`'>\n","comments":"","outputs":1,"x":3178.417064666748,"y":2728.253053665161,"z":"5cacde28.0dfa3","wires":[["4ffe3a4b.975d54","e77e94f1.1dfc58"]]},{"id":"4ffe3a4b.975d54","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3392.1668586730957,"y":2933.6699318885803,"z":"5cacde28.0dfa3","wires":[["ba56bc8d.c862f"]]},{"id":"e77e94f1.1dfc58","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3394.833713531494,"y":2549.919856071472,"z":"5cacde28.0dfa3","wires":[["665849ce.a4ea48"]]},{"id":"e3b78719.a70e18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1645.500186920166,"y":2790.336263179779,"z":"5cacde28.0dfa3","wires":[["fcbb2eb9.7cc05","7a6e2ea4.84e","1ba49669.9cd81a","99fffdb3.40d12","7ec23563.44488c"]]},{"id":"3d55caf2.114306","type":"set","name":"add service to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length'\n  value='`$service-paths.service-path[$path-index].service_length + 1`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\n  value='`$node-index + 1`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\n  value='`$next-vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\n  value='`$cur-vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\n  value='`$prev-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\n  value='`$prev-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\n  value='`$next-vf-module-id`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\n  value='1' />\n  ","comments":"","x":4113.916797637939,"y":2415.003628730774,"z":"5cacde28.0dfa3","wires":[]},{"id":"be0877c3.8f5bf8","type":"switchNode","name":"switch left forwarding-path_length","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`'>\n","comments":"","outputs":1,"x":979.7857666015625,"y":937.3721714019775,"z":"5cacde28.0dfa3","wires":[["2c44cb6b.478084","1bfa491a.356307","39ba8072.cabee"]]},{"id":"42b5f17d.fd82c","type":"comment","name":"Left multiple VNF, right single VNF","info":"","comments":"","x":2007.1667098999023,"y":880.6577892303467,"z":"5cacde28.0dfa3","wires":[]},{"id":"9fa977ce.910478","type":"for","name":"for each forwarding-path","xml":"<for index='left-fp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`' >\n","comments":"","outputs":1,"x":1943.4999771118164,"y":938.8005752563477,"z":"5cacde28.0dfa3","wires":[["4d59a622.cabd68"]]},{"id":"4d59a622.cabd68","type":"for","name":"for each service-path","xml":"<for index='left-sp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":2174.928565979004,"y":938.8006191253662,"z":"5cacde28.0dfa3","wires":[["4ee70df4.6fa794"]]},{"id":"9b1659db.2a50c8","type":"for","name":"for each vnf","xml":"<for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":2519.2141151428223,"y":843.0863399505615,"z":"5cacde28.0dfa3","wires":[["f6787aef.9b6c98"]]},{"id":"4ee70df4.6fa794","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2349.214286804199,"y":936.6577758789062,"z":"5cacde28.0dfa3","wires":[["c3f41d9c.5f189","9b1659db.2a50c8","b938d943.389ee8"]]},{"id":"c3f41d9c.5f189","type":"set","name":"set max-seq to -1","xml":"<set>\n<parameter name='max-seq' value='-1' />\n","comments":"","x":2536.35733795166,"y":796.65797996521,"z":"5cacde28.0dfa3","wires":[]},{"id":"f6787aef.9b6c98","type":"switchNode","name":"switch vnf-path-sequence-id > max-seq?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id\n  &gt; $max-seq`'>\n","comments":"","outputs":1,"x":2776.357250213623,"y":842.372142791748,"z":"5cacde28.0dfa3","wires":[["1de7ba50.9b1ce6"]]},{"id":"1de7ba50.9b1ce6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3012.0712814331055,"y":840.9435195922852,"z":"5cacde28.0dfa3","wires":[["31096073.47d98"]]},{"id":"31096073.47d98","type":"set","name":"set max-seq, and left-vnf-instance-id","xml":"<set>\n<parameter name='max-seq'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id`' />\n<parameter name='left-vnf-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-instance-id`' />\n","comments":"","x":3234.928352355957,"y":840.9434661865234,"z":"5cacde28.0dfa3","wires":[]},{"id":"4c784489.7ee51c","type":"comment","name":"Now find this vnf in the vnf-list","info":"","comments":"","x":2625.2145614624023,"y":936.6577920913696,"z":"5cacde28.0dfa3","wires":[]},{"id":"b938d943.389ee8","type":"for","name":"for each vnf in vnf-list","xml":"<for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":2539.2143325805664,"y":985.2291955947876,"z":"5cacde28.0dfa3","wires":[["e9f37080.62fd2"]]},{"id":"1b6bfd94.710e22","type":"switchNode","name":"vnfs match?","xml":"<switch test='`$left-vnf-instance-id\n  == $serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`'>\n","comments":"","outputs":1,"x":2855.6429901123047,"y":947.8482637405396,"z":"5cacde28.0dfa3","wires":[["7e264a36.803214"]]},{"id":"7e264a36.803214","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2996.356803894043,"y":948.0862894058228,"z":"5cacde28.0dfa3","wires":[["719519e4.ea9b48"]]},{"id":"719519e4.ea9b48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3127.7856941223145,"y":946.6577596664429,"z":"5cacde28.0dfa3","wires":[["f00fea78.2d2b68"]]},{"id":"a668d164.0d54b","type":"comment","name":"Find the right-most vnf in forwarding path","info":"","comments":"","x":2834.928352355957,"y":798.0864534378052,"z":"5cacde28.0dfa3","wires":[]},{"id":"8174835e.b0019","type":"set","name":"set path-segment data","xml":"<set>\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />","comments":"","x":3589.9284439086914,"y":377.2292079925537,"z":"5cacde28.0dfa3","wires":[]},{"id":"89a060b2.d5ff","type":"set","name":"set ps-index","xml":"<set>\n<parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\n","comments":"","x":3557.6071853637695,"y":331.157751083374,"z":"5cacde28.0dfa3","wires":[]},{"id":"ce80d485.5c26a8","type":"set","name":"set found-match = true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":3590.8213500976562,"y":425.8006534576416,"z":"5cacde28.0dfa3","wires":[]},{"id":"c1ed5d08.86204","type":"break","name":"break","xml":"<break>\n","comments":"","x":3540.8212928771973,"y":472.9434461593628,"z":"5cacde28.0dfa3","wires":[]},{"id":"219c59b4.09fa56","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1890.642822265625,"y":416.5149326324463,"z":"5cacde28.0dfa3","wires":[["2c195116.8a04be","d8c93e92.18c82"]]},{"id":"d8c93e92.18c82","type":"set","name":"set vnf-indeces to 0","xml":"<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='left-vnf-index' value='0' />\n<parameter name='right-vnf-index' value='0' />\n","comments":"","x":2052.0714111328125,"y":379.37208366394043,"z":"5cacde28.0dfa3","wires":[]},{"id":"f00fea78.2d2b68","type":"for","name":"for each rhs vnf","xml":"<for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":3284.6904258728027,"y":947.1338777542114,"z":"5cacde28.0dfa3","wires":[["24eb06cb.9f373a"]]},{"id":"e7861a9d.b6d028","type":"comment","name":"Now find this vnf in the right node","info":"","comments":"","x":3399.214641571045,"y":901.6577548980713,"z":"5cacde28.0dfa3","wires":[]},{"id":"79c0acf8.3873a4","type":"for","name":"for each right vnf-network","xml":"<for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":3992.071662902832,"y":915.9435241222382,"z":"5cacde28.0dfa3","wires":[["12bba702.4b0819"]]},{"id":"12bba702.4b0819","type":"switchNode","name":"network-names match?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\n","comments":"","outputs":1,"x":4231.357494354248,"y":914.6935031414032,"z":"5cacde28.0dfa3","wires":[["34c67642.ea5d0a"]]},{"id":"34c67642.ea5d0a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4420.107460021973,"y":913.4435908794403,"z":"5cacde28.0dfa3","wires":[["a2f06f03.2bdf7"]]},{"id":"a2f06f03.2bdf7","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4552.071605682373,"y":912.9078605175018,"z":"5cacde28.0dfa3","wires":[["155ad75b.bf5839","c40f4b1.309fab8","f8944206.3f55a","7810a713.0bbc98"]]},{"id":"155ad75b.bf5839","type":"set","name":"set path-segment data","xml":"<set>\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\n  value='`$left-vnf-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />","comments":"","x":4739.214630126953,"y":885.9435908794403,"z":"5cacde28.0dfa3","wires":[]},{"id":"c40f4b1.309fab8","type":"set","name":"set found-match = true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":4740.107536315918,"y":934.5150363445282,"z":"5cacde28.0dfa3","wires":[]},{"id":"f8944206.3f55a","type":"break","name":"break","xml":"<break>\n","comments":"","x":4690.107479095459,"y":981.6578290462494,"z":"5cacde28.0dfa3","wires":[]},{"id":"7810a713.0bbc98","type":"set","name":"set ps-index","xml":"<set>\n<parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\n","comments":"","x":4707.786163330078,"y":840.2292964458466,"z":"5cacde28.0dfa3","wires":[]},{"id":"24eb06cb.9f373a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3436.3570137023926,"y":947.3720092773438,"z":"5cacde28.0dfa3","wires":[["ec536573.43e5d8"]]},{"id":"e9f37080.62fd2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2707.7858657836914,"y":984.5149002075195,"z":"5cacde28.0dfa3","wires":[["1b6bfd94.710e22","f599b952.b87968"]]},{"id":"f599b952.b87968","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":2877.7856063842773,"y":1005.9434976577759,"z":"5cacde28.0dfa3","wires":[["b08f24b3.3659d8"]]},{"id":"b08f24b3.3659d8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3044.9284591674805,"y":1004.5149507522583,"z":"5cacde28.0dfa3","wires":[["5e5cd5b3.dbe35c"]]},{"id":"5e5cd5b3.dbe35c","type":"break","name":"break","xml":"<break>\n","comments":"","x":3174.9285278320312,"y":1003.0863981246948,"z":"5cacde28.0dfa3","wires":[]},{"id":"ec536573.43e5d8","type":"for","name":"for each left vnf-network","xml":"<for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":3613.5000381469727,"y":947.372035741806,"z":"5cacde28.0dfa3","wires":[["2b1dc672.54540a"]]},{"id":"2b1dc672.54540a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3793.499858856201,"y":947.3720433712006,"z":"5cacde28.0dfa3","wires":[["79c0acf8.3873a4","c0290b03.20e848"]]},{"id":"c0290b03.20e848","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":3976.357307434082,"y":978.8006398677826,"z":"5cacde28.0dfa3","wires":[["28c52ee3.509512"]]},{"id":"28c52ee3.509512","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4143.500160217285,"y":977.372092962265,"z":"5cacde28.0dfa3","wires":[["3dbf69a7.5d9136"]]},{"id":"3dbf69a7.5d9136","type":"break","name":"break","xml":"<break>\n","comments":"","x":4273.500228881836,"y":975.9435403347015,"z":"5cacde28.0dfa3","wires":[]},{"id":"a1c12add.519e08","type":"switchNode","name":"switch right forwarding-path_length","xml":"<switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`'>\n","comments":"","outputs":1,"x":1455.5,"y":727.0863437652588,"z":"5cacde28.0dfa3","wires":[["cee159a7.eb9128","85e9a510.3f5968","21fc7a11.f1c926"]]},{"id":"2c44cb6b.478084","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1218.3572273254395,"y":890.8006563186646,"z":"5cacde28.0dfa3","wires":[["a1c12add.519e08"]]},{"id":"1bfa491a.356307","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1218.0000839233398,"y":973.4792528152466,"z":"5cacde28.0dfa3","wires":[["f7822002.381d1"]]},{"id":"39ba8072.cabee","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1218.357177734375,"y":930.8006992340088,"z":"5cacde28.0dfa3","wires":[["a1c12add.519e08"]]},{"id":"21fc7a11.f1c926","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1681.5,"y":673.0863437652588,"z":"5cacde28.0dfa3","wires":[["219c59b4.09fa56"]]},{"id":"cee159a7.eb9128","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1681.1428565979004,"y":755.7649402618408,"z":"5cacde28.0dfa3","wires":[["93c498a0.876eb8"]]},{"id":"85e9a510.3f5968","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1681.4999504089355,"y":713.086386680603,"z":"5cacde28.0dfa3","wires":[["219c59b4.09fa56"]]},{"id":"c9ec2dad.cdca1","type":"comment","name":"Both sides single VNF","info":"","comments":"","x":1979.5,"y":329.0863437652588,"z":"5cacde28.0dfa3","wires":[]},{"id":"33ecf1df.6d209e","type":"comment","name":"Left single VNF, right multiple VNF","info":"","comments":"","x":2001.5,"y":598.0863437652588,"z":"5cacde28.0dfa3","wires":[]},{"id":"93c498a0.876eb8","type":"for","name":"for each forwarding-path","xml":"<for index='right-fp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`' >\n","comments":"","outputs":1,"x":1955.1666259765625,"y":643.0863437652588,"z":"5cacde28.0dfa3","wires":[["e6d81752.4b29d8"]]},{"id":"e6d81752.4b29d8","type":"for","name":"for each service-path","xml":"<for index='right-sp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":2186.59521484375,"y":643.0863876342773,"z":"5cacde28.0dfa3","wires":[["3724485d.a496d8"]]},{"id":"3724485d.a496d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2360.8809356689453,"y":640.9435443878174,"z":"5cacde28.0dfa3","wires":[["c9ccb304.20ed1","1b6170c7.a5397f"]]},{"id":"c9ccb304.20ed1","type":"for","name":"for each vnf","xml":"<for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":2515.16650390625,"y":591.41965675354,"z":"5cacde28.0dfa3","wires":[["c3f46064.3be0e"]]},{"id":"c3f46064.3be0e","type":"switchNode","name":"switch vnf-path-sequence-id == 1?","xml":"<switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\n  == 1`'>\n","comments":"","outputs":1,"x":2740.6430130004883,"y":590.7054872512817,"z":"5cacde28.0dfa3","wires":[["ef83ab7.d739d58"]]},{"id":"ef83ab7.d739d58","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2948.0237998962402,"y":590.9435033798218,"z":"5cacde28.0dfa3","wires":[["a91f299f.b4ce68"]]},{"id":"fd227b4b.f0ffb8","type":"set","name":"set right-vnf-instance-id","xml":"<set>\n<parameter name='right-vnf-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\n","comments":"","x":3250.8805809020996,"y":555.9434623718262,"z":"5cacde28.0dfa3","wires":[]},{"id":"88f1fcc4.b6d8d","type":"comment","name":"Find the left-most vnf in forwarding path","info":"","comments":"","x":2830.8807411193848,"y":546.4197702407837,"z":"5cacde28.0dfa3","wires":[]},{"id":"f0579103.63e6f","type":"comment","name":"Now find this vnf in the vnf-list","info":"","comments":"","x":2626.833251953125,"y":666.41965675354,"z":"5cacde28.0dfa3","wires":[]},{"id":"1b6170c7.a5397f","type":"for","name":"for each vnf in vnf-list","xml":"<for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":2540.833023071289,"y":714.991060256958,"z":"5cacde28.0dfa3","wires":[["84364387.271de"]]},{"id":"26927e7c.0ad392","type":"switchNode","name":"vnfs match?","xml":"<switch test='`$right-vnf-instance-id\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\n","comments":"","outputs":1,"x":2857.2616806030273,"y":677.61012840271,"z":"5cacde28.0dfa3","wires":[["3ef34f88.aec3"]]},{"id":"3ef34f88.aec3","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2997.9754943847656,"y":677.8481540679932,"z":"5cacde28.0dfa3","wires":[["5a951866.ef1a08"]]},{"id":"5a951866.ef1a08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3129.404384613037,"y":676.4196243286133,"z":"5cacde28.0dfa3","wires":[["5a32ad77.025d14"]]},{"id":"5a32ad77.025d14","type":"for","name":"for each lhs vnf","xml":"<for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":3286.3091163635254,"y":676.8957424163818,"z":"5cacde28.0dfa3","wires":[["4da72b93.e078b4"]]},{"id":"821214ed.e38948","type":"comment","name":"Now find this vnf in the left node","info":"","comments":"","x":3400.8333320617676,"y":631.4196195602417,"z":"5cacde28.0dfa3","wires":[]},{"id":"4da72b93.e078b4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3437.9757041931152,"y":677.1338739395142,"z":"5cacde28.0dfa3","wires":[["9ffc8c37.f1005"]]},{"id":"84364387.271de","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2709.404556274414,"y":714.2767648696899,"z":"5cacde28.0dfa3","wires":[["26927e7c.0ad392","9c271353.4b456"]]},{"id":"9c271353.4b456","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":2879.404296875,"y":735.7053623199463,"z":"5cacde28.0dfa3","wires":[["14e9d7f6.182f08"]]},{"id":"14e9d7f6.182f08","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3046.547149658203,"y":734.2768154144287,"z":"5cacde28.0dfa3","wires":[["91d64a32.a79868"]]},{"id":"91d64a32.a79868","type":"break","name":"break","xml":"<break>\n","comments":"","x":3176.547218322754,"y":732.8482627868652,"z":"5cacde28.0dfa3","wires":[]},{"id":"9ffc8c37.f1005","type":"for","name":"for each right vnf-network","xml":"<for index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":3615.1187286376953,"y":677.1339004039764,"z":"5cacde28.0dfa3","wires":[["2fceb42f.674b4c"]]},{"id":"2fceb42f.674b4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3795.118549346924,"y":677.133908033371,"z":"5cacde28.0dfa3","wires":[["97a00bf4.a5a548","f8216448.631cf8"]]},{"id":"97a00bf4.a5a548","type":"for","name":"for each left vnf-network","xml":"<for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":3986.833251953125,"y":648.0863437652588,"z":"5cacde28.0dfa3","wires":[["863ddbac.7582d8"]]},{"id":"863ddbac.7582d8","type":"switchNode","name":"network-names match?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\n","comments":"","outputs":1,"x":4226.119083404541,"y":646.8363227844238,"z":"5cacde28.0dfa3","wires":[["61c7bd07.eeb014"]]},{"id":"61c7bd07.eeb014","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4414.869049072266,"y":645.5864105224609,"z":"5cacde28.0dfa3","wires":[["2c697063.4e472"]]},{"id":"2c697063.4e472","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4546.833194732666,"y":645.0506801605225,"z":"5cacde28.0dfa3","wires":[["db397022.a8191","2a65e500.24b97c","6716a7d0.305028","5a3095b9.f209bc"]]},{"id":"db397022.a8191","type":"set","name":"set path-segment data","xml":"<set>\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\n  value='`$right-vnf-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\n\n<parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />","comments":"","x":4733.976219177246,"y":618.0864105224609,"z":"5cacde28.0dfa3","wires":[]},{"id":"2a65e500.24b97c","type":"set","name":"set found-match = true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":4734.869125366211,"y":666.6578559875488,"z":"5cacde28.0dfa3","wires":[]},{"id":"6716a7d0.305028","type":"break","name":"break","xml":"<break>\n","comments":"","x":4684.869068145752,"y":713.80064868927,"z":"5cacde28.0dfa3","wires":[]},{"id":"5a3095b9.f209bc","type":"set","name":"set ps-index","xml":"<set>\n<parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\n","comments":"","x":4702.547752380371,"y":572.3721160888672,"z":"5cacde28.0dfa3","wires":[]},{"id":"f8216448.631cf8","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":3971.118896484375,"y":710.9434595108032,"z":"5cacde28.0dfa3","wires":[["298800cc.0f842"]]},{"id":"298800cc.0f842","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4138.261749267578,"y":709.5149126052856,"z":"5cacde28.0dfa3","wires":[["3ccbd9e.9d0ba26"]]},{"id":"3ccbd9e.9d0ba26","type":"break","name":"break","xml":"<break>\n","comments":"","x":4268.261817932129,"y":708.0863599777222,"z":"5cacde28.0dfa3","wires":[]},{"id":"26b15761.3793b8","type":"execute","name":"generate service-path-instance-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"tmp.service-path-instance-id\" />\n","comments":"","outputs":1,"x":1406.0951919555664,"y":1706.1097946166992,"z":"5cacde28.0dfa3","wires":[[]]},{"id":"17e80c1e.4449a4","type":"set","name":"create service-path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service-path-instance-id' value='`$tmp.service-path-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service-path-instance-name'\n  value='`$db.path-segment[0].path-name + $tmp.service-path-instance-id`' />\n","comments":"","x":1361.0951919555664,"y":1751.1097955703735,"z":"5cacde28.0dfa3","wires":[]},{"id":"f7822002.381d1","type":"switchNode","name":"switch right forwarding-path_length","xml":"<switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`'>\n","comments":"","outputs":1,"x":1443.5,"y":973.0862827301025,"z":"5cacde28.0dfa3","wires":[["83725e25.dca23","ab4c94e8.e45218","52c3b6d0.4e7318"]]},{"id":"52c3b6d0.4e7318","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1669.5,"y":919.0862827301025,"z":"5cacde28.0dfa3","wires":[["9fa977ce.910478"]]},{"id":"83725e25.dca23","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1669.1428565979004,"y":1001.7648792266846,"z":"5cacde28.0dfa3","wires":[["d7221d4c.6bab6"]]},{"id":"ab4c94e8.e45218","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1669.4999504089355,"y":959.0863256454468,"z":"5cacde28.0dfa3","wires":[["9fa977ce.910478"]]},{"id":"10dda5a9.3882ba","type":"comment","name":"Both sides multiple VNF","info":"","comments":"","x":1975.16650390625,"y":1074.7530117034912,"z":"5cacde28.0dfa3","wires":[]},{"id":"d7221d4c.6bab6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1896.8333282470703,"y":1143.0863075256348,"z":"5cacde28.0dfa3","wires":[["d06dd812.7c91f8"]]},{"id":"d06dd812.7c91f8","type":"for","name":"for each lhs forwarding-path","xml":"<for index='left-fp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`' >\n","comments":"","outputs":1,"x":2088.5,"y":1144.7529697418213,"z":"5cacde28.0dfa3","wires":[["f98ae7fd.c071a8"]]},{"id":"f98ae7fd.c071a8","type":"for","name":"for each lhs service-path","xml":"<for index='left-sp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":2336.5950622558594,"y":1144.7529335021973,"z":"5cacde28.0dfa3","wires":[["a64c1b6f.549e78"]]},{"id":"1bd64c30.3d4fc4","type":"for","name":"for each rhs forwarding-path","xml":"<for index='right-fp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`' >\n","comments":"","outputs":1,"x":3660.166549682617,"y":1148.086290359497,"z":"5cacde28.0dfa3","wires":[["f612535c.5ec86"]]},{"id":"f612535c.5ec86","type":"for","name":"for each rhs service-path","xml":"<for index='right-sp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":3908.2616119384766,"y":1148.086254119873,"z":"5cacde28.0dfa3","wires":[["88fd6d88.314cc"]]},{"id":"a44d758c.154b18","type":"for","name":"for each vnf","xml":"<for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":2685.166618347168,"y":1096.419692993164,"z":"5cacde28.0dfa3","wires":[["9ed255d8.367bf8"]]},{"id":"5040ed2a.05fa64","type":"set","name":"set max-seq to -1","xml":"<set>\n<parameter name='max-seq' value='-1' />\n","comments":"","x":2702.309841156006,"y":1049.9913330078125,"z":"5cacde28.0dfa3","wires":[]},{"id":"9ed255d8.367bf8","type":"switchNode","name":"switch vnf-path-sequence-id > max-seq?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id\n  &gt; $max-seq`'>\n","comments":"","outputs":1,"x":2942.3097534179688,"y":1095.7054958343506,"z":"5cacde28.0dfa3","wires":[["3fa87823.7f1638"]]},{"id":"3fa87823.7f1638","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3178.023784637451,"y":1094.2768726348877,"z":"5cacde28.0dfa3","wires":[["1195af19.430441"]]},{"id":"1195af19.430441","type":"set","name":"set max-seq, and left-vnf-instance-id","xml":"<set>\n<parameter name='max-seq'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id`' />\n<parameter name='left-vnf-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-instance-id`' />\n","comments":"","x":3400.8808555603027,"y":1094.276819229126,"z":"5cacde28.0dfa3","wires":[]},{"id":"1f39f18f.8e207e","type":"comment","name":"Now find this vnf in the vnf-list","info":"","comments":"","x":2799.5003356933594,"y":1141.6578521728516,"z":"5cacde28.0dfa3","wires":[]},{"id":"d4e77269.a7598","type":"for","name":"for each vnf in vnf-list","xml":"<for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":2713.5001068115234,"y":1190.2292556762695,"z":"5cacde28.0dfa3","wires":[["2d4d1e45.59cf32"]]},{"id":"a167c9e4.76ed18","type":"switchNode","name":"vnfs match?","xml":"<switch test='`$left-vnf-instance-id\n  == $serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`'>\n","comments":"","outputs":1,"x":3029.9287643432617,"y":1152.8483238220215,"z":"5cacde28.0dfa3","wires":[["3adf76b7.7592ca"]]},{"id":"3adf76b7.7592ca","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3170.642578125,"y":1153.0863494873047,"z":"5cacde28.0dfa3","wires":[["c72bded8.0ca85"]]},{"id":"c72bded8.0ca85","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3302.0714683532715,"y":1151.6578197479248,"z":"5cacde28.0dfa3","wires":[["1bd64c30.3d4fc4"]]},{"id":"d4046575.dc0b88","type":"comment","name":"Find the right-most vnf in forwarding path","info":"","comments":"","x":3000.8808555603027,"y":1051.4198064804077,"z":"5cacde28.0dfa3","wires":[]},{"id":"2d4d1e45.59cf32","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2882.0716400146484,"y":1189.5149602890015,"z":"5cacde28.0dfa3","wires":[["a167c9e4.76ed18","48053036.5b345"]]},{"id":"48053036.5b345","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":3052.0713806152344,"y":1210.9435577392578,"z":"5cacde28.0dfa3","wires":[["be8ea1c7.44cca"]]},{"id":"be8ea1c7.44cca","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3219.2142333984375,"y":1209.5150108337402,"z":"5cacde28.0dfa3","wires":[["16915549.bd5a3b"]]},{"id":"16915549.bd5a3b","type":"break","name":"break","xml":"<break>\n","comments":"","x":3349.2143020629883,"y":1208.0864582061768,"z":"5cacde28.0dfa3","wires":[]},{"id":"a64c1b6f.549e78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2523.5,"y":1144.7529697418213,"z":"5cacde28.0dfa3","wires":[["5040ed2a.05fa64","a44d758c.154b18","d4e77269.a7598"]]},{"id":"88fd6d88.314cc","type":"switchNode","name":"switch leftmost-vnf-index","xml":"<switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`'>\n","comments":"","outputs":1,"x":4153.50048828125,"y":1146.419641494751,"z":"5cacde28.0dfa3","wires":[["50c3fb12.79f4d4","6add4086.46256","fa0ce669.328d08"]]},{"id":"50c3fb12.79f4d4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":4353.500057220459,"y":1101.4195566177368,"z":"5cacde28.0dfa3","wires":[["47e8e7a7.051148"]]},{"id":"fa0ce669.328d08","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4353.142753601074,"y":1330.7649030685425,"z":"5cacde28.0dfa3","wires":[["e7902090.6d387"]]},{"id":"6add4086.46256","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":4353.5000076293945,"y":1141.419599533081,"z":"5cacde28.0dfa3","wires":[["47e8e7a7.051148"]]},{"id":"99c029da.06b698","type":"for","name":"for each vnf","xml":"<for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":4640.166721343994,"y":1063.0861825942993,"z":"5cacde28.0dfa3","wires":[["41c3dd64.30b714"]]},{"id":"41c3dd64.30b714","type":"switchNode","name":"switch vnf-path-sequence-id == 1?","xml":"<switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\n  == 1`'>\n","comments":"","outputs":1,"x":4865.643230438232,"y":1062.372013092041,"z":"5cacde28.0dfa3","wires":[["8f533f3e.a8518"]]},{"id":"8f533f3e.a8518","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5073.024017333984,"y":1062.610029220581,"z":"5cacde28.0dfa3","wires":[["738a1d35.c17764"]]},{"id":"4936360a.1906b8","type":"set","name":"set right-vnf-instance-id","xml":"<set>\n<parameter name='right-vnf-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\n","comments":"","x":5375.881938934326,"y":1032.6100482940674,"z":"5cacde28.0dfa3","wires":[]},{"id":"9fe00645.cf8e88","type":"comment","name":"Find the left-most vnf in forwarding path","info":"","comments":"","x":4939.214065551758,"y":1019.7529678344727,"z":"5cacde28.0dfa3","wires":[]},{"id":"735a79c9.abd408","type":"comment","name":"Now find this vnf in the vnf-list","info":"","comments":"","x":4751.833309173584,"y":1108.0861959457397,"z":"5cacde28.0dfa3","wires":[]},{"id":"2306e699.673b4a","type":"for","name":"for each vnf in vnf-list","xml":"<for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\n","comments":"","outputs":1,"x":4665.833080291748,"y":1156.6575994491577,"z":"5cacde28.0dfa3","wires":[["700f2062.9e292"]]},{"id":"311a6c1f.09e334","type":"switchNode","name":"vnfs match?","xml":"<switch test='`$right-vnf-instance-id\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\n","comments":"","outputs":1,"x":4982.261646270752,"y":1154.276629447937,"z":"5cacde28.0dfa3","wires":[["f1a7e16c.13959"]]},{"id":"f1a7e16c.13959","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5122.97546005249,"y":1154.5146551132202,"z":"5cacde28.0dfa3","wires":[["2d8eb4e3.5b287c"]]},{"id":"2d8eb4e3.5b287c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":5254.404350280762,"y":1153.0861253738403,"z":"5cacde28.0dfa3","wires":[["5a32b0ce.179b","f1186572.d9a8c8"]]},{"id":"700f2062.9e292","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4834.404613494873,"y":1155.9433040618896,"z":"5cacde28.0dfa3","wires":[["311a6c1f.09e334"]]},{"id":"47e8e7a7.051148","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4500.166576385498,"y":1113.0862674713135,"z":"5cacde28.0dfa3","wires":[["99c029da.06b698","2306e699.673b4a","e7902090.6d387"]]},{"id":"a91f299f.b4ce68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3075.16650390625,"y":591.41965675354,"z":"5cacde28.0dfa3","wires":[["fd227b4b.f0ffb8","9465a266.5e7c9"]]},{"id":"9465a266.5e7c9","type":"break","name":"break","xml":"<break>\n","comments":"","x":3200.1667137145996,"y":604.7530136108398,"z":"5cacde28.0dfa3","wires":[]},{"id":"738a1d35.c17764","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":5198.500583648682,"y":1061.4196147918701,"z":"5cacde28.0dfa3","wires":[["4936360a.1906b8","a80f9638.465408"]]},{"id":"a80f9638.465408","type":"break","name":"break","xml":"<break>\n","comments":"","x":5326.834087371826,"y":1079.752932548523,"z":"5cacde28.0dfa3","wires":[]},{"id":"5a32b0ce.179b","type":"set","name":"set leftmost-vnf-index","xml":"<set>\n<parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index'\n  value='`$right-vnf-index`' />\n","comments":"","x":5425.168022155762,"y":1123.0863075256348,"z":"5cacde28.0dfa3","wires":[]},{"id":"f1186572.d9a8c8","type":"break","name":"break","xml":"<break>\n","comments":"","x":5380.16650390625,"y":1171.4195957183838,"z":"5cacde28.0dfa3","wires":[]},{"id":"e7902090.6d387","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4498.499622344971,"y":1329.7529735565186,"z":"5cacde28.0dfa3","wires":[["2b5f010a.30118e","cce9425a.efcca"]]},{"id":"41acde0.cf41f24","type":"for","name":"for each right vnf-network","xml":"<for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":5093.5,"y":1296.4195957183838,"z":"5cacde28.0dfa3","wires":[["5637518f.594ca"]]},{"id":"5637518f.594ca","type":"switchNode","name":"network-names match?","xml":"<switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\n","comments":"","outputs":1,"x":5332.785831451416,"y":1295.1695747375488,"z":"5cacde28.0dfa3","wires":[["3a7e5ac.2f314a6"]]},{"id":"3a7e5ac.2f314a6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5521.535797119141,"y":1293.919662475586,"z":"5cacde28.0dfa3","wires":[["5f1a9f69.2704c"]]},{"id":"5f1a9f69.2704c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":5653.499942779541,"y":1293.3839321136475,"z":"5cacde28.0dfa3","wires":[["fd2ce5af.8c2418","cb258198.3b184","b8b5a8aa.3c9ac8","5c565eda.45665"]]},{"id":"fd2ce5af.8c2418","type":"set","name":"set path-segment data","xml":"<set>\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\n\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\n<parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\n<parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\n  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />","comments":"","x":5840.642967224121,"y":1266.419662475586,"z":"5cacde28.0dfa3","wires":[]},{"id":"cb258198.3b184","type":"set","name":"set found-match = true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":5841.535873413086,"y":1314.9911079406738,"z":"5cacde28.0dfa3","wires":[]},{"id":"b8b5a8aa.3c9ac8","type":"break","name":"break","xml":"<break>\n","comments":"","x":5791.535816192627,"y":1362.133900642395,"z":"5cacde28.0dfa3","wires":[]},{"id":"5c565eda.45665","type":"set","name":"set ps-index","xml":"<set>\n<parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\n","comments":"","x":5809.214500427246,"y":1220.7053680419922,"z":"5cacde28.0dfa3","wires":[]},{"id":"2b5f010a.30118e","type":"for","name":"for each left vnf-network","xml":"<for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":4714.928375244141,"y":1327.8481073379517,"z":"5cacde28.0dfa3","wires":[["3d4f83d4.47877c"]]},{"id":"3d4f83d4.47877c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4894.928195953369,"y":1327.8481149673462,"z":"5cacde28.0dfa3","wires":[["41acde0.cf41f24","1274d00e.5974a"]]},{"id":"1274d00e.5974a","type":"switchNode","name":"switch found-match","xml":"<switch test='`$found-match`'>\n","comments":"","outputs":1,"x":5077.78564453125,"y":1359.2767114639282,"z":"5cacde28.0dfa3","wires":[["97cc168d.ec6678"]]},{"id":"97cc168d.ec6678","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5244.928497314453,"y":1357.8481645584106,"z":"5cacde28.0dfa3","wires":[["159334ea.42f55b"]]},{"id":"159334ea.42f55b","type":"break","name":"break","xml":"<break>\n","comments":"","x":5374.928565979004,"y":1356.4196119308472,"z":"5cacde28.0dfa3","wires":[]},{"id":"cce9425a.efcca","type":"set","name":"set right-vnf-index","xml":"<set>\n<parameter name='right-vnf-index'\n  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`' />\n","comments":"","x":4696.832870483398,"y":1261.4196453094482,"z":"5cacde28.0dfa3","wires":[]},{"id":"19a7e137.4341bf","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/gpsc.log' />\n","comments":"","outputs":1,"x":422.3095245361328,"y":241.89588737487793,"z":"5cacde28.0dfa3","wires":[[]]},{"id":"38807c57.9d8824","type":"set","name":"set cur-vnf-seq to 1","xml":"<set>\n<parameter name='cur-vnf-seq' value='1' />\n","comments":"","x":1360.619026184082,"y":1614.9194040298462,"z":"5cacde28.0dfa3","wires":[]},{"id":"6438b28e.eadbac","type":"set","name":"increment cur-vnf-seq","xml":"<set>\n<parameter name='cur-vnf-seq' value='`$cur-vnf-seq + 1`' />\n","comments":"","x":1871.8094635009766,"y":1851.2291269302368,"z":"5cacde28.0dfa3","wires":[]},{"id":"7ec23563.44488c","type":"set","name":"increment cur-vnf-seq","xml":"<set>\n<parameter name='cur-vnf-seq' value='`$max-vnf-seq + 1`' />\n","comments":"","x":1838.7145156860352,"y":2941.2291647195816,"z":"5cacde28.0dfa3","wires":[]},{"id":"5419a18d.9f41f","type":"switchNode","name":"switch lhs_vnf.vnf_length","xml":"<switch test='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`'>\n","comments":"","outputs":1,"x":1381.4524688720703,"y":1911.9434823989868,"z":"5cacde28.0dfa3","wires":[["4c26778b.8af5f8","80fb7f61.9da61","8a2b1b59.56e818"]]},{"id":"80fb7f61.9da61","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1568.595407485962,"y":1807.6575479507446,"z":"5cacde28.0dfa3","wires":[["e2c61db.dcf04e"]]},{"id":"8a2b1b59.56e818","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1559.6666831970215,"y":2077.4794006347656,"z":"5cacde28.0dfa3","wires":[["e1ab9e3e.6ed7a"]]},{"id":"4c26778b.8af5f8","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1568.5953578948975,"y":1847.6575908660889,"z":"5cacde28.0dfa3","wires":[["e2c61db.dcf04e"]]},{"id":"e1ab9e3e.6ed7a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1691.4524383544922,"y":2076.2294368743896,"z":"5cacde28.0dfa3","wires":[["9b80a5fb.c28e08","d9d965be.103cd8","8267f9f1.418958","d7943979.2ec028","6861dcd7.f00724","e2e3485b.93dbc8"]]},{"id":"9b80a5fb.c28e08","type":"set","name":"add service data to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length' value='1' />\n<parameter name='service-paths.service-path[$path-index].service[0].service-instance-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[0].service-path-sequence-id'\n  value='1' />\n","comments":"","x":1877.1667861938477,"y":1950.5149097442627,"z":"5cacde28.0dfa3","wires":[]},{"id":"d9d965be.103cd8","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' >\n","comments":"","outputs":1,"x":1841.4524955749512,"y":2039.086477279663,"z":"5cacde28.0dfa3","wires":[["8b62b8a0.22dc78"]]},{"id":"8b62b8a0.22dc78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1984.3095054626465,"y":2039.0864372253418,"z":"5cacde28.0dfa3","wires":[["71a23e89.4a5e5","b73b2b6e.469208","ca476712.61c428"]]},{"id":"71a23e89.4a5e5","type":"set","name":"add service node data to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-instance-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id'\n  value='`$vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].left-network-name'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].left-network-role'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].right-network-name'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].right-network-role'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\n","comments":"","x":2183.1191635131836,"y":2040.276720046997,"z":"5cacde28.0dfa3","wires":[]},{"id":"e2c61db.dcf04e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1698.5953426361084,"y":1824.8003950119019,"z":"5cacde28.0dfa3","wires":[["2c60d4e2.0aa0fc","6438b28e.eadbac"]]},{"id":"8267f9f1.418958","type":"set","name":"set max-vnf-seq and max-vnf-idx to -1","xml":"<set>\n<parameter name='max-vnf-seq' value='-1' />\n<parameter name='max-vnf-idx' value='-1' />\n","comments":"","x":1921.4524993896484,"y":1901.9435405731201,"z":"5cacde28.0dfa3","wires":[]},{"id":"b73b2b6e.469208","type":"switchNode","name":"vnf-path-sequence-id > max-vnf-seq?","xml":"<switch test='`$service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id\n  &gt; $max-vnf-seq`'>\n","comments":"","outputs":1,"x":2203.3572273254395,"y":2089.0862312316895,"z":"5cacde28.0dfa3","wires":[["f8a2cf80.ca5ee"]]},{"id":"f8a2cf80.ca5ee","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2429.071315765381,"y":2087.6575899124146,"z":"5cacde28.0dfa3","wires":[["86f34b82.a693d8"]]},{"id":"86f34b82.a693d8","type":"set","name":"set max-vnf-seq and max-vnf-idx","xml":"<set>\n<parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id`' />\n<parameter name='max-vnf-idx' value='`$idx`' />\n","comments":"","x":2640.4999046325684,"y":2086.229331970215,"z":"5cacde28.0dfa3","wires":[]},{"id":"d7943979.2ec028","type":"set","name":"set right network-name and role","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$max-vnf-idx].right-network-name'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$max-vnf-idx].right-network-role'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\n","comments":"","x":1901.9285736083984,"y":2204.8007259368896,"z":"5cacde28.0dfa3","wires":[]},{"id":"ca476712.61c428","type":"set","name":"set vnf-seq","xml":"<set>\n<parameter name='vnf-seq'\n  value='`$cur-vnf-seq + $serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\n","comments":"","x":2121.928565979004,"y":1993.3721570968628,"z":"5cacde28.0dfa3","wires":[]},{"id":"6861dcd7.f00724","type":"set","name":"increment cur-vnf-seq","xml":"<set>\n<parameter name='cur-vnf-seq'\n  value='`$cur-vnf-seq + $serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' />\n","comments":"","x":1869.0713958740234,"y":2156.2291927337646,"z":"5cacde28.0dfa3","wires":[]},{"id":"3b40b8ad.c94358","type":"switchNode","name":"switch rhs_vnf.vnf_length","xml":"<switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\n","comments":"","outputs":1,"x":3721.333507537842,"y":2510.7532749176025,"z":"5cacde28.0dfa3","wires":[["96436577.33d848","b7ece20f.a3485","8a8fa4d8.d3ad68"]]},{"id":"b7ece20f.a3485","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3943.4762783050537,"y":2396.467420578003,"z":"5cacde28.0dfa3","wires":[["3d55caf2.114306"]]},{"id":"8a8fa4d8.d3ad68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3934.547595977783,"y":2616.289240837097,"z":"5cacde28.0dfa3","wires":[["d100c18b.c21bb"]]},{"id":"96436577.33d848","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":3943.4762287139893,"y":2436.467463493347,"z":"5cacde28.0dfa3","wires":[["3d55caf2.114306"]]},{"id":"d100c18b.c21bb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4066.333351135254,"y":2615.039277076721,"z":"5cacde28.0dfa3","wires":[["2f0aa309.a7033c","d468123e.c127f","8cd54107.defcf","ca7e7af5.a633b8","c9219926.7bed88"]]},{"id":"d468123e.c127f","type":"set","name":"add service to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length'\n  value='`$service-paths.service-path[$path-index].service_length + 1`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\n  value='`$node-index + 1`' />\n","comments":"","x":4244.666717529297,"y":2514.0868034362793,"z":"5cacde28.0dfa3","wires":[]},{"id":"8cd54107.defcf","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' >\n","comments":"","outputs":1,"x":4220.619049072266,"y":2599.3249225616455,"z":"5cacde28.0dfa3","wires":[["e84d5b5a.e89418"]]},{"id":"e84d5b5a.e89418","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4363.476058959961,"y":2599.324882507324,"z":"5cacde28.0dfa3","wires":[["98191286.37051","103d9ed6.568e81","2f8ef053.b4912"]]},{"id":"98191286.37051","type":"set","name":"add service node data to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\n  value='`$vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\n","comments":"","x":4558.9524574279785,"y":2601.8487701416016,"z":"5cacde28.0dfa3","wires":[]},{"id":"2f0aa309.a7033c","type":"set","name":"set min-vnf-seq and min-vnf-idx to 99","xml":"<set>\n<parameter name='min-vnf-seq' value='99' />\n<parameter name='min-vnf-idx' value='99' />\n","comments":"","x":4298.952365875244,"y":2463.8486824035645,"z":"5cacde28.0dfa3","wires":[]},{"id":"103d9ed6.568e81","type":"switchNode","name":"vnf-path-sequence-id < min-vnf-seq?","xml":"<switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\n  &lt; $min-vnf-seq`'>\n","comments":"","outputs":1,"x":4582.523780822754,"y":2649.324676513672,"z":"5cacde28.0dfa3","wires":[["a12f6579.3e8208"]]},{"id":"a12f6579.3e8208","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4808.237869262695,"y":2647.896035194397,"z":"5cacde28.0dfa3","wires":[["dff2f6d9.1c2fd8"]]},{"id":"dff2f6d9.1c2fd8","type":"set","name":"set min-vnf-seq and min-vnf-idx","xml":"<set>\n<parameter name='min-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\n<parameter name='min-vnf-idx' value='`$idx`' />\n","comments":"","x":5019.666458129883,"y":2646.4677772521973,"z":"5cacde28.0dfa3","wires":[]},{"id":"ca7e7af5.a633b8","type":"set","name":"set left network-name and role","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-name'\n  value='`$prev-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-role'\n  value='`$prev-network-role`' />\n","comments":"","x":4279.428272247314,"y":2700.039125442505,"z":"5cacde28.0dfa3","wires":[]},{"id":"2f8ef053.b4912","type":"set","name":"set vnf-seq","xml":"<set>\n<parameter name='vnf-seq'\n  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\n","comments":"","x":4501.095119476318,"y":2553.610602378845,"z":"5cacde28.0dfa3","wires":[]},{"id":"ba56bc8d.c862f","type":"switchNode","name":"switch rhs_vnf.vnf_length","xml":"<switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\n","comments":"","outputs":1,"x":3580.416534423828,"y":2934.8363456726074,"z":"5cacde28.0dfa3","wires":[["6ef740d7.ab8bf","9a871bcd.949e38","97539162.9e32e"]]},{"id":"9a871bcd.949e38","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3765.892644882202,"y":2810.550322532654,"z":"5cacde28.0dfa3","wires":[["1b8e535d.ea704d"]]},{"id":"97539162.9e32e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3758.630790710449,"y":3050.3722314834595,"z":"5cacde28.0dfa3","wires":[["56ed4500.5cf57c"]]},{"id":"6ef740d7.ab8bf","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":3765.8925952911377,"y":2850.550365447998,"z":"5cacde28.0dfa3","wires":[["1b8e535d.ea704d"]]},{"id":"56ed4500.5cf57c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3890.41654586792,"y":3049.1222677230835,"z":"5cacde28.0dfa3","wires":[["25c3f34.453890c","6d7ca50f.5c9f5c","7162b8c9.40d708","fa017dc5.4429c","35f9a6cd.14d2ba"]]},{"id":"6d7ca50f.5c9f5c","type":"set","name":"add service to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service_length'\n  value='`$service-paths.service-path[$path-index].service_length + 1`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\n  value='`$node-index + 1`' />\n","comments":"","x":4068.749912261963,"y":2948.1697940826416,"z":"5cacde28.0dfa3","wires":[]},{"id":"7162b8c9.40d708","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' >\n","comments":"","outputs":1,"x":4044.7022438049316,"y":3033.407913208008,"z":"5cacde28.0dfa3","wires":[["1108ae21.339162"]]},{"id":"1108ae21.339162","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4187.559253692627,"y":3033.4078731536865,"z":"5cacde28.0dfa3","wires":[["fdd66dd1.e42d9","4eaaffe2.b17c4","a88ed994.87c1c8"]]},{"id":"25c3f34.453890c","type":"set","name":"set max-vnf-seq and max-vnf-idx to -1","xml":"<set>\n<parameter name='max-vnf-seq' value='-1' />\n<parameter name='max-vnf-idx' value='-1' />\n","comments":"","x":4123.03556060791,"y":2897.9316730499268,"z":"5cacde28.0dfa3","wires":[]},{"id":"fdd66dd1.e42d9","type":"switchNode","name":"vnf-path-sequence-id > max-vnf-seq?","xml":"<switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\n  &gt; $max-vnf-seq`'>\n","comments":"","outputs":1,"x":4406.60697555542,"y":3083.407667160034,"z":"5cacde28.0dfa3","wires":[["5ce7f344.05a40c"]]},{"id":"5ce7f344.05a40c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4632.321063995361,"y":3081.9790258407593,"z":"5cacde28.0dfa3","wires":[["c1d8a9c8.833a88"]]},{"id":"c1d8a9c8.833a88","type":"set","name":"set max-vnf-seq and max-vnf-idx","xml":"<set>\n<parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\n<parameter name='max-vnf-idx' value='`$idx`' />\n","comments":"","x":4843.749652862549,"y":3080.5507678985596,"z":"5cacde28.0dfa3","wires":[]},{"id":"fa017dc5.4429c","type":"set","name":"set right network-name and role","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\n","comments":"","x":4103.5114669799805,"y":3134.122116088867,"z":"5cacde28.0dfa3","wires":[]},{"id":"4eaaffe2.b17c4","type":"set","name":"set vnf-seq","xml":"<set>\n<parameter name='vnf-seq'\n  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\n","comments":"","x":4325.178314208984,"y":2987.6935930252075,"z":"5cacde28.0dfa3","wires":[]},{"id":"a88ed994.87c1c8","type":"set","name":"add service node data to path","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\n  value='`$vnf-seq`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\n\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\n","comments":"","x":4382.999977111816,"y":3035.753180503845,"z":"5cacde28.0dfa3","wires":[]},{"id":"30084bb6.339224","type":"set","name":"set end-to-end-path to false","xml":"<set>\n<parameter name='end-to-end-path' value='false' />\n","comments":"","x":1385.5000686645508,"y":1660.7531042099,"z":"5cacde28.0dfa3","wires":[]},{"id":"665849ce.a4ea48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3524.6670722961426,"y":2549.08647441864,"z":"5cacde28.0dfa3","wires":[["3b40b8ad.c94358","fc25949d.423d38"]]},{"id":"fc25949d.423d38","type":"set","name":"set end-to-end-path to true","xml":"<set>\n<parameter name='end-to-end-path' value='true' />\n","comments":"","x":3723.0002479553223,"y":2572.4198083877563,"z":"5cacde28.0dfa3","wires":[]},{"id":"35f9a6cd.14d2ba","type":"set","name":"set vnf_length","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' />\n","comments":"","x":4049.6666870117188,"y":3174.324944496155,"z":"5cacde28.0dfa3","wires":[]},{"id":"c9219926.7bed88","type":"set","name":"set vnf_length","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\n  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' />\n","comments":"","x":4226.333469390869,"y":2745.753108024597,"z":"5cacde28.0dfa3","wires":[]},{"id":"e2e3485b.93dbc8","type":"set","name":"set vnf_length","xml":"<set>\n<parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf_length'\n  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' />\n","comments":"","x":1845.4999694824219,"y":2250.752883911133,"z":"5cacde28.0dfa3","wires":[]},{"id":"75d577c9.53e138","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/gpsd.log' />\n","comments":"","outputs":1,"x":362.8571472167969,"y":1680,"z":"5cacde28.0dfa3","wires":[[]]},{"id":"6efb0085.c861d","type":"switchNode","name":"switch path-segments_length","xml":"<switch test='`$serv-cust[0].serv-insts[$first-serv-index].path-segments_length`'>\n","comments":"","outputs":1,"x":750,"y":2026.5,"z":"5cacde28.0dfa3","wires":[["bcfeaa86.4e3178","885eede8.38c45","3ff4421e.b9316e"]]},{"id":"bcfeaa86.4e3178","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":982,"y":1908,"z":"5cacde28.0dfa3","wires":[["b8f6cf1f.962d4"]]},{"id":"3ff4421e.b9316e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":973.0712757110596,"y":2177.821852684021,"z":"5cacde28.0dfa3","wires":[["fefe27b3.5a2c68"]]},{"id":"885eede8.38c45","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":981.9999504089355,"y":1948.0000429153442,"z":"5cacde28.0dfa3","wires":[["b8f6cf1f.962d4"]]},{"id":"b8f6cf1f.962d4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1116,"y":1928,"z":"5cacde28.0dfa3","wires":[[]]},{"id":"3ad3e612.c9cc2a","type":"comment","name":"this service has no path to anything","info":"","comments":"","x":1024,"y":1864,"z":"5cacde28.0dfa3","wires":[]},{"id":"65851b43.a70314","type":"switchNode","name":"switch path-segments_length","xml":"<switch test='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments_length`'>\n","comments":"","outputs":1,"x":2098,"y":2685,"z":"5cacde28.0dfa3","wires":[["f41beb6d.61ca38","1f8f0d5.620e6f3","9156e4f0.9225d8"]]},{"id":"f41beb6d.61ca38","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2312,"y":2624,"z":"5cacde28.0dfa3","wires":[["717e9d33.af8904"]]},{"id":"1f8f0d5.620e6f3","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2311.9999504089355,"y":2664.0000429153442,"z":"5cacde28.0dfa3","wires":[["717e9d33.af8904"]]},{"id":"c54bb090.45a03","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2849.333122253418,"y":2612.333109855652,"z":"5cacde28.0dfa3","wires":[[]]},{"id":"f0275c56.68154","type":"comment","name":"this service has no path to anything","info":"","comments":"","x":2897.333267211914,"y":2566.6666870117188,"z":"5cacde28.0dfa3","wires":[]},{"id":"9156e4f0.9225d8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2314,"y":2734,"z":"5cacde28.0dfa3","wires":[["a3466db9.3197e"]]},{"id":"717e9d33.af8904","type":"switchNode","name":"is this the last node in the path","xml":"<switch test='`$node-index == $serv-cust_length - 1`'>\n","comments":"","outputs":1,"x":2516.66650390625,"y":2641.66650390625,"z":"5cacde28.0dfa3","wires":[["d622c231.39e0e","8d8ed6c3.5ae7b8"]]},{"id":"8d8ed6c3.5ae7b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2721.66650390625,"y":2666.66650390625,"z":"5cacde28.0dfa3","wires":[["a3466db9.3197e"]]},{"id":"d622c231.39e0e","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2721.66650390625,"y":2613.333251953125,"z":"5cacde28.0dfa3","wires":[["c54bb090.45a03"]]},{"id":"1b8e535d.ea704d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3894.9995040893555,"y":2830.0000324249268,"z":"5cacde28.0dfa3","wires":[["bb3c7e5a.29289","c91b78fc.c1add8"]]},{"id":"c91b78fc.c1add8","type":"set","name":"set max-vnf-seq","xml":"<set>\n<parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\n","comments":"","x":4051.6668243408203,"y":2846.6668605804443,"z":"5cacde28.0dfa3","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.json
new file mode 100755 (executable)
index 0000000..84357a9
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"38b3fdb6.1bce32","type":"dgstart","name":"DGSTART","outputs":1,"x":101.66666412353516,"y":83.33332824707031,"z":"acdffee6.4646","wires":[["99e272a4.4e9a8"]]},{"id":"99e272a4.4e9a8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":216.95236206054688,"y":123.5714340209961,"z":"acdffee6.4646","wires":[["1e63d80b.85a448"]]},{"id":"1e63d80b.85a448","type":"method","name":"method getpathsegment-create-composite-path","xml":"<method rpc='getpathsegment-create-composite-path' mode='sync'>\n","comments":"","outputs":1,"x":221.0952911376953,"y":164.3333225250244,"z":"acdffee6.4646","wires":[["df2ed6c2.cce068"]]},{"id":"1c6cd94a.dfdc47","type":"comment","name":"getpathsegment-create-composite-path","info":"","comments":"","x":496.0115203857422,"y":30.9196720123291,"z":"acdffee6.4646","wires":[]},{"id":"df2ed6c2.cce068","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":304.5000534057617,"y":303.46728324890137,"z":"acdffee6.4646","wires":[["fc83ec6a.1d401","d895c970.3dbc78"]]},{"id":"fc83ec6a.1d401","type":"get-resource","name":"get-resource PATH_SEGMENT","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from PATH_SEGMENT WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n    AND path_name = $db.forwarding-path[$path-index].path-name ORDER BY path_segment_seq'\n  pfx='db.path-segment[]'>\n\n","comments":"","outputs":1,"x":527.6190452575684,"y":373.0952377319336,"z":"acdffee6.4646","wires":[["7ff0a241.207e8c","8b411eeb.03fd7","e62cb2cc.8b1b1"]]},{"id":"c64c7acf.8db458","type":"for","name":"for each path segment","xml":"<for index='path-segment-index' start='0' end='`$db.path-segment_length`' >\n","comments":"","outputs":1,"x":560.7738571166992,"y":557.4404888153076,"z":"acdffee6.4646","wires":[["c804b632.fcc3c8"]]},{"id":"c804b632.fcc3c8","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":758.9286117553711,"y":557.261869430542,"z":"acdffee6.4646","wires":[["4637dda4.0531c4","c55591ca.552ba"]]},{"id":"227d76b8.b8f89a","type":"set","name":"set serv-cust_length to 0","xml":"<set>\n<parameter name='serv-cust_length' value='0' />\n","comments":"","x":569.1667022705078,"y":509.58334255218506,"z":"acdffee6.4646","wires":[]},{"id":"4637dda4.0531c4","type":"set","name":"add source ids to serv-cust[]","xml":"<set>\n<parameter name='serv-cust[$serv-cust_length].id' value='`$db.path-segment[$path-segment-index].source-association-uuid`' />\n<parameter name='serv-cust_length' value='`$serv-cust_length + 1`' />\n","comments":"","x":984.1667098999023,"y":535.8333425521851,"z":"acdffee6.4646","wires":[]},{"id":"c55591ca.552ba","type":"switchNode","name":"is this the last path-segment?","xml":"<switch test='`$path-segment-index == ( $db.path-segment_length - 1) `'>\n","comments":"","outputs":1,"x":987.9167175292969,"y":580.8333435058594,"z":"acdffee6.4646","wires":[["f40592ef.6d056"]]},{"id":"f40592ef.6d056","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1184.1667194366455,"y":580.5833435058594,"z":"acdffee6.4646","wires":[["65efc56f.f80dcc"]]},{"id":"65efc56f.f80dcc","type":"set","name":"add target ids to serv-cust[]","xml":"<set>\n<parameter name='serv-cust[$serv-cust_length].id' value='`$db.path-segment[$path-segment-index].target-association-uuid`' />\n<parameter name='serv-cust_length' value='`$serv-cust_length + 1`' />\n","comments":"","x":1373.1667137145996,"y":579.8333435058594,"z":"acdffee6.4646","wires":[]},{"id":"d6d2ff5a.a38e6","type":"comment","name":"create list of service customization/invariant ids","info":"","comments":"","x":750.0000495910645,"y":460.41664600372314,"z":"acdffee6.4646","wires":[]},{"id":"eba93f08.848f6","type":"get-resource","name":"custom query - get runtime service-instances","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"custom-query\"\n\tkey=\"format = 'resource'\"\n\tforce=\"true\"\n\tlocal-only=\"false\"\n\tpfx=\"aai.service-instances\" >\n\t<parameter name=\"start[0]\" value=\"`'nodes/service-instances?model-invariant-id=' + $serv-cust[$serv-index].inv-id`\" />\n\t<parameter name=\"start_length\" value=\"1\" />\n","comments":"","outputs":1,"x":1164.1666870117188,"y":815.5833110809326,"z":"acdffee6.4646","wires":[["4c07202b.a6ebd","465c9f69.063cf","dc42dfdf.fdb5"]]},{"id":"465c9f69.063cf","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1425.9129028320312,"y":806.4841794967651,"z":"acdffee6.4646","wires":[["e9829c01.c3518"]]},{"id":"4c07202b.a6ebd","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1434.8414993286133,"y":764.7699127197266,"z":"acdffee6.4646","wires":[["22fcdcd6.409e54"]]},{"id":"d895c970.3dbc78","type":"set","name":"set match-type","xml":"<set>\n<parameter name='match-type' value='network-name' />\n","comments":"","x":475.00000762939453,"y":243.33336734771729,"z":"acdffee6.4646","wires":[]},{"id":"3337a2c8.4f2c0e","type":"for","name":"for each service","xml":"<for index='serv-index' start='0' end='`$serv-cust_length`' >\n","comments":"","outputs":1,"x":542.9166564941406,"y":795.8333034515381,"z":"acdffee6.4646","wires":[["ea262156.5bc25"]]},{"id":"ba80debf.cd0aa","type":"for","name":"for each runtime service-instance","xml":"<for index='runtime-index' start='0' end='`$aai.service-instances.results_length`' >\n","comments":"","outputs":1,"x":1787.3809661865234,"y":897.261890411377,"z":"acdffee6.4646","wires":[["f4f23919.fbf798"]]},{"id":"37e396a3.2783fa","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1601.487964630127,"y":1169.583387374878,"z":"acdffee6.4646","wires":[["e16fa584.ce8668","c9267106.d99d1","b7b866f.22cfd98","9f400084.68537","a4663c40.d0b5d"]]},{"id":"22fcdcd6.409e54","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'Unable to find runtime service instances for invariant UUID ' + $serv-cust[$serv-index].inv-id`\" />\n","comments":"","x":1639.1667098999023,"y":764.5833187103271,"z":"acdffee6.4646","wires":[]},{"id":"e9829c01.c3518","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'System error finding runtime service instances for customization UUID ' + $serv-cust[$serv-index].inv-id`\" />\n","comments":"","x":1637.9166870117188,"y":805.8333110809326,"z":"acdffee6.4646","wires":[]},{"id":"dc42dfdf.fdb5","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1427.5595741271973,"y":895.6547050476074,"z":"acdffee6.4646","wires":[["1a046dd0.664552"]]},{"id":"1a046dd0.664552","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1568.8095741271973,"y":896.9047050476074,"z":"acdffee6.4646","wires":[["ba80debf.cd0aa","5a25eaf8.84c624","2fed2a61.3ba6d6"]]},{"id":"c9267106.d99d1","type":"execute","name":"generate port-mirror-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.service-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$serv-inst.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1911.4878692626953,"y":1190.8334407806396,"z":"acdffee6.4646","wires":[[]]},{"id":"b7b866f.22cfd98","type":"execute","name":"execute RestApiCallNode - get service","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-service\" />\n\n","comments":"","outputs":1,"x":1918.8212051391602,"y":1473.9286651611328,"z":"acdffee6.4646","wires":[["44737e00.fd61a","e1d027ae.6e1bf8"]]},{"id":"44737e00.fd61a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2181.367099761963,"y":1296.1292266845703,"z":"acdffee6.4646","wires":[["73b87896.db1488"]]},{"id":"e1d027ae.6e1bf8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2182.809181213379,"y":1772.3094692230225,"z":"acdffee6.4646","wires":[["e72fa4b8.6bb8f8"]]},{"id":"8d022a9b.038888","type":"comment","name":"Is this service in GENERIC-RESOURCE-API?","info":"","comments":"","x":1925.2497940063477,"y":1426.4286623001099,"z":"acdffee6.4646","wires":[]},{"id":"e16fa584.ce8668","type":"set","name":"clear mdsal-service and serv-inst.api","xml":"<set>\n<parameter name='mdsal-service.' value='' />\n<parameter name='serv-inst.api' value='' />\n","comments":"","x":1907.0712242126465,"y":1139.9405155181885,"z":"acdffee6.4646","wires":[]},{"id":"8786ac57.03e15","type":"set","name":"set serv-inst.service-instance-id","xml":"<set>\n<parameter name='serv-inst.service-instance-id' value='`$aai.service-instances.results[$runtime-index].service-instance.service-instance-id`' />\n","comments":"","x":2592.880962371826,"y":814.6428813934326,"z":"acdffee6.4646","wires":[]},{"id":"73b87896.db1488","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":2335.2379302978516,"y":1295.0833110809326,"z":"acdffee6.4646","wires":[["bae35c98.23485"]]},{"id":"bae35c98.23485","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$mdsal-service.service[0].service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":2520.237953186035,"y":1293.8333282470703,"z":"acdffee6.4646","wires":[["5de50820.6365a8","6a33778b.f0d2b8","8b08a0fc.3d573","156859cc.f57d36"]]},{"id":"5de50820.6365a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2698.988010406494,"y":1145.8333530426025,"z":"acdffee6.4646","wires":[["5d43b7a0.cc8368"]]},{"id":"6a33778b.f0d2b8","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2700.238010406494,"y":1184.5833530426025,"z":"acdffee6.4646","wires":[["5d43b7a0.cc8368"]]},{"id":"8b08a0fc.3d573","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2700.737949371338,"y":1520.8333282470703,"z":"acdffee6.4646","wires":[["7f9faf98.11444"]]},{"id":"7f9faf98.11444","type":"switchNode","name":"switch forwarding-path_length","xml":"<switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`'>\n","comments":"","outputs":1,"x":2916.987953186035,"y":1522.0833282470703,"z":"acdffee6.4646","wires":[["b12a45c2.9c00f8","df779983.f9ee18","efeee58f.366df8"]]},{"id":"156859cc.f57d36","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":2703.988010406494,"y":1324.8333549499512,"z":"acdffee6.4646","wires":[["d321c3e5.b08ea"]]},{"id":"b12a45c2.9c00f8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3128.9879837036133,"y":1458.3333358764648,"z":"acdffee6.4646","wires":[["6574fc05.7aa8d4"]]},{"id":"df779983.f9ee18","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":3130.2379837036133,"y":1497.0833358764648,"z":"acdffee6.4646","wires":[["6574fc05.7aa8d4"]]},{"id":"efeee58f.366df8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3127.3809661865234,"y":1591.7262210845947,"z":"acdffee6.4646","wires":[["cbc2b125.4a032"]]},{"id":"5d43b7a0.cc8368","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`\" />\n","comments":"","x":2897.7379837036133,"y":1163.3333358764648,"z":"acdffee6.4646","wires":[]},{"id":"6574fc05.7aa8d4","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Service instance ' + $serv-inst.service-instance-id + ' has multiple VNFs but no forwarding paths were found'`\" />\n","comments":"","x":3317.7379837036133,"y":1475.8333358764648,"z":"acdffee6.4646","wires":[]},{"id":"389f4f59.b5385","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-populate-from-grapi","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' >\n","comments":"","outputs":1,"x":3186.737953186035,"y":1274.0833282470703,"z":"acdffee6.4646","wires":[[]]},{"id":"ed8af0c2.a5e1e","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-populate-from-vnfapi","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-vnfapi' mode='sync' >\n","comments":"","outputs":1,"x":2647.80948638916,"y":1723.0832061767578,"z":"acdffee6.4646","wires":[[]]},{"id":"a8c16a6d.0d2f18","type":"success","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2661.2022552490234,"y":1910.5475997924805,"z":"acdffee6.4646","wires":[["ac5e9274.a71eb"]]},{"id":"23ce8b1d.277d04","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2658.7022666931152,"y":1776.6310663223267,"z":"acdffee6.4646","wires":[["1300cf7.befc831"]]},{"id":"1300cf7.befc831","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Failure finding service instance ' + $si.service-instance-id + ' in either GENERIC-REOURCE-API or VNF-API'`\" />\n","comments":"","x":2872.452236175537,"y":1775.1310510635376,"z":"acdffee6.4646","wires":[]},{"id":"ac5e9274.a71eb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2812.4525032043457,"y":1909.2975997924805,"z":"acdffee6.4646","wires":[["bab97280.4fcff"]]},{"id":"3f21a433.f89dbc","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":3074.237953186035,"y":1327.8333282470703,"z":"acdffee6.4646","wires":[]},{"id":"f723823c.14d35","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\n","comments":"","x":3055.487922668457,"y":1382.833309173584,"z":"acdffee6.4646","wires":[]},{"id":"d321c3e5.b08ea","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":2853.9879837036133,"y":1324.5833358764648,"z":"acdffee6.4646","wires":[["389f4f59.b5385","3f21a433.f89dbc","f723823c.14d35"]]},{"id":"5a25eaf8.84c624","type":"set","name":"set tmp.serv-insts_length to 0","xml":"<set>\n<parameter name='tmp.serv-insts_length' value='0' />\n","comments":"","x":1781.1309967041016,"y":848.1547393798828,"z":"acdffee6.4646","wires":[]},{"id":"e72fa4b8.6bb8f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2309.297294616699,"y":1780.047555923462,"z":"acdffee6.4646","wires":[["ed8af0c2.a5e1e","78b047cf.ed86c8"]]},{"id":"78b047cf.ed86c8","type":"switchNode","name":"switch serv-inst.api","xml":"<switch test='`$serv-inst.api`'>\n","comments":"","outputs":1,"x":2492.393165588379,"y":1845.1666173934937,"z":"acdffee6.4646","wires":[["23ce8b1d.277d04","a8c16a6d.0d2f18"]]},{"id":"2de86e6.3962e92","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":3539.0593872070312,"y":2006.5000267028809,"z":"acdffee6.4646","wires":[]},{"id":"f4f23919.fbf798","type":"switchNode","name":"switch orchestration-status","xml":"<switch test='`$aai.service-instances.results[$runtime-index].service-instance.orchestration-status`'>\n","comments":"","outputs":1,"x":2059.7024688720703,"y":897.0832557678223,"z":"acdffee6.4646","wires":[["83f502d6.2f5a4"]]},{"id":"83f502d6.2f5a4","type":"outcome","name":"Active","xml":"<outcome value='Active'>\n","comments":"","outputs":1,"x":2254.1665954589844,"y":895.8332214355469,"z":"acdffee6.4646","wires":[["442aff0f.a1283"]]},{"id":"1398c294.3f952d","type":"for","name":"for each service","xml":"<for index='serv-index' start='0' end='`$serv-cust_length`' >\n","comments":"","outputs":1,"x":539.583366394043,"y":668.7500200271606,"z":"acdffee6.4646","wires":[["ecfee624.daec78"]]},{"id":"f6adfe96.32d5f","type":"comment","name":"convert customization uuid to invariant uuid","info":"","comments":"","x":668.3334045410156,"y":626.250018119812,"z":"acdffee6.4646","wires":[]},{"id":"15831d68.36e8b3","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1121.2024307250977,"y":625.3093452453613,"z":"acdffee6.4646","wires":[["be78a9fd.371368"]]},{"id":"745ebab0.1a84e4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1127.2738418579102,"y":666.0950517654419,"z":"acdffee6.4646","wires":[["dfab331.23ebcd"]]},{"id":"ecfee624.daec78","type":"get-resource","name":"get-resource SERVICE_PROXY, SERVICE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select sm.invariant_uuid\n    from SERVICE_PROXY sp, SERVICE_MODEL sm\n    where sp.parent_service_uuid = sm.service_uuid\n    and sp.customization_uuid = $serv-cust[$serv-index].id'\n  pfx='db'>\n","comments":"","outputs":1,"x":844.5238189697266,"y":668.5714359283447,"z":"acdffee6.4646","wires":[["15831d68.36e8b3","745ebab0.1a84e4","577c9bbc.66ccc4"]]},{"id":"577c9bbc.66ccc4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1122.083351135254,"y":707.5000200271606,"z":"acdffee6.4646","wires":[["1848871c.fbafd9"]]},{"id":"1848871c.fbafd9","type":"set","name":"store invariant id","xml":"<set>\n<parameter name='serv-cust[$serv-index].inv-id' value='`$db.invariant-uuid`' />\n","comments":"","x":1287.0833587646484,"y":707.5000200271606,"z":"acdffee6.4646","wires":[]},{"id":"be78a9fd.371368","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'Failure reading SERVICE_PROXY and SERVICE_MODEL for customization uuid ' + $serv-cust[$serv-index].id`\" />\n","comments":"","x":1315.8333549499512,"y":625.0000190734863,"z":"acdffee6.4646","wires":[]},{"id":"dfab331.23ebcd","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'Cannot find entries in SERVICE_PROXY and SERVICE_MODEL for customization uuid ' + $serv-cust[$serv-index].id`\" />\n","comments":"","x":1315.8333358764648,"y":665.0000104904175,"z":"acdffee6.4646","wires":[]},{"id":"ea262156.5bc25","type":"switchNode","name":"switch invariant uuid","xml":"<switch test='`$serv-cust[$serv-index].inv-id`'>\n","comments":"","outputs":1,"x":741.6666793823242,"y":794.5833110809326,"z":"acdffee6.4646","wires":[["6e5ea8a8.3f7578","38fd826b.e7840e"]]},{"id":"6e5ea8a8.3f7578","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":907.9166831970215,"y":765.8333110809326,"z":"acdffee6.4646","wires":[["458e60e8.0fa83"]]},{"id":"38fd826b.e7840e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":908.7381553649902,"y":816.1192016601562,"z":"acdffee6.4646","wires":[["eba93f08.848f6"]]},{"id":"458e60e8.0fa83","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1044.1666831970215,"y":765.0833101272583,"z":"acdffee6.4646","wires":[[]]},{"id":"3b868648.17a23a","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-composite-match-pair","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-composite-match-pair' mode='sync' >\n","comments":"","outputs":1,"x":687.9287109375,"y":2361.2736377716064,"z":"acdffee6.4646","wires":[[]]},{"id":"cbc2b125.4a032","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":3256.1309661865234,"y":1591.7262210845947,"z":"acdffee6.4646","wires":[["e63540a5.81689","c13e34b7.f42fb8","a14b9b6d.2bbee8","7ace4a44.fb42f4"]]},{"id":"e63540a5.81689","type":"set","name":"copy forwarding-paths to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].forwarding-paths.'\n  value='`$mdsal-service.service[0].service-data.forwarding-paths.`' />\n","comments":"","x":3503.988082885742,"y":1615.2975959777832,"z":"acdffee6.4646","wires":[]},{"id":"c13e34b7.f42fb8","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\n","comments":"","x":3462.5592651367188,"y":1662.0834131240845,"z":"acdffee6.4646","wires":[]},{"id":"a14b9b6d.2bbee8","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-populate-from-grapi","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' >\n","comments":"","outputs":1,"x":3588.2736282348633,"y":1527.0833358764648,"z":"acdffee6.4646","wires":[[]]},{"id":"7ace4a44.fb42f4","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":3475.4166946411133,"y":1568.5119247436523,"z":"acdffee6.4646","wires":[]},{"id":"9f400084.68537","type":"set","name":"clear serv-inst","xml":"<set>\n<parameter name='serv-inst.' value='' />\n","comments":"","x":1837.9879150390625,"y":1518.511981010437,"z":"acdffee6.4646","wires":[]},{"id":"2fed2a61.3ba6d6","type":"set","name":"set final serv-insts_length","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts_length' value='`$tmp.serv-insts_length`' />\n","comments":"","x":1765.4167137145996,"y":942.7975521087646,"z":"acdffee6.4646","wires":[]},{"id":"e2bb1296.6a77f","type":"comment","name":"Create forwarding-path structure","info":"","comments":"","x":1804.2026138305664,"y":2759.249895095825,"z":"acdffee6.4646","wires":[]},{"id":"9c1deb3.fce3a18","type":"switchNode","name":"switch service-paths.service-path_length","xml":"<switch test='`$service-paths.service-path_length`'>\n","comments":"","outputs":1,"x":588.7024993896484,"y":2585.0833568573,"z":"acdffee6.4646","wires":[["c17848c4.7aa328","891625b0.f7b498","2b7b5767.caf788"]]},{"id":"c17848c4.7aa328","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":868.7024803161621,"y":2441.7497968673706,"z":"acdffee6.4646","wires":[["9234ee5.d733b1"]]},{"id":"891625b0.f7b498","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":869.9524803161621,"y":2480.4997968673706,"z":"acdffee6.4646","wires":[["9234ee5.d733b1"]]},{"id":"2b7b5767.caf788","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":865.9524955749512,"y":2712.0001287460327,"z":"acdffee6.4646","wires":[["db0b5e4d.138fb"]]},{"id":"9234ee5.d733b1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1002.0358390808105,"y":2455.0831298828125,"z":"acdffee6.4646","wires":[[]]},{"id":"9957ee7a.eb839","type":"set","name":"set top-level data","xml":"<set>\n<parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\n<parameter name='forwarding-path.forwarding-path-type' value='Service' />\n<parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\n","comments":"","x":1715.0359230041504,"y":2846.749963760376,"z":"acdffee6.4646","wires":[]},{"id":"2464da2e.bc2576","type":"execute","name":"generate forwarding-path-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"forwarding-path.forwarding-path-id\" />\n","comments":"","outputs":1,"x":1747.1192169189453,"y":2800.916626930237,"z":"acdffee6.4646","wires":[[]]},{"id":"5d113599.9797dc","type":"set","name":"copy service-path","xml":"<set>\n<parameter name='forwarding-path.service-paths.' value='`$service-paths.`' />\n","comments":"","x":1713.3692474365234,"y":2891.7502098083496,"z":"acdffee6.4646","wires":[]},{"id":"654073a0.8dc7dc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1525.0359649658203,"y":3155.0832328796387,"z":"acdffee6.4646","wires":[["2464da2e.bc2576","9957ee7a.eb839","5d113599.9797dc","7ecab0fa.15895","76d060fc.5c71a","94003a26.69b068","532dd116.0d3c4"]]},{"id":"a4663c40.d0b5d","type":"switchNode","name":"switch runtime-index","xml":"<switch test='`$runtime-index`'>\n","comments":"","outputs":1,"x":1859.7022666931152,"y":1011.8452968597412,"z":"acdffee6.4646","wires":[["4db5c1dc.9f95c"]]},{"id":"4db5c1dc.9f95c","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2029.7022972106934,"y":1011.8453140258789,"z":"acdffee6.4646","wires":[["dcb4004e.9356a"]]},{"id":"dcb4004e.9356a","type":"set","name":"save service.service-role","xml":"<set>\n<parameter name='service.service-role' value='`$aai.service-instances.results[0].service-instance.service-role`' />\n","comments":"","x":2208.2736206054688,"y":1011.8452968597412,"z":"acdffee6.4646","wires":[]},{"id":"442aff0f.a1283","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2380.416763305664,"y":895.4166278839111,"z":"acdffee6.4646","wires":[["37e396a3.2783fa","efbbd2cc.0e547","8786ac57.03e15"]]},{"id":"efbbd2cc.0e547","type":"switchNode","name":"switch output-global-customer-id","xml":"<switch test='`$output-global-customer-id`'>\n","comments":"","outputs":1,"x":2595.4166717529297,"y":860.4166126251221,"z":"acdffee6.4646","wires":[["9b84fbe4.e396d8"]]},{"id":"9b84fbe4.e396d8","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2802.0833892822266,"y":858.7499856948853,"z":"acdffee6.4646","wires":[["6b285851.2f4b58"]]},{"id":"30bb031c.093bcc","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":3375.416572570801,"y":855.4166278839111,"z":"acdffee6.4646","wires":[["b34e010d.49543","966e7225.52122"]]},{"id":"6b285851.2f4b58","type":"save","name":"custom query: get service instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource_and_url'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.si\">\n\t<parameter name=\"start[0]\" value=\"`'nodes/service-instance/' + $serv-inst.service-instance-id `\" />\n\t<parameter name=\"start_length\" value=\"1\" />\n","comments":"","outputs":1,"x":3020.416534423828,"y":857.083399772644,"z":"acdffee6.4646","wires":[["5e0c0bf4.dca7b4"]]},{"id":"b34e010d.49543","type":"execute","name":"execute split","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n\t<parameter name=\"original_string\" value=\"`$tmp.AnAI-data.si.results[0].url`\" />\n\t<parameter name=\"regex\" value=\"/\"/>\n\t<parameter name=\"limit\" value=\"11\" />\n\t<parameter name=\"ctx_memory_result_key\" value=\"split\" />\n","comments":"","outputs":1,"x":3528.749973297119,"y":835.4167575836182,"z":"acdffee6.4646","wires":[[]]},{"id":"5e0c0bf4.dca7b4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3242.0832595825195,"y":856.7500123977661,"z":"acdffee6.4646","wires":[["30bb031c.093bcc"]]},{"id":"966e7225.52122","type":"set","name":"set output-global-customer-id, etc","xml":"<set>\n<parameter name='output-global-customer-id' value='`$split[6]`' />\n<parameter name='output-service-type' value='`$split[9]`' />\n<parameter name='output-service-role' value='`$tmp.AnAI-data.si.results[0].service-instance.service-role`' />\n","comments":"","x":3595.416763305664,"y":880.4166374206543,"z":"acdffee6.4646","wires":[]},{"id":"7d31078f.efb3d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2128.60733795166,"y":3068.8931226730347,"z":"acdffee6.4646","wires":[["87ecc4ba.953798","e1f74301.3a592","ea9cb947.2f8788","7177f03.da2611","960587e2.909438"]]},{"id":"87ecc4ba.953798","type":"execute","name":"generate service-instance-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"tmp.service-instance-id\" />\n","comments":"","outputs":1,"x":2335.274076461792,"y":2968.1788692474365,"z":"acdffee6.4646","wires":[[]]},{"id":"14ba220e.0a427e","type":"comment","name":"Make a new service instance in GR-API","info":"","comments":"","x":2441.5239963531494,"y":2931.0953826904297,"z":"acdffee6.4646","wires":[]},{"id":"7177f03.da2611","type":"save","name":"save service-instance to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"service-instance\" \n\tkey=\"customer.global-customer-id = $output-global-customer-id\n\t  AND service-subscription.service-type = $output-service-type\n\t  AND service-instance.service-instance-id = $tmp.service-instance-id\" >\n<parameter name=\"service-instance-id\" value=\"`$tmp.service-instance-id`\" />\n<parameter name=\"global-customer-id\" value=\"`$output-global-customer-id`\" />\n<parameter name=\"service-type\" value=\"`$output-service-type`\" />\n<parameter name=\"service-role\" value=\"`$output-service-role`\" />\n","comments":"","outputs":1,"x":2339.202896118164,"y":3150.0238361358643,"z":"acdffee6.4646","wires":[["2ad23b25.4eac74","8b691431.cc9278"]]},{"id":"83430cdc.a419d","type":"comment","name":"Make a new service instance in A&AI","info":"","comments":"","x":2429.917154312134,"y":3092.16690826416,"z":"acdffee6.4646","wires":[]},{"id":"ea9cb947.2f8788","type":"execute","name":"execute RestApiCallNode - PUT service-instance","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-sr\" />\n\n","comments":"","outputs":1,"x":2400.2742023468018,"y":3054.845375061035,"z":"acdffee6.4646","wires":[["97c9808b.9352c"]]},{"id":"e1f74301.3a592","type":"execute","name":"generate service-instance url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.service-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.service-instance-id`\"/>\n","comments":"","outputs":1,"x":2336.5242023468018,"y":3012.345374107361,"z":"acdffee6.4646","wires":[[]]},{"id":"7ecab0fa.15895","type":"switchNode","name":"switch output-service-instance-id","xml":"<switch test='`$output-service-instance-id`'>\n","comments":"","outputs":1,"x":1767.4168243408203,"y":3076.5121965408325,"z":"acdffee6.4646","wires":[["6bc7823b.9fccbc","f3d20003.45381"]]},{"id":"7ff0a241.207e8c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":738.7499389648438,"y":328.75,"z":"acdffee6.4646","wires":[["ae348eba.10a95"]]},{"id":"8b411eeb.03fd7","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":747.3213691711426,"y":372.0357131958008,"z":"acdffee6.4646","wires":[["6abf5986.be9818"]]},{"id":"ae348eba.10a95","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":892.0120735168457,"y":327.0715398788452,"z":"acdffee6.4646","wires":[["4a5f6f0b.dcc33"]]},{"id":"6abf5986.be9818","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":892.0120964050293,"y":372.07152938842773,"z":"acdffee6.4646","wires":[["8def3ed6.72da5"]]},{"id":"4a5f6f0b.dcc33","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'System error reading PATH_SEGMENT table for uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n  + ' and path '\n  + $db.forwarding-path[$path-index].path-name`\" />\n","comments":"","x":1092.0122184753418,"y":325.4048738479614,"z":"acdffee6.4646","wires":[]},{"id":"8def3ed6.72da5","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'No entries in PATH_SEGMENT table for uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n  + ' and path '\n  + $db.forwarding-path[$path-index].path-name`\" />\n","comments":"","x":1092.012035369873,"y":372.07152938842773,"z":"acdffee6.4646","wires":[]},{"id":"e62cb2cc.8b1b1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":743.6787948608398,"y":415.4048881530762,"z":"acdffee6.4646","wires":[["766a7c4c.6db704"]]},{"id":"766a7c4c.6db704","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":113.6309585571289,"y":1673.2737884521484,"z":"acdffee6.4646","wires":[["227d76b8.b8f89a","c64c7acf.8db458","1398c294.3f952d","3337a2c8.4f2c0e","3b868648.17a23a","9c1deb3.fce3a18","31223e46.c39562"]]},{"id":"6bc7823b.9fccbc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1988.607292175293,"y":3055.5597352981567,"z":"acdffee6.4646","wires":[["7d31078f.efb3d8"]]},{"id":"f3d20003.45381","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1988.4287033081055,"y":3097.1668796539307,"z":"acdffee6.4646","wires":[["7d31078f.efb3d8"]]},{"id":"960587e2.909438","type":"set","name":"set output-service-instance-id","xml":"<set>\n<parameter name='output-service-instance-id' value='`$tmp.service-instance-id`' />\n","comments":"","x":2334.797737121582,"y":3214.6070919036865,"z":"acdffee6.4646","wires":[]},{"id":"94003a26.69b068","type":"execute","name":"execute RestApiCallNode - PUT forwarding-path","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-fp\" />\n\n","comments":"","outputs":1,"x":1810.0359344482422,"y":3339.3693075180054,"z":"acdffee6.4646","wires":[["e3e2ddf6.f153f","b2430abe.dc8828"]]},{"id":"e3e2ddf6.f153f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2080.5224685668945,"y":3363.6175785064697,"z":"acdffee6.4646","wires":[["aac11982.8688f8"]]},{"id":"b2430abe.dc8828","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2072.951103210449,"y":3322.1175985336304,"z":"acdffee6.4646","wires":[["aac11982.8688f8"]]},{"id":"aac11982.8688f8","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path to MD-SAL\" />\n","comments":"","x":2292.5359420776367,"y":3336.8693075180054,"z":"acdffee6.4646","wires":[]},{"id":"76d060fc.5c71a","type":"execute","name":"generate forwarding-path url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.forwarding-path`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fp-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$output-service-instance-id`\"/>\n","comments":"","outputs":1,"x":1747.952766418457,"y":3282.285427093506,"z":"acdffee6.4646","wires":[[]]},{"id":"ec6851e3.24d41","type":"save","name":"save forwarding-path to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"forwarding-path\" \n\tkey=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\" >\n<parameter name=\"forwarding-path-id\" value=\"`$forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id`\" />\n<parameter name=\"forwarding-path-name\" value=\"`$forwarding-path.service-paths.service-path[$sp-index].service-path-instance-name`\" />\n<parameter name=\"selflink\" value=\"`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\n  + $output-service-instance-id\n  + '/forwarding-paths/forwarding-path/'\n  + $forwarding-path.forwarding-path-id\n  + '/services-paths/service-path/'\n  + $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id`\" />\n","comments":"","outputs":1,"x":2564.072067260742,"y":3421.226315498352,"z":"acdffee6.4646","wires":[["782723e.d6f5edc","173a4200.c682ae"]]},{"id":"f9f23fe5.c832e","type":"save","name":"save forwarding-path relationship to service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"forwarding-path:relationship-list\"\n   key=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/business/customers/customer/'\n        + $output-global-customer-id\n        + '/service-subscriptions/service-subscription/'\n        + $output-service-type\n        + '/service-instances/service-instance/'\n        + $output-service-instance-id`\" />\n","comments":"","outputs":1,"x":2635.73876953125,"y":3501.46435546875,"z":"acdffee6.4646","wires":[["c1b3e443.b892d8","a4072ca.00fd3d"]]},{"id":"2f92c949.4d6476","type":"for","name":"for each vnf","xml":"<for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":2725.500457763672,"y":3630.274257659912,"z":"acdffee6.4646","wires":[["d2f257bf.d8fd58"]]},{"id":"d2f257bf.d8fd58","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2870.2624740600586,"y":3629.8454303741455,"z":"acdffee6.4646","wires":[["81a978c4.55a318","1825f2cc.d9255d"]]},{"id":"81a978c4.55a318","type":"save","name":"save forwarder to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"forwarder\" \n\tkey=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\n\t  AND forwarder.sequence = $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id\" >\n<parameter name=\"sequence\" value=\"`$forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id`\" />\n","comments":"","outputs":1,"x":3051.262517929077,"y":3585.750457763672,"z":"acdffee6.4646","wires":[["a8b88931.1b04b8","18196271.6ec47e"]]},{"id":"1825f2cc.d9255d","type":"save","name":"save forwarder relationship to generic-vnf","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"forwarder:relationship-list\"\n   key=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\n     AND forwarder.sequence = $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"generic-vnf\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/generic-vnfs/generic-vnf/'\n        + $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-instance-id`\" />\n","comments":"","outputs":1,"x":3105.262519836426,"y":3675.036106109619,"z":"acdffee6.4646","wires":[["9e2d3b55.8e6d18","be4a1ccd.60699"]]},{"id":"31223e46.c39562","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/gpsx.log' />\n","comments":"","outputs":1,"x":507.0833282470703,"y":2412.0832509994507,"z":"acdffee6.4646","wires":[[]]},{"id":"173a4200.c682ae","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2772.750198364258,"y":3441.0832204818726,"z":"acdffee6.4646","wires":[["7abb5ae4.45ef84"]]},{"id":"782723e.d6f5edc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2765.1788330078125,"y":3399.583240509033,"z":"acdffee6.4646","wires":[["7abb5ae4.45ef84"]]},{"id":"7abb5ae4.45ef84","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path to AAI\" />\n","comments":"","x":2969.7636108398438,"y":3414.3350400924683,"z":"acdffee6.4646","wires":[]},{"id":"a4072ca.00fd3d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2917.7501792907715,"y":3524.4164247512817,"z":"acdffee6.4646","wires":[["38f6157.8f1caea"]]},{"id":"c1b3e443.b892d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2908.5120849609375,"y":3477.916492462158,"z":"acdffee6.4646","wires":[["38f6157.8f1caea"]]},{"id":"38f6157.8f1caea","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path relationship to AAI\" />\n","comments":"","x":3113.096908569336,"y":3492.6682138442993,"z":"acdffee6.4646","wires":[]},{"id":"18196271.6ec47e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3242.7502117156982,"y":3607.749852180481,"z":"acdffee6.4646","wires":[["ede6f0bd.9d33c"]]},{"id":"a8b88931.1b04b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3235.178846359253,"y":3566.2498722076416,"z":"acdffee6.4646","wires":[["ede6f0bd.9d33c"]]},{"id":"ede6f0bd.9d33c","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarder to AAI\" />\n","comments":"","x":3438.0970458984375,"y":3581.001434326172,"z":"acdffee6.4646","wires":[]},{"id":"be4a1ccd.60699","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3347.7501678466797,"y":3699.416358947754,"z":"acdffee6.4646","wires":[["6576c8ed.7d6ce8"]]},{"id":"9e2d3b55.8e6d18","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3340.1788024902344,"y":3657.9163789749146,"z":"acdffee6.4646","wires":[["6576c8ed.7d6ce8"]]},{"id":"6576c8ed.7d6ce8","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarder relationship to AAI\" />\n","comments":"","x":3541.4303436279297,"y":3672.667942047119,"z":"acdffee6.4646","wires":[]},{"id":"ee78a452.895eb8","type":"for","name":"for each service","xml":"<for index='service-index' start='0' end='`$service-paths.service-path[$sp-index].service_length`' >\n","comments":"","outputs":1,"x":2534.416831970215,"y":3631.083258628845,"z":"acdffee6.4646","wires":[["2f92c949.4d6476"]]},{"id":"8b691431.cc9278","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2550.0833892822266,"y":3170.4164781570435,"z":"acdffee6.4646","wires":[["28ee0b7.a193cf4"]]},{"id":"2ad23b25.4eac74","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2542.5120239257812,"y":3128.916498184204,"z":"acdffee6.4646","wires":[["28ee0b7.a193cf4"]]},{"id":"28ee0b7.a193cf4","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure creating service instance in AAI\" />\n","comments":"","x":2745.430223464966,"y":3143.6680603027344,"z":"acdffee6.4646","wires":[]},{"id":"97c9808b.9352c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2660.0833892822266,"y":3053.7497301101685,"z":"acdffee6.4646","wires":[["1818ef16.6dc701"]]},{"id":"1818ef16.6dc701","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure creating service instance in MD-SAL\" />\n","comments":"","x":2850.0833892822266,"y":3052.0829820632935,"z":"acdffee6.4646","wires":[]},{"id":"d843bbaa.11f848","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\n","comments":"","x":3523.7498168945312,"y":2057.916774749756,"z":"acdffee6.4646","wires":[]},{"id":"532dd116.0d3c4","type":"for","name":"for each service-path","xml":"<for index='sp-index' start='0' end='`$service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":1718.4169311523438,"y":3522.0831785202026,"z":"acdffee6.4646","wires":[["6026a1f0.02df4"]]},{"id":"bab97280.4fcff","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$serv-inst.vnf-list_length`'>\n","comments":"","outputs":1,"x":2978.809280395508,"y":2006.4284648895264,"z":"acdffee6.4646","wires":[["83930c1.6232af","415745e9.86f9ec","a96c0af7.4076f8","7fb684c8.1e8ddc"]]},{"id":"83930c1.6232af","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3181.6666107177734,"y":1924.9999256134033,"z":"acdffee6.4646","wires":[["495a7820.28bb28"]]},{"id":"415745e9.86f9ec","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":3182.9166107177734,"y":1963.7499256134033,"z":"acdffee6.4646","wires":[["495a7820.28bb28"]]},{"id":"495a7820.28bb28","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`\" />\n","comments":"","x":3380.4165573120117,"y":1942.4998750686646,"z":"acdffee6.4646","wires":[]},{"id":"a96c0af7.4076f8","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":3181.666549682617,"y":2032.4999074935913,"z":"acdffee6.4646","wires":[["bff428c8.cc6008"]]},{"id":"bff428c8.cc6008","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":3331.6665229797363,"y":2032.249888420105,"z":"acdffee6.4646","wires":[["2de86e6.3962e92","d843bbaa.11f848"]]},{"id":"7fb684c8.1e8ddc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3184.166717529297,"y":2166.6664543151855,"z":"acdffee6.4646","wires":[["93bc2b5.8b736d8"]]},{"id":"93bc2b5.8b736d8","type":"get-resource","name":"get-resource SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT forwarding_path_service_instance_id from SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING WHERE simple_service_instance_id = $serv-inst.service-instance-id'\n  pfx='db.mapped-service-instance-id'>\n\n","comments":"","outputs":1,"x":3556.5481567382812,"y":2165.952667236328,"z":"acdffee6.4646","wires":[["30b771e0.9efa2e","ac42250b.451688","9c7d869c.656378"]]},{"id":"30b771e0.9efa2e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3923.1668853759766,"y":2097.642951965332,"z":"acdffee6.4646","wires":[["3cc43602.d355aa"]]},{"id":"ac42250b.451688","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3931.7383155822754,"y":2141.928665161133,"z":"acdffee6.4646","wires":[["c6af0644.d6e838"]]},{"id":"3cc43602.d355aa","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"System error reading SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING table\" />\n","comments":"","x":4140.000244140625,"y":2095.8333253860474,"z":"acdffee6.4646","wires":[]},{"id":"c6af0644.d6e838","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'No entry in SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING table for service instance ' + $serv-inst.service-instance-id`\" />\n","comments":"","x":4140.000076293945,"y":2142.166621208191,"z":"acdffee6.4646","wires":[]},{"id":"9c7d869c.656378","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3928.333480834961,"y":2237.500123023987,"z":"acdffee6.4646","wires":[["47635cab.dcb404"]]},{"id":"47635cab.dcb404","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":4064.9997482299805,"y":2235.8332090377808,"z":"acdffee6.4646","wires":[["3ffa27b1.735848","cbac044e.797f28"]]},{"id":"3ffa27b1.735848","type":"execute","name":"generate port-mirror-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.service-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$db.mapped-service-instance-id.forwarding-path-service-instance-id`\"/>\n","comments":"","outputs":1,"x":4285.00008392334,"y":2194.166865348816,"z":"acdffee6.4646","wires":[[]]},{"id":"cbac044e.797f28","type":"execute","name":"execute RestApiCallNode - get service","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-service\" />\n\n","comments":"","outputs":1,"x":4288.332931518555,"y":2280.8332109451294,"z":"acdffee6.4646","wires":[["8ee34d45.6e794","f93605ea.7e7b88"]]},{"id":"f93605ea.7e7b88","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4516.666107177734,"y":2342.499878883362,"z":"acdffee6.4646","wires":[["a4725830.66d628"]]},{"id":"8ee34d45.6e794","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4516.442153930664,"y":2235.3466358184814,"z":"acdffee6.4646","wires":[["dd9a7f75.ee19c"]]},{"id":"dd9a7f75.ee19c","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Cannot find service instance ' + $db.mapped-service-instance-id.forwarding-path-service-instance-id + ' in MD-SAL'`\" />\n","comments":"","x":4710.000076293945,"y":2234.166537284851,"z":"acdffee6.4646","wires":[]},{"id":"a4725830.66d628","type":"switchNode","name":"switch forwarding-path_length","xml":"<switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`'>\n","comments":"","outputs":1,"x":4720.000076293945,"y":2342.500033378601,"z":"acdffee6.4646","wires":[["f4cd3b16.9f1b48","e02ba6d7.e68a68","f2da480c.9764c8"]]},{"id":"f4cd3b16.9f1b48","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":4932.000106811523,"y":2278.7500410079956,"z":"acdffee6.4646","wires":[["7f12cf21.a3af1"]]},{"id":"e02ba6d7.e68a68","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":4933.250106811523,"y":2317.5000410079956,"z":"acdffee6.4646","wires":[["7f12cf21.a3af1"]]},{"id":"f2da480c.9764c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4930.393089294434,"y":2412.1429262161255,"z":"acdffee6.4646","wires":[["966b6bde.cc8f88"]]},{"id":"7f12cf21.a3af1","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='data-error' value=\"`'Service instance ' + $db.mapped-service-instance-id.forwarding-path-service-instance-id + ' has multiple VNFs but no forwarding paths were found'`\" />\n","comments":"","x":5120.750106811523,"y":2296.2500410079956,"z":"acdffee6.4646","wires":[]},{"id":"966b6bde.cc8f88","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":5059.143089294434,"y":2412.1429262161255,"z":"acdffee6.4646","wires":[["73c62547.358c5c","2c341601.f78f1a","18d9283c.3cd808"]]},{"id":"73c62547.358c5c","type":"set","name":"copy forwarding-paths to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].forwarding-paths.'\n  value='`$mdsal-service.service[0].service-data.forwarding-paths.`' />\n","comments":"","x":5296.666580200195,"y":2412.500033378601,"z":"acdffee6.4646","wires":[]},{"id":"2c341601.f78f1a","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":5272,"y":2366,"z":"acdffee6.4646","wires":[]},{"id":"18d9283c.3cd808","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\n","comments":"","x":5254.6904296875,"y":2459.416748046875,"z":"acdffee6.4646","wires":[]},{"id":"ab273d26.ee67d","type":"switchNode","name":"switch service_length == serv-cust_length","xml":"<switch test='`$service-paths.service-path[$sp-index].service_length == $serv-cust_length`'>\n","comments":"","outputs":1,"x":1463.3333282470703,"y":2587.6667375564575,"z":"acdffee6.4646","wires":[["57af92ff.0a268c"]]},{"id":"432943b9.13704c","type":"for","name":"for each service-path","xml":"<for index='sp-index' start='0' end='`$service-paths.service-path_length`' >\n","comments":"","outputs":1,"x":1183.3333282470703,"y":2588.6667375564575,"z":"acdffee6.4646","wires":[["ab273d26.ee67d"]]},{"id":"db0b5e4d.138fb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1001.3333282470703,"y":2710.6667375564575,"z":"acdffee6.4646","wires":[["b67f5438.96b3a8","432943b9.13704c","ed2004a7.484e98"]]},{"id":"b67f5438.96b3a8","type":"set","name":"set found-service-path to false","xml":"<set>\n<parameter name='found-service-path' value='false' />\n","comments":"","x":1211.3333282470703,"y":2542.6667375564575,"z":"acdffee6.4646","wires":[]},{"id":"57af92ff.0a268c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1697.3333282470703,"y":2586.6667375564575,"z":"acdffee6.4646","wires":[["14f78ce9.5e1413"]]},{"id":"14f78ce9.5e1413","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1823.3333282470703,"y":2586.6667375564575,"z":"acdffee6.4646","wires":[["51e6f6dd.41b898","8e5d432a.80844"]]},{"id":"51e6f6dd.41b898","type":"set","name":"set found-service-path to true","xml":"<set>\n<parameter name='found-service-path' value='true' />\n","comments":"","x":2017.3333282470703,"y":2558.6667375564575,"z":"acdffee6.4646","wires":[]},{"id":"8e5d432a.80844","type":"break","name":"break","xml":"<break>\n","comments":"","x":1947.3333282470703,"y":2606.6667375564575,"z":"acdffee6.4646","wires":[]},{"id":"ed2004a7.484e98","type":"switchNode","name":"switch found-service-path","xml":"<switch test='`$found-service-path`'>\n","comments":"","outputs":1,"x":1197.3333282470703,"y":2922.6667375564575,"z":"acdffee6.4646","wires":[["902c3da4.38f8e","cc4f97d7.be3168"]]},{"id":"cc4f97d7.be3168","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1401.3333282470703,"y":3156.6667375564575,"z":"acdffee6.4646","wires":[["654073a0.8dc7dc"]]},{"id":"902c3da4.38f8e","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1383.3333282470703,"y":2702.6667375564575,"z":"acdffee6.4646","wires":[["95ceba9c.126508"]]},{"id":"95ceba9c.126508","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'No service paths found for path name '\n  + $db.path-segment[0].path-name`\" />\n","comments":"","x":1573.3333282470703,"y":2702.6667375564575,"z":"acdffee6.4646","wires":[]},{"id":"6026a1f0.02df4","type":"switchNode","name":"switch service_length == serv-cust_length","xml":"<switch test='`$service-paths.service-path[$sp-index].service_length == $serv-cust_length`'>\n","comments":"","outputs":1,"x":2000,"y":3522,"z":"acdffee6.4646","wires":[["ce386471.0c3478"]]},{"id":"ce386471.0c3478","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2234,"y":3521,"z":"acdffee6.4646","wires":[["c64714d6.1fcac8"]]},{"id":"c64714d6.1fcac8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2360,"y":3521,"z":"acdffee6.4646","wires":[["ec6851e3.24d41","f9f23fe5.c832e","ee78a452.895eb8"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.json
new file mode 100755 (executable)
index 0000000..3194c18
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"22afe3b6.ac42ec","type":"dgstart","name":"DGSTART","outputs":1,"x":101.42857360839844,"y":85.71428680419922,"z":"5629d16d.2ad96","wires":[["aba57bc5.dd8d18"]]},{"id":"aba57bc5.dd8d18","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":216.71427154541016,"y":125.95239543914795,"z":"5629d16d.2ad96","wires":[["dd9830af.1b7fc"]]},{"id":"dd9830af.1b7fc","type":"method","name":"method getpathsegment-create-simple-path","xml":"<method rpc='getpathsegment-create-simple-path' mode='sync'>\n","comments":"","outputs":1,"x":209.8572006225586,"y":166.71428108215332,"z":"5629d16d.2ad96","wires":[["54f62c1c.ee8494"]]},{"id":"39e0fc73.43bb24","type":"comment","name":"getpathsegment-create-simple-path","info":"","comments":"","x":495.77342987060547,"y":33.30063056945801,"z":"5629d16d.2ad96","wires":[]},{"id":"54f62c1c.ee8494","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":116.09528350830078,"y":290.7412042617798,"z":"5629d16d.2ad96","wires":[["727b4caf.1cdc94","41d349bc.0562d8","a1cc7312.325ce"]]},{"id":"a1cc7312.325ce","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":257.91658782958984,"y":2895.298070907593,"z":"5629d16d.2ad96","wires":[]},{"id":"727b4caf.1cdc94","type":"get-resource","name":"get-resource PATH_SEGMENT","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from PATH_SEGMENT WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n    AND path_name = $db.forwarding-path[$path-index].path-name ORDER BY path_segment_seq'\n  pfx='db.path-segment[]'>\n\n","comments":"","outputs":1,"x":343.5476188659668,"y":356.4761791229248,"z":"5629d16d.2ad96","wires":[["891f7699.dad768","2e7bfd35.86d932","5581a414.fb2c9c"]]},{"id":"891f7699.dad768","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":572.6663970947266,"y":313.8094177246094,"z":"5629d16d.2ad96","wires":[["a32e6237.6daf3"]]},{"id":"2e7bfd35.86d932","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":581.2378273010254,"y":357.09513092041016,"z":"5629d16d.2ad96","wires":[["39c3eea1.efd8a2"]]},{"id":"6ae56929.26b358","type":"for","name":"for each path segment","xml":"<for index='path-segment-index' start='0' end='`$db.path-segment_length`' >\n","comments":"","outputs":1,"x":508.8691101074219,"y":548.1547451019287,"z":"5629d16d.2ad96","wires":[["544711c4.26d07"]]},{"id":"544711c4.26d07","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":707.0238647460938,"y":547.9761257171631,"z":"5629d16d.2ad96","wires":[["caa83c5c.69383","72870d7a.a57af4"]]},{"id":"1570d296.5420fd","type":"set","name":"set vnf-ids_length to 0","xml":"<set>\n<parameter name='vnf-ids_length' value='0' />\n","comments":"","x":508.51195526123047,"y":500.2975969314575,"z":"5629d16d.2ad96","wires":[]},{"id":"caa83c5c.69383","type":"set","name":"add source vnf to vnf-ids","xml":"<set>\n<parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].source-association-uuid`' />\n<parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\n","comments":"","x":921.0119667053223,"y":526.5475978851318,"z":"5629d16d.2ad96","wires":[]},{"id":"72870d7a.a57af4","type":"switchNode","name":"is this the last path-segment?","xml":"<switch test='`$path-segment-index == ( $db.path-segment_length - 1) `'>\n","comments":"","outputs":1,"x":936.0119705200195,"y":571.5475997924805,"z":"5629d16d.2ad96","wires":[["a92ddc01.5347d"]]},{"id":"a92ddc01.5347d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1132.2619724273682,"y":571.2975997924805,"z":"5629d16d.2ad96","wires":[["7160408b.72538"]]},{"id":"7160408b.72538","type":"set","name":"add target vnf to vnf-ids","xml":"<set>\n<parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].target-association-uuid`' />\n<parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\n","comments":"","x":1308.761978149414,"y":570.5475997924805,"z":"5629d16d.2ad96","wires":[]},{"id":"c46f5c01.ea23","type":"comment","name":"create list of vnf ids","info":"","comments":"","x":1061.5119667053223,"y":486.46427059173584,"z":"5629d16d.2ad96","wires":[]},{"id":"4e5c686c.598f68","type":"get-resource","name":"custom query - get runtime service-instances","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"custom-query\"\n\tkey=\"format = 'resource'\"\n\tforce=\"true\"\n\tlocal-only=\"false\"\n\tpfx=\"aai.service-instances\" >\n\t<parameter name=\"start[0]\" value=\"`'nodes/service-instances?model-invariant-id=' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`\" />\n\t<parameter name=\"start_length\" value=\"1\" />\n","comments":"","outputs":1,"x":578.5119247436523,"y":656.5476264953613,"z":"5629d16d.2ad96","wires":[["50c8b7f0.7a0d88","a18652d3.89a29","30dab3b9.4e949c"]]},{"id":"a18652d3.89a29","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":846.5081748962402,"y":658.4484806060791,"z":"5629d16d.2ad96","wires":[["f673ab2c.5baed8"]]},{"id":"50c8b7f0.7a0d88","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":855.4367713928223,"y":616.7342138290405,"z":"5629d16d.2ad96","wires":[["fb8a502b.b988a"]]},{"id":"2cea7227.951c0e","type":"for","name":"for each runtime service-instance","xml":"<for index='runtime-index' start='0' end='`$runtime_length`' >\n","comments":"","outputs":1,"x":700.7143859863281,"y":1168.2143034934998,"z":"5629d16d.2ad96","wires":[["fd97fac0.40b238"]]},{"id":"fd97fac0.40b238","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":939.4643936157227,"y":1168.2143034934998,"z":"5629d16d.2ad96","wires":[["11207a1.3861786","2605dfb2.94c51","507014d7.88ea1c","38a95673.ed10aa","64270aaa.060174"]]},{"id":"11207a1.3861786","type":"execute","name":"generate port-mirror-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.service-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$serv-inst.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1210.9525451660156,"y":1253.1548552513123,"z":"5629d16d.2ad96","wires":[[]]},{"id":"2605dfb2.94c51","type":"execute","name":"execute RestApiCallNode - get service","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-service\" />\n\n","comments":"","outputs":1,"x":1215.1191101074219,"y":1319.1666865348816,"z":"5629d16d.2ad96","wires":[["ddfea20f.b1765","25f8aad7.178826"]]},{"id":"ddfea20f.b1765","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1462.4983558654785,"y":1192.5340704917908,"z":"5629d16d.2ad96","wires":[["7d24215a.3f9a"]]},{"id":"25f8aad7.178826","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1456.547752380371,"y":1450.4166073799133,"z":"5629d16d.2ad96","wires":[["fb3d69b8.66a0c8"]]},{"id":"a34a7c52.b74ff","type":"comment","name":"Is this service in GENERIC-RESOURCE-API?","info":"","comments":"","x":1258.2143859863281,"y":1113.750009059906,"z":"5629d16d.2ad96","wires":[]},{"id":"d312f25b.03d12","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-populate-from-grapi","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' >\n","comments":"","outputs":1,"x":2421.7858123779297,"y":1237.5000100135803,"z":"5629d16d.2ad96","wires":[[]]},{"id":"f82d1a28.9d5758","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-populate-from-vnfapi","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-vnfapi' mode='sync' >\n","comments":"","outputs":1,"x":2259.464401245117,"y":1437.1428742408752,"z":"5629d16d.2ad96","wires":[[]]},{"id":"41d349bc.0562d8","type":"set","name":"set match-type","xml":"<set>\n<parameter name='match-type' value='network-name' />\n","comments":"","x":293.8452491760254,"y":244.21429347991943,"z":"5629d16d.2ad96","wires":[]},{"id":"d5e62d12.0598","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-simple-match-pair","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-simple-match-pair' mode='sync' >\n","comments":"","outputs":1,"x":803.0359039306641,"y":1643.3930268287659,"z":"5629d16d.2ad96","wires":[[]]},{"id":"d93608d4.fa2628","type":"set","name":"set serv-insts_length to 0","xml":"<set>\n<parameter name='serv-insts_length' value='0' />\n","comments":"","x":683.6786804199219,"y":906.0715222358704,"z":"5629d16d.2ad96","wires":[]},{"id":"507014d7.88ea1c","type":"set","name":"clear mdsal-service and serv-inst.api","xml":"<set>\n<parameter name='mdsal-service.' value='' />\n<parameter name='serv-inst.api' value='' />\n","comments":"","x":1211.2857971191406,"y":1157.6785979270935,"z":"5629d16d.2ad96","wires":[]},{"id":"38a95673.ed10aa","type":"set","name":"set serv-inst.service-instance-id","xml":"<set>\n<parameter name='serv-inst.service-instance-id' value='`$runtime-ids[$runtime-index]`' />\n","comments":"","x":1202.4286346435547,"y":950.5357565879822,"z":"5629d16d.2ad96","wires":[]},{"id":"1025d445.92700c","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'Failure finding service instance ' + $serv-inst.service-instance-id + ' in either GENERIC-REOURCE-API or VNF-API'`\" />\n","comments":"","x":2494.285732269287,"y":1490.357096672058,"z":"5629d16d.2ad96","wires":[]},{"id":"8cb5384e.5fac18","type":"success","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2298.035873413086,"y":1562.0238308906555,"z":"5629d16d.2ad96","wires":[["e596d283.d108"]]},{"id":"36bbfe53.27e322","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2298.0357093811035,"y":1491.6071996688843,"z":"5629d16d.2ad96","wires":[["1025d445.92700c"]]},{"id":"d0b3e656.49f5b8","type":"switchNode","name":"switch serv-inst.api","xml":"<switch test='`$serv-inst.api`'>\n","comments":"","outputs":1,"x":2098.3930053710938,"y":1532.1428451538086,"z":"5629d16d.2ad96","wires":[["36bbfe53.27e322","8cb5384e.5fac18"]]},{"id":"fb3d69b8.66a0c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1587.678623199463,"y":1453.214307308197,"z":"5629d16d.2ad96","wires":[["63df2c22.43c924"]]},{"id":"36ccefea.23688","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":2685.5358352661133,"y":1536.607204914093,"z":"5629d16d.2ad96","wires":[]},{"id":"b01279d.0b32c88","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\n","comments":"","x":2670.7858123779297,"y":1591.6071934700012,"z":"5629d16d.2ad96","wires":[]},{"id":"848cf29d.edb6a","type":"set","name":"copy serv-inst to serv-insts array","xml":"<set>\n<parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\n","comments":"","x":2306.4286346435547,"y":1281.9643054008484,"z":"5629d16d.2ad96","wires":[]},{"id":"50bf0848.ed4ac8","type":"set","name":"increment serv-insts_length","xml":"<set>\n<parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\n","comments":"","x":2286.6786346435547,"y":1330.7143063545227,"z":"5629d16d.2ad96","wires":[]},{"id":"7d24215a.3f9a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1593.9286193847656,"y":1191.964292049408,"z":"5629d16d.2ad96","wires":[["2bf6e158.bfceae","d0db37ac.abed08","313a3809.e4ff88"]]},{"id":"e596d283.d108","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2449.285804748535,"y":1561.6071877479553,"z":"5629d16d.2ad96","wires":[["36ccefea.23688","b01279d.0b32c88"]]},{"id":"954eddda.d0e1c","type":"for","name":"for each runtime service-instance from A&AI","xml":"<for index='runtime-index' start='0' end='`$aai.service-instances.results_length`' >\n","comments":"","outputs":1,"x":741.4286499023438,"y":839.4642996788025,"z":"5629d16d.2ad96","wires":[["f18dec3.470431"]]},{"id":"f18dec3.470431","type":"switchNode","name":"switch orchestration-status","xml":"<switch test='`$aai.service-instances.results[$runtime-index].service-instance.orchestration-status`'>\n","comments":"","outputs":1,"x":1050.1786193847656,"y":839.4642987251282,"z":"5629d16d.2ad96","wires":[["bf73912e.28721"]]},{"id":"bf73912e.28721","type":"outcome","name":"Active","xml":"<outcome value='Active'>\n","comments":"","outputs":1,"x":1248.9286041259766,"y":838.214289188385,"z":"5629d16d.2ad96","wires":[["dd9206a2.3c51c8"]]},{"id":"dd9206a2.3c51c8","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1410.1786041259766,"y":835.714289188385,"z":"5629d16d.2ad96","wires":[["b75aacd8.aff2a","7e6d7170.bd2ef"]]},{"id":"b75aacd8.aff2a","type":"set","name":"store service-instance-id","xml":"<set>\n<parameter name='runtime-ids[$runtime_length]' value='`$aai.service-instances.results[$runtime-index].service-instance.service-instance-id`' />\n","comments":"","x":1601.4286193847656,"y":812.7976064682007,"z":"5629d16d.2ad96","wires":[]},{"id":"f1440634.84c218","type":"set","name":"set runtime_length to 0","xml":"<set>\n<parameter name='runtime_length' value='0' />\n","comments":"","x":676.4286041259766,"y":789.464289188385,"z":"5629d16d.2ad96","wires":[]},{"id":"7e6d7170.bd2ef","type":"set","name":"set increment runtime_length","xml":"<set>\n<parameter name='runtime_length' value='`$runtime_length + 1`' />\n","comments":"","x":1616.0119132995605,"y":855.2976288795471,"z":"5629d16d.2ad96","wires":[]},{"id":"2e8ac8c0.7d70a8","type":"for","name":"for each serv-insts","xml":"<for index='serv-index' start='0' end='`$serv-insts_length`' >\n","comments":"","outputs":1,"x":624.1666488647461,"y":2187.2023816108704,"z":"5629d16d.2ad96","wires":[["627c4436.c6363c"]]},{"id":"6a089d93.c561b4","type":"comment","name":"Create forwarding-path structure","info":"","comments":"","x":1850.2380981445312,"y":1713.9880814552307,"z":"5629d16d.2ad96","wires":[]},{"id":"67d6eb5d.aecaf4","type":"set","name":"set top-level data","xml":"<set>\n<parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\n<parameter name='forwarding-path.forwarding-path-type' value='VNF' />\n<parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\n<parameter name='forwarding-path.service-paths.service-path_length' value='1' />\n<parameter name='forwarding-path.service-paths.service-path[0].service-path-instance-name'\n  value='`$db.path-segment[0].path-name + $forwarding-path.service-paths.service-path[0].service-path-instance-id`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service_length' value='1' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].service-instance-id'\n  value='`$serv-insts[$serv-index].service-instance-id`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].service-path-sequence-id' value='1' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\n  value='`$serv-insts[$serv-index].path-segments_length`' />\n","comments":"","x":1713.9284362792969,"y":1845.2976641654968,"z":"5629d16d.2ad96","wires":[]},{"id":"df485e3e.9e56d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1496.2498931884766,"y":2203.452546596527,"z":"5629d16d.2ad96","wires":[["67d6eb5d.aecaf4","6d4773c1.e5744c","214e6fa8.67a2d","11af2729.a769f9","19011bc0.d12e74","d098ba8b.a3df28","f0d2a389.89135","491426c8.70e218","5bdb2ffa.bd158","29c194e4.ffaaec","b4ae1cfc.2d5e8","4177217a.70cc7","9b387be2.dc2b18","1f8a0d2b.888443"]]},{"id":"627c4436.c6363c","type":"switchNode","name":"switch api","xml":"<switch test='`$serv-insts[$serv-index].api`'>\n","comments":"","outputs":1,"x":797.9166488647461,"y":2187.2023816108704,"z":"5629d16d.2ad96","wires":[["426b047f.dbd57c","9059fd9c.5d30b"]]},{"id":"426b047f.dbd57c","type":"outcome","name":"GR","xml":"<outcome value='GR'>\n","comments":"","outputs":1,"x":937.9166526794434,"y":2164.7023816108704,"z":"5629d16d.2ad96","wires":[["c67bb294.bc315"]]},{"id":"9059fd9c.5d30b","type":"outcome","name":"VNF","xml":"<outcome value='VNF'>\n","comments":"","outputs":1,"x":937.9166526794434,"y":2205.952383518219,"z":"5629d16d.2ad96","wires":[["c67bb294.bc315"]]},{"id":"6d4773c1.e5744c","type":"for","name":"for each subsequent path segment","xml":"<for index='ps-index' start='1' end='`$serv-insts[$serv-index].path-segments_length`' >\n","comments":"","outputs":1,"x":1763.9284362792969,"y":1979.0476641654968,"z":"5629d16d.2ad96","wires":[["902c5891.668ab8"]]},{"id":"b6018a90.ab7608","type":"set","name":"set vnf level data","xml":"<set>\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-path-sequence-id'\n  value='`$ps-index + 1`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-instance-id'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vnf-instance-id`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-name'\n  value='`$prev-network-name`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-role'\n  value='`$prev-network-role`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-name'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-role'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vf-module-instance.vf-module-id'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vf-module-id`' />\n","comments":"","x":2142.6784439086914,"y":1952.7976660728455,"z":"5629d16d.2ad96","wires":[]},{"id":"214e6fa8.67a2d","type":"set","name":"set first vnf data","xml":"<set>\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-path-sequence-id'\n  value='1' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-instance-id'\n  value='`$serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-name'\n  value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-role'\n  value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\n  value='`$serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\n","comments":"","x":1710.1784362792969,"y":1887.7976632118225,"z":"5629d16d.2ad96","wires":[]},{"id":"11af2729.a769f9","type":"set","name":"set prev values","xml":"<set>\n<parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\n<parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\n","comments":"","x":1707.6784362792969,"y":1932.7976641654968,"z":"5629d16d.2ad96","wires":[]},{"id":"548baaaf.cc4134","type":"set","name":"set prev values","xml":"<set>\n<parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\n<parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\n","comments":"","x":2137.6784439086914,"y":2000.297667980194,"z":"5629d16d.2ad96","wires":[]},{"id":"902c5891.668ab8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1975.1784210205078,"y":1977.7976431846619,"z":"5629d16d.2ad96","wires":[["b6018a90.ab7608","548baaaf.cc4134"]]},{"id":"19011bc0.d12e74","type":"set","name":"set last vnf data","xml":"<set>\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-path-sequence-id'\n  value='`$ps-index + 2`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-instance-id'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vnf-instance-id`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-name'\n  value='`$prev-network-name`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-role'\n  value='`$prev-network-role`' />\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vf-module-instance.vf-module-id'\n  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vf-module-id`' />\n","comments":"","x":1705.1784362792969,"y":2027.7976660728455,"z":"5629d16d.2ad96","wires":[]},{"id":"d098ba8b.a3df28","type":"set","name":"set vnf_length","xml":"<set>\n<parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\n  value='`$serv-insts[$serv-index].path-segments_length + 1`' />\n","comments":"","x":1696.4284362792969,"y":2076.54766702652,"z":"5629d16d.2ad96","wires":[]},{"id":"29c194e4.ffaaec","type":"execute","name":"execute RestApiCallNode - PUT forwarding-path","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-fp\" />\n\n","comments":"","outputs":1,"x":1797.797264099121,"y":2602.5596022605896,"z":"5629d16d.2ad96","wires":[["6b24d135.106e5","6756a9be.3589b8"]]},{"id":"6b24d135.106e5","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2068.2837982177734,"y":2626.807873249054,"z":"5629d16d.2ad96","wires":[["6be686e3.d317a8"]]},{"id":"6756a9be.3589b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2060.712432861328,"y":2585.3078932762146,"z":"5629d16d.2ad96","wires":[["6be686e3.d317a8"]]},{"id":"6be686e3.d317a8","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path to MD-SAL\" />\n","comments":"","x":2280.2972717285156,"y":2600.0596022605896,"z":"5629d16d.2ad96","wires":[]},{"id":"2bf6e158.bfceae","type":"switchNode","name":"for each existing forwarding path","xml":"<for silentFailure='true' index='fp-index' start='0' end='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`' >\n","comments":"","outputs":1,"x":1833.9286270141602,"y":1176.9643034934998,"z":"5629d16d.2ad96","wires":[["f7c714ad.2bad38"]]},{"id":"d0db37ac.abed08","type":"set","name":"set found-path = false","xml":"<set>\n<parameter name='found-path' value='false' />\n","comments":"","x":1801.4286270141602,"y":1121.9643034934998,"z":"5629d16d.2ad96","wires":[]},{"id":"f7c714ad.2bad38","type":"switchNode","name":"does the forwarding path name match?","xml":"<switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path[$fp-index].forwarding-path-name\n  == $db.path-segment[0].path-name`'>\n","comments":"","outputs":1,"x":2156.42862701416,"y":1175.7143034934998,"z":"5629d16d.2ad96","wires":[["eea9da0f.918148"]]},{"id":"eea9da0f.918148","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2386.4286346435547,"y":1174.4643034934998,"z":"5629d16d.2ad96","wires":[["7cb3f8f1.85eb48"]]},{"id":"7cb3f8f1.85eb48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2515.178638458252,"y":1173.2143034934998,"z":"5629d16d.2ad96","wires":[["5754527f.58050c","8adff36e.3c1ee"]]},{"id":"5754527f.58050c","type":"set","name":"set found-path = true","xml":"<set>\n<parameter name='found-path' value='true' />\n","comments":"","x":2692.678638458252,"y":1145.7143034934998,"z":"5629d16d.2ad96","wires":[]},{"id":"8adff36e.3c1ee","type":"break","name":"break","xml":"<break>\n","comments":"","x":2645.1786041259766,"y":1193.2142901420593,"z":"5629d16d.2ad96","wires":[]},{"id":"313a3809.e4ff88","type":"switchNode","name":"switch found-path","xml":"<switch test='`$found-path`'>\n","comments":"","outputs":1,"x":1785.1786270141602,"y":1276.9643054008484,"z":"5629d16d.2ad96","wires":[["97b04b5c.cc2cb8"]]},{"id":"97b04b5c.cc2cb8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1952.6786270141602,"y":1275.7143054008484,"z":"5629d16d.2ad96","wires":[["cb6588b3.927c18"]]},{"id":"cb6588b3.927c18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2083.9286041259766,"y":1274.4642901420593,"z":"5629d16d.2ad96","wires":[["d312f25b.03d12","848cf29d.edb6a","50bf0848.ed4ac8"]]},{"id":"f0d2a389.89135","type":"execute","name":"generate forwarding-path-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"forwarding-path.forwarding-path-id\" />\n","comments":"","outputs":1,"x":1746.0117454528809,"y":1757.7975754737854,"z":"5629d16d.2ad96","wires":[[]]},{"id":"491426c8.70e218","type":"execute","name":"generate service-path-instance-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"forwarding-path.service-paths.service-path[0].service-path-instance-id\" />\n","comments":"","outputs":1,"x":1764.3450775146484,"y":1800.2977395057678,"z":"5629d16d.2ad96","wires":[[]]},{"id":"5bdb2ffa.bd158","type":"switchNode","name":"switch api","xml":"<switch test='`$serv-insts[$serv-index].api`'>\n","comments":"","outputs":1,"x":1680.1188850402832,"y":2255.893068790436,"z":"5629d16d.2ad96","wires":[["a1a0cae2.cf1708","7db03a9d.ab68a4"]]},{"id":"a1a0cae2.cf1708","type":"outcome","name":"GR","xml":"<outcome value='GR'>\n","comments":"","outputs":1,"x":1831.7855987548828,"y":2141.7262177467346,"z":"5629d16d.2ad96","wires":[["f2ab2652.039508"]]},{"id":"7db03a9d.ab68a4","type":"outcome","name":"VNF","xml":"<outcome value='VNF'>\n","comments":"","outputs":1,"x":1827.4403438568115,"y":2382.869236469269,"z":"5629d16d.2ad96","wires":[["4b154329.3644ec"]]},{"id":"4b154329.3644ec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1961.1903285980225,"y":2382.6192116737366,"z":"5629d16d.2ad96","wires":[["f9ae246a.e84cd8","983ef71a.da7d78","4c9a08e9.01d9f8","80ee9321.e385d","ae5db14f.68538"]]},{"id":"f9ae246a.e84cd8","type":"execute","name":"generate service-instance-id","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" >\n<parameter name=\"ctx-destination\" value=\"tmp.service-instance-id\" />\n","comments":"","outputs":1,"x":2167.8570671081543,"y":2281.9049582481384,"z":"5629d16d.2ad96","wires":[[]]},{"id":"1f8a0d2b.888443","type":"execute","name":"generate forwarding-path url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.forwarding-path`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.fp-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1735.714096069336,"y":2545.47572183609,"z":"5629d16d.2ad96","wires":[[]]},{"id":"8d090eb7.070a8","type":"comment","name":"Make a new service instance in GR-API","info":"","comments":"","x":2274.1069869995117,"y":2244.8214716911316,"z":"5629d16d.2ad96","wires":[]},{"id":"a46d416f.1a345","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/gps.log' />\n","comments":"","outputs":1,"x":632.2619171142578,"y":1701.964307308197,"z":"5629d16d.2ad96","wires":[[]]},{"id":"c67bb294.bc315","type":"switchNode","name":"switch path-segments_length","xml":"<switch test='`$serv-insts[$serv-index].path-segments_length`'>\n","comments":"","outputs":1,"x":1139.1667098999023,"y":2182.2023825645447,"z":"5629d16d.2ad96","wires":[["85251f33.38b5d","208c3acb.b76f26","eb2e3f83.248d9"]]},{"id":"eb2e3f83.248d9","type":"success","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1352.499927520752,"y":2207.2023844718933,"z":"5629d16d.2ad96","wires":[["df485e3e.9e56d"]]},{"id":"85251f33.38b5d","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1354.999927520752,"y":2110.952624797821,"z":"5629d16d.2ad96","wires":[["b2a1f74e.a0d9f8"]]},{"id":"208c3acb.b76f26","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1354.166675567627,"y":2153.869128704071,"z":"5629d16d.2ad96","wires":[["b2a1f74e.a0d9f8"]]},{"id":"b2a1f74e.a0d9f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1495.8332252502441,"y":2132.2024211883545,"z":"5629d16d.2ad96","wires":[[]]},{"id":"683c3990.4dec28","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1565.357032775879,"y":1020.8928046226501,"z":"5629d16d.2ad96","wires":[["45c3f393.2082bc","477131b1.1c0c2"]]},{"id":"64270aaa.060174","type":"save","name":"custom query: get service instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource_and_url'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.si\">\n\t<parameter name=\"start[0]\" value=\"`'nodes/service-instance/' + $serv-inst.service-instance-id `\" />\n\t<parameter name=\"start_length\" value=\"1\" />\n","comments":"","outputs":1,"x":1210.3569946289062,"y":1022.559576511383,"z":"5629d16d.2ad96","wires":[["b6eca96f.d32ca8"]]},{"id":"45c3f393.2082bc","type":"execute","name":"execute split","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n\t<parameter name=\"original_string\" value=\"`$tmp.AnAI-data.si.results[0].url`\" />\n\t<parameter name=\"regex\" value=\"/\"/>\n\t<parameter name=\"limit\" value=\"11\" />\n\t<parameter name=\"ctx_memory_result_key\" value=\"split\" />\n","comments":"","outputs":1,"x":1714.4045639038086,"y":996.8453507423401,"z":"5629d16d.2ad96","wires":[[]]},{"id":"b6eca96f.d32ca8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1432.0237197875977,"y":1022.2261891365051,"z":"5629d16d.2ad96","wires":[["683c3990.4dec28"]]},{"id":"477131b1.1c0c2","type":"set","name":"set global-customer-id, etc","xml":"<set>\n<parameter name='output-global-customer-id' value='`$split[6]`' />\n<parameter name='output-service-type' value='`$split[9]`' />\n<parameter name='output-service-role' value='`$tmp.AnAI-data.si.results[0].service-instance.service-role`' />\n","comments":"","x":1758.2141189575195,"y":1047.5595059394836,"z":"5629d16d.2ad96","wires":[]},{"id":"80ee9321.e385d","type":"save","name":"save service-instance to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"service-instance\" \n\tkey=\"customer.global-customer-id = $output-global-customer-id\n\t  AND service-subscription.service-type = $output-service-type\n\t  AND service-instance.service-instance-id = $tmp.service-instance-id\" >\n<parameter name=\"service-instance-id\" value=\"`$tmp.service-instance-id`\" />\n<parameter name=\"global-customer-id\" value=\"`$output-global-customer-id`\" />\n<parameter name=\"service-type\" value=\"`$output-service-type`\" />\n<parameter name=\"service-role\" value=\"`$output-service-role`\" />\n","comments":"","outputs":1,"x":2173.452423095703,"y":2455.4165325164795,"z":"5629d16d.2ad96","wires":[["d5fedeb1.c6453","2cc58f82.b2f37"]]},{"id":"b329030f.6943d","type":"comment","name":"Make a new service instance in A&AI","info":"","comments":"","x":2262.500144958496,"y":2405.892997264862,"z":"5629d16d.2ad96","wires":[]},{"id":"b4ae1cfc.2d5e8","type":"save","name":"save forwarding-path to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"forwarding-path\" \n\tkey=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\" >\n<parameter name=\"forwarding-path-id\" value=\"`$forwarding-path.service-paths.service-path[0].service-path-instance-id`\" />\n<parameter name=\"forwarding-path-name\" value=\"`$forwarding-path.service-paths.service-path[0].service-path-instance-name`\" />\n<parameter name=\"selflink\" value=\"`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\n  + $tmp.service-instance-id\n  + '/forwarding-paths/forwarding-path/'\n  + $forwarding-path.forwarding-path-id\n  + '/services-paths/service-path/'\n  + $forwarding-path.service-paths.service-path[0].service-path-instance-id`\" />\n","comments":"","outputs":1,"x":1737.4999694824219,"y":2695.416627883911,"z":"5629d16d.2ad96","wires":[["570c5c1d.a84184","100184f6.a8fcdb"]]},{"id":"4177217a.70cc7","type":"save","name":"save forwarding-path relationship to service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"forwarding-path:relationship-list\"\n   key=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/business/customers/customer/'\n        + $output-global-customer-id\n        + '/service-subscriptions/service-subscription/'\n        + $output-service-type\n        + '/service-instances/service-instance/'\n        + $tmp.service-instance-id`\" />\n","comments":"","outputs":1,"x":1807.5000610351562,"y":2777.321086883545,"z":"5629d16d.2ad96","wires":[["e5653651.b903c8","eebbf2de.ab99c"]]},{"id":"9b387be2.dc2b18","type":"for","name":"for each vnf","xml":"<for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1678.9283981323242,"y":2904.464366912842,"z":"5629d16d.2ad96","wires":[["f601972.d913268"]]},{"id":"f601972.d913268","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1830.3570861816406,"y":2904.035620689392,"z":"5629d16d.2ad96","wires":[["ad9f625f.82ae3","86151834.e1db48"]]},{"id":"ad9f625f.82ae3","type":"save","name":"save forwarder to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"forwarder\" \n\tkey=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id\" >\n<parameter name=\"sequence\" value=\"`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id`\" />\n","comments":"","outputs":1,"x":2006.3570861816406,"y":2861.60693359375,"z":"5629d16d.2ad96","wires":[["4bd05c77.8bf2c4","cb4dc21b.d4dc6"]]},{"id":"86151834.e1db48","type":"save","name":"save forwarder relationship to generic-vnf","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"forwarder:relationship-list\"\n   key=\"forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\n     AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"generic-vnf\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/generic-vnfs/generic-vnf/'\n        + $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-instance-id`\" />\n","comments":"","outputs":1,"x":2060.357048034668,"y":2947.55947971344,"z":"5629d16d.2ad96","wires":[["5201ac9b.81d914","cf4a6c9f.ce33c"]]},{"id":"4c9a08e9.01d9f8","type":"execute","name":"execute RestApiCallNode - PUT service-instance","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-sr\" />\n\n","comments":"","outputs":1,"x":2232.857192993164,"y":2368.571464061737,"z":"5629d16d.2ad96","wires":[["67e628d8.b9a9b8"]]},{"id":"983ef71a.da7d78","type":"execute","name":"generate service-instance url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.service`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.service-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.service-instance-id`\"/>\n","comments":"","outputs":1,"x":2169.107192993164,"y":2326.0714631080627,"z":"5629d16d.2ad96","wires":[[]]},{"id":"f2ab2652.039508","type":"set","name":"set tmp.service-instance-id","xml":"<set>\n<parameter name='tmp.service-instance-id' value='`$serv-insts[$serv-index].service-instance-id`' />\n","comments":"","x":2023.9287490844727,"y":2141.1785759925842,"z":"5629d16d.2ad96","wires":[]},{"id":"ae5db14f.68538","type":"save","name":"save SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING ","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"INSERT INTO SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\n  (simple_service_instance_id, forwarding_path_service_instance_id)\n  VALUES ( $serv-insts[$serv-index].service-instance-id , $tmp.service-instance-id )\" >","comments":"","outputs":1,"x":2297.9761810302734,"y":2511.6070461273193,"z":"5629d16d.2ad96","wires":[[]]},{"id":"83141530.82c518","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2316.785617828369,"y":1379.1786713600159,"z":"5629d16d.2ad96","wires":[["b3cd7e32.1311e"]]},{"id":"63df2c22.43c924","type":"get-resource","name":"get-resource SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select forwarding_path_service_instance_id\n    from SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\n    where simple_service_instance_id = $serv-inst.service-instance-id'\n  pfx='db.sitcim'>\n","comments":"","outputs":1,"x":1955.2857208251953,"y":1378.7979912757874,"z":"5629d16d.2ad96","wires":[["83141530.82c518"]]},{"id":"b3cd7e32.1311e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1929.6429634094238,"y":1485.8929257392883,"z":"5629d16d.2ad96","wires":[["f82d1a28.9d5758","d0b3e656.49f5b8"]]},{"id":"a32e6237.6daf3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":725.9285316467285,"y":312.1309576034546,"z":"5629d16d.2ad96","wires":[["3e23f4b0.7933cc"]]},{"id":"39c3eea1.efd8a2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":725.9285545349121,"y":357.1309471130371,"z":"5629d16d.2ad96","wires":[["9ec522bf.66732"]]},{"id":"3e23f4b0.7933cc","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'System error reading PATH_SEGMENT table for uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n  + ' and path '\n  + $db.forwarding-path[$path-index].path-name`\" />\n","comments":"","x":925.9286766052246,"y":310.4642915725708,"z":"5629d16d.2ad96","wires":[]},{"id":"9ec522bf.66732","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'No entries in PATH_SEGMENT table for uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\n  + ' and path '\n  + $db.forwarding-path[$path-index].path-name`\" />\n","comments":"","x":925.9284934997559,"y":357.1309471130371,"z":"5629d16d.2ad96","wires":[]},{"id":"5581a414.fb2c9c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":577.5952529907227,"y":400.46430587768555,"z":"5629d16d.2ad96","wires":[["6ce2ff77.93b44"]]},{"id":"6ce2ff77.93b44","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":312.26190185546875,"y":574.4642467498779,"z":"5629d16d.2ad96","wires":[["1570d296.5420fd","6ae56929.26b358","4e5c686c.598f68"]]},{"id":"fb8a502b.b988a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":997.2618865966797,"y":616.1309127807617,"z":"5629d16d.2ad96","wires":[["c62d489d.61a668"]]},{"id":"f673ab2c.5baed8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":997.2619094848633,"y":659.1309022903442,"z":"5629d16d.2ad96","wires":[["709cc4e9.5f8a1c"]]},{"id":"709cc4e9.5f8a1c","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'System error calling AAI to get run-time service instances for invariant uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`\" />\n","comments":"","x":1187.2621154785156,"y":659.4642295837402,"z":"5629d16d.2ad96","wires":[]},{"id":"c62d489d.61a668","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'No run-time service instances in AAI for invariant uuid '\n  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`\" />\n","comments":"","x":1185.59525680542,"y":616.1309595108032,"z":"5629d16d.2ad96","wires":[]},{"id":"30dab3b9.4e949c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":848.9285125732422,"y":702.7975997924805,"z":"5629d16d.2ad96","wires":[["cf0a30ca.a8fbb"]]},{"id":"cf0a30ca.a8fbb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":297.26189041137695,"y":1471.1309490203857,"z":"5629d16d.2ad96","wires":[["f1440634.84c218","954eddda.d0e1c","d93608d4.fa2628","2cea7227.951c0e","d5e62d12.0598","a46d416f.1a345","2e8ac8c0.7d70a8"]]},{"id":"100184f6.a8fcdb","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1945.595199584961,"y":2714.464129447937,"z":"5629d16d.2ad96","wires":[["d60f0907.9fd4d8"]]},{"id":"570c5c1d.a84184","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1938.0238342285156,"y":2672.9641494750977,"z":"5629d16d.2ad96","wires":[["d60f0907.9fd4d8"]]},{"id":"d60f0907.9fd4d8","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path to AAI\" />\n","comments":"","x":2157.608673095703,"y":2687.7158584594727,"z":"5629d16d.2ad96","wires":[]},{"id":"eebbf2de.ab99c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2085.5952072143555,"y":2794.4642028808594,"z":"5629d16d.2ad96","wires":[["bf35846c.fd3a28"]]},{"id":"e5653651.b903c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2078.02384185791,"y":2752.96422290802,"z":"5629d16d.2ad96","wires":[["bf35846c.fd3a28"]]},{"id":"bf35846c.fd3a28","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarding-path relationship to AAI\" />\n","comments":"","x":2297.6086807250977,"y":2767.715931892395,"z":"5629d16d.2ad96","wires":[]},{"id":"cb4dc21b.d4dc6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2188.928421020508,"y":2881.1309871673584,"z":"5629d16d.2ad96","wires":[["d39c3493.921458"]]},{"id":"4bd05c77.8bf2c4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2181.3570556640625,"y":2839.631007194519,"z":"5629d16d.2ad96","wires":[["d39c3493.921458"]]},{"id":"d39c3493.921458","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarder to AAI\" />\n","comments":"","x":2400.94189453125,"y":2854.382716178894,"z":"5629d16d.2ad96","wires":[]},{"id":"cf4a6c9f.ce33c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2297.261878967285,"y":2967.7974796295166,"z":"5629d16d.2ad96","wires":[["6613e9ab.9c4918"]]},{"id":"5201ac9b.81d914","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2289.69051361084,"y":2926.2974996566772,"z":"5629d16d.2ad96","wires":[["6613e9ab.9c4918"]]},{"id":"6613e9ab.9c4918","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure writing forwarder relationship to AAI\" />\n","comments":"","x":2509.2753524780273,"y":2941.0492086410522,"z":"5629d16d.2ad96","wires":[]},{"id":"67e628d8.b9a9b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2495.5950775146484,"y":2367.797538757324,"z":"5629d16d.2ad96","wires":[["d3a89de0.7df88"]]},{"id":"d3a89de0.7df88","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure creating service instance in MD-SAL\" />\n","comments":"","x":2685.5950775146484,"y":2366.130790710449,"z":"5629d16d.2ad96","wires":[]},{"id":"2cc58f82.b2f37","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2383.9285736083984,"y":2472.797538757324,"z":"5629d16d.2ad96","wires":[["36de329d.4c51fe"]]},{"id":"d5fedeb1.c6453","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2376.357208251953,"y":2431.297558784485,"z":"5629d16d.2ad96","wires":[["36de329d.4c51fe"]]},{"id":"36de329d.4c51fe","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"Failure creating service instance in AAI\" />\n","comments":"","x":2579.2754077911377,"y":2446.049120903015,"z":"5629d16d.2ad96","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.json
new file mode 100755 (executable)
index 0000000..203eecb
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"a66fc7ce.46b378","type":"dgstart","name":"DGSTART","outputs":1,"x":104.99999237060547,"y":85,"z":"6d7f71e.590019","wires":[["18810cab.b01663"]]},{"id":"18810cab.b01663","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":220.2856903076172,"y":125.23810863494873,"z":"6d7f71e.590019","wires":[["93389fb4.470df"]]},{"id":"93389fb4.470df","type":"method","name":"method getpathsegment-populate-from-grapi","xml":"<method rpc='getpathsegment-populate-from-grapi' mode='sync'>\n","comments":"","outputs":1,"x":215.42861938476562,"y":165.9999942779541,"z":"6d7f71e.590019","wires":[["4035cbaf.322f94"]]},{"id":"d9495938.32cb18","type":"comment","name":"getpathsegment-populate-from-grapi","info":"","comments":"","x":499.3448486328125,"y":32.58634376525879,"z":"6d7f71e.590019","wires":[]},{"id":"4035cbaf.322f94","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":205.57146453857422,"y":406.7411518096924,"z":"6d7f71e.590019","wires":[["f0797342.9c438"]]},{"id":"363c3171.7e0ede","type":"for","name":"for each MD-SAL vnf","xml":"<for silentFailure='true' index='vnf-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1390.535903930664,"y":482.32140922546387,"z":"6d7f71e.590019","wires":[["2be3d5be.b86e3a"]]},{"id":"17ed646d.5e36fc","type":"set","name":"set vnf-list_length","xml":"<set>\n<parameter name='serv-inst.vnf-list_length'\n  value='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' />\n","comments":"","x":1478.3928718566895,"y":725.1785326004028,"z":"6d7f71e.590019","wires":[]},{"id":"8f05c34f.9a216","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":2101.3096885681152,"y":258.9880962371826,"z":"6d7f71e.590019","wires":[["5a6fb1cb.14dec","d45cb724.9e68e8","ede9f0c5.b1bd2"]]},{"id":"5a6fb1cb.14dec","type":"set","name":"set vnf-id","xml":"<set>\n<parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-id' value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n","comments":"","x":2263.2744140625,"y":210.6547908782959,"z":"6d7f71e.590019","wires":[]},{"id":"d45cb724.9e68e8","type":"for","name":"for each vnf network","xml":"<for silentFailure='true' index='vnf-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":2297.5004806518555,"y":259.82146310806274,"z":"6d7f71e.590019","wires":[["3f360487.40655c"]]},{"id":"55d9efb3.4b684","type":"set","name":"set api type to GR","xml":"<set>\n<parameter name='serv-inst.api' value='GR' />\n","comments":"","x":1478.928638458252,"y":669.642825126648,"z":"6d7f71e.590019","wires":[]},{"id":"3f360487.40655c","type":"for","name":"for each vf module","xml":"<for silentFailure='true' index='vf-module-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":2508.750545501709,"y":260.2500329017639,"z":"6d7f71e.590019","wires":[["c7aba045.1c34a"]]},{"id":"c7aba045.1c34a","type":"for","name":"for each vm","xml":"<for silentFailure='true' index='vm-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":2689.643611907959,"y":259.64292001724243,"z":"6d7f71e.590019","wires":[["5b48a026.a1a91"]]},{"id":"5b48a026.a1a91","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='vm-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":2876.608066558838,"y":259.8214945793152,"z":"6d7f71e.590019","wires":[["1cdc2616.1c24fa"]]},{"id":"a31355db.afe758","type":"for","name":"for each vnf in vnf-ids","xml":"<for silentFailure='true' index='vnf-ids-index' start='0' end='`$vnf-ids_length`' >\n","comments":"","outputs":1,"x":995.0595626831055,"y":502.5595397949219,"z":"6d7f71e.590019","wires":[["e14fa0c6.5ef9"]]},{"id":"2be3d5be.b86e3a","type":"switchNode","name":"customization-uuid matches?","xml":"<switch test='`$vnf-ids[$vnf-ids-index] == $mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1662.6787796020508,"y":480.57142639160156,"z":"6d7f71e.590019","wires":[["aad27c47.88dea"]]},{"id":"aad27c47.88dea","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1885.5357627868652,"y":478.5714750289917,"z":"6d7f71e.590019","wires":[["8f05c34f.9a216"]]},{"id":"e14fa0c6.5ef9","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1192.6786270141602,"y":500.7143154144287,"z":"6d7f71e.590019","wires":[["363c3171.7e0ede","46015960.11afa8","ef9932e5.043a5"]]},{"id":"46015960.11afa8","type":"switchNode","name":"switch vnf-network-list_length == 0","xml":"<switch test='`$vnf-network-list_length == 0`'>\n","comments":"","outputs":1,"x":1431.2501678466797,"y":574.2856636047363,"z":"6d7f71e.590019","wires":[["4996b9c9.495528"]]},{"id":"4996b9c9.495528","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1644.1071548461914,"y":574.2858028411865,"z":"6d7f71e.590019","wires":[["c2d3eb61.cfd728"]]},{"id":"eade6fe6.5700f","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='matching-error' value=\"`'Unable to find VNF with customization UUID of ' + $vnf-ids[vnf-ids-index] + ' for service instance ' + $serv-inst.service-instance-id`\" />\n","comments":"","x":2008.3927974700928,"y":530.000096321106,"z":"6d7f71e.590019","wires":[]},{"id":"c2d3eb61.cfd728","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1795.5358142852783,"y":574.2857704162598,"z":"6d7f71e.590019","wires":[["eade6fe6.5700f","d6048bfa.780a88","6dca1263.4778bc"]]},{"id":"d6048bfa.780a88","type":"break","name":"break","xml":"<break>\n","comments":"","x":1948.392993927002,"y":625.7143640518188,"z":"6d7f71e.590019","wires":[]},{"id":"77e5e709.c714d8","type":"switchNode","name":"switch mismatch","xml":"<switch test='`$mismatch`'>\n","comments":"","outputs":1,"x":970.3571624755859,"y":703.392915725708,"z":"6d7f71e.590019","wires":[["c2d5121.2cea3f"]]},{"id":"c2d5121.2cea3f","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1137.4998664855957,"y":703.3929166793823,"z":"6d7f71e.590019","wires":[["e13c20b2.c80ee"]]},{"id":"e13c20b2.c80ee","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1288.9285430908203,"y":703.3929100036621,"z":"6d7f71e.590019","wires":[["55d9efb3.4b684","17ed646d.5e36fc"]]},{"id":"f0797342.9c438","type":"switchNode","name":"switch vnf-ids_length","xml":"<switch test='`$vnf-ids_length`'>\n","comments":"","outputs":1,"x":408.74999618530273,"y":405.3571491241455,"z":"6d7f71e.590019","wires":[["23fcf718.af2d48","54b8da41.f17a84"]]},{"id":"23fcf718.af2d48","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":607.4999771118164,"y":245.00000381469727,"z":"6d7f71e.590019","wires":[["1ceb28f2.d76047"]]},{"id":"54b8da41.f17a84","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":608.75,"y":598.7500057220459,"z":"6d7f71e.590019","wires":[["9bba02e5.459a"]]},{"id":"9bba02e5.459a","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":772.4999923706055,"y":597.5,"z":"6d7f71e.590019","wires":[["a31355db.afe758","77e5e709.c714d8","25801811.f52908"]]},{"id":"4c7eaa9d.d75e14","type":"comment","name":"Composite path","info":"","comments":"","x":769.8214492797852,"y":188.5714225769043,"z":"6d7f71e.590019","wires":[]},{"id":"1132a175.93984f","type":"comment","name":"Simple path","info":"","comments":"","x":765.8928642272949,"y":542.8571424484253,"z":"6d7f71e.590019","wires":[]},{"id":"1ceb28f2.d76047","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":764.9999694824219,"y":246.24999809265137,"z":"6d7f71e.590019","wires":[["e5138787.60c938","457ab284.4700dc","a11da0e1.fb029"]]},{"id":"457ab284.4700dc","type":"set","name":"set vnf-list_length","xml":"<set>\n<parameter name='serv-inst.vnf-list_length'\n  value='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' />\n","comments":"","x":969.4642639160156,"y":326.42856216430664,"z":"6d7f71e.590019","wires":[]},{"id":"e5138787.60c938","type":"set","name":"set api type to GR","xml":"<set>\n<parameter name='serv-inst.api' value='GR' />\n","comments":"","x":971.785774230957,"y":273.214298248291,"z":"6d7f71e.590019","wires":[]},{"id":"ef9932e5.043a5","type":"set","name":"set vnf-network-list_length to 0","xml":"<set>\n<parameter name='vnf-network-list_length' value='0' />\n","comments":"","x":1421.7859725952148,"y":428.4523859024048,"z":"6d7f71e.590019","wires":[]},{"id":"1cdc2616.1c24fa","type":"switchNode","name":"network-role matches?","xml":"<switch test='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\n  == $mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network[$vm-network-index].network-role`'>\n","comments":"","outputs":1,"x":3094.6426963806152,"y":259.64286279678345,"z":"6d7f71e.590019","wires":[["7e6e4184.8f829"]]},{"id":"a5bc8518.beefc8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3400.3572845458984,"y":258.2142868041992,"z":"6d7f71e.590019","wires":[["ee23b31b.a6149","bc442b55.010ac8"]]},{"id":"ee23b31b.a6149","type":"set","name":"set network name/role and vf-module-id","xml":"<set>\n<parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-name'\n  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`' />\n<parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-role'\n  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\n<parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].vf-module-id'\n  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n","comments":"","x":3630.357280731201,"y":232.4999704360962,"z":"6d7f71e.590019","wires":[]},{"id":"bc442b55.010ac8","type":"set","name":"increment vnf-network-list_length","xml":"<set>\n<parameter name='vnf-network-list_length' value='`$vnf-network-list_length + 1`' />\n","comments":"","x":3604.6429862976074,"y":281.0714168548584,"z":"6d7f71e.590019","wires":[]},{"id":"ede9f0c5.b1bd2","type":"set","name":"set vnf-network-list_length in serv-inst","xml":"<set>\n<parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list_length' value='`$vnf-network-list_length`' />\n","comments":"","x":2351.785972595215,"y":309.6428451538086,"z":"6d7f71e.590019","wires":[]},{"id":"25801811.f52908","type":"set","name":"set mismatch = false","xml":"<set>\n<parameter name='mismatch' value='false' />\n","comments":"","x":991.7857360839844,"y":449.4047613143921,"z":"6d7f71e.590019","wires":[]},{"id":"6dca1263.4778bc","type":"set","name":"set mismatch = true","xml":"<set>\n<parameter name='mismatch' value='true' />\n","comments":"","x":1990.3571548461914,"y":578.2143392562866,"z":"6d7f71e.590019","wires":[]},{"id":"7e6e4184.8f829","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3271.785789489746,"y":258.21430587768555,"z":"6d7f71e.590019","wires":[["a5bc8518.beefc8"]]},{"id":"a11da0e1.fb029","type":"for","name":"for each vnf in MD-SAL","xml":"<for silentFailure='true' index='vnf-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":986.0713539123535,"y":208.92858123779297,"z":"6d7f71e.590019","wires":[["899f4cb5.f34bb"]]},{"id":"899f4cb5.f34bb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1174.6427879333496,"y":207.50000381469727,"z":"6d7f71e.590019","wires":[["5a4b7c4.0d65784","8f05c34f.9a216","782de792.75d208"]]},{"id":"5a4b7c4.0d65784","type":"set","name":"set vnf-ids-index to vnf-index","xml":"<set>\n<parameter name='vnf-ids-index' value='`$vnf-index`' />\n","comments":"","x":1384.880874633789,"y":169.64285469055176,"z":"6d7f71e.590019","wires":[]},{"id":"782de792.75d208","type":"set","name":"set vnf-network-list_length to 0","xml":"<set>\n<parameter name='vnf-network-list_length' value='0' />\n","comments":"","x":1391.666633605957,"y":121.66666030883789,"z":"6d7f71e.590019","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.json
new file mode 100755 (executable)
index 0000000..f21ab79
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"79886f35.468b2","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":361,"y":33,"z":"13ea1295.46163d","wires":[["6bebd82e.dbb4e8"]]},{"id":"fc9a5aeb.9641b8","type":"dgstart","name":"DGSTART","outputs":1,"x":105,"y":33,"z":"13ea1295.46163d","wires":[["79886f35.468b2"]]},{"id":"6bebd82e.dbb4e8","type":"method","name":"method getpathsegment-populate-from-vnfapi","xml":"<method rpc='getpathsegment-populate-from-vnfapi' mode='sync'>\n","comments":"","outputs":1,"x":737,"y":33,"z":"13ea1295.46163d","wires":[["c815e4d6.935de8"]]},{"id":"c815e4d6.935de8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":172,"y":95,"z":"13ea1295.46163d","wires":[["d9a6b40e.e037e8","bc341c4c.788fc","45f4ec8e.8f54b4","3f5b8bf5.fb4eb4","f22ed2ac.cf7d4","8dce646d.ba9e58","fd97e171.58aa","aecdddc8.b3b0c","73374c07.1b3084","a7f70fe1.122d9","cf9d4004.d81ce"]]},{"id":"398ebb3d.c08964","type":"comment","name":"Validate ctx inputs","info":"","comments":"","x":229,"y":285,"z":"13ea1295.46163d","wires":[]},{"id":"d9a6b40e.e037e8","type":"switchNode","name":"switch input serv-inst.service-instance-id","xml":"<switch test='`$serv-inst.service-instance-id`'>\n","comments":"","outputs":1,"x":305,"y":371,"z":"13ea1295.46163d","wires":[["d44a97a1.a14c48"]]},{"id":"807211c8.250bf","type":"comment","name":"service-instance-id and match-type - REQUIRED","info":"","comments":"","x":326,"y":327,"z":"13ea1295.46163d","wires":[]},{"id":"d44a97a1.a14c48","type":"other","name":"Blank","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":535,"y":371,"z":"13ea1295.46163d","wires":[["19cff64d.9e764a"]]},{"id":"e84a6720.65d5f8","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: input service-instance-id is not set\"/>","comments":"","outputs":1,"x":781,"y":371,"z":"13ea1295.46163d","wires":[[]]},{"id":"bc341c4c.788fc","type":"switchNode","name":"switch input match-type","xml":"<switch test='`$match-type`'>\n","comments":"","outputs":1,"x":257,"y":456,"z":"13ea1295.46163d","wires":[["359972bf.ebd0ce"]]},{"id":"359972bf.ebd0ce","type":"other","name":"Blank","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":536,"y":456,"z":"13ea1295.46163d","wires":[["5fe8c913.e7db68"]]},{"id":"8e58421f.d9382","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: input match-type is not set\"/>","comments":"","outputs":1,"x":790,"y":457,"z":"13ea1295.46163d","wires":[[]]},{"id":"dd804e4.b1b1bb","type":"comment","name":"Determine simple or composite path from vnf-ids_length","info":"","comments":"","x":339,"y":577,"z":"13ea1295.46163d","wires":[]},{"id":"45f4ec8e.8f54b4","type":"switchNode","name":"switch input vnf-ids_length","xml":"<switch test='`$vnf-ids_length`'>\n","comments":"","outputs":1,"x":249,"y":622,"z":"13ea1295.46163d","wires":[["7745bc96.282894","4d6a5928.9b39e8"]]},{"id":"7745bc96.282894","type":"other","name":"Blank","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":439,"y":622,"z":"13ea1295.46163d","wires":[["cf606a1a.2b6be8"]]},{"id":"3fdc4223.03b76e","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is NOT blank, this is a SIMPLE path\"/>","comments":"","outputs":1,"x":700,"y":743,"z":"13ea1295.46163d","wires":[[]]},{"id":"804d67a4.472cc8","type":"comment","name":"For 1806: will match-type always be \"network-name\", may have other values in the future","info":"","comments":"","x":1153,"y":456,"z":"13ea1295.46163d","wires":[]},{"id":"52e459e3.cc48b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":566,"y":687,"z":"13ea1295.46163d","wires":[["a7265092.2dcf2","3fdc4223.03b76e"]]},{"id":"a7265092.2dcf2","type":"set","name":"set path-type SIMPLE","xml":"<set>\n<parameter name=\"path-type\" value= \"SIMPLE\"/>","comments":"","x":745,"y":693,"z":"13ea1295.46163d","wires":[]},{"id":"8dce646d.ba9e58","type":"execute","name":"printContext * TEST-ONLY *","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/getpathsegment-populate-from-vnfapi-output.log' />\n","comments":"","outputs":1,"x":252,"y":3650,"z":"13ea1295.46163d","wires":[[]]},{"id":"4d6a5928.9b39e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":438,"y":687,"z":"13ea1295.46163d","wires":[["52e459e3.cc48b8"]]},{"id":"cf606a1a.2b6be8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":567,"y":622,"z":"13ea1295.46163d","wires":[["bd9f687e.c01fc8","2f9dfd0.57c5b04"]]},{"id":"bd9f687e.c01fc8","type":"set","name":"set path-type COMPOSITE","xml":"<set>\n<parameter name=\"path-type\" value= \"COMPOSITE\"/>","comments":"","x":762,"y":587,"z":"13ea1295.46163d","wires":[]},{"id":"2f9dfd0.57c5b04","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is blank, this is a COMPOSITE path\"/>","comments":"","outputs":1,"x":698,"y":641,"z":"13ea1295.46163d","wires":[[]]},{"id":"3f5b8bf5.fb4eb4","type":"returnSuccess","name":"return success","xml":"<return status='success'>","comments":"","x":214,"y":3703,"z":"13ea1295.46163d","wires":[]},{"id":"19cff64d.9e764a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":655,"y":371,"z":"13ea1295.46163d","wires":[["e84a6720.65d5f8","2146f88b.5fab68"]]},{"id":"5fe8c913.e7db68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":660,"y":457,"z":"13ea1295.46163d","wires":[["8e58421f.d9382","8228ea75.c55708"]]},{"id":"f22ed2ac.cf7d4","type":"set","name":"set outputs","xml":"<set>\n<parameter name=\"serv-inst.service-instance-id\" value= \"`$serv-inst.service-instance-id`\"/>\n<parameter name=\"serv-inst.vnf-list_length\" value= \"`$vnfListIndex`\"/>","comments":"","x":197,"y":3545,"z":"13ea1295.46163d","wires":[]},{"id":"fd97e171.58aa","type":"switchNode","name":"switch path-type","xml":"<switch test='`$path-type`'>\n","comments":"","outputs":1,"x":226,"y":833,"z":"13ea1295.46163d","wires":[["f27f4e54.99621","c68b280e.127728"]]},{"id":"f27f4e54.99621","type":"other","name":"SIMPLE","xml":"<outcome value='SIMPLE'>\n","comments":"","outputs":1,"x":388,"y":799,"z":"13ea1295.46163d","wires":[["7c6f9037.e4eeb"]]},{"id":"7c6f9037.e4eeb","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":416,"y":847,"z":"13ea1295.46163d","wires":[["ce28ec71.903b2","d3b27ea5.54dc1","839b28.f8b8b4d8","ccb84430.71e918","30f0e2b3.100a5e","cbe26532.112ec8","f4d41db.52befe"]]},{"id":"c68b280e.127728","type":"other","name":"COMPOSITE","xml":"<outcome value='COMPOSITE'>\n","comments":"","outputs":1,"x":359,"y":2429,"z":"13ea1295.46163d","wires":[["b6c1194d.fd2498"]]},{"id":"b6c1194d.fd2498","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":387,"y":2474,"z":"13ea1295.46163d","wires":[["e3148b0a.ca8e38","9edbc24f.7c9ff","223f61e8.f562be"]]},{"id":"2e158271.5031ee","type":"comment","name":"Get vf-module-ids from AAI using custom query vnfs-fromServiceInstance (aai-complex-service-1020)","info":"","comments":"","x":832,"y":800,"z":"13ea1295.46163d","wires":[]},{"id":"ce28ec71.903b2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids\"/>","comments":"","outputs":1,"x":549,"y":891,"z":"13ea1295.46163d","wires":[[]]},{"id":"d3b27ea5.54dc1","type":"save","name":"AAI custom query: get vf-module-ids","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.vf-module-ids\">\n<parameter name=\"start[0]\" value=\"`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `\" />\n<!--<parameter name=\"start[0]\" value=\"`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `\" />-->\n<!--<parameter name=\"start[0]\" value=\"`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `\" />-->\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"/query/vfModule-fromServiceInstance\" />\n<!--<parameter name=\"query\" value=\"/query/vnfs-fromServiceInstance\" /> -->","comments":"","outputs":1,"x":642,"y":942,"z":"13ea1295.46163d","wires":[["e082040c.6d4908","5c4292b1.11b9ec","9e260ec9.cf65b"]]},{"id":"e082040c.6d4908","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":877.2380867004395,"y":895.6664667129517,"z":"13ea1295.46163d","wires":[["e3c1e843.25a028"]]},{"id":"e3c1e843.25a028","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1016.9524154663086,"y":895.3806056976318,"z":"13ea1295.46163d","wires":[["d997efa6.55434"]]},{"id":"d997efa6.55434","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: vfModule-fromServiceInstance\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name='tmp.vf-module-ids_length' value='0' />\n<parameter name='tmp.vnf-instances_length' value='0' />\n","comments":"","outputs":1,"x":1197.52392578125,"y":895.0949096679688,"z":"13ea1295.46163d","wires":[[]]},{"id":"5c4292b1.11b9ec","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":878.3809814453125,"y":941.3806762695312,"z":"13ea1295.46163d","wires":[["c08b2b88.a84a68"]]},{"id":"c08b2b88.a84a68","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1020.666690826416,"y":941.9521732330322,"z":"13ea1295.46163d","wires":[["3734ee52.190de2"]]},{"id":"3734ee52.190de2","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No vfModules returned from AAI: vfModule-fromService-instance\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n","comments":"","outputs":1,"x":1196.2381591796875,"y":941.66650390625,"z":"13ea1295.46163d","wires":[[]]},{"id":"9e260ec9.cf65b","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":879.6190592447915,"y":985.904560724894,"z":"13ea1295.46163d","wires":[["5f4d6161.d1d83"]]},{"id":"2e29cfe9.5fb8d","type":"set","name":"set tmp.vf-module-ids","xml":"<set>\n<parameter name=\"`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`\" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />","comments":"","x":1462.952392578125,"y":986.2379150390625,"z":"13ea1295.46163d","wires":[]},{"id":"298f95cb.b9d00a","type":"execute","name":"execute RestApiCallNode - get vnf info from MDSAL","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"vnf-mdsal\" />\n\n","comments":"","outputs":1,"x":730,"y":1276,"z":"13ea1295.46163d","wires":[["8dbbf79d.f608f8","7547ae1e.fdfd8","47f0ddf8.60b2a4"]]},{"id":"8dbbf79d.f608f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1019.2958984375,"y":1297.2840576171875,"z":"13ea1295.46163d","wires":[["d45a77f7.e93578"]]},{"id":"7547ae1e.fdfd8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1016.4285278320312,"y":1203.333251953125,"z":"13ea1295.46163d","wires":[["6eaa31f.30034d"]]},{"id":"d45a77f7.e93578","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1171.1427612304688,"y":1296.6666345596313,"z":"13ea1295.46163d","wires":[["3b707d7e.5db1d2","3acd5d10.4693f2","8a75505d.5e275","c9f071fb.6503e","4a6aa86e.0c6ee8"]]},{"id":"47f0ddf8.60b2a4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1023.3332977294922,"y":1246.666660308838,"z":"13ea1295.46163d","wires":[["3c63c905.5585c6"]]},{"id":"6eaa31f.30034d","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1171.999984741211,"y":1203.3333263397217,"z":"13ea1295.46163d","wires":[["dc6dd3bd.e9878"]]},{"id":"3c63c905.5585c6","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1170.333236694336,"y":1246.9999828338623,"z":"13ea1295.46163d","wires":[["d8e6fd9b.a0476"]]},{"id":"dc6dd3bd.e9878","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed to read vnf info from MD-SAL\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name=\"tmp.mdsal-error-encountered\" value= \"true\"/>\n","comments":"","outputs":1,"x":1362,"y":1202.6666259765625,"z":"13ea1295.46163d","wires":[[]]},{"id":"d8e6fd9b.a0476","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Cannot find vnf info in MD-SAL\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name=\"tmp.mdsal-error-encountered\" value= \"true\"/>\n","comments":"","outputs":1,"x":1358.6666107177734,"y":1246.6666107177734,"z":"13ea1295.46163d","wires":[[]]},{"id":"66b278a1.60b278","type":"comment","name":"vf-module-ids in AAI = vnf-ids in VNF-API","info":"","comments":"","x":652,"y":1018,"z":"13ea1295.46163d","wires":[]},{"id":"ff48aed9.45e91","type":"comment","name":"For each vf-module-id returned from AAI, get vnf-request-information and vnf-topology-information from MDSAL (correlation-simple-service-1050)","info":"","comments":"","x":971,"y":1063,"z":"13ea1295.46163d","wires":[]},{"id":"aecdddc8.b3b0c","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":249,"y":204,"z":"13ea1295.46163d","wires":[["1a85095b.106d37","83c24e54.cc2ec"]]},{"id":"1a85095b.106d37","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":448,"y":183,"z":"13ea1295.46163d","wires":[["24badd74.50bb32"]]},{"id":"83c24e54.cc2ec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":446,"y":224,"z":"13ea1295.46163d","wires":[["be153b36.98ee58"]]},{"id":"be153b36.98ee58","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":583,"y":224,"z":"13ea1295.46163d","wires":[["29d5441f.3724bc","6ab4c663.88b828"]]},{"id":"29d5441f.3724bc","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: Could not read properties file.\"/>\n<parameter name=\"field3\" value='`$prop.restapi.pm.getpolicy.templatefile`'/>","comments":"","outputs":1,"x":714,"y":224,"z":"13ea1295.46163d","wires":[[]]},{"id":"24badd74.50bb32","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":584,"y":183,"z":"13ea1295.46163d","wires":[["dafe4463.f562a8"]]},{"id":"4ff24ed7.c425c","type":"comment","name":"Read properties","info":"","comments":"","x":224,"y":157,"z":"13ea1295.46163d","wires":[]},{"id":"dafe4463.f562a8","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: read properties file.\"/>","comments":"","outputs":1,"x":715,"y":183,"z":"13ea1295.46163d","wires":[[]]},{"id":"839b28.f8b8b4d8","type":"for","name":"for each vf-module-id","xml":"<for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\n","comments":"","outputs":1,"x":591,"y":1149,"z":"13ea1295.46163d","wires":[["b1bdd8d2.bfdca8"]]},{"id":"2315cfff.9ba5d","type":"configure","name":"set vnf-url","xml":"<set>\n<parameter name=\"tmp.vnf-url\" value=\"`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`\" />\n","comments":"","outputs":1,"x":601,"y":1235,"z":"13ea1295.46163d","wires":[[]]},{"id":"b1bdd8d2.bfdca8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":594,"y":1188,"z":"13ea1295.46163d","wires":[["2315cfff.9ba5d","298f95cb.b9d00a"]]},{"id":"a3612e1f.f6e3c","type":"set","name":"set tmp.vf-module-ids * TEST-ONLY *","xml":"<set>\n<!--<parameter name='tmp.vf-module-ids' value='`$tmp.AnAI-data.vf-module-ids.results[0]`' />\n<parameter name=\"error-message\" value=\"AAI custom query: vfModule-fromServiceInstance yielded no data found\" />-->\n<parameter name='tmp.vf-module-ids_length' value='5' />\n<parameter name='tmp.vf-module-ids[0]' value='vf-module-id-1' />\n<parameter name='tmp.vf-module-ids[1]' value='vf-module-id-2' />\n<parameter name='tmp.vf-module-ids[2]' value='vf-module-id-3' />\n<parameter name='tmp.vf-module-ids[3]' value='vf-module-id-4' />\n<parameter name='tmp.vf-module-ids[4]' value='vf-module-id-5' />\n<!--<parameter name='tmp.vf-module-ids[5]' value='vf-module-id-not-in-mdsal' />-->\n<parameter name='tmp.vnf-instances_length' value='5' />","comments":"","x":1512,"y":896,"z":"13ea1295.46163d","wires":[]},{"id":"3b707d7e.5db1d2","type":"configure","name":"set vnf-instances entry","xml":"<set>\n<parameter name=\"`'tmp.vnf-instances[' + $tmp.vnfInstancesIndex + ']'`.\" value= '`$vnf-mdsal.vnf-list[0].`' />\n<parameter name=\"genericVnfIdFound\" value= 'false' />","comments":"","outputs":1,"x":759,"y":1335,"z":"13ea1295.46163d","wires":[[]]},{"id":"30f0e2b3.100a5e","type":"for","name":"for each input vnf-ids","xml":"<for index='vnfIdIndex' start='0' end='`$vnf-ids_length`' >\n","comments":"","outputs":1,"x":579,"y":1876,"z":"13ea1295.46163d","wires":[["bf9cd966.df87b8"]]},{"id":"bf9cd966.df87b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":587,"y":1915,"z":"13ea1295.46163d","wires":[["eb7c4606.b94158"]]},{"id":"18c296f0.f609b9","type":"comment","name":"For each  input vnf-ids  find match on triplet-list.model-customization-id and add to output.vnf-list","info":"Preserve the order of input vnf-ids for output vf-module-list","comments":"","x":1032,"y":1877,"z":"13ea1295.46163d","wires":[]},{"id":"4df533f1.abe1ac","type":"switchNode","name":"switch tmp.vnf-instances...vnf-id == triplet-list.vf-module-id","xml":"<switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id == $tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'>\n","comments":"","outputs":1,"x":1548,"y":2094,"z":"13ea1295.46163d","wires":[["552bbcfa.05b014","4e1ec540.09ad0c"]]},{"id":"24e48058.7c71","type":"for","name":"for each vnf-instances","xml":"<for index='vnfInstanceIndex' start='0' end='`$tmp.vnf-instances_length`' >\n","comments":"","outputs":1,"x":1403,"y":2006,"z":"13ea1295.46163d","wires":[["ca71b6dd.e84f48"]]},{"id":"552bbcfa.05b014","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1834,"y":2025,"z":"13ea1295.46163d","wires":[["58caa0ea.b51b9"]]},{"id":"4e1ec540.09ad0c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1835,"y":2088,"z":"13ea1295.46163d","wires":[[]]},{"id":"efef540e.1cc898","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-instances.vnf-id and triplet-list.vf-module-id: \"/>\n<parameter name=\"field3\" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>","comments":"","outputs":1,"x":2089,"y":2026,"z":"13ea1295.46163d","wires":[[]]},{"id":"4a6aa86e.0c6ee8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id|generic-vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.vnf-id`' />\n<parameter name=\"field4\" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`' />","comments":"","outputs":1,"x":1017,"y":1336,"z":"13ea1295.46163d","wires":[[]]},{"id":"ca71b6dd.e84f48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1395,"y":2049,"z":"13ea1295.46163d","wires":[["ad57ec62.5f55b","4df533f1.abe1ac"]]},{"id":"ad57ec62.5f55b","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | vnfInstanceIndex:id | : \"/>\n<parameter name=\"field3\" value='`$vnfIdIndex`'/>\n<parameter name=\"field4\" value='`$vnf-ids[$vnfIdIndex]`'/>\n<parameter name=\"field5\" value='`$vnfInstanceIndex`'/>\n<parameter name=\"field6\" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`'/>","comments":"","outputs":1,"x":1524,"y":2049,"z":"13ea1295.46163d","wires":[[]]},{"id":"58caa0ea.b51b9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1961,"y":2025,"z":"13ea1295.46163d","wires":[["efef540e.1cc898","cd48dddf.0bfc5","e17a07e5.5d80a8","bfb01e4d.428b5"]]},{"id":"a17a3bfc.c25d68","type":"configure","name":"set output serv-inst.vnf-list.vnf-network-list data","xml":"<set>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name\" value= \"`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role\" value= \"`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id\" value= \"`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length\" value= '`$vnfNetworksIndex + 1`'/>","comments":"","outputs":1,"x":2510,"y":2254,"z":"13ea1295.46163d","wires":[[]]},{"id":"4d9d23f1.73fdcc","type":"comment","name":"For each  vnf-networks in service-data.vnf-topology-information.vnf-assignments from MDSAL","info":"","comments":"","x":2348,"y":2081,"z":"13ea1295.46163d","wires":[]},{"id":"1d16c8d7.f918d7","type":"for","name":"for each vnf-networks","xml":"<for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >","comments":"","outputs":1,"x":2387,"y":2136,"z":"13ea1295.46163d","wires":[["645a1c52.50ce74"]]},{"id":"645a1c52.50ce74","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2386,"y":2177,"z":"13ea1295.46163d","wires":[["df93772e.0015b8","a17a3bfc.c25d68"]]},{"id":"df93772e.0015b8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-id and vnf-instances for vnf-id: \"/>\n<parameter name=\"field3\" value='`$vnf-ids[$vnfIdIndex]`'/>\n<parameter name=\"field4\" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>","comments":"","outputs":1,"x":2388,"y":2217,"z":"13ea1295.46163d","wires":[[]]},{"id":"9a17f638.85fd98","type":"comment","name":"Don't return failure on error cases, only set error message for calling DG","info":"","comments":"","x":1041,"y":325,"z":"13ea1295.46163d","wires":[]},{"id":"de27074d.c737b8","type":"comment","name":"Get vf-module IDs from AAI using service-instance-id","info":"","comments":"","x":658,"y":2429,"z":"13ea1295.46163d","wires":[]},{"id":"135b7762.c5e859","type":"execute","name":"execute RestApiCallNode - get vnf info","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"vnf-mdsal\" />\n\n","comments":"","outputs":1,"x":682,"y":2883,"z":"13ea1295.46163d","wires":[["753b2988.dfef28","99c14378.a3f9","f1f797d0.263348"]]},{"id":"753b2988.dfef28","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1042.2959594726562,"y":2929.283935546875,"z":"13ea1295.46163d","wires":[["b25832e3.7436b"]]},{"id":"99c14378.a3f9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1036.4285278320312,"y":2841.333251953125,"z":"13ea1295.46163d","wires":[["76686649.41d148"]]},{"id":"b25832e3.7436b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1196.142822265625,"y":2928.66650390625,"z":"13ea1295.46163d","wires":[["5b7d3312.5bcb0c","7a1e825e.b258bc"]]},{"id":"f1f797d0.263348","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1043.3332977294922,"y":2884.666660308838,"z":"13ea1295.46163d","wires":[["3cc2434b.c5d82c"]]},{"id":"76686649.41d148","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1214.999984741211,"y":2841.3333263397217,"z":"13ea1295.46163d","wires":[["17e2e25d.a6f52e"]]},{"id":"3cc2434b.c5d82c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1213.333236694336,"y":2884.9999828338623,"z":"13ea1295.46163d","wires":[["3795156.dcfd4ea"]]},{"id":"17e2e25d.a6f52e","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed to read vnf info from MD-SAL\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n","comments":"","outputs":1,"x":1418.999984741211,"y":2840.666732788086,"z":"13ea1295.46163d","wires":[[]]},{"id":"3795156.dcfd4ea","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Cannot find vnf info in MD-SAL\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n","comments":"","outputs":1,"x":1416.6666107177734,"y":2884.6666107177734,"z":"13ea1295.46163d","wires":[[]]},{"id":"53e54934.536148","type":"comment","name":"vf-module-ids in AAI = vnf-ids in VNF-API","info":"","comments":"","x":620,"y":2649,"z":"13ea1295.46163d","wires":[]},{"id":"d34738ff.ce94d8","type":"comment","name":"For only the FIRST vf-module-id returned from AAI, get vnf-request-information and vnf-topology-information from MDSAL","info":"","comments":"","x":871,"y":2688,"z":"13ea1295.46163d","wires":[]},{"id":"b1f6e8e0.9913d8","type":"configure","name":"set vnf-url","xml":"<set>\n<parameter name=\"tmp.vnf-url\" value=\"`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[0]`\" />\n","comments":"","outputs":1,"x":784,"y":2731,"z":"13ea1295.46163d","wires":[[]]},{"id":"5b7d3312.5bcb0c","type":"configure","name":"set vnf-instances entry","xml":"<set>\n<parameter name=\"`'tmp.vnf-instances[0]'`.\" value= '`$vnf-mdsal.vnf-list[0].`' />","comments":"","outputs":1,"x":1429,"y":2929,"z":"13ea1295.46163d","wires":[[]]},{"id":"7a1e825e.b258bc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />","comments":"","outputs":1,"x":1382,"y":2974,"z":"13ea1295.46163d","wires":[[]]},{"id":"375897b0.e3b0d8","type":"configure","name":"set output serv-inst.vnf-list data","xml":"<set>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name\" value= \"`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role\" value= \"`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id\" value= \"`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`\"/>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length\" value= '`$vnfNetworksIndex + 1`'/>","comments":"","outputs":1,"x":1310,"y":3172,"z":"13ea1295.46163d","wires":[[]]},{"id":"768bcf6c.1de2e","type":"comment","name":"For each  vnf-networks in service-data.vnf-topology-information.vnf-assignments from MDSAL","info":"","comments":"","x":844,"y":2989,"z":"13ea1295.46163d","wires":[]},{"id":"a36f6533.d1b958","type":"for","name":"for each vnf-networks","xml":"<for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >","comments":"","outputs":1,"x":1232,"y":3038,"z":"13ea1295.46163d","wires":[["dbf6a49f.116a88"]]},{"id":"dbf6a49f.116a88","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1231,"y":3085,"z":"13ea1295.46163d","wires":[["97414ac7.a86b08","375897b0.e3b0d8"]]},{"id":"97414ac7.a86b08","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: copy vnf-instance data to output: \"/>\n<parameter name=\"field3\" value='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>","comments":"","outputs":1,"x":1233,"y":3128,"z":"13ea1295.46163d","wires":[[]]},{"id":"746c2073.80207","type":"comment","name":"MATCH for vnf-instances.vnf-id and tripliet-list.vf-module-id","info":"","comments":"","x":1986,"y":1978,"z":"13ea1295.46163d","wires":[]},{"id":"cd48dddf.0bfc5","type":"configure","name":"set serv-inst.vnf-list[$vnfListIndex].vnf-id","xml":"<set>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-id\" value= \"`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`\"/>","comments":"","outputs":1,"x":2181,"y":2371,"z":"13ea1295.46163d","wires":[[]]},{"id":"73374c07.1b3084","type":"set","name":"initialize output serv-inst.api to NULL, set to VNF on success","xml":"<set>\n<parameter name=\"serv-inst.api\" value= \"\"/>","comments":"","x":597,"y":95,"z":"13ea1295.46163d","wires":[]},{"id":"6ab4c663.88b828","type":"set","name":"Set error-message","xml":"<set>\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name=\"error-message\" value=\"Could not read properties file\" />","comments":"","x":751,"y":265,"z":"13ea1295.46163d","wires":[]},{"id":"2146f88b.5fab68","type":"set","name":"Set error-message","xml":"<set>\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name=\"error-message\" value=\"serv-inst.service-instance-id is not set\" />","comments":"","x":819,"y":412,"z":"13ea1295.46163d","wires":[]},{"id":"8228ea75.c55708","type":"set","name":"Set error-message","xml":"<set>\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name=\"error-message\" value=\"input match-type is not set\" />","comments":"","x":827,"y":503,"z":"13ea1295.46163d","wires":[]},{"id":"e3148b0a.ca8e38","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids\"/>","comments":"","outputs":1,"x":528,"y":2521,"z":"13ea1295.46163d","wires":[[]]},{"id":"77ecc850.cc3808","type":"configure","name":"set vnfListIndex to 1","xml":"<set>\n<parameter name=\"vnfListIndex\" value= \"1\"/>","comments":"","outputs":1,"x":656,"y":3214,"z":"13ea1295.46163d","wires":[[]]},{"id":"6a0cc06e.d6de8","type":"configure","name":"set output serv-inst.vnf-list[$vnfListIndex].vnf-id to service-data.vnf-request-information.generic-vnf-id","xml":"<set>\n<parameter name=\"serv-inst.vnf-list[$vnfListIndex].vnf-id\" value= \"`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`\"/>","comments":"","outputs":1,"x":872,"y":3278,"z":"13ea1295.46163d","wires":[[]]},{"id":"e17a07e5.5d80a8","type":"configure","name":"increment vnfListIndex and set serv-inst.vnf-list[$vnfListIndex].vnf-id","xml":"<set>\n<parameter name=\"vnfListIndex\" value= '`$vnfListIndex + 1`'/>","comments":"","outputs":1,"x":2265,"y":2418,"z":"13ea1295.46163d","wires":[[]]},{"id":"6aac23f6.7f905c","type":"comment","name":"check for vnf-instances_length is null?","info":"","comments":"","x":1641,"y":1940,"z":"13ea1295.46163d","wires":[]},{"id":"1b271514.dafa0b","type":"switchNode","name":"switch - check for networks on this vf-module","xml":"<switch test='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>","comments":"","outputs":1,"x":704,"y":3043,"z":"13ea1295.46163d","wires":[["d1a68e34.a4ab2","8855592b.6b2398"]]},{"id":"d1a68e34.a4ab2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1059,"y":3038,"z":"13ea1295.46163d","wires":[["a36f6533.d1b958"]]},{"id":"3e84d391.f3809c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />","comments":"","outputs":1,"x":1054,"y":3168,"z":"13ea1295.46163d","wires":[[]]},{"id":"bfb01e4d.428b5","type":"switchNode","name":"switch","xml":"<switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>","comments":"","outputs":1,"x":2082,"y":2136,"z":"13ea1295.46163d","wires":[["ae827f9e.9c43e","ae2d5283.d1e13"]]},{"id":"ae827f9e.9c43e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2211,"y":2136,"z":"13ea1295.46163d","wires":[["1d16c8d7.f918d7"]]},{"id":"ae2d5283.d1e13","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2211,"y":2176,"z":"13ea1295.46163d","wires":[["465fccd7.347e54"]]},{"id":"682293ae.eb62dc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`' />","comments":"","outputs":1,"x":2214,"y":2256,"z":"13ea1295.46163d","wires":[[]]},{"id":"465fccd7.347e54","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2213,"y":2216,"z":"13ea1295.46163d","wires":[["682293ae.eb62dc","e19e0e13.0e404"]]},{"id":"e19e0e13.0e404","type":"configure","name":"set vnf-networks-list_length to 0","xml":"<set>\n<parameter name='`tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value=\"0\" />\n","comments":"","outputs":1,"x":2291,"y":2297,"z":"13ea1295.46163d","wires":[[]]},{"id":"b5aa567b.b40f18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1058,"y":3123,"z":"13ea1295.46163d","wires":[["c5205e75.d54a2","3e84d391.f3809c"]]},{"id":"c5205e75.d54a2","type":"configure","name":"set vnf-networks-list_length to 0","xml":"<set>\n<parameter name='`tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value=\"0\" />\n","comments":"","outputs":1,"x":1134,"y":3213,"z":"13ea1295.46163d","wires":[[]]},{"id":"8855592b.6b2398","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1056,"y":3083,"z":"13ea1295.46163d","wires":[["b5aa567b.b40f18"]]},{"id":"cba2b409.58b7e8","type":"configure","name":"set triplet-list entry","xml":"<set>\n<parameter name=\"`'tmp.triplet-list[' + $tmp.tripletListIndex + '].generic-vnf-id'`\" value= '`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`' />\n<parameter name=\"`'tmp.triplet-list[' + $tmp.tripletListIndex + '].vf-module-id'`\" value= '`$tmp.vf-module-ids[$vfModuleIndex]`' />\n<parameter name=\"tmp.triplet-list_length\" value= '`$tmp.triplet-list_length + 1`'/>\n<parameter name=\"tmp.tripletListIndex\" value= '`$tmp.tripletListIndex + 1`'/>","comments":"","outputs":1,"x":1575,"y":1472,"z":"13ea1295.46163d","wires":[[]]},{"id":"70e218a1.775218","type":"comment","name":"Put unique generic-vnf-ids in triplet-list","info":"","comments":"","x":802,"y":1377,"z":"13ea1295.46163d","wires":[]},{"id":"ccb84430.71e918","type":"configure","name":"initialize triplet-list_length, tripletListIndex, vnf-instances_length, vnfInstancesIndex","xml":"<set>\n<parameter name=\"tmp.triplet-list_length\" value= \"0\" />\n<parameter name=\"tmp.tripletListIndex\" value= \"0\" />\n<parameter name=\"tmp.vnf-instances_length\" value= \"0\" />\n<parameter name=\"tmp.vnfInstancesIndex\" value= \"0\" />\n<parameter name=\"tmp.mdsal-error-encountered\" value= \"false\"/>","comments":"","outputs":1,"x":779,"y":1106,"z":"13ea1295.46163d","wires":[[]]},{"id":"61ac05e6.c7c46c","type":"switchNode","name":"switch triplet-list.generic-vnf-id == tmp.vnf-instances...generic-vnf-id","xml":"<switch test='`$tmp.triplet-list[$tmp.tripletListIndex2].generic-vnf-id == $tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`'>","comments":"","outputs":1,"x":1100,"y":1424,"z":"13ea1295.46163d","wires":[["9637658b.18c518","dbeec32.fac504"]]},{"id":"3acd5d10.4693f2","type":"for","name":"for each triplet-list","xml":"<for index='tmp.tripletListIndex2' start='0' end='`$tmp.triplet-list_length`' >\n","comments":"","outputs":1,"x":752,"y":1424,"z":"13ea1295.46163d","wires":[["61ac05e6.c7c46c"]]},{"id":"9637658b.18c518","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1412,"y":1424,"z":"13ea1295.46163d","wires":[["304ff5ef.83e86a"]]},{"id":"304ff5ef.83e86a","type":"configure","name":"set genericVnfIdFound to true","xml":"<set>\n<parameter name=\"genericVnfIdFound\" value= 'true' />","comments":"","outputs":1,"x":1613,"y":1424,"z":"13ea1295.46163d","wires":[[]]},{"id":"8a75505d.5e275","type":"switchNode","name":"if generic-vnf-id is not found, add it to the triplet-list","xml":"<switch test='`$genericVnfIdFound`'>","comments":"","outputs":1,"x":850,"y":1472,"z":"13ea1295.46163d","wires":[["3b4269a.ed66a96","79dde64e.97dd98"]]},{"id":"3b4269a.ed66a96","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1122,"y":1472,"z":"13ea1295.46163d","wires":[["f82770da.fca6d"]]},{"id":"e824e92f.414b48","type":"comment","name":"for each unique generic-vnf-id get model-customization-id from AAI (aai-composite-service-1030)","info":"","comments":"","x":812,"y":1612,"z":"13ea1295.46163d","wires":[]},{"id":"6c6e891c.dbd4c8","type":"get-resource","name":"get-resource generic-vnf from AAI","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"generic-vnf\"\n        key=\"generic-vnf.vnf-id = $tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id\"\n        pfx='aai.generic-vnf' local-only='false' >","comments":"","outputs":1,"x":1180.4666137695312,"y":1737.999755859375,"z":"13ea1295.46163d","wires":[["f04edd7e.e23b6","cd278dcc.c2019","1bb880d7.a21fdf"]]},{"id":"1bb880d7.a21fdf","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1408.8369750976562,"y":1698.03662109375,"z":"13ea1295.46163d","wires":[["52d0213a.4be84"]]},{"id":"f04edd7e.e23b6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1412.3279418945312,"y":1739.61083984375,"z":"13ea1295.46163d","wires":[["79cc9835.c09578"]]},{"id":"cd278dcc.c2019","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1408.6609497070312,"y":1781.944091796875,"z":"13ea1295.46163d","wires":[["db4b07f7.81a198"]]},{"id":"95c1fb6f.8ce458","type":"for","name":"for each triplet-list","xml":"<for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\n","comments":"","outputs":1,"x":1104,"y":1652,"z":"13ea1295.46163d","wires":[["8ed8396d.a616d8"]]},{"id":"8ed8396d.a616d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1098,"y":1697,"z":"13ea1295.46163d","wires":[["6c6e891c.dbd4c8"]]},{"id":"381400.3e580c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: Set model-customization-id for vf-module-id|generic-vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\n<parameter name=\"field5\" value='`$aai.generic-vnf.model-customization-id`'/>","comments":"","outputs":1,"x":1933,"y":1737,"z":"13ea1295.46163d","wires":[[]]},{"id":"e900810b.ad8dc","type":"configure","name":"set model-customization-id in triplet-list","xml":"<set>\n<parameter name=\"`'tmp.triplet-list[' + $tmp.tripletListIndex + '].model-customization-id'`\" value= '`$aai.generic-vnf.model-customization-id`' />","comments":"","outputs":1,"x":2039,"y":1784,"z":"13ea1295.46163d","wires":[[]]},{"id":"eb7c4606.b94158","type":"for","name":"for each triplet-list entry","xml":"<for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\n","comments":"","outputs":1,"x":635,"y":1956,"z":"13ea1295.46163d","wires":[["9da49d50.75e35"]]},{"id":"9da49d50.75e35","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":627,"y":1998,"z":"13ea1295.46163d","wires":[["890ce2d0.5b40b","d2ac92ce.821b3"]]},{"id":"890ce2d0.5b40b","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | tripletListIndex:model-customization-id | : \"/>\n<parameter name=\"field3\" value='`$vnfIdIndex`'/>\n<parameter name=\"field4\" value='`$vnf-ids[$vnfIdIndex]`'/>\n<parameter name=\"field5\" value='`$tmp.tripletListIndex`'/>\n<parameter name=\"field6\" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>","comments":"","outputs":1,"x":757,"y":1998,"z":"13ea1295.46163d","wires":[[]]},{"id":"d2ac92ce.821b3","type":"switchNode","name":"switch input vnf-ids == tmp.triplet-list.model-customization-id","xml":"<switch test='`$vnf-ids[$vnfIdIndex] == $tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'>\n","comments":"","outputs":1,"x":801,"y":2038,"z":"13ea1295.46163d","wires":[["1cb90b9d.0e11f4","9cc55fa1.79208"]]},{"id":"1cb90b9d.0e11f4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1104,"y":2006,"z":"13ea1295.46163d","wires":[["bb8ca97b.bc0b28"]]},{"id":"9cc55fa1.79208","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1105,"y":2069,"z":"13ea1295.46163d","wires":[[]]},{"id":"bb8ca97b.bc0b28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1231,"y":2006,"z":"13ea1295.46163d","wires":[["24e48058.7c71","7829c9e3.21a538"]]},{"id":"e5c521c1.28bbc","type":"comment","name":"MATCH for input.vnf-id and triplet-list.model-customizaiton-id","info":"","comments":"","x":1271,"y":1962,"z":"13ea1295.46163d","wires":[]},{"id":"79cc9835.c09578","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: generic-vnf not found in AAI for generic-vnf-id: \"/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>","comments":"","outputs":1,"x":1545,"y":1740,"z":"13ea1295.46163d","wires":[[]]},{"id":"a7f70fe1.122d9","type":"configure","name":"initialize vnfListIndex to 0","xml":"<set>\n<parameter name=\"vnfListIndex\" value= \"0\"/>","comments":"","outputs":1,"x":246,"y":737,"z":"13ea1295.46163d","wires":[[]]},{"id":"52d0213a.4be84","type":"switchNode","name":"switch","xml":"<switch test='`$aai.generic-vnf.model-customization-id`'>","comments":"","outputs":1,"x":1546,"y":1698,"z":"13ea1295.46163d","wires":[["cf59adeb.87937","7a2c4466.a8136c"]]},{"id":"cf59adeb.87937","type":"other","name":"Blank","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1683,"y":1699,"z":"13ea1295.46163d","wires":[["94c3e99.5c6af18"]]},{"id":"7ab1a203.dde39c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: model-customization-id is BLANK for vf-module-id|generic-vnf-id: \"/>\n<parameter name=\"field3\" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>","comments":"","outputs":1,"x":1933,"y":1699,"z":"13ea1295.46163d","wires":[[]]},{"id":"7a2c4466.a8136c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1685,"y":1736,"z":"13ea1295.46163d","wires":[["d338b448.935f88"]]},{"id":"d338b448.935f88","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1804,"y":1737,"z":"13ea1295.46163d","wires":[["381400.3e580c","e900810b.ad8dc"]]},{"id":"79dde64e.97dd98","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1120,"y":1514,"z":"13ea1295.46163d","wires":[["c46507d8.82beb8"]]},{"id":"56d7b2ac.773fdc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id is already in triplet-list, don't add it\"/>","comments":"","outputs":1,"x":1412,"y":1514,"z":"13ea1295.46163d","wires":[[]]},{"id":"c46507d8.82beb8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1262,"y":1514,"z":"13ea1295.46163d","wires":[["56d7b2ac.773fdc"]]},{"id":"f82770da.fca6d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1264,"y":1472,"z":"13ea1295.46163d","wires":[["604f4fcd.1f225","cba2b409.58b7e8"]]},{"id":"604f4fcd.1f225","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id in NOT found in triplet-list, add it\"/>","comments":"","outputs":1,"x":1411,"y":1474,"z":"13ea1295.46163d","wires":[[]]},{"id":"a665647f.954468","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":552,"y":1558,"z":"13ea1295.46163d","wires":[["d1da650.11e1998"]]},{"id":"d1da650.11e1998","type":"for","name":"for each triplet-list entry","xml":"<for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\n","comments":"","outputs":1,"x":728,"y":1558,"z":"13ea1295.46163d","wires":[["a2d8b75a.7ab8c8"]]},{"id":"a2d8b75a.7ab8c8","type":"record","name":"PRINT triplet-list","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: PRINT triplet-list BEFORE AAI | vf-module-id:generic-vnf-id:model-customization-id | \"/>\n<parameter name=\"field3\" value='`$tmp.tripletListIndex`'/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\n<parameter name=\"field5\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\n<parameter name=\"field6\" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>","comments":"","outputs":1,"x":939,"y":1558,"z":"13ea1295.46163d","wires":[[]]},{"id":"94c3e99.5c6af18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1805,"y":1699,"z":"13ea1295.46163d","wires":[["7ab1a203.dde39c"]]},{"id":"d124590b.f69c68","type":"configure","name":"set model-customization-id in triplet-list  * TEST-ONLY *","xml":"<set>\n<parameter name=\"`'tmp.triplet-list[' + $tmp.tripletListIndex + '].model-customization-id'`\" value= \"`model-cusomization-uuid-$tmp.tripletListIndex`\" />","comments":"","outputs":1,"x":2209,"y":1699,"z":"13ea1295.46163d","wires":[[]]},{"id":"c9f071fb.6503e","type":"configure","name":"increment tmp.vnfInstancesIndex and tmp.vnf-instances_length","xml":"<set>\n<parameter name=\"tmp.vnfInstancesIndex\" value= '`$tmp.vnfInstancesIndex + 1`'/>\n<parameter name=\"tmp.vnf-instances_length\" value= '`$tmp.vnf-instances_length + 1`'/>","comments":"","outputs":1,"x":781,"y":1516,"z":"13ea1295.46163d","wires":[[]]},{"id":"dbeec32.fac504","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1413,"y":1384,"z":"13ea1295.46163d","wires":[[]]},{"id":"cbe26532.112ec8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":549,"y":1827,"z":"13ea1295.46163d","wires":[["4e6cd927.66b648"]]},{"id":"4e6cd927.66b648","type":"for","name":"for each triplet-list entry","xml":"<for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\n","comments":"","outputs":1,"x":725,"y":1827,"z":"13ea1295.46163d","wires":[["94e42015.54dfc"]]},{"id":"94e42015.54dfc","type":"record","name":"PRINT triplet-list","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: PRINT triplet-list | vf-module-id:generic-vnf-id:model-customization-id | \"/>\n<parameter name=\"field3\" value='`$tmp.tripletListIndex`'/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\n<parameter name=\"field5\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\n<parameter name=\"field6\" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>","comments":"","outputs":1,"x":937,"y":1827,"z":"13ea1295.46163d","wires":[[]]},{"id":"7829c9e3.21a538","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: MATCH for input vnf-id and triplet-list.model-customizaiton-id: \"/>\n<parameter name=\"field3\" value='`$vnf-ids[$vnfIdIndex]`'/>","comments":"","outputs":1,"x":1232,"y":2044,"z":"13ea1295.46163d","wires":[[]]},{"id":"db4b07f7.81a198","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: getpathsegment-populate-from-vnfapi: unable to access AAI for generic-vnf-id: \"/>\n<parameter name=\"field4\" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>","comments":"","outputs":1,"x":1546,"y":1782,"z":"13ea1295.46163d","wires":[[]]},{"id":"e4f6f713.40c298","type":"for","name":"for each vf-module-id","xml":"<for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\n","comments":"","outputs":1,"x":1205,"y":986,"z":"13ea1295.46163d","wires":[["2e29cfe9.5fb8d"]]},{"id":"5f4d6161.d1d83","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1020,"y":986,"z":"13ea1295.46163d","wires":[["e4f6f713.40c298","94dc95d3.e5de88"]]},{"id":"94dc95d3.e5de88","type":"set","name":"set tmp.vf-module-ids_length","xml":"<set>\n<parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />","comments":"","x":1229,"y":1021,"z":"13ea1295.46163d","wires":[]},{"id":"568d4dc9.681e44","type":"set","name":"set invalid vf-module-id that won't resolve in MDSAL  * TEST-ONLY *","xml":"<set>\n<parameter name=\"`'tmp.vf-module-ids[' + $vf-module-ids_length + ']'`\" value='invalid-vf-module-id' />\n<parameter name='tmp.vf-module-ids_length' value='`$tmp.vf-module-ids_length + 1`' />","comments":"","x":1608,"y":1024,"z":"13ea1295.46163d","wires":[]},{"id":"9edbc24f.7c9ff","type":"save","name":"AAI custom query: get vf-module-ids","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.vf-module-ids\">\n<parameter name=\"start[0]\" value=\"`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `\" />\n<!--<parameter name=\"start[0]\" value=\"`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `\" />-->\n<!--<parameter name=\"start[0]\" value=\"`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `\" />-->\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"/query/vfModule-fromServiceInstance\" />\n<!--<parameter name=\"query\" value=\"/query/vnfs-fromServiceInstance\" /> -->","comments":"","outputs":1,"x":620,"y":2564,"z":"13ea1295.46163d","wires":[["d8164ad7.bb02b8","212d7195.b42b2e","2da2f7c7.6a31c8"]]},{"id":"d8164ad7.bb02b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":855.2380867004395,"y":2517.6664667129517,"z":"13ea1295.46163d","wires":[["d68c739a.44959"]]},{"id":"212d7195.b42b2e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":856.3809814453125,"y":2563.3806762695312,"z":"13ea1295.46163d","wires":[["1e8358ef.3ee4d7"]]},{"id":"2da2f7c7.6a31c8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":857.6190592447915,"y":2607.904560724894,"z":"13ea1295.46163d","wires":[["c4d6e68e.266f18"]]},{"id":"d68c739a.44959","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":994.9524154663086,"y":2517.380605697632,"z":"13ea1295.46163d","wires":[["f7584659.74a708"]]},{"id":"1e8358ef.3ee4d7","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":998.666690826416,"y":2563.952173233032,"z":"13ea1295.46163d","wires":[["c8a6f155.75ce8"]]},{"id":"c4d6e68e.266f18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":998,"y":2608,"z":"13ea1295.46163d","wires":[["ec349c31.3499e","e0c57ef.cbd068"]]},{"id":"f7584659.74a708","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: vfModule-fromServiceInstance\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n<parameter name='tmp.vf-module-ids_length' value='0' />\n<parameter name='tmp.vnf-instances_length' value='0' />\n","comments":"","outputs":1,"x":1175.52392578125,"y":2517.0949096679688,"z":"13ea1295.46163d","wires":[[]]},{"id":"c8a6f155.75ce8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No vfModules returned from AAI: vfModule-fromService-instance\" />\n<parameter name=\"serv-inst.api\" value= \"\"/>\n","comments":"","outputs":1,"x":1174.2381591796875,"y":2563.66650390625,"z":"13ea1295.46163d","wires":[[]]},{"id":"ec349c31.3499e","type":"for","name":"for each vf-module-id","xml":"<for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\n","comments":"","outputs":1,"x":1183,"y":2608,"z":"13ea1295.46163d","wires":[["daa52c98.70291"]]},{"id":"e0c57ef.cbd068","type":"set","name":"set tmp.vf-module-ids_length","xml":"<set>\n<parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />","comments":"","x":1207,"y":2643,"z":"13ea1295.46163d","wires":[]},{"id":"daa52c98.70291","type":"set","name":"set tmp.vf-module-ids","xml":"<set>\n<parameter name=\"`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`\" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />","comments":"","x":1440.952392578125,"y":2608.2379150390625,"z":"13ea1295.46163d","wires":[]},{"id":"cf9d4004.d81ce","type":"switchNode","name":"switch - check vnf-list length and set output.api if > 0","xml":"<switch test='`$serv-inst.vnf-list_length > 0`'>","comments":"","outputs":1,"x":325,"y":3592,"z":"13ea1295.46163d","wires":[["d27c75c1.526558"]]},{"id":"d27c75c1.526558","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":608,"y":3592,"z":"13ea1295.46163d","wires":[["f583b3e8.6485f"]]},{"id":"f583b3e8.6485f","type":"set","name":"set output serv-inst.api to VNF","xml":"<set>\n<parameter name=\"serv-inst.api\" value= \"VNF\"/>","comments":"","x":821,"y":3592,"z":"13ea1295.46163d","wires":[]},{"id":"f4d41db.52befe","type":"switchNode","name":"switch mdsal-error-encountered","xml":"<switch test='`$tmp.mdsal-error-encountered`'>\n","comments":"","outputs":1,"x":614,"y":1653,"z":"13ea1295.46163d","wires":[["88d062e4.05329","b1c6724.fe0e59"]]},{"id":"88d062e4.05329","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":830,"y":1652,"z":"13ea1295.46163d","wires":[["2684df46.e012f"]]},{"id":"b1c6724.fe0e59","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":584,"y":1741,"z":"13ea1295.46163d","wires":[["f58428cf.3a6858"]]},{"id":"2684df46.e012f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":950,"y":1652,"z":"13ea1295.46163d","wires":[["95c1fb6f.8ce458"]]},{"id":"f58428cf.3a6858","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":726,"y":1741,"z":"13ea1295.46163d","wires":[[]]},{"id":"223f61e8.f562be","type":"for","name":"for each vf-module-id","xml":"<for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\n","comments":"","outputs":1,"x":564,"y":2729,"z":"13ea1295.46163d","wires":[["b8281b3d.23f5e8"]]},{"id":"b8281b3d.23f5e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":567,"y":2768,"z":"13ea1295.46163d","wires":[["857f142a.fb6238","135b7762.c5e859","1b271514.dafa0b","6a0cc06e.d6de8","97812196.a3549"]]},{"id":"857f142a.fb6238","type":"configure","name":"set vnf-url","xml":"<set>\n<parameter name=\"tmp.vnf-url\" value=\"`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`\" />\n","comments":"","outputs":1,"x":597,"y":2832,"z":"13ea1295.46163d","wires":[[]]},{"id":"97812196.a3549","type":"configure","name":"increment vnfListIndex and set serv-inst.vnf-list[$vnfListIndex].vnf-id","xml":"<set>\n<parameter name=\"vnfListIndex\" value= '`$vnfListIndex + 1`'/>","comments":"","outputs":1,"x":774,"y":3326,"z":"13ea1295.46163d","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.json
new file mode 100755 (executable)
index 0000000..a8766a4
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"65bda5c2.5bc90c","type":"for","name":"for each runtime service-instance","xml":"<for index='serv-insts-index' start='0' end='`$serv-insts_length`' >\n","comments":"","outputs":1,"x":278.57142639160156,"y":284.82143783569336,"z":"7d72073d.c2be58","wires":[["2741d174.e3e39e"]]},{"id":"e27a3b8e.9d4848","type":"for","name":"for each vnf but the last one","xml":"<for index='left-vnf-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list_length - 1`' >\n","comments":"","outputs":1,"x":445.0000305175781,"y":617.5000095367432,"z":"7d72073d.c2be58","wires":[["f7190ea5.7406"]]},{"id":"af0525fe.01c668","type":"dgstart","name":"DGSTART","outputs":1,"x":101.25,"y":86.25,"z":"7d72073d.c2be58","wires":[["b785ba5d.087d48"]]},{"id":"b785ba5d.087d48","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":216.53569793701172,"y":126.48810863494873,"z":"7d72073d.c2be58","wires":[["42d9dbae.fd2824"]]},{"id":"42d9dbae.fd2824","type":"method","name":"method getpathsegment-simple-match-pair","xml":"<method rpc='getpathsegment-simple-match-pair' mode='sync'>\n","comments":"","outputs":1,"x":205.6786346435547,"y":167.25000190734863,"z":"7d72073d.c2be58","wires":[["65bda5c2.5bc90c"]]},{"id":"134072eb.4d70cd","type":"comment","name":"getpathsegment-simple-match-pair","info":"","comments":"","x":495.59486389160156,"y":33.83634376525879,"z":"7d72073d.c2be58","wires":[]},{"id":"f7190ea5.7406","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":659.4642868041992,"y":617.3214569091797,"z":"7d72073d.c2be58","wires":[["bedc3e3.3f436c","c72f4182.3ea57","16e18f51.a5cdc1","f28953e4.78107"]]},{"id":"bedc3e3.3f436c","type":"switchNode","name":"switch match-type","xml":"<switch test='`$match-type`'>\n","comments":"","outputs":1,"x":877.5000114440918,"y":553.7500095367432,"z":"7d72073d.c2be58","wires":[["56645880.605d18"]]},{"id":"56645880.605d18","type":"outcome","name":"network-name","xml":"<outcome value='network-name'>\n","comments":"","outputs":1,"x":1070.0000114440918,"y":555.0000095367432,"z":"7d72073d.c2be58","wires":[["20871697.ba0c8a"]]},{"id":"c72f4182.3ea57","type":"set","name":"set found-match = false","xml":"<set>\n<parameter name='found-match' value='false' />\n","comments":"","x":895.0000152587891,"y":452.50000858306885,"z":"7d72073d.c2be58","wires":[]},{"id":"20871697.ba0c8a","type":"for","name":"for each lhs vnf network","xml":"<for index='left-vnf-network-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":1290.000015258789,"y":555.0000095367432,"z":"7d72073d.c2be58","wires":[["c688db15.cf4bf8"]]},{"id":"c688db15.cf4bf8","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1468.0357780456543,"y":555.5357418060303,"z":"7d72073d.c2be58","wires":[["c51eb642.8d9d78","a1b0332d.018ac"]]},{"id":"c51eb642.8d9d78","type":"for","name":"for each rhs vnf network","xml":"<for index='right-vnf-network-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\n","comments":"","outputs":1,"x":1652.8570938110352,"y":525.7142925262451,"z":"7d72073d.c2be58","wires":[["60372cc9.260b04"]]},{"id":"60372cc9.260b04","type":"switchNode","name":"network-names/roles match?","xml":"<switch test='`( $serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\n    == $serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name )\n   and \n    ( $serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role\n    == $serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-role )`'>\n","comments":"","outputs":1,"x":1903.9284286499023,"y":524.4643106460571,"z":"7d72073d.c2be58","wires":[["baf9e646.2f27b8"]]},{"id":"baf9e646.2f27b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2105.1784324645996,"y":521.9642992019653,"z":"7d72073d.c2be58","wires":[["6baf6eae.deb5f"]]},{"id":"2b6b02a5.0e6cae","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":2647.321174621582,"y":522.5000257492065,"z":"7d72073d.c2be58","wires":[["311780c.d093a8","483d3cbb.308c24","65d54fc2.e487b","cfd816dc.41df48"]]},{"id":"6baf6eae.deb5f","type":"switchNode","name":"network-names == oam?","xml":"<switch test=\"`$serv-insts[$serv-insts-index].vnf-list[$vnf-index].vnf-network-list[$vnf-network-index].network-name == 'oam'`\">\n","comments":"","outputs":1,"x":2293.928436279297,"y":521.9643106460571,"z":"7d72073d.c2be58","wires":[["3f7129fa.21d586"]]},{"id":"3f7129fa.21d586","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2488.214069366455,"y":523.392879486084,"z":"7d72073d.c2be58","wires":[["2b6b02a5.0e6cae"]]},{"id":"a1b0332d.018ac","type":"switchNode","name":"switch found-match","xml":"<switch test=\"`$found-match`\">\n","comments":"","outputs":1,"x":1637.1430740356445,"y":592.8571701049805,"z":"7d72073d.c2be58","wires":[["dd6922bb.4a566"]]},{"id":"dd6922bb.4a566","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1800.3573036193848,"y":593.0357055664062,"z":"7d72073d.c2be58","wires":[["273d1c5e.207544"]]},{"id":"273d1c5e.207544","type":"break","name":"break","xml":"<break>\n","comments":"","x":1932.8573055267334,"y":590.5357065200806,"z":"7d72073d.c2be58","wires":[]},{"id":"c7ba692a.446638","type":"set","name":"set matched-all-vnfs to true","xml":"<set>\n<parameter name='matched-all-vnfs' value='true' />\n","comments":"","x":441.0714874267578,"y":493.0357255935669,"z":"7d72073d.c2be58","wires":[]},{"id":"4b547fc5.d7ec3","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":177.50000762939453,"y":538.7500057220459,"z":"7d72073d.c2be58","wires":[["e27a3b8e.9d4848","c7ba692a.446638","68a46600.c1e868","92d75459.42edc8"]]},{"id":"16e18f51.a5cdc1","type":"switchNode","name":"switch found-match","xml":"<switch test=\"`$found-match`\">\n","comments":"","outputs":1,"x":878.7500114440918,"y":691.2500114440918,"z":"7d72073d.c2be58","wires":[["5180297f.41e0e8"]]},{"id":"5180297f.41e0e8","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1036.2500305175781,"y":690.000020980835,"z":"7d72073d.c2be58","wires":[["5c5e5241.00469c"]]},{"id":"5c5e5241.00469c","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1177.500015258789,"y":690.0000114440918,"z":"7d72073d.c2be58","wires":[["35609637.6d8bea","9e9c668f.01c1e8"]]},{"id":"35609637.6d8bea","type":"break","name":"break","xml":"<break>\n","comments":"","x":1340,"y":717.5000019073486,"z":"7d72073d.c2be58","wires":[]},{"id":"9e9c668f.01c1e8","type":"set","name":"set matched-all-vnfs to false","xml":"<set>\n<parameter name='matched-all-vnfs' value='false' />\n","comments":"","x":1397.5,"y":667.5000019073486,"z":"7d72073d.c2be58","wires":[]},{"id":"68a46600.c1e868","type":"switchNode","name":"switch matched-all-vnfs","xml":"<switch test=\"`$matched-all-vnfs`\">\n","comments":"","outputs":1,"x":428.75000762939453,"y":810.0000152587891,"z":"7d72073d.c2be58","wires":[["7516cad8.6f6904"]]},{"id":"7516cad8.6f6904","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":623.7500076293945,"y":810.0000143051147,"z":"7d72073d.c2be58","wires":[["b699b05b.3896f"]]},{"id":"b699b05b.3896f","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":783.7500076293945,"y":808.7500133514404,"z":"7d72073d.c2be58","wires":[["23f612b8.71dc7e","692960e.2996fa"]]},{"id":"92d75459.42edc8","type":"set","name":"set path-segments_length to 0","xml":"<set>\n<parameter name='serv-insts[$serv-insts-index].path-segments_length' value='0' />\n","comments":"","x":448.75000762939453,"y":541.2500095367432,"z":"7d72073d.c2be58","wires":[]},{"id":"483d3cbb.308c24","type":"set","name":"set path-segment data","xml":"<set>\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-service-instance-id'\n  value='`$serv-insts[$serv-insts-index].service-instance-id`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-vnf-instance-id'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-id`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-vf-module-id'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-service-instance-id'\n  value='`$serv-insts[$serv-insts-index].service-instance-id`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-vnf-instance-id'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-id`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-vf-module-id'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\n\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].network-name'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\n<parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].network-role'\n  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\n\n<parameter name='serv-insts[$serv-insts-index].path-segments_length'\n  value='`$serv-insts[$serv-insts-index].path-segments_length + 1`' />","comments":"","x":2860.892692565918,"y":501.7857475280762,"z":"7d72073d.c2be58","wires":[]},{"id":"692960e.2996fa","type":"set","name":"clear partial path-segments","xml":"<set>\n<parameter name='serv-insts[$serv-insts-index].path-segments.' value='' />\n","comments":"","x":1001.2500152587891,"y":837.5000133514404,"z":"7d72073d.c2be58","wires":[]},{"id":"23f612b8.71dc7e","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='matching-error' value=\"`'Not able to find matches for all vnfs of service instance ' + $serv-insts[$serv-insts-index].service-instance-id`\" />\n","comments":"","x":997.5,"y":778.7500019073486,"z":"7d72073d.c2be58","wires":[]},{"id":"311780c.d093a8","type":"set","name":"set ps-index","xml":"<set>\n<parameter name='ps-index' value='`$serv-insts[$serv-insts-index].path-segments_length`' />\n","comments":"","x":2828.571434020996,"y":455.7142906188965,"z":"7d72073d.c2be58","wires":[]},{"id":"f28953e4.78107","type":"set","name":"set right-vnf-index","xml":"<set>\n<parameter name='right-vnf-index' value='`$left-vnf-index + 1`' />\n","comments":"","x":876.2500114440918,"y":503.75000953674316,"z":"7d72073d.c2be58","wires":[]},{"id":"65d54fc2.e487b","type":"set","name":"set found-match = true","xml":"<set>\n<parameter name='found-match' value='true' />\n","comments":"","x":2861.785598754883,"y":550.3571929931641,"z":"7d72073d.c2be58","wires":[]},{"id":"cfd816dc.41df48","type":"break","name":"break","xml":"<break>\n","comments":"","x":2811.785541534424,"y":597.4999856948853,"z":"7d72073d.c2be58","wires":[]},{"id":"2741d174.e3e39e","type":"switchNode","name":"switch vnf-list_length","xml":"<switch test='`$serv-insts[$serv-insts-index].vnf-list_length`'>\n","comments":"","outputs":1,"x":532.8571968078613,"y":284.2857360839844,"z":"7d72073d.c2be58","wires":[["5def9137.1bee2","49f84e56.0d51b","72219dd0.2d9e34"]]},{"id":"5def9137.1bee2","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":711.4286117553711,"y":241.4285888671875,"z":"7d72073d.c2be58","wires":[["24321c55.9ac6c4"]]},{"id":"49f84e56.0d51b","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":710.5953598022461,"y":284.3450927734375,"z":"7d72073d.c2be58","wires":[["24321c55.9ac6c4"]]},{"id":"72219dd0.2d9e34","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":711.4285774230957,"y":327.1428337097168,"z":"7d72073d.c2be58","wires":[["4b547fc5.d7ec3"]]},{"id":"24321c55.9ac6c4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":842.8571472167969,"y":261.4285888671875,"z":"7d72073d.c2be58","wires":[["3d3e1aeb.ba6446"]]},{"id":"3d3e1aeb.ba6446","type":"set","name":"set error (for logging only)","xml":"<set>\n<parameter name='error-message' value=\"`'Matching VNFs were not found in service instance '\n  + $serv-insts[$serv-insts-index].service-instance-id`\" />\n","comments":"","x":1029.999984741211,"y":261.4285888671875,"z":"7d72073d.c2be58","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.json
new file mode 100755 (executable)
index 0000000..4ec9ce0
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"261905ae.34eeea","type":"dgstart","name":"DGSTART","outputs":1,"x":107.14286041259766,"y":87.14286041259766,"z":"d2d67543.531a18","wires":[["169d4e88.009d51"]]},{"id":"169d4e88.009d51","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":222.42855834960938,"y":127.38096904754639,"z":"d2d67543.531a18","wires":[["38b07d77.4433d2"]]},{"id":"38b07d77.4433d2","type":"method","name":"method getpathsegment-topology-operation-create","xml":"<method rpc='getpathsegment-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":235.5714874267578,"y":168.14285469055176,"z":"d2d67543.531a18","wires":[["31ba1293.5cf0ee"]]},{"id":"e8a1dd7.47fde2","type":"comment","name":"getpathsegment-topology-operation-create","info":"","comments":"","x":501.4877166748047,"y":34.729204177856445,"z":"d2d67543.531a18","wires":[]},{"id":"31ba1293.5cf0ee","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":200.2143325805664,"y":445.3125629425049,"z":"d2d67543.531a18","wires":[["54c14222.af95ac"]]},{"id":"6ae3e475.6b9c5c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":954.5237159729004,"y":757.0838375091553,"z":"d2d67543.531a18","wires":[]},{"id":"54c14222.af95ac","type":"get-resource","name":"get-resource FORWARDING_PATH","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from FORWARDING_PATH WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='db.forwarding-path[]'>\n","comments":"","outputs":1,"x":419.7619209289551,"y":445.2380895614624,"z":"d2d67543.531a18","wires":[["d1e373d.5f3839","e66bd439.bc6018","8e5c1bb8.9dad08"]]},{"id":"414d5c6.00494a4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No paths found for service UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid + ' in FORWARDING_PATH table'`\" />\n","comments":"","x":810.7139854431152,"y":447.7141571044922,"z":"d2d67543.531a18","wires":[]},{"id":"d1e373d.5f3839","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":637.2140197753906,"y":404.2379722595215,"z":"d2d67543.531a18","wires":[["2f9208aa.104648"]]},{"id":"e66bd439.bc6018","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":645.7854499816895,"y":447.52368545532227,"z":"d2d67543.531a18","wires":[["414d5c6.00494a4"]]},{"id":"2f9208aa.104648","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error reading FORWARDING_PATH table\" />\n","comments":"","x":810.0711860656738,"y":402.80941581726074,"z":"d2d67543.531a18","wires":[]},{"id":"a6b2786.3d17d88","type":"for","name":"for each path","xml":"<for index='path-index' start='0' end='`$db.forwarding-path_length`' >\n","comments":"","outputs":1,"x":955.8332901000977,"y":536.3690814971924,"z":"d2d67543.531a18","wires":[["bcf842fd.4c17e"]]},{"id":"4f0fc7df.0716b8","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-create-simple-path","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-create-simple-path' mode='sync' >\n","comments":"","outputs":1,"x":1685.8332977294922,"y":490.1190814971924,"z":"d2d67543.531a18","wires":[[]]},{"id":"bcf842fd.4c17e","type":"switchNode","name":"switch path-type","xml":"<switch test='`$db.forwarding-path[$path-index].path-type`'>\n","comments":"","outputs":1,"x":1153.3332901000977,"y":535.1190814971924,"z":"d2d67543.531a18","wires":[["4db3b138.6f891","4d238377.ee1bec","c3b6216a.e9e8"]]},{"id":"4db3b138.6f891","type":"outcome","name":"VF","xml":"<outcome value='VF'>\n","comments":"","outputs":1,"x":1328.333293914795,"y":490.1190814971924,"z":"d2d67543.531a18","wires":[["4f0fc7df.0716b8"]]},{"id":"4d238377.ee1bec","type":"outcome","name":"Service Proxy","xml":"<outcome value='Service Proxy'>\n","comments":"","outputs":1,"x":1350.833293914795,"y":533.8690814971924,"z":"d2d67543.531a18","wires":[["d90f5716.b26838"]]},{"id":"c3b6216a.e9e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1328.333293914795,"y":577.619083404541,"z":"d2d67543.531a18","wires":[["5ddfc378.55765c"]]},{"id":"d90f5716.b26838","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-create-composite-path","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-create-composite-path' mode='sync' >\n","comments":"","outputs":1,"x":1695.5833129882812,"y":533.8690814971924,"z":"d2d67543.531a18","wires":[[]]},{"id":"5ddfc378.55765c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unexpected path type ' + $db.forwarding-path[$path-index].path-type + ' in FORWARDING_PATH table'`\" />\n","comments":"","x":1512.0832824707031,"y":577.6190757751465,"z":"d2d67543.531a18","wires":[]},{"id":"a367f3bf.d8f46","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/gps.log' />\n","comments":"","outputs":1,"x":948.3332710266113,"y":668.6905355453491,"z":"d2d67543.531a18","wires":[[]]},{"id":"8e5c1bb8.9dad08","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":644.9999999999999,"y":644.9999999999999,"z":"d2d67543.531a18","wires":[["9eb49ed6.de179"]]},{"id":"9eb49ed6.de179","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":781.6666793823242,"y":643.3333377838135,"z":"d2d67543.531a18","wires":[["a6b2786.3d17d88","a367f3bf.d8f46","6ae3e475.6b9c5c"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_getpathsegment-topology-operation.json
new file mode 100755 (executable)
index 0000000..305c1ca
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"9f4cb006.78489","type":"dgstart","name":"DGSTART","outputs":1,"x":136.66665649414062,"y":91.66666412353516,"z":"f6554d5.b9be6b","wires":[["d44d8277.807cd"]]},{"id":"d44d8277.807cd","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":251.95235443115234,"y":131.9047727584839,"z":"f6554d5.b9be6b","wires":[["57c0c2b8.d3025c"]]},{"id":"57c0c2b8.d3025c","type":"method","name":"method getpathsegment-topology-operation","xml":"<method rpc='getpathsegment-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":244.09528350830078,"y":172.66665840148926,"z":"f6554d5.b9be6b","wires":[["7264d4fd.05ecac"]]},{"id":"139e2920.5be4e7","type":"comment","name":"getpathsegment-topology-operation","info":"","comments":"","x":531.0115127563477,"y":39.253007888793945,"z":"f6554d5.b9be6b","wires":[]},{"id":"7264d4fd.05ecac","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":211.1667022705078,"y":372.6935157775879,"z":"f6554d5.b9be6b","wires":[["f679b52f.6094a8","5a3f3c96.853714","e07db8c0.e91ee8","1c7f9a22.a9f146","3422629c.5018ae"]]},{"id":"f679b52f.6094a8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":487.3808937072754,"y":511.66707706451416,"z":"f6554d5.b9be6b","wires":[]},{"id":"e07db8c0.e91ee8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":495.52373123168945,"y":427.3332853317261,"z":"f6554d5.b9be6b","wires":[["db1223e.1febbe","1f8af9a6.ee9b36"]]},{"id":"db1223e.1febbe","type":"outcome","name":"create","xml":"<outcome value='create'>\n","comments":"","outputs":1,"x":670.6189613342285,"y":399.7619504928589,"z":"f6554d5.b9be6b","wires":[["586901e6.f7371"]]},{"id":"1f8af9a6.ee9b36","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":669.0475082397461,"y":453.14276027679443,"z":"f6554d5.b9be6b","wires":[["cd11482c.6aabd8"]]},{"id":"5a3f3c96.853714","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.sdnc-request-header.' value='`$getpathsegment-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.request-information.' value='`$getpathsegment-topology-operation-input.request-information.`' />\n<parameter name='service-data.service-information.' value='`$getpathsegment-topology-operation-input.service-information.`' />\n<parameter name='service-data.service-request-input.' value='`$getpathsegment-topology-operation-input.service-request-input.`' />\n","comments":"","x":526.4880561828613,"y":347.8929252624512,"z":"f6554d5.b9be6b","wires":[]},{"id":"cd11482c.6aabd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":845.2379531860352,"y":453.14282512664795,"z":"f6554d5.b9be6b","wires":[]},{"id":"1c7f9a22.a9f146","type":"call","name":"call GENERIC-RESOURCE-API:validate-getpathsegment-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-getpathsegment-input' mode='sync' >\n","comments":"","outputs":1,"x":642.416633605957,"y":299.7143449783325,"z":"f6554d5.b9be6b","wires":[[]]},{"id":"586901e6.f7371","type":"call","name":"call GENERIC-RESOURCE-API:getpathsegment-topology-operation-create","xml":"<call module='GENERIC-RESOURCE-API' rpc='getpathsegment-topology-operation-create' mode='sync' >\n","comments":"","outputs":1,"x":1039.7618141174316,"y":399.33341121673584,"z":"f6554d5.b9be6b","wires":[[]]},{"id":"3422629c.5018ae","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":518.3333282470703,"y":249.99998664855957,"z":"f6554d5.b9be6b","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-name.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-name.json
new file mode 100755 (executable)
index 0000000..1ddef4d
--- /dev/null
@@ -0,0 +1,4441 @@
+[\r
+    {\r
+        "id": "75a34d0b.bb7574",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 118,\r
+        "y": 51,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "70404768.1ea1c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6492a0ff.445ef",\r
+        "type": "method",\r
+        "name": "method naming-policy-generate-name",\r
+        "xml": "<method rpc='naming-policy-generate-name' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 722,\r
+        "y": 52,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "ba99c4a1.1c0018"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "70404768.1ea1c8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 376.9403991699219,\r
+        "y": 51.32145690917969,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6492a0ff.445ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6edde0fc.72ccc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 283,\r
+        "y": 2249,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2c51c155.dc3526",\r
+                "9fa570e4.d047d8",\r
+                "3e4fd70d.b8b488"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c51c155.dc3526",\r
+        "type": "set",\r
+        "name": "set variables for generating unique name",\r
+        "xml": "<set>\n<!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->\n<parameter name='generate-unique-name-input.index-table-name' value=\"`$table-name`\" />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value=\"`$table-prefix-column`\" />\n<!--<parameter name='generate-unique-name-input.name-table-type' value='VNFAPI_VM_INSTANCE' />-->\n<parameter name='generate-unique-name-input.name-table-type' value=\"`$table-type`\" />\n<!--<parameter name='generate-unique-name-input.prefix' value=\"`$naming-policy-generate-name-input.nfc-naming-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='003' />-->\n<parameter name='generate-unique-name-input.prefix' value=\"`$constructed-name`\" />\n<parameter name='generate-unique-name-input.index-length' value=\"`$seq-length`\" />\n<parameter name='generate-unique-name-input.action' value=\"`$naming-policy-generate-name-input.action`\" />\n<parameter name='generate-unique-name-input.context-id' value=\"`$naming-policy-generate-name-input.context-id`\" />",\r
+        "comments": "",\r
+        "x": 421.6904296875,\r
+        "y": 2353.3095703125,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e4fd70d.b8b488",\r
+        "type": "call",\r
+        "name": "call GR-API:naming-policy-generate-unique-name",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 454.023681640625,\r
+        "y": 2398.976318359375,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "ddb98dbf.d86528",\r
+                "56f09382.d52994"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ddb98dbf.d86528",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 757.7379760742188,\r
+        "y": 2375.83349609375,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f4297935.f9f37"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "56f09382.d52994",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 761.0713259379067,\r
+        "y": 2427.50013923645,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8322f6bc.4995f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a53573e.453378",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",\r
+        "comments": "",\r
+        "x": 1048.5950927734375,\r
+        "y": 2375.261962890625,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8185858d.9e0a08",\r
+        "type": "set",\r
+        "name": "set generated vm-name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-output.vm-name' value='`$generate-unique-name-output.generated-name`' />\n<parameter name='constructed-name' value='' />\n<parameter name='seq-length' value='' />",\r
+        "comments": "",\r
+        "x": 1264.5950953165689,\r
+        "y": 2520.9760637283325,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4535c483.19cc2c",\r
+        "type": "comment",\r
+        "name": "Call Policy Manager getPolicy",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 271,\r
+        "y": 274,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8fb3313.00e47d",\r
+        "type": "execute",\r
+        "name": "execute RestapiCallNode",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/getConfig'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />  \n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n\t<parameter name=\"responsePrefix\" value=\"tmp.pm-response\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 432,\r
+        "y": 397,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "55f4b148.256098",\r
+                "d7e7421a.85577"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fac278.cbdfd588",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n<parameter name='tmp.policy-name' value=\"`$naming-policy-generate-name-input.policy-instance-name`\" />\n",\r
+        "comments": "",\r
+        "x": 377,\r
+        "y": 318,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d83b069.18ee5",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 234,\r
+        "y": 316,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fac278.cbdfd588",\r
+                "8fb3313.00e47d",\r
+                "a0a20ae8.85051",\r
+                "a2215e38.ce28e",\r
+                "15537c0b.057ca4",\r
+                "73f403b2.c4d354"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0a20ae8.85051",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: restapi-call-node Call Policy Manager getPolicy\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 377,\r
+        "y": 358,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d145dda.fd66aa",\r
+        "type": "execute",\r
+        "name": "execute readProperties",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1366,\r
+        "y": 123,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "df488a42.d2de8",\r
+                "e9591d07.9c2818"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df488a42.d2de8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1565,\r
+        "y": 102,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b544100e.489ef8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9591d07.9c2818",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1563,\r
+        "y": 143,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aa4103e3.cd9c68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa4103e3.cd9c68",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1700,\r
+        "y": 145,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4e4e1cae.459c7c",\r
+                "68d25eab.cfdcb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e4e1cae.459c7c",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Could not read properties file.\"/>\n<parameter name=\"field3\" value='`$prop.restapi.pm.getpolicy.templatefile`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1871,\r
+        "y": 142,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b544100e.489ef8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1721,\r
+        "y": 102,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "311b8744.7f9128"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ba99c4a1.1c0018",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 120,\r
+        "y": 91,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "23484a65.1e44ce",\r
+                "80631453.603ea8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b463feb.8663e",\r
+        "type": "comment",\r
+        "name": "Read properties",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1341,\r
+        "y": 76,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a0550124.60527",\r
+        "type": "comment",\r
+        "name": "Generate unique name with constructed-name based on naming-recipe",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 462,\r
+        "y": 2199,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5bd249c1.943ee8",\r
+        "type": "comment",\r
+        "name": "Process Policy Manager response",\r
+        "info": "Use the three naming components returned from Policy Manager to build the name\n\nExtract from json response three data components:\n\n1. VNFNAME\n2. CONSTANT_TAG\n3. SEQUENCE",\r
+        "comments": "",\r
+        "x": 462,\r
+        "y": 500,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "311b8744.7f9128",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: read properties file.\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1868,\r
+        "y": 102,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f403b2.c4d354",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n<parameter name='vnf-name' value=\"`$naming-policy-generate-name-input.generic-vnf-name`\" />\n<parameter name='constant-tag' value=\"`$naming-policy-generate-name-input.constant-tag`\" />\n<parameter name='sequence' value=\"`$naming-policy-generate-name-input.sequence`\" />\n",\r
+        "comments": "",\r
+        "x": 379,\r
+        "y": 443,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a2215e38.ce28e",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"naming-policy-config\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"true\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 438,\r
+        "y": 580,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "875018c2.d50af8",\r
+                "202858.a5bcf7a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "15537c0b.057ca4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: call jsonStringToCtx\"/>\n<parameter name='field3' value='`$naming-policy-config`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 383,\r
+        "y": 538,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "55f4b148.256098",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 634,\r
+        "y": 387,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "20a0ada2.86197a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4cd2ac34.0a838c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Error calling Policy Manager getPolicy\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975,\r
+        "y": 341,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7e7421a.85577",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 636,\r
+        "y": 429,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "1101599b.ecff1e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af00ee16.fb8b7",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: getPolicy SUCCESS\"/>\n<parameter name='field3' value='`$tmp.pm-response.type`' />\n<parameter name='field4' value='`$tmp.pm-response.matchingConditions`' />\n<parameter name='field5' value='`$tmp.pm-response.config`' />\n<parameter name='field6' value='`$tmp.pm-response.response-code`' />\n<parameter name='field7' value='`$tmp.pm-response.response-message`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 975,\r
+        "y": 421,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2e2bf07f.6bef",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n<parameter name='naming-policy-config' value=\"`$tmp.pm-response.config`\" />\n",\r
+        "comments": "",\r
+        "x": 976,\r
+        "y": 459,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "875018c2.d50af8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 637,\r
+        "y": 575,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6d355400.a200e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2427b7f2.f78918",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Error calling jsonStringToCtx\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 898,\r
+        "y": 566,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "202858.a5bcf7a8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 643,\r
+        "y": 622,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fe35d17a.708da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e6f1d650.5a9f2",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: jsonStringToCtx SUCCESS: policy-instance-name|naming-models_length|constructed-name:\"/>\n<parameter name='field3' value='`$jsonContextPrefix.content.policy-instance-name`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.naming-models_length`' />\n<parameter name='field5' value='`$constructed-name`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 425,\r
+        "y": 727,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0ff2011.6ffb6",\r
+        "type": "for",\r
+        "name": "for each namig-model",\r
+        "xml": "<for index='modelsIndex' start='0' end='`$jsonContextPrefix.content.naming-models_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 466,\r
+        "y": 771,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f383011c.bcb46"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe35d17a.708da",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 443,\r
+        "y": 685,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "e6f1d650.5a9f2",\r
+                "f0ff2011.6ffb6",\r
+                "f8a0b8fd.ddc3a",\r
+                "14834b6c.ad004d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2129c70.608263a",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: propertiesIndex|source-endpoint|source-system|property-name:\"/>\n<parameter name='field3' value='`$propertiesIndex`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-endpoint`' />\n<parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-system`' />\n<parameter name='field6' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1347,\r
+        "y": 1608,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "42841b11.aad434",\r
+        "type": "comment",\r
+        "name": "Resolve the value of the naming-property",\r
+        "info": "For each naming-property, get the value using the source-endpoinr and the source-system if the property-name is part of the naming-recipe.",\r
+        "comments": "",\r
+        "x": 1330,\r
+        "y": 1563,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9565a666.a66ff",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1225,\r
+        "y": 1609,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2129c70.608263a",\r
+                "bb618182.7a5348",\r
+                "4bd119b3.f9c08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dbc48e79.680fe8",\r
+        "type": "switchNode",\r
+        "name": "switch source-system",\r
+        "xml": "<switch test='`$source-system`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1794,\r
+        "y": 1743,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "a209ce6a.66539",\r
+                "674dfafd.50cfc4",\r
+                "68a415fe.a3c6f4",\r
+                "27ec5b13.c3b8d4",\r
+                "f43244a3.fe4528"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb618182.7a5348",\r
+        "type": "set",\r
+        "name": "set naming-property vars",\r
+        "xml": "<set>\n<parameter name='source-system' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-system`'  />\n<parameter name='source-endpoint' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-endpoint`'  />\n<parameter name='property-name' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`'  />\n<parameter name='property-value' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-value`'  />\n",\r
+        "comments": "",\r
+        "x": 1399,\r
+        "y": 1646,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a209ce6a.66539",\r
+        "type": "outcome",\r
+        "name": "outcome: MD-SAL",\r
+        "xml": "<outcome value=\"MD-SAL\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1823,\r
+        "y": 1787,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5914689f.c6128"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "27ec5b13.c3b8d4",\r
+        "type": "outcome",\r
+        "name": "outcome: TOSCA",\r
+        "xml": "<outcome value=\"TOSCA\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1832,\r
+        "y": 2366,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f1b8b11f.c6e268"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f43244a3.fe4528",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1789,\r
+        "y": 3865,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b6b75232.0ce81"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "33427119.67b63e",\r
+        "type": "get-resource",\r
+        "name": "get-resource: using source-enpoint",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' method='parameterizedQuery' emitsOutcome='true' >\n<parameter name='query' value='nfc_naming_code from VFC_MODEL where customization_uuid = ?' />\n<parameter name='prefix' value='queryPfx' />\n<parameter name='param1' value=\"`$naming-policy-generate-name-input.vfc-customization-uuid`\" />\n\n<!--<get-resource \n\tplugin='org.openecomp.sdnc.sli.resource.sql.SqlResource' \n    resource='SQL'\n\tkey=\"SELECT nfc_naming_code from VFC_MODEL where customization_uuid = $naming-policy-generate-name-input.customization-uuid ; \"\n\tpfx='queryPfx'>\n\t\n-- Use parameterized query\nRead\n<execute plugin='com.att.sdnctl.sli.resource.sql.SqlResource' method='parameterizedQuery' emitsOutcome='true' >\n<parameter name='query' value='select version from SVC_LOGIC where module = ?' />\n<parameter name='prefix' value='query1' />\n<parameter name='param1' value=\"`$vfcCustomizationUuid`  (passed in from calling DG)\" />\n-->\t\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3158,\r
+        "y": 2436,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e47d8a0.889f3",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2708,\r
+        "y": 2422,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b0046580.4d276"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b0046580.4d276",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='514' />\n<parameter name='error-message' value='naming-policy-generate-name query-parameter not found in DB table'/>\n",\r
+        "comments": "",\r
+        "x": 2849,\r
+        "y": 2422,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "50737887.589db",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2700,\r
+        "y": 2458,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "df3b5efb.ab02a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df3b5efb.ab02a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='515' />\n<parameter name='error-message' value='naming-policy-generate-name database access failure'/>\n",\r
+        "comments": "",\r
+        "x": 2849,\r
+        "y": 2458,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4bf394e2.0c215c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2312,\r
+        "y": 2472,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "18bd0a36.98e46e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f71e5755.3b8be8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system TOSCA name-value pair|new-part|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$name-var`\" />\n<parameter name=\"field4\" value=\"`$value-var`\" />\n<parameter name=\"field5\" value=\"`$new-part`\" />\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2627,\r
+        "y": 2912,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "18bd0a36.98e46e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2311,\r
+        "y": 2517,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f71e5755.3b8be8",\r
+                "1f38982a.fd3db8",\r
+                "8dfa3cf2.977b5",\r
+                "74241d5c.4f5c4c",\r
+                "c6e9efbe.0a3b9",\r
+                "5a0ecd08.97aca4",\r
+                "e48db706.321a18",\r
+                "ff7274bf.81bd7",\r
+                "4f4d8a88.0ea29c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8dfa3cf2.977b5",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $resolved-query-parameter`\" />\n<parameter name=\"new-part\" value=\"`$resolved-query-parameter` \" />",\r
+        "comments": "",\r
+        "x": 2641,\r
+        "y": 2819,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "559d0190.b9a298",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />\n<parameter name=\"new-part\" value=\"`$resolved-source-endpoint` \" />\n<!--<parameter name=\"new-part\" value=\"`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />-->",\r
+        "comments": "",\r
+        "x": 2132,\r
+        "y": 1901,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5cf92254.7a3a2c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system MD-SAL name-value pair|new-part|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$name-var`\" />\n<parameter name=\"field4\" value=\"`$value-var`\" />\n<parameter name=\"field5\" value=\"`$new-part`\" />\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2116,\r
+        "y": 1989,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd92dfcd.c08348",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - split after |",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\|\"/>\n    <parameter name=\"limit\" value=\"10\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"namingRecipeSplits\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 897,\r
+        "y": 1118,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2ecc5f0.43531",\r
+        "type": "set",\r
+        "name": "set original-name",\r
+        "xml": "<set>\n<parameter name='original-name' value='`$naming-recipe`' />\n",\r
+        "comments": "",\r
+        "x": 871.3333740234375,\r
+        "y": 1077.333251953125,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2d28b1ee.0d253e",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 665,\r
+        "y": 1077,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b2ecc5f0.43531",\r
+                "bd92dfcd.c08348",\r
+                "6f8b5246.912494",\r
+                "6edde0fc.72ccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f8b5246.912494",\r
+        "type": "for",\r
+        "name": "for each naming-recipe section",\r
+        "xml": "<for index='sectionIndex' start='0' end='`$namingRecipeSplits_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 921,\r
+        "y": 1158,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "42632c44.901de4",\r
+                "50857c42.42adcc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50857c42.42adcc",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Split naming-recipe sectionIndex|section value\"/>\n<parameter name=\"field3\" value=\"`$sectionIndex`\" />\n<parameter name=\"field4\" value=\"`$namingRecipeSplits[$sectionIndex]`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1144,\r
+        "y": 1158,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "42632c44.901de4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 872,\r
+        "y": 1208,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4f6f9e3d.d93e98",\r
+                "dbb6c8bd.b9d85"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f6f9e3d.d93e98",\r
+        "type": "for",\r
+        "name": "for each naming-property",\r
+        "xml": "<for index='propertiesIndex' start='0' end='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1048,\r
+        "y": 1249,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8c4f2aa1.47e8f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ca738a3.1fe0f8",\r
+        "type": "switchNode",\r
+        "name": "switch property-name == section-value",\r
+        "xml": "<switch test='`$property-name == $section-value`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153,\r
+        "y": 1428,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5ef228d5.03a9c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ef228d5.03a9c",\r
+        "type": "outcome",\r
+        "name": "outcome: recipe section match",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1197,\r
+        "y": 1470,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7bf7454d.cb5eac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9fa570e4.d047d8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: call generate-unique-name: constructed-name\"/>\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 310,\r
+        "y": 2308,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "dbb6c8bd.b9d85",\r
+        "type": "set",\r
+        "name": "set section-value",\r
+        "xml": "<set>\n<parameter name='section-value' value=\"`$namingRecipeSplits[$sectionIndex]`\"  />\n",\r
+        "comments": "",\r
+        "x": 1031,\r
+        "y": 1209,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cc00f157.dcdd08",\r
+        "type": "set",\r
+        "name": "set property-name",\r
+        "xml": "<set>\n<!--<parameter name='property-name' value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`\"  />-->\n<parameter name='property-name' value=\"`$property-name-trimmed`\"  />\n",\r
+        "comments": "",\r
+        "x": 1097,\r
+        "y": 1385,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c4f2aa1.47e8f8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1018,\r
+        "y": 1294,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4ca738a3.1fe0f8",\r
+                "3a8d4560.940002",\r
+                "cc00f157.dcdd08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37b3dd6b.37aaa2",\r
+        "type": "set",\r
+        "name": "set constructed-name",\r
+        "xml": "<set>\n<!--<parameter name='constructed-name' value=\"`'init-constructed-name'`\"  />-->\n<parameter name='constructed-name' value=\"`''`\"  />",\r
+        "comments": "",\r
+        "x": 665,\r
+        "y": 678,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7bf7454d.cb5eac",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1174,\r
+        "y": 1513,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "9565a666.a66ff",\r
+                "edd08f5b.e85f58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff95881b.e519c",\r
+        "type": "set",\r
+        "name": "set SEQUENCE info for this naming-property",\r
+        "xml": "<set>\n<!-- until PM is passing the correct source-endpoint for memory value, \n     use one passed via executeDG test\n\n<parameter name=\"`$propertiesIndex` + '-naming-property-value'\" value=\"` $property-name + '-' + $source-endpoint `\"  />\n-->\n<parameter name=\"seq-scope\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.scope`\" />\n<parameter name=\"seq-start-value\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.start-value` \" />\n<parameter name=\"seq-length\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.length` \" />\n<parameter name=\"seq-increment\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.increment` \" />\n",\r
+        "comments": "",\r
+        "x": 2194,\r
+        "y": 3903,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "28763b06.0da9d4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: SDN-GC SEQUENCE info: scope|start-value|length|increment|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$seq-scope`\" />\n<parameter name=\"field4\" value=\"`$seq-start-value`\" />\n<parameter name=\"field5\" value=\"`$seq-length`\" />\n<parameter name=\"field6\" value=\"`$seq-increment`\" />\n<parameter name=\"field7\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2071,\r
+        "y": 3943,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5914689f.c6128",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2118,\r
+        "y": 1853,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "559d0190.b9a298",\r
+                "5cf92254.7a3a2c",\r
+                "465cf13e.01d79",\r
+                "5c07edd9.938f7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6b75232.0ce81",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2070,\r
+        "y": 3865,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "ff95881b.e519c",\r
+                "28763b06.0da9d4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8db0d286.7fa708",\r
+        "type": "execute",\r
+        "name": "execute parameterized query using source-endpoint",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' method='parameterizedQuery' emitsOutcome='true' >\n<!--<parameter name='query' value='select nfc_naming_code from VFC_MODEL where customization_uuid = ?' />-->\n<parameter name='query' value=\"`$source-endpoint`\" />\n<parameter name='prefix' value='queryPfx' />\n<parameter name='param1' value=\"`$naming-policy-generate-name-input.query-parameter`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2432,\r
+        "y": 2422,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6e47d8a0.889f3",\r
+                "50737887.589db",\r
+                "4bf394e2.0c215c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "edd08f5b.e85f58",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: recipe section match: section-value|property-name:\"/>\n<parameter name=\"field3\" value=\"`$section-value`\" />\n<parameter name=\"field4\" value=\"`$property-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1301,\r
+        "y": 1513,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f38982a.fd3db8",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"constructed-name\" value=\"`$constructed-name + $new-part` \"  />\n",\r
+        "comments": "",\r
+        "x": 2707,\r
+        "y": 2863,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "465cf13e.01d79",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"constructed-name\" value=\"`$constructed-name + $new-part` \"  />",\r
+        "comments": "",\r
+        "x": 2201,\r
+        "y": 1939,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8322f6bc.4995f",\r
+        "type": "switchNode",\r
+        "name": "switch naming-type (VM | VNFC | VNF)",\r
+        "xml": "<switch test='`$naming-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 978.0000025431314,\r
+        "y": 2425.9999895095825,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "9d532e22.50b1b8",\r
+                "78aa50c5.9e78e",\r
+                "64bf3864.33ff38",\r
+                "6d8b2a02.46fe54",\r
+                "81a52062.6b654"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d532e22.50b1b8",\r
+        "type": "outcome",\r
+        "name": "outcome: VM",\r
+        "xml": "<outcome value=\"VM\">\n<!-- <outcome value=\"MD-SAL\"> -->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1007,\r
+        "y": 2478,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "518d8ec2.33b29"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "78aa50c5.9e78e",\r
+        "type": "outcome",\r
+        "name": "outcome: VNFC",\r
+        "xml": "<outcome value=\"VNFC\">\n<!-- <outcome value=\"MD-SAL\"> -->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1017,\r
+        "y": 2609,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "e889ec83.003b58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbbec45b.5e0258",\r
+        "type": "set",\r
+        "name": "set generated vnfc-name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-output.vnfc-name' value='`$generate-unique-name-output.generated-name`' />\n<parameter name='constructed-name' value='' />\n<parameter name='seq-length' value='' />",\r
+        "comments": "",\r
+        "x": 1258.5950927734375,\r
+        "y": 2688.97607421875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f3b3cf11.bcec9",\r
+        "type": "record",\r
+        "name": "record generated vm-name",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: generated vm-name|generate-unique-name-output.generated-name:\"/>\n<parameter name=\"field5\" value=\"`$naming-policy-generate-name-output.vm-name`\" />\n<parameter name=\"field6\" value=\"`$generate-unique-name-output.generated-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1275.0000025431314,\r
+        "y": 2561.9999895095825,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "518d8ec2.33b29",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209,\r
+        "y": 2477,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f3b3cf11.bcec9",\r
+                "8185858d.9e0a08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e889ec83.003b58",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1200,\r
+        "y": 2648,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7741602e.23feb",\r
+                "cbbec45b.5e0258"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7741602e.23feb",\r
+        "type": "record",\r
+        "name": "record generated vnfc-name",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: generated vnfc-name|generate-unique-name-output.generated-name:\"/>\n<parameter name=\"field5\" value=\"`$naming-policy-generate-name-output.vnfc-name`\" />\n<parameter name=\"field6\" value=\"`$generate-unique-name-output.generated-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1269,\r
+        "y": 2727,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4bd119b3.f9c08",\r
+        "type": "switchNode",\r
+        "name": "switch property-value",\r
+        "xml": "<switch test='`$property-value`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1390,\r
+        "y": 1688,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "eb25d531.93517",\r
+                "a13023cc.efc698"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb25d531.93517",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1585,\r
+        "y": 1689,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b7c93ceb.1810d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7c93ceb.1810d8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1621,\r
+        "y": 1742,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "dbc48e79.680fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a13023cc.efc698",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1296,\r
+        "y": 1875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5ed3e30e.accf14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ed3e30e.accf14",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1326,\r
+        "y": 1917,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "992c18a9.120f3",\r
+                "b2e909c3.17d858",\r
+                "b5b4a205.b0a848"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "992c18a9.120f3",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<!-- until PM is passing the correct source-endpoint for memory value, \n     use one passed via executeDG test\n\n<parameter name=\"`$propertiesIndex` + '-naming-property-value'\" value=\"` $property-name + '-' + $source-endpoint `\"  />\n-->\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $property-value` \" />\n<parameter name=\"new-part\" value=\"`$property-value` \" />",\r
+        "comments": "",\r
+        "x": 1344,\r
+        "y": 1954,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b5b4a205.b0a848",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"constructed-name\" value=\"`$constructed-name + $new-part` \"  />",\r
+        "comments": "",\r
+        "x": 1413,\r
+        "y": 1992,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b2e909c3.17d858",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: property-value name-value pair|new-part|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$name-var`\" />\n<parameter name=\"field4\" value=\"`$value-var`\" />\n<parameter name=\"field5\" value=\"`$new-part`\" />\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1325,\r
+        "y": 2030,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f8a0b8fd.ddc3a",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name='naming-policy-generate-name-output.vm-name' value=\"`$naming-policy-generate-name-output.vm-name`\" />\n<parameter name='naming-policy-generate-name-output.vnfc-name' value=\"`$naming-policy-generate-name-output.vnfc-name`\" />\n",\r
+        "comments": "",\r
+        "x": 202,\r
+        "y": 3275,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "68d25eab.cfdcb",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='501' />\n<parameter name='error-message' value='naming-policy-generate-name: could not read generic-resource-api properties' />\n",\r
+        "comments": "",\r
+        "x": 1883,\r
+        "y": 185,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f5405176.e50ca",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='502' />\n<parameter name='error-message' value='naming-policy-generate-name: getPolicy call to Policy Manger failed' />\n",\r
+        "comments": "",\r
+        "x": 991,\r
+        "y": 380,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4dfee0c8.38978",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='504' />\n<parameter name='error-message' value='naming-policy-generate-name: failed to parse Policy Manger getPolicy response' />\n",\r
+        "comments": "",\r
+        "x": 914,\r
+        "y": 605,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "20a0ada2.86197a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 761,\r
+        "y": 386,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4cd2ac34.0a838c",\r
+                "f5405176.e50ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d355400.a200e4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 772,\r
+        "y": 575,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2427b7f2.f78918",\r
+                "4dfee0c8.38978"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a8d4560.940002",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - trim property-name",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\n    <parameter name=\"source\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`\" />\n    <parameter name=\"outputPath\" value=\"property-name-trimmed\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1143,\r
+        "y": 1343,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf295ecd.ac6bb",\r
+        "type": "execute",\r
+        "name": "SliPluginUtils - getArrtibuteValue for source-endpoint",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\n\t<parameter name=\"source\" value=\"`$source-endpoint`\" />\n\t<!--<parameter name=\"source\" value=\"`$naming-policy-generate-name-input.test-source-endpoint-path`\" />-->\n\t<parameter name=\"outputPath\" value=\"resolved-source-endpoint\" />\n\t",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2742,\r
+        "y": 2075,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "85860723.7cbb78",\r
+        "type": "set",\r
+        "name": "set ctx-memory-path * TEST ONLY *",\r
+        "xml": "<set>\n<parameter name=\"ctx-memory-path\" value='test-source-endpoint-resolved-value' />",\r
+        "comments": "",\r
+        "x": 2209,\r
+        "y": 1791,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5c07edd9.938f7c",\r
+        "type": "switchNode",\r
+        "name": "switch property-name (VMNAME | VNFNAME | Other)",\r
+        "xml": "<switch test='`$property-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2577,\r
+        "y": 1852,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7a67ffd2.e19ed",\r
+                "2dcf567f.4b8eb2",\r
+                "fcbf6f2f.6c2558"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a67ffd2.e19ed",\r
+        "type": "outcome",\r
+        "name": "outcome: VMNAME",\r
+        "xml": "<outcome value=\"VMNAME\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2510,\r
+        "y": 1905,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aba0d492.8c0b78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2dcf567f.4b8eb2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2470,\r
+        "y": 2075,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "cf295ecd.ac6bb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa207226.ec6ef8",\r
+        "type": "set",\r
+        "name": "set resolved-source-endpoint to input vm-name",\r
+        "xml": "<set>\n<parameter name=\"resolved-source-endpoint\" value=\"`$naming-policy-generate-name-input.vm-name`\" />",\r
+        "comments": "",\r
+        "x": 3167,\r
+        "y": 1925,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be2a29d3.e3246",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Error calling generate-unique-name\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1034,\r
+        "y": 2329,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a176147.86e4a6",\r
+        "type": "comment",\r
+        "name": "If property-value was set use it instead of constructing a value",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1465,\r
+        "y": 1836,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3ffbeb15.ee1a1c",\r
+        "type": "comment",\r
+        "name": "construct a name only if the naming-type matches input.  Valid types: VNF | VM | VNFC | NETWORK | SERVICE",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 738,\r
+        "y": 812,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f383011c.bcb46",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 473,\r
+        "y": 853,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4d70248f.886584",\r
+                "af65c0f0.1d9608",\r
+                "c68c5be6.cd663",\r
+                "53c5a10b.b8eb28",\r
+                "153c4ae9.a6de65"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d70248f.886584",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: modelsIndex|naming-type|naming-recipe:\"/>\n<parameter name='field3' value='`$modelsIndex`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-type`' />\n<parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-recipe`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 790,\r
+        "y": 849,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c68c5be6.cd663",\r
+        "type": "set",\r
+        "name": "set naming-model vars (naming-recipe and naming-type)",\r
+        "xml": "<set>\n<parameter name='naming-recipe' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-recipe`'  />\n<parameter name='naming-type' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-type`'  />\n",\r
+        "comments": "",\r
+        "x": 944,\r
+        "y": 888,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "af65c0f0.1d9608",\r
+        "type": "switchNode",\r
+        "name": "switch naming-type == input.naming-type",\r
+        "xml": "<switch test='`$naming-type == $naming-policy-generate-name-input.naming-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 524,\r
+        "y": 992,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f5ba895b.cd8e4",\r
+                "be0c5c6c.f15a2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f5ba895b.cd8e4",\r
+        "type": "outcome",\r
+        "name": "outcome:naming-type match",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529,\r
+        "y": 1032,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2d28b1ee.0d253e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "be0c5c6c.f15a2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 465,\r
+        "y": 1074,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "1697accc.44d5c3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1697accc.44d5c3",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: naming-type from returned policy does not match input.naming-type.  Do not construct name for: \"/>\n<parameter name=\"field3\" value=\"`$naming-type`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 458,\r
+        "y": 1121,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e4783ce.b43dc4",\r
+        "type": "comment",\r
+        "name": "Validate inputs",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1331,\r
+        "y": 234,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f4297935.f9f37",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 897,\r
+        "y": 2376,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "be2a29d3.e3246",\r
+                "9a53573e.453378"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a810ba97.bc966",\r
+        "type": "switchNode",\r
+        "name": "switch input.naming-type",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.naming-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1374,\r
+        "y": 328,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "29894a6d.fcfd2e",\r
+                "2ea8e223.bf22fe",\r
+                "f89e5c46.be5898",\r
+                "f92989b4.f2bcb8",\r
+                "2da294ed.7f325c",\r
+                "11a9f6da.c807c1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29894a6d.fcfd2e",\r
+        "type": "outcome",\r
+        "name": "VM",\r
+        "xml": "<outcome value='VM'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1622,\r
+        "y": 330,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f2326745.eeb0b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9cc7fee.430e7",\r
+        "type": "set",\r
+        "name": "set table-name NAMING_POLICY_VNFC_NAME",\r
+        "xml": "<set>\n<parameter name='table-name' value=\"NAMING_POLICY_VNFC_NAME_INDEX\" />\n<parameter name='table-type' value=\"VNFC_INSTANCE\" />\n<parameter name='table-prefix-column' value=\"vnfc_name_prefix\" />\n<parameter name='seq-length' value=\"0\" />",\r
+        "comments": "",\r
+        "x": 2254,\r
+        "y": 446,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f2326745.eeb0b8",\r
+        "type": "set",\r
+        "name": "set table-name NAMING_POLICY_VM_NAME",\r
+        "xml": "<set>\n<parameter name='table-name' value=\"NAMING_POLICY_VM_NAME_INDEX\" />\n<parameter name='table-type' value=\"VM_INSTANCE\" />\n<parameter name='table-prefix-column' value=\"vm_name_prefix\" />",\r
+        "comments": "",\r
+        "x": 1904,\r
+        "y": 330,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ea8e223.bf22fe",\r
+        "type": "outcome",\r
+        "name": "VNFC",\r
+        "xml": "<outcome value='VNFC'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1622,\r
+        "y": 385,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "171caa16.1ed2d6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f89e5c46.be5898",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1623,\r
+        "y": 630,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d7a00f6d.c4ee1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7a00f6d.c4ee1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1777,\r
+        "y": 630,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "39f8d8b0.a7e64",\r
+                "2c701ccb.01509c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "39f8d8b0.a7e64",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: invalid input.naming-type.\"/>\n<parameter name=\"field3\" value='`$naming-policy-generate-name-input.naming-type`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1904,\r
+        "y": 632,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c701ccb.01509c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='503' />\n<parameter name='error-message' value='naming-policy-generate-name: Invalid input.naming-type' />\n",\r
+        "comments": "",\r
+        "x": 1921,\r
+        "y": 672,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "171caa16.1ed2d6",\r
+        "type": "switchNode",\r
+        "name": "switch input.vm-name",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.vm-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1825,\r
+        "y": 385,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "467b9870.7570f8",\r
+                "36a2c7ec.0127c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "467b9870.7570f8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2003,\r
+        "y": 385,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4a78e468.b7611c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36a2c7ec.0127c8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2003,\r
+        "y": 428,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "c9cc7fee.430e7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a805a9b0.7607b8",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.naming-type is VNFC but input.vm-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2266,\r
+        "y": 361,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "88ca34e0.05a1c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='505' />\n<parameter name='error-message' value='naming-policy-generate-name: input.naming-type is VNFC but input.vm-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 2281,\r
+        "y": 401,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1625cae3.0e96cd",\r
+        "type": "switchNode",\r
+        "name": "switch input.policy-instance-name",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.policy-instance-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fcc1b469.2a97a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fcc1b469.2a97a8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1619,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7051a8cf.38c55"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7051a8cf.38c55",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1778,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d16b1533.2821c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a5e7060.07154",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.policy-instance-name is not set and input.policy is ASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2371,\r
+        "y": 736,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2e5670a7.e2838",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='507' />\n<parameter name='error-message' value='naming-policy-generate-name: input.policy-instance-name is not set and input.policy is ASSIGN' />\n",\r
+        "comments": "",\r
+        "x": 2388,\r
+        "y": 776,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "23484a65.1e44ce",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 228,\r
+        "y": 184,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d145dda.fd66aa",\r
+                "a810ba97.bc966",\r
+                "1625cae3.0e96cd",\r
+                "bc02137f.30d418",\r
+                "7aabbb44.838e4c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76dc7da.840bc04",\r
+        "type": "comment",\r
+        "name": "Read properties and validate inputs",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 299,\r
+        "y": 138,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1101599b.ecff1e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 762,\r
+        "y": 430,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "af00ee16.fb8b7",\r
+                "2e2bf07f.6bef",\r
+                "f786b61d.eeb208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f786b61d.eeb208",\r
+        "type": "switchNode",\r
+        "name": "switch response-code",\r
+        "xml": "<switch test='`$tmp.pm-response.response-code`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1027,\r
+        "y": 506,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f97aad60.54393"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f97aad60.54393",\r
+        "type": "outcome",\r
+        "name": "500",\r
+        "xml": "<outcome value='500'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1202,\r
+        "y": 503,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d4f772ea.5bf2c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4f772ea.5bf2c8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209,\r
+        "y": 548,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d477517.4c3263",\r
+                "b1981638.99cb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d477517.4c3263",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Error calling Policy Manager getPolicy\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1348,\r
+        "y": 524,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1981638.99cb8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='502' />\n<parameter name='error-message' value='naming-policy-generate-name: getPolicy call to Policy Manger failed' />\n",\r
+        "comments": "",\r
+        "x": 1366,\r
+        "y": 567,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f92989b4.f2bcb8",\r
+        "type": "outcome",\r
+        "name": "VNF",\r
+        "xml": "<outcome value='VNF'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1624,\r
+        "y": 462,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6d2ea0b7.f76398"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2da294ed.7f325c",\r
+        "type": "outcome",\r
+        "name": "NETWORK",\r
+        "xml": "<outcome value='NETWORK'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1637,\r
+        "y": 513,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "da7c6991.7af078"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11a9f6da.c807c1",\r
+        "type": "outcome",\r
+        "name": "SERVICE",\r
+        "xml": "<outcome value='SERVICE'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1633,\r
+        "y": 564,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7625c54.c368d3c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6d2ea0b7.f76398",\r
+        "type": "set",\r
+        "name": "set table-name VNF_NAME_INDEX",\r
+        "xml": "<set>\n<parameter name='table-name' value=\"VNF_NAME_INDEX\" />\n<parameter name='table-type' value=\"VNF_INSTANCE\" />\n<parameter name='table-prefix-column' value=\"vnf_name_prefix\" />",\r
+        "comments": "",\r
+        "x": 1862,\r
+        "y": 462,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "da7c6991.7af078",\r
+        "type": "set",\r
+        "name": "set table-name NETWORK_INSTANCE_NAME_INDEX",\r
+        "xml": "<set>\n<parameter name='table-name' value=\"NETWORK_INSTANCE_NAME_INDEX\" />\n<parameter name='table-type' value=\"NETWORK_INSTANCE\" />\n<parameter name='table-prefix-column' value=\"network_instance_name_prefix\" />",\r
+        "comments": "",\r
+        "x": 1923,\r
+        "y": 513,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7625c54.c368d3c",\r
+        "type": "set",\r
+        "name": "set table-name SERVICE_INSTANCE_NAME_INDEX",\r
+        "xml": "<set>\n<parameter name='table-name' value=\"SERVICE_INSTANCE_NAME_INDEX\" />\n<parameter name='table-type' value=\"SERVICE_INSTANCE\" />\n<parameter name='table-prefix-column' value=\"service_instance_name_prefix\" />",\r
+        "comments": "",\r
+        "x": 1924,\r
+        "y": 564,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "67447001.3edbd",\r
+        "type": "comment",\r
+        "name": "naming-type (VNF | VM | VNFC | NETWORK | SERVICE) - REQUIRED",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1510,\r
+        "y": 284,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bc02137f.30d418",\r
+        "type": "switchNode",\r
+        "name": "switch input.query-parameter",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.query-parameter`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1380,\r
+        "y": 858,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "57a3a6a1.fbd058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "545b6fb8.22f54",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1781,\r
+        "y": 858,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5bd4377d.585d08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5bd4377d.585d08",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.vfc-customization-uuid is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1914,\r
+        "y": 834,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7358b18c.329d48",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='506' />\n<parameter name='error-message' value='naming-policy-generate-name: input.vfc-customization-uuid is not set' />\n",\r
+        "comments": "",\r
+        "x": 1931,\r
+        "y": 874,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "57a3a6a1.fbd058",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1622,\r
+        "y": 858,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "545b6fb8.22f54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a01e1ff9.50b64",\r
+        "type": "comment",\r
+        "name": "Don't return failure for missing query-parameter in 1806",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2180,\r
+        "y": 836,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fb18471f.a2fe8",\r
+        "type": "comment",\r
+        "name": "input.policy-instance-name - REQUIRED for ASSIGN action but not for DELETE action",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1549,\r
+        "y": 706,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "53c5a10b.b8eb28",\r
+        "type": "switchNode",\r
+        "name": "switch naming-type",\r
+        "xml": "<switch test='`$naming-type`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 832,\r
+        "y": 930,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5e549bb.3050be4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e549bb.3050be4",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 999,\r
+        "y": 930,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fb9e37ef.f54ef"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb9e37ef.f54ef",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='504' />\n<parameter name='error-message' value='naming-policy-generate-name: naming-type in policy is blank' />\n",\r
+        "comments": "",\r
+        "x": 1144,\r
+        "y": 930,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "153c4ae9.a6de65",\r
+        "type": "switchNode",\r
+        "name": "switch naming-recipe",\r
+        "xml": "<switch test='`$naming-recipe`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 835,\r
+        "y": 974,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2a71d2b.18e0aae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a71d2b.18e0aae",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1002,\r
+        "y": 974,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "79ed9b39.4e2aa4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "79ed9b39.4e2aa4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='504' />\n<parameter name='error-message' value='naming-policy-generate-name: naming-recipe in policy is blank' />\n",\r
+        "comments": "",\r
+        "x": 1147,\r
+        "y": 974,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f1b8b11f.c6e268",\r
+        "type": "switchNode",\r
+        "name": "switch input.query-parameter",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.query-parameter`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2174,\r
+        "y": 2366,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d7aabc69.a2e3e8",\r
+                "c9e519ef.a46d88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d7aabc69.a2e3e8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2375,\r
+        "y": 2367,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7616f046.770668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7616f046.770668",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2503,\r
+        "y": 2367,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4cf573c7.4b348c",\r
+                "fada7118.239f3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4cf573c7.4b348c",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.query-parameter is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2665,\r
+        "y": 2342,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fada7118.239f3",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='506' />\n<parameter name='error-message' value='naming-policy-generate-name: input.query-parameter is not set' />\n",\r
+        "comments": "",\r
+        "x": 2682,\r
+        "y": 2383,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c9e519ef.a46d88",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2146,\r
+        "y": 2421,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8db0d286.7fa708"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14834b6c.ad004d",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/naming-policy-generate-name.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 195,\r
+        "y": 3220,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "447be3a7.f54764",\r
+        "type": "comment",\r
+        "name": "Process naming-property based on source-system (MD-SAL | CONTEXT | TOSCA | AAI | BLANK)",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2009,\r
+        "y": 1704,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "68a415fe.a3c6f4",\r
+        "type": "outcome",\r
+        "name": "outcome: CONTEXT",\r
+        "xml": "<outcome value=\"CONTEXT\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1833,\r
+        "y": 2134,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6e965022.fe956"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "309ed755.487e78",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />\n<parameter name=\"new-part\" value=\"`$resolved-source-endpoint` \" />\n<!--<parameter name=\"new-part\" value=\"`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />-->",\r
+        "comments": "",\r
+        "x": 2129,\r
+        "y": 2225,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8d251a7.aea628",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|new-part|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$name-var`\" />\n<parameter name=\"field4\" value=\"`$value-var`\" />\n<parameter name=\"field5\" value=\"`$new-part`\" />\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2113,\r
+        "y": 2309,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e965022.fe956",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2108,\r
+        "y": 2134,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "309ed755.487e78",\r
+                "c8d251a7.aea628",\r
+                "5950ef04.ed81f",\r
+                "bfb38316.2b9e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5950ef04.ed81f",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"constructed-name\" value=\"`$constructed-name + $new-part` \"  />",\r
+        "comments": "",\r
+        "x": 2197,\r
+        "y": 2268,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fcbf6f2f.6c2558",\r
+        "type": "outcome",\r
+        "name": "outcome: VNFNAME",\r
+        "xml": "<outcome value=\"VNFNAME\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2515,\r
+        "y": 1988,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d915ca2c.562cd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "235c56b6.8b4c4a",\r
+        "type": "set",\r
+        "name": "set resolved-source-endpoint to input vm-name",\r
+        "xml": "<set>\n<parameter name=\"resolved-source-endpoint\" value=\"`$naming-policy-generate-name-input.vnf-name`\" />",\r
+        "comments": "",\r
+        "x": 3169,\r
+        "y": 2053,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bfb38316.2b9e8",\r
+        "type": "execute",\r
+        "name": "SliPluginUtils - getArrtibuteValue for source-endpoint",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\n\t<parameter name=\"source\" value=\"`$source-endpoint`\" />\n\t<parameter name=\"outputPath\" value=\"resolved-source-endpoint\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2253,\r
+        "y": 2181,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c0a08bde.73447",\r
+        "type": "set",\r
+        "name": "set source-endpoint context value  * TEST ONLY *",\r
+        "xml": "<set>\n<parameter name=\"vnf-topology-operation-input.vnf-request-input.aic-cloud-region\" value=\"some-cloud-region\" />",\r
+        "comments": "",\r
+        "x": 2396,\r
+        "y": 2134,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74241d5c.4f5c4c",\r
+        "type": "set",\r
+        "name": "set original-name",\r
+        "xml": "<set>\n<parameter name='original-name' value='`$source-endpoint`' />\n",\r
+        "comments": "",\r
+        "x": 2656,\r
+        "y": 2569,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c6e9efbe.0a3b9",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - split after ' '",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\" \"/>\n    <parameter name=\"limit\" value=\"10\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"sourceEndpointSplits\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2679.6666564941406,\r
+        "y": 2609.6667289733887,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "184d741.514f70c",\r
+        "type": "comment",\r
+        "name": "determime queryPrefix parameter by parsing query",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2751,\r
+        "y": 2523,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5a0ecd08.97aca4",\r
+        "type": "set",\r
+        "name": "set query-parameter-name",\r
+        "xml": "<set>\n<parameter name=\"query-parameter-name-underbars\" value=\"`$sourceEndpointSplits[1]`\"  />",\r
+        "comments": "",\r
+        "x": 2682,\r
+        "y": 2657,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3b69d8e3.8663e8",\r
+        "type": "set",\r
+        "name": "set new-part (test)",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $queryPfx.$query-parameter-name`\" />\n<parameter name=\"new-part\" value=\"`$queryPfx.$query-parameter-name` \" />",\r
+        "comments": "",\r
+        "x": 2974,\r
+        "y": 2629,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "64bf3864.33ff38",\r
+        "type": "outcome",\r
+        "name": "outcome: VNF",\r
+        "xml": "<outcome value=\"VNF\">\n<!-- <outcome value=\"MD-SAL\"> -->\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1018,\r
+        "y": 2765,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "a1e31157.0c5708"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b61eb81e.8bfd8",\r
+        "type": "set",\r
+        "name": "set generated vnf-name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-output.vnf-name' value='`$generate-unique-name-output.generated-name`' />\n<parameter name='constructed-name' value='' />\n<parameter name='seq-length' value='' />",\r
+        "comments": "",\r
+        "x": 1259.5950927734375,\r
+        "y": 2844.97607421875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a1e31157.0c5708",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1201,\r
+        "y": 2804,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fa59e379.19e768",\r
+                "b61eb81e.8bfd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa59e379.19e768",\r
+        "type": "record",\r
+        "name": "record generated vnf-name",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: generated vnf-name|generate-unique-name-output.generated-name:\"/>\n<parameter name=\"field5\" value=\"`$naming-policy-generate-name-output.vnf-name`\" />\n<parameter name=\"field6\" value=\"`$generate-unique-name-output.generated-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1270,\r
+        "y": 2883,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a17c7654.15ff",\r
+        "type": "set",\r
+        "name": "set new-part (test)",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name='value-var' value=\"`$property-name + '-' + $queryPfx.`\" />\n<parameter name='new-part' value='`$queryPrefix.`' />\n<!--<parameter name='get-data-from-policy-output.' value='`$jsonContextPrefix.content.policy-data.`'  />-->",\r
+        "comments": "",\r
+        "x": 2976,\r
+        "y": 2669,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e48db706.321a18",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - replace \"_\" with \"-\"",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n\t<parameter name=\"source\" value=\"`$query-parameter-name-underbars`\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.query-parameter-name-dashes\"/>\n\t<parameter name=\"target\" value=\"_\"/>\n\t<parameter name=\"replacement\" value=\"-\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2701,\r
+        "y": 2696,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f4d8a88.0ea29c",\r
+        "type": "execute",\r
+        "name": "SliPluginUtils - getArrtibuteValue for query-parameter",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\n\t<parameter name=\"source\" value=\"`$full-query-param-name`\" />\n\t<parameter name=\"outputPath\" value=\"resolved-query-parameter\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2763,\r
+        "y": 2781,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff7274bf.81bd7",\r
+        "type": "set",\r
+        "name": "set full-query-param-name",\r
+        "xml": "<set>\n<parameter name=\"full-query-param-name\" value=\"`'queryPfx.' + $tmp.query-parameter-name-dashes`\" />",\r
+        "comments": "",\r
+        "x": 2679,\r
+        "y": 2738,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "674dfafd.50cfc4",\r
+        "type": "outcome",\r
+        "name": "outcome: AAI",\r
+        "xml": "<outcome value=\"AAI\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1801,\r
+        "y": 2954,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5d880e46.1dde38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a78e468.b7611c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2133,\r
+        "y": 385,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "a805a9b0.7607b8",\r
+                "88ca34e0.05a1c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7aa39627.b38648",\r
+        "type": "comment",\r
+        "name": "if source-system is blank expect an increment-sequence block",\r
+        "info": "Example:\n\n{\n\t\"property-name\": \"NETWORK_NUMBER\",\n\t\"increment-sequence\": {\n\t\t\"scope\": \"PRECEEDING\",\n\t\t\"start-value\": \"001\",\n\t\t\"length\": \"3\",\n\t\t\"increment\": \"1\"\n\t}\n},",\r
+        "comments": "",\r
+        "x": 2238,\r
+        "y": 3819,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5edd068d.04c6b",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2069.0001220703125,\r
+        "y": 3333,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "17d9f03b.1b77a",\r
+                "e40ef10a.685198",\r
+                "bd8141e4.6613a8",\r
+                "7796fb8b.f063fc",\r
+                "9505e5aa.984de8",\r
+                "d8b1bd71.3f958",\r
+                "2b8edb09.8ecbd4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17d9f03b.1b77a",\r
+        "type": "set",\r
+        "name": "set tenant id, cloud region id and aaiQueryKey",\r
+        "xml": "<set>\n<parameter name=\"`'tmp.' + $aaiSourceEndpointKeySplits[0]`\" value= \"`$aaiQueryKeySplits[0]`\"/>\n<parameter name=\"`'tmp.' + $aaiSourceEndpointKeySplits[1]`\" value=\"`$aaiQueryKeySplits[1]`\" />\n<parameter name=\"`'tmp.' + $aaiSourceEndpointKeySplits[2]`\" value=\"`$aaiQueryKeySplits[2]`\" />\n<!--<parameter name=\"aaiQueryKeyPart1\" value=\"cloud-region.cloud-owner = 'att-aic' AND \" />-->\n<parameter name=\"aaiQueryKeyPart1\" value=\"`$aaiSourceEndpointKeySplits[0]`\"/>\n<parameter name=\"aaiQueryKeyPart2\" value=\" = '\" />\n<parameter name=\"aaiQueryKeyPart3\" value=\"`$aaiQueryKeySplits[0]`\" />\n<parameter name=\"aaiQueryKeyPart4\" value=\"' AND \" />\n<parameter name=\"aaiQueryKeyPart5\" value=\"`$aaiSourceEndpointKeySplits[1]`\"/>\n<parameter name=\"aaiQueryKeyPart6\" value=\" = '\" />\n<parameter name=\"aaiQueryKeyPart7\" value=\"`$aaiQueryKeySplits[1]`\" />\n<parameter name=\"aaiQueryKeyPart8\" value=\"' AND \" />\n<parameter name=\"aaiQueryKeyPart9\" value=\"`$aaiSourceEndpointKeySplits[2]`\"/>\n<parameter name=\"aaiQueryKeyPart10\" value=\" = '\" />\n<parameter name=\"aaiQueryKeyPart11\" value=\"`$aaiQueryKeySplits[2]`\" />\n<parameter name=\"aaiQueryKeyPart12\" value=\"'\" />\n<parameter name=\"aaiQueryKey\" value=\"`$aaiQueryKeyPart1 + $aaiQueryKeyPart2 + $aaiQueryKeyPart3 + $aaiQueryKeyPart4 + $aaiQueryKeyPart5 + $aaiQueryKeyPart6 + $aaiQueryKeyPart7 + $aaiQueryKeyPart8 + $aaiQueryKeyPart9 + $aaiQueryKeyPart10 + $aaiQueryKeyPart11 + $aaiQueryKeyPart12 `\" />\n<!-- works without single quotes <parameter name=\"aaiQueryKey\" value=\"`'cloud-region.cloud-owner = att-aic AND ' + $aaiSourceEndpointKeySplits[0] + ' = ' + $aaiQueryKeySplits[0] + ' AND ' + $aaiSourceEndpointKeySplits[1] + ' = ' + $aaiQueryKeySplits[1]`\" />-->\n<!-- key=\"cloud-region.cloud-owner = '$a' AND cloud-region.cloud-region-id = '$b' AND tenant.tenant-id = '$c' AND vserver.vserver-id = '$d'\" -->\n<!--<parameter name=\"`'get-data-from-policy-output[' + $policyDataIndex + ']'`.\" value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].`' />-->",\r
+        "comments": "",\r
+        "x": 2194.93359375,\r
+        "y": 3430,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7796fb8b.f063fc",\r
+        "type": "get-resource",\r
+        "name": "get-resource tenant",\r
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource='`$resource`'\n        key='`$aaiQueryKey`'\n        pfx=\"`'aai.' + $resource`\" local-only='true' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2113.40025138855,\r
+        "y": 3530.9997606277466,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8148fec6.090f8",\r
+                "4411aef4.94b2b",\r
+                "35eaa816.c441c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "35eaa816.c441c8",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2356.770612716675,\r
+        "y": 3514.0366258621216,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "64d5dd16.9a8ecc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8148fec6.090f8",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2360.26157951355,\r
+        "y": 3555.6108446121216,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aa9f0cfa.cd152"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4411aef4.94b2b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2356.59458732605,\r
+        "y": 3597.9440965652466,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aa9f0cfa.cd152"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "64d5dd16.9a8ecc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 2536.7705688476562,\r
+        "y": 3514.036745071411,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f9523f93.ccc208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa9f0cfa.cd152",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n",\r
+        "comments": "",\r
+        "x": 2530.7704849243164,\r
+        "y": 3562.999653816223,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f9523f93.ccc208",\r
+        "type": "set",\r
+        "name": "set tenant name",\r
+        "xml": "<set>\n<parameter name='tmp.tenant-name' value='`$aai.tenant.tenant-name`' />\n\n\n",\r
+        "comments": "",\r
+        "x": 2723.733673095703,\r
+        "y": 3514.6664867401123,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d01a537b.d728b",\r
+        "type": "comment",\r
+        "name": "determime resource and keys for AAI query by parsing source-endpoint",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2259,\r
+        "y": 2913,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "aba0d492.8c0b78",\r
+        "type": "switchNode",\r
+        "name": "switch input.vm-name",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.vm-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2733,\r
+        "y": 1905,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "9b3bb802.d44d88",\r
+                "47f2fc25.56e6ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9b3bb802.d44d88",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2916,\r
+        "y": 1880,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5cbde5c1.5dd7e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5cbde5c1.5dd7e4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3044,\r
+        "y": 1880,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "74010697.452c08",\r
+                "f7c0210e.b94548"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74010697.452c08",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: required input.vm-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3193,\r
+        "y": 1839,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7c0210e.b94548",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='506' />\n<parameter name='error-message' value='naming-policy-generate-name: required input.vm-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 3210,\r
+        "y": 1880,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "47f2fc25.56e6ec",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2916,\r
+        "y": 1925,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aa207226.ec6ef8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d915ca2c.562cd8",\r
+        "type": "switchNode",\r
+        "name": "switch input.vnf-name",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.vnf-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2734,\r
+        "y": 1988,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "b2f3958f.8a23a8",\r
+                "a2914e1f.70d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2914e1f.70d8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2917,\r
+        "y": 2013,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "235c56b6.8b4c4a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2f3958f.8a23a8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2917,\r
+        "y": 1968,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "7f0313.e1800cec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f0313.e1800cec",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3045,\r
+        "y": 1968,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "17dc3fdc.7a4138",\r
+                "7ba2023a.2b314c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17dc3fdc.7a4138",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: required input.vnf-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3193,\r
+        "y": 1969,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ba2023a.2b314c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='506' />\n<parameter name='error-message' value='naming-policy-generate-name: required input.vnf-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 3210,\r
+        "y": 2010,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6d8b2a02.46fe54",\r
+        "type": "outcome",\r
+        "name": "outcome: NETWORK",\r
+        "xml": "<outcome value=\"NETWORK\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1033,\r
+        "y": 2921,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "d8f62d02.0b7c68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d8f62d02.0b7c68",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1216,\r
+        "y": 2960,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "111d7b38.aff69d",\r
+                "6a27ae77.c59aa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6a27ae77.c59aa8",\r
+        "type": "set",\r
+        "name": "set generated network-name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-output.network-name' value='`$generate-unique-name-output.generated-name`' />\n<parameter name='constructed-name' value='' />\n<parameter name='seq-length' value='' />",\r
+        "comments": "",\r
+        "x": 1274.5950927734375,\r
+        "y": 3000.97607421875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "111d7b38.aff69d",\r
+        "type": "record",\r
+        "name": "record generated network-name",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: generated network-name|generate-unique-name-output.generated-name:\"/>\n<parameter name=\"field5\" value=\"`$naming-policy-generate-name-output.network-name`\" />\n<parameter name=\"field6\" value=\"`$generate-unique-name-output.generated-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1285,\r
+        "y": 3039,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6c6e0868.85ff6",\r
+        "type": "for",\r
+        "name": "for each naming-property",\r
+        "xml": "<for index='propIndex' start='0' end='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2665,\r
+        "y": 3177,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "f6e46bdd.b61188"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f6e46bdd.b61188",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2926,\r
+        "y": 3178,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5529c6a3.6c9ba",\r
+                "4707cc40.cacf7c",\r
+                "bf26bf2f.b9fbd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4707cc40.cacf7c",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - trim property-name",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\n    <parameter name=\"source\" value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`\" />\n    <parameter name=\"outputPath\" value=\"property-name-trimmed\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3051,\r
+        "y": 3227,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf26bf2f.b9fbd8",\r
+        "type": "set",\r
+        "name": "set property-name",\r
+        "xml": "<set>\n<!--<parameter name='property-name' value=\"`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`\"  />-->\n<parameter name='property-name' value=\"`$property-name-trimmed`\"  />\n",\r
+        "comments": "",\r
+        "x": 3005,\r
+        "y": 3269,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5529c6a3.6c9ba",\r
+        "type": "switchNode",\r
+        "name": "switch property-name == key-value",\r
+        "xml": "<switch test='`$property-name == $key-value`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3061,\r
+        "y": 3312,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "ef6f30a6.fb9468"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ef6f30a6.fb9468",\r
+        "type": "outcome",\r
+        "name": "outcome: key match",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3105,\r
+        "y": 3354,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "65bb9041.eadd68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65bb9041.eadd68",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3082,\r
+        "y": 3397,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "c6d6d4f8.dd3a9",\r
+                "4950a758.f5058"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4950a758.f5058",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: key match: key-value|property-name:\"/>\n<parameter name=\"field3\" value=\"`$key-value`\" />\n<parameter name=\"field4\" value=\"`$property-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3209,\r
+        "y": 3397,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6d6d4f8.dd3a9",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3133,\r
+        "y": 3493,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4b9e0e4c.6cb3e",\r
+                "7cab5b4.a2dad24",\r
+                "abedb075.44d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b9e0e4c.6cb3e",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: propertiesIndex|source-endpoint|source-system|property-name:\"/>\n<parameter name='field3' value='`$propertiesIndex`' />\n<parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-endpoint`' />\n<parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-system`' />\n<parameter name='field6' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3255,\r
+        "y": 3492,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7cab5b4.a2dad24",\r
+        "type": "set",\r
+        "name": "set naming-property vars",\r
+        "xml": "<set>\n<parameter name='source-system' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-system`'  />\n<parameter name='source-endpoint' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-endpoint`'  />\n<parameter name='property-name' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`'  />\n<parameter name='property-value' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-value`'  />\n",\r
+        "comments": "",\r
+        "x": 3307,\r
+        "y": 3530,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "abedb075.44d8",\r
+        "type": "switchNode",\r
+        "name": "switch property-value",\r
+        "xml": "<switch test='`$property-value`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3298,\r
+        "y": 3572,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "9d508caf.68d6b8",\r
+                "168b952e.fa12c3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d508caf.68d6b8",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3493,\r
+        "y": 3573,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "aa999573.c5828"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "aa999573.c5828",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3529,\r
+        "y": 3626,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "88afe8a0.740cb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88afe8a0.740cb",\r
+        "type": "switchNode",\r
+        "name": "switch source-system",\r
+        "xml": "<switch test='`$source-system`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3702,\r
+        "y": 3627,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fbfee537.2b391"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "364b9242.460e2e",\r
+        "type": "comment",\r
+        "name": "Resolve the value of the naming-property",\r
+        "info": "For each naming-property, get the value using the source-endpoinr and the source-system if the property-name is part of the naming-recipe.",\r
+        "comments": "",\r
+        "x": 3238,\r
+        "y": 3447,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fbfee537.2b391",\r
+        "type": "outcome",\r
+        "name": "outcome: CONTEXT",\r
+        "xml": "<outcome value=\"CONTEXT\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3751,\r
+        "y": 3692,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4148c29c.d5dd14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a72fd538.10a5c8",\r
+        "type": "set",\r
+        "name": "set key-value",\r
+        "xml": "<set>\n<parameter name='key-value' value=\"`$aaiSourceEndpointKeySplits[$keyIndex]`\"  />",\r
+        "comments": "",\r
+        "x": 2625,\r
+        "y": 3131,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4148c29c.d5dd14",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4026,\r
+        "y": 3692,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "bfdc7cc7.350b88",\r
+                "5ccbff14.99e5d8",\r
+                "76cfcc8f.f93ec4",\r
+                "df11b04c.5256d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbae139a.467f08",\r
+        "type": "set",\r
+        "name": "set source-endpoint context value  * TEST ONLY *",\r
+        "xml": "<set>\n<parameter name=\"network-topology-operation-input.network-request-input.aic-cloud-region\" value=\"CR-rwan670\" />\n<parameter name=\"network-topology-operation-input.network-request-input.tenant\" value=\"s6709b7252b6484d89432611cfb2491b\" />",\r
+        "comments": "",\r
+        "x": 4314,\r
+        "y": 3692,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "76cfcc8f.f93ec4",\r
+        "type": "execute",\r
+        "name": "SliPluginUtils - getArrtibuteValue for source-endpoint",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\n\t<parameter name=\"source\" value=\"`$source-endpoint`\" />\n\t<parameter name=\"outputPath\" value=\"resolved-source-endpoint\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4171,\r
+        "y": 3739,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bfdc7cc7.350b88",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<parameter name=\"aai-name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"aai-value-var\" value=\"`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />\n<parameter name=\"aai-new-part\" value=\"`$resolved-source-endpoint` \" />\n<!--<parameter name=\"new-part\" value=\"`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` \" />-->",\r
+        "comments": "",\r
+        "x": 4047,\r
+        "y": 3783,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8124b794.18f208",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"aai-constructed-name\" value=\"`$aai-new-part `\"  />",\r
+        "comments": "",\r
+        "x": 4498,\r
+        "y": 3802,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5ccbff14.99e5d8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|aai-new-part|aai-constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$aai-name-var`\" />\n<parameter name=\"field4\" value=\"`$aai-value-var`\" />\n<parameter name=\"field5\" value=\"`$aai-new-part`\" />\n<parameter name=\"field6\" value=\"`$aai-constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4030,\r
+        "y": 3882,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a450f8b5.62efe",\r
+        "type": "comment",\r
+        "name": "Parse AAI keys out of the source-endpoint",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2485,\r
+        "y": 2998,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c258ae47.3a09b8",\r
+        "type": "comment",\r
+        "name": "Resolve the value for each key",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2452,\r
+        "y": 3035,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c19923a4.8cc7d8",\r
+        "type": "execute",\r
+        "name": "execute - Kevin test split",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' > \n    <parameter name=\"original_string\" value='Hello:World,Hello\\\\Universe' /> \n    <parameter name=\"regex\" value='\\\\\\\\|:'/> \n    <parameter name=\"limit\" value=\"10\" /> \n    <parameter name=\"ctx_memory_result_key\" value=\"aaiSourceEndpointSplits\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2432,\r
+        "y": 2963,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d880e46.1dde38",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2063,\r
+        "y": 2954,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "2b3f82f2.0915c6",\r
+                "eff13281.c06a2",\r
+                "4cf33561.8a3154",\r
+                "9ef01647.feb57",\r
+                "b7da91f.e2c397",\r
+                "5edd068d.04c6b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b3f82f2.0915c6",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - split after |",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$original-name`\" />\n    <parameter name=\"regex\" value=\"\\|\"/>\n    <parameter name=\"limit\" value=\"10\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"aaiSourceEndpointRegionKeySplits\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2126.6666259765625,\r
+        "y": 3037.666748046875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "eff13281.c06a2",\r
+        "type": "set",\r
+        "name": "set resource and keys; initialize aai-constructed-name",\r
+        "xml": "<set>\n<parameter name=\"resource\" value=\"`$aaiSourceEndpointRegionKeySplits[0]`\"  />\n<parameter name=\"keys\" value=\"`$aaiSourceEndpointRegionKeySplits[1]`\"  />\n<parameter name='aai-constructed-name' value=\"\"  />",\r
+        "comments": "",\r
+        "x": 2204,\r
+        "y": 3078,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4cf33561.8a3154",\r
+        "type": "set",\r
+        "name": "set original-name",\r
+        "xml": "<set>\n<parameter name='original-name' value='`$source-endpoint`' />\n",\r
+        "comments": "",\r
+        "x": 2098,\r
+        "y": 2998,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ef01647.feb57",\r
+        "type": "for",\r
+        "name": "for each AAI key (not the initial split which is region)",\r
+        "xml": "<for index='keyIndex' start='0' end='`$aaiSourceEndpointKeySplits_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2203,\r
+        "y": 3162,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "e160f4e5.a06f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e160f4e5.a06f4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2471,\r
+        "y": 3162,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "a72fd538.10a5c8",\r
+                "6c6e0868.85ff6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5de7ccf1.828bdc",\r
+        "type": "comment",\r
+        "name": "After aai-constructed-value is resolved from keys use the resolved values in AAi query",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2302.0001220703125,\r
+        "y": 3289,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b7da91f.e2c397",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - split after :",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$keys`\" />\n    <parameter name=\"regex\" value=\"\\:\"/>\n    <parameter name=\"limit\" value=\"10\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"aaiSourceEndpointKeySplits\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2122,\r
+        "y": 3120,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "392390c1.f6aa4",\r
+        "type": "comment",\r
+        "name": "use same modelsIndex but reset propIndex",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 2717,\r
+        "y": 3220,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bd8141e4.6613a8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: Call AAI query for keys aai-constructed-name|region|aaiQueryKey:\"/>\n<parameter name=\"field3\" value=\"`$aai-constructed-name`\" />\n<parameter name=\"field4\" value=\"`$resource`\" />\n<parameter name=\"field5\" value=\"`$aaiQueryKey`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2075,\r
+        "y": 3479,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e40ef10a.685198",\r
+        "type": "execute",\r
+        "name": "SliStringUtils - split after |",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$aai-constructed-name`\" />\n    <parameter name=\"regex\" value=\"\\|\"/>\n    <parameter name=\"limit\" value=\"10\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"aaiQueryKeySplits\" />\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2131,\r
+        "y": 3378,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "36bb1e3a.83fb22",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"aai-constructed-name\" value=\"`$aai-constructed-name + '|' + $aai-new-part`\"  />",\r
+        "comments": "",\r
+        "x": 4500,\r
+        "y": 3848,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "df11b04c.5256d8",\r
+        "type": "switchNode",\r
+        "name": "switch aai-constructed-name",\r
+        "xml": "<switch test='`$aai-constructed-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4099,\r
+        "y": 3836,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "cb771f61.bc0538",\r
+                "2fe999f0.5f7d26"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cb771f61.bc0538",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4291,\r
+        "y": 3803,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8124b794.18f208"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2fe999f0.5f7d26",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 4291,\r
+        "y": 3848,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "36bb1e3a.83fb22"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "168b952e.fa12c3",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3498,\r
+        "y": 4166,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fc710544.23ca4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fc710544.23ca4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3528,\r
+        "y": 4208,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "4e54e664.6ea89",\r
+                "8c40d3d7.3ec928",\r
+                "ef94dfef.3cd2f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e54e664.6ea89",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<!-- until PM is passing the correct source-endpoint for memory value, \n     use one passed via executeDG test\n\n<parameter name=\"`$propertiesIndex` + '-naming-property-value'\" value=\"` $property-name + '-' + $source-endpoint `\"  />\n-->\n<parameter name=\"aai-name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"aai-value-var\" value=\"`$property-name + '-' + $property-value` \" />\n<parameter name=\"aai-new-part\" value=\"`$property-value` \" />",\r
+        "comments": "",\r
+        "x": 3546,\r
+        "y": 4245,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "af1ad1df.d33788",\r
+        "type": "comment",\r
+        "name": "If property-value was set use it instead of constructing a value",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 3667,\r
+        "y": 4127,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8c40d3d7.3ec928",\r
+        "type": "switchNode",\r
+        "name": "switch aai-constructed-name",\r
+        "xml": "<switch test='`$aai-constructed-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3600,\r
+        "y": 4289,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "c6bf903.2b1727",\r
+                "add4aaee.f672f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c6bf903.2b1727",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3789,\r
+        "y": 4270,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "16a761fa.44425e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "add4aaee.f672f8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3789,\r
+        "y": 4315,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "1e1ef54.4364e8b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16a761fa.44425e",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"aai-constructed-name\" value=\"`$aai-new-part `\"  />",\r
+        "comments": "",\r
+        "x": 3996,\r
+        "y": 4269,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e1ef54.4364e8b",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"aai-constructed-name\" value=\"`$aai-constructed-name + '|' + $aai-new-part`\"  />",\r
+        "comments": "",\r
+        "x": 3998,\r
+        "y": 4315,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ef94dfef.3cd2f8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|aai-new-part|aai-constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$aai-name-var`\" />\n<parameter name=\"field4\" value=\"`$aai-value-var`\" />\n<parameter name=\"field5\" value=\"`$aai-new-part`\" />\n<parameter name=\"field6\" value=\"`$aai-constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 3535,\r
+        "y": 4329,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "81a52062.6b654",\r
+        "type": "outcome",\r
+        "name": "outcome: SERVICE",\r
+        "xml": "<outcome value=\"SERVICE\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1040,\r
+        "y": 3089,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "c968ece2.e861b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c968ece2.e861b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1214,\r
+        "y": 3131,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5961d44e.b60844",\r
+                "b4a18786.5a349"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4a18786.5a349",\r
+        "type": "set",\r
+        "name": "set generated service-name",\r
+        "xml": "<set>\n<parameter name='naming-policy-generate-name-output.service-name' value='`$generate-unique-name-output.generated-name`' />\n<parameter name='constructed-name' value='' />\n<parameter name='seq-length' value='' />",\r
+        "comments": "",\r
+        "x": 1281.5950927734375,\r
+        "y": 3168.97607421875,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5961d44e.b60844",\r
+        "type": "record",\r
+        "name": "record generated service-name",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: generated service-name|generate-unique-name-output.generated-name:\"/>\n<parameter name=\"field5\" value=\"`$naming-policy-generate-name-output.service-name`\" />\n<parameter name=\"field6\" value=\"`$generate-unique-name-output.generated-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1292,\r
+        "y": 3207,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "643f91a1.6e381",\r
+        "type": "set",\r
+        "name": "set tenant name  * TEST ONLY *",\r
+        "xml": "<set>\n<parameter name='tmp.tenant-name' value='testTenantName' />\n\n\n",\r
+        "comments": "",\r
+        "x": 2590,\r
+        "y": 3609,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2b8edb09.8ecbd4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: source-system AAI name-value pair|new-part|constructed-name:\"/>\n<parameter name=\"field3\" value=\"`$name-var`\" />\n<parameter name=\"field4\" value=\"`$value-var`\" />\n<parameter name=\"field5\" value=\"`$new-part`\" />\n<parameter name=\"field6\" value=\"`$constructed-name`\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2080,\r
+        "y": 3679,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9505e5aa.984de8",\r
+        "type": "set",\r
+        "name": "set new-part",\r
+        "xml": "<set>\n<parameter name=\"name-var\" value=\"`$propertiesIndex + '-naming-property-value'`\" />\n<parameter name=\"value-var\" value=\"`$property-name + '-' + $tmp.tenant-name`\" />\n<parameter name=\"new-part\" value=\"`$tmp.tenant-name` \" />",\r
+        "comments": "",\r
+        "x": 2094,\r
+        "y": 3586,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d8b1bd71.3f958",\r
+        "type": "set",\r
+        "name": "add new-part to constructed-value",\r
+        "xml": "<set>\n<parameter name=\"constructed-name\" value=\"`$constructed-name + $new-part` \"  />\n",\r
+        "comments": "",\r
+        "x": 2160,\r
+        "y": 3630,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c27c208.07cec6",\r
+        "type": "comment",\r
+        "name": "TO DO: Add other valid source-systems",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 3804,\r
+        "y": 3956,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7aabbb44.838e4c",\r
+        "type": "switchNode",\r
+        "name": "switch input.action",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1352,\r
+        "y": 949,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "65801471.a8cfe4",\r
+                "dd90ae76.d8d0a",\r
+                "a5ab2eba.d8837"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65801471.a8cfe4",\r
+        "type": "other",\r
+        "name": "Blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1610,\r
+        "y": 949,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8efa90f2.cfd8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8efa90f2.cfd8a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1741,\r
+        "y": 948,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "e3dff93c.c00fa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3dff93c.c00fa8",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.action is not set or invalid\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1878,\r
+        "y": 948,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd90ae76.d8d0a",\r
+        "type": "outcome",\r
+        "name": "ASSIGN | DELETE",\r
+        "xml": "<outcome value='ASSIGN | DELETE'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1642,\r
+        "y": 1032,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a5ab2eba.d8837",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1607,\r
+        "y": 990,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "8efa90f2.cfd8a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80631453.603ea8",\r
+        "type": "switchNode",\r
+        "name": "switch input.action",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 236.5,\r
+        "y": 233,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "751cad23.e2ffa4",\r
+                "d9b96b5c.478e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "751cad23.e2ffa4",\r
+        "type": "other",\r
+        "name": "ASSIGN",\r
+        "xml": "<outcome value='ASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 399,\r
+        "y": 233,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "5d83b069.18ee5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d9b96b5c.478e6",\r
+        "type": "other",\r
+        "name": "DELETE",\r
+        "xml": "<outcome value='DELETE'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 210,\r
+        "y": 368,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "6edde0fc.72ccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d16b1533.2821c8",\r
+        "type": "switchNode",\r
+        "name": "switch input.action",\r
+        "xml": "<switch test='`$naming-policy-generate-name-input.action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1944,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "a7458e5b.9b3d2",\r
+                "ee1bf64b.2c78b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7458e5b.9b3d2",\r
+        "type": "outcome",\r
+        "name": "ASSIGN",\r
+        "xml": "<outcome value='ASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2113,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "47b7d396.98efbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47b7d396.98efbc",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2248,\r
+        "y": 755,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "3a5e7060.07154",\r
+                "2e5670a7.e2838"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ee1bf64b.2c78b",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2116,\r
+        "y": 710,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            [\r
+                "fbe9f97c.69471"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbe9f97c.69471",\r
+        "type": "GenericXML",\r
+        "name": "record",\r
+        "xml": "<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"LAINA: naming-policy-generate-name: input.policy-instance-name is not set but input.policy is not ASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2250,\r
+        "y": 710,\r
+        "z": "5fbfaf64.570368",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.json
new file mode 100644 (file)
index 0000000..05af1c1
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"9694d6d1.d85758","type":"dgstart","name":"DGSTART","outputs":1,"x":104.99999237060547,"y":43.36603832244873,"z":"7cae5554.a7c84c","wires":[["6d0e8921.574e78"]]},{"id":"6d0e8921.574e78","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":395.67856216430664,"y":43.17558670043945,"z":"7cae5554.a7c84c","wires":[["8ce3613a.00883"]]},{"id":"8ce3613a.00883","type":"method","name":"method naming-policy-generate-unique-name","xml":"<method rpc='naming-policy-generate-unique-name' mode='sync'>\n","comments":"","outputs":1,"x":237.91672134399414,"y":115.71127033233643,"z":"7cae5554.a7c84c","wires":[["e55fe329.e072d"]]},{"id":"3063c4c.990bf3c","type":"comment","name":"naming-policy-generate-unique-name","info":"Input arguments:\ngenerate-unique-name-input.index-table-name - name of INDEX table\ngenerate-unique-name-input.index-table-prefix-column - name of prefix column in above table\ngenerate-unique-name-input.name-table-name - name of table holding all generated names\ngenerate-unique-name-input.index-length - non-null digit if index should be fixed length\n\nOutput arguments:\ngenerate-unique-name-output.generated-name - generated name (null if error)\ngenerate-unique-name-output.error-message - error message (non-null if error)\n","comments":"","x":792.559154510498,"y":36.66666793823242,"z":"7cae5554.a7c84c","wires":[]},{"id":"e55fe329.e072d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":179.99999237060547,"y":189.61603832244873,"z":"7cae5554.a7c84c","wires":[["4e5a9b52.d59394"]]},{"id":"4e5a9b52.d59394","type":"switchNode","name":"switch generate-unique-name-input.action","xml":"<switch test='`$generate-unique-name-input.action`'>\n","comments":"","outputs":1,"x":285.0000228881836,"y":254.61604118347168,"z":"7cae5554.a7c84c","wires":[["c79681c5.c85a6","f782c2fe.b50f8","34e598cd.547d08","5f9e5e0c.20be2"]]},{"id":"c79681c5.c85a6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":556.8332252502441,"y":254.8660774230957,"z":"7cae5554.a7c84c","wires":[["629ca82f.7cdc88"]]},{"id":"629ca82f.7cdc88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.action not supplied' />\n","comments":"","x":727.5000019073486,"y":254.1993808746338,"z":"7cae5554.a7c84c","wires":[]},{"id":"f782c2fe.b50f8","type":"outcome","name":"ASSIGN","xml":"<outcome value='ASSIGN'>","comments":"","outputs":1,"x":561.2500610351562,"y":308.3660726547241,"z":"7cae5554.a7c84c","wires":[["826b2865.7e0898"]]},{"id":"34e598cd.547d08","type":"outcome","name":"DELETE","xml":"<outcome value='DELETE'>","comments":"","outputs":1,"x":564.2619934082031,"y":1548.4612164497375,"z":"7cae5554.a7c84c","wires":[["66b3b9cb.e29ee8"]]},{"id":"1e2c4141.71b96f","type":"call","name":"call generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1385.2381629943848,"y":926.4256224632263,"z":"7cae5554.a7c84c","wires":[["da75856f.16a8f8"]]},{"id":"826b2865.7e0898","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":730.7500648498535,"y":308.3660430908203,"z":"7cae5554.a7c84c","wires":[["810613ad.81995","8621dfc4.da743","42af3be3.1c7914","413b7679.6a9c48","915b6cf6.6a091","1f764a1a.a7d3f6","bb2b984e.06a468"]]},{"id":"b4913758.6d64d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'Encountered error in naming-policy-generate-unique-name: ' + \n\t\t$generate-unique-name-output.error-message`\" />\n","comments":"","x":2001.4760627746582,"y":977.4612526893616,"z":"7cae5554.a7c84c","wires":[]},{"id":"6df1aa76.b53b44","type":"save","name":"query AAI: GET /nodes/object?key","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.nodes-query\">\n      <parameter name=\"start[0]\" value=\"`$tmp.gname.custom-query-string + \n\t\t\t$encoded-name`\" />\n      <parameter name=\"start_length\" value=\"1\" />","comments":"","outputs":1,"x":1409.202579498291,"y":1072.6279282569885,"z":"7cae5554.a7c84c","wires":[["a660d7e9.046738","e8a90561.64a3d8","c66c84fb.d66958"]]},{"id":"a660d7e9.046738","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1679.881202697754,"y":1136.1993236541748,"z":"7cae5554.a7c84c","wires":[["16f60ff4.382ec"]]},{"id":"e8a90561.64a3d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1685.8095321655273,"y":1073.0208578109741,"z":"7cae5554.a7c84c","wires":[["8903b08f.7c326"]]},{"id":"c66c84fb.d66958","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1683.8095989227295,"y":1192.9136219024658,"z":"7cae5554.a7c84c","wires":[["a135dc4a.61d9d"]]},{"id":"810613ad.81995","type":"switchNode","name":"switch input.name-table-type","xml":"<switch test='`$generate-unique-name-input.name-table-type`'>\n","comments":"","outputs":1,"x":999.3928718566895,"y":398.1160683631897,"z":"7cae5554.a7c84c","wires":[["762e8292.fbea4c","7f7fd3dd.6f823c","6e8ab2c3.fc6bbc","bcdcb322.c1d22","c075a83f.5cee08","4e878c64.66aaf4"]]},{"id":"762e8292.fbea4c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1242.8928565979004,"y":398.36606454849243,"z":"7cae5554.a7c84c","wires":[["2c273d9d.ca4f82"]]},{"id":"2c273d9d.ca4f82","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\n","comments":"","x":1414.5596332550049,"y":398.6993680000305,"z":"7cae5554.a7c84c","wires":[]},{"id":"4bc10430.8db0ac","type":"set","name":"set tmp.gname.custom-query-string: vnf-name","xml":"<set>\n<parameter name='tmp.gname.custom-query-string' value='nodes/generic-vnfs?vnf-name=' />\n","comments":"","x":1649.6786155700684,"y":450.68747758865356,"z":"7cae5554.a7c84c","wires":[]},{"id":"56c695a.0de4a6c","type":"set","name":"set tmp.gname.custom-query-string: vm-name","xml":"<set>\n<parameter name='tmp.gname.custom-query-string' value='nodes/vservers?vserver-name=' />\n","comments":"","x":1649.6786079406738,"y":503.54462480545044,"z":"7cae5554.a7c84c","wires":[]},{"id":"8c811a9e.3e2958","type":"set","name":"set tmp.gname.custom-query-string: network-name","xml":"<set>\n<parameter name='tmp.gname.custom-query-string' value='nodes/l3-networks?network-name=' />\n","comments":"","x":1665.3927421569824,"y":560.1160521507263,"z":"7cae5554.a7c84c","wires":[]},{"id":"1fbce4c6.d6002b","type":"set","name":"set tmp.gname.custom-query-string: vnfc-name","xml":"<set>\n<parameter name='tmp.gname.custom-query-string' value='nodes/vnfcs?vnfc-name=' />\n","comments":"","x":1655.571475982666,"y":668.4732518196106,"z":"7cae5554.a7c84c","wires":[]},{"id":"9bef47ef.8e3858","type":"set","name":"set tmp.gname.custom-query-string: service-instance-name","xml":"<set>\n<parameter name='tmp.gname.custom-query-string' value='nodes/service-instances?service-instance-name=' />\n","comments":"","x":1691.642894744873,"y":616.1160740852356,"z":"7cae5554.a7c84c","wires":[]},{"id":"a135dc4a.61d9d","type":"get-resource","name":"Update context_id = NON-ONAP","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey=\"update GENERIC_RESOURCE_NAME set context_id = $tmp.gun.nononap  \n\t\tWHERE type = $generate-unique-name-input.name-table-type \n\t\tAND context_id = $tmp.gun.transient\">\n","comments":"","outputs":1,"x":1934.131046295166,"y":1192.1993341445923,"z":"7cae5554.a7c84c","wires":[["c2b6ccc5.17585","279b65b0.b767da"]]},{"id":"40711a8f.0be9c4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \n\t\t+ $tmp.context-id.nononap`\" />\n\n","comments":"","x":2362.4170112609863,"y":1192.2232828140259,"z":"7cae5554.a7c84c","wires":[]},{"id":"c2b6ccc5.17585","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2179.9884071350098,"y":1192.1518774032593,"z":"7cae5554.a7c84c","wires":[["40711a8f.0be9c4"]]},{"id":"279b65b0.b767da","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2186.833808898926,"y":1238.640019416809,"z":"7cae5554.a7c84c","wires":[["9d767c72.52e7e"]]},{"id":"9d767c72.52e7e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'No GENERIC_RESOURCE_NAME found with context_id = TRANSIENT and type = ' \n\t\t+ $generate-unique-name-input.name-table-type`\"/>\n","comments":"","x":2358.2740058898926,"y":1237.9135656356812,"z":"7cae5554.a7c84c","wires":[]},{"id":"42af3be3.1c7914","type":"set","name":"set tmp.gun.nononap","xml":"<set>\n<parameter name='tmp.gun.nononap' value='NON-ONAP' />\n","comments":"","x":977.3333625793457,"y":755.7708230018616,"z":"7cae5554.a7c84c","wires":[]},{"id":"8621dfc4.da743","type":"set","name":"set tmp.grn.loop.flag = true","xml":"<set>\n<parameter name='tmp.grn.loop.flag' value='true' />\n","comments":"","x":994.8094825744629,"y":867.627902507782,"z":"7cae5554.a7c84c","wires":[]},{"id":"8903b08f.7c326","type":"set","name":"set tmp.grn.loop.flag = false","xml":"<set>\n<parameter name='tmp.grn.loop.flag' value='false' />\n","comments":"","x":2120.2023849487305,"y":1072.592128753662,"z":"7cae5554.a7c84c","wires":[]},{"id":"413b7679.6a9c48","type":"whileNode","name":"while true","xml":"<while test='`$tmp.grn.loop.flag`'>\n","comments":"","outputs":1,"x":941.0594367980957,"y":925.7826733589172,"z":"7cae5554.a7c84c","wires":[["e0ac3aa7.fde448"]]},{"id":"e0ac3aa7.fde448","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1135.3094215393066,"y":925.7826685905457,"z":"7cae5554.a7c84c","wires":[["1e2c4141.71b96f","6df1aa76.b53b44","866eef8d.d7b6d"]]},{"id":"bb2b984e.06a468","type":"get-resource","name":"Update GENERIC_RESOURCE_NAME.context_id with input","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey=\"update GENERIC_RESOURCE_NAME set context_id = $generate-unique-name-input.context-id   \n\t\tWHERE type = $generate-unique-name-input.name-table-type \n\t\tAND name = $generate-unique-name-output.generated-name \n\t\tAND context_id = $tmp.gun.transient\">\n","comments":"","outputs":1,"x":1096.5833930969238,"y":1393.532684803009,"z":"7cae5554.a7c84c","wires":[["168a0b59.e0dcc5","c5ad2e49.84e42"]]},{"id":"36cfa474.ccd78c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \n\t\t+ $tmp.context-id.nononap`\" />\n\n","comments":"","x":1610.8693656921387,"y":1392.413718700409,"z":"7cae5554.a7c84c","wires":[]},{"id":"168a0b59.e0dcc5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1428.4407539367676,"y":1392.485228061676,"z":"7cae5554.a7c84c","wires":[["36cfa474.ccd78c"]]},{"id":"c5ad2e49.84e42","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1435.2861557006836,"y":1438.9733700752258,"z":"7cae5554.a7c84c","wires":[["33fab0ff.1fc5c"]]},{"id":"33fab0ff.1fc5c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'No GENERIC_RESOURCE_NAME found with context_id = TRANSIENT and type = ' \n\t\t+ $generate-unique-name-input.name-table-type`\"/>\n","comments":"","x":1606.7263526916504,"y":1439.246916294098,"z":"7cae5554.a7c84c","wires":[]},{"id":"b95702ae.c6c2a","type":"call","name":"call rollback-generated-names","xml":"<call module='GENERIC-RESOURCE-API' rpc='rollback-generated-names' mode='sync' >\n","comments":"","outputs":1,"x":1027.0715293884277,"y":1654.63982629776,"z":"7cae5554.a7c84c","wires":[["28eb2083.a87d6"]]},{"id":"6d3be253.3ab7ec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'Encountered error in rollback-generated-names: ' + \n\t\t$error-message`\" />\n","comments":"","x":1415.5000114440918,"y":1654.8184065818787,"z":"7cae5554.a7c84c","wires":[]},{"id":"da75856f.16a8f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1601.5952262878418,"y":925.7826342582703,"z":"7cae5554.a7c84c","wires":[["85b23c8b.82154"]]},{"id":"28eb2083.a87d6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1252.9286613464355,"y":1655.068374156952,"z":"7cae5554.a7c84c","wires":[["6d3be253.3ab7ec"]]},{"id":"7da21ee3.54f6f","type":"set","name":"set rollback-generated-names-input.naming-type","xml":"<set>\n<parameter name='rollback-generated-names-input.naming-type' value='`$generate-unique-name-input.name-table-type`' />\n","comments":"","x":1077.7859121050155,"y":1549.4017415046692,"z":"7cae5554.a7c84c","wires":[]},{"id":"66b3b9cb.e29ee8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":746.5001258850098,"y":1548.973156452179,"z":"7cae5554.a7c84c","wires":[["7da21ee3.54f6f","b95702ae.c6c2a","62fb838.4f6867c"]]},{"id":"62fb838.4f6867c","type":"set","name":"set rollback-generated-names-input.context-id","xml":"<set>\n<parameter name='rollback-generated-names-input.context-id' value='`$generate-unique-name-input.context-id`' />\n","comments":"","x":1072.30961227417,"y":1600.3064441680908,"z":"7cae5554.a7c84c","wires":[]},{"id":"d26b556.09bcda8","type":"set","name":"set tmp.grn.loop.flag = false","xml":"<set>\n<parameter name='tmp.grn.loop.flag' value='false' />\n","comments":"","x":2042.4998588562012,"y":926.1159682273865,"z":"7cae5554.a7c84c","wires":[]},{"id":"85b23c8b.82154","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1775.166576385498,"y":925.4492945671082,"z":"7cae5554.a7c84c","wires":[["d26b556.09bcda8","b4913758.6d64d8"]]},{"id":"915b6cf6.6a091","type":"set","name":"set tmp.gun.transient","xml":"<set>\n<parameter name='tmp.gun.transient' value='TRANSIENT' />\n","comments":"","x":975.3094749450684,"y":810.7826447486877,"z":"7cae5554.a7c84c","wires":[]},{"id":"6e8ab2c3.fc6bbc","type":"outcome","name":"VM_INSTANCE","xml":"<outcome value='VM_INSTANCE'>","comments":"","outputs":1,"x":1272.3571472167969,"y":503.5446434020996,"z":"7cae5554.a7c84c","wires":[["56c695a.0de4a6c"]]},{"id":"c075a83f.5cee08","type":"outcome","name":"VNFC_INSTANCE","xml":"<outcome value='VNFC_INSTANCE'>","comments":"","outputs":1,"x":1279.7499389648438,"y":668.1875047683716,"z":"7cae5554.a7c84c","wires":[["1fbce4c6.d6002b"]]},{"id":"bcdcb322.c1d22","type":"outcome","name":"NETWORK_INSTANCE","xml":"<outcome value='NETWORK_INSTANCE'>","comments":"","outputs":1,"x":1296.8491439819336,"y":559.8700408935547,"z":"7cae5554.a7c84c","wires":[["8c811a9e.3e2958"]]},{"id":"4e878c64.66aaf4","type":"outcome","name":"SERVICE_INSTANCE","xml":"<outcome value='SERVICE_INSTANCE'>","comments":"","outputs":1,"x":1290.6745681762695,"y":616.0129070281982,"z":"7cae5554.a7c84c","wires":[["9bef47ef.8e3858"]]},{"id":"7f7fd3dd.6f823c","type":"outcome","name":"VNF_INSTANCE","xml":"<outcome value='VNF_INSTANCE'>","comments":"","outputs":1,"x":1274.5633926391602,"y":450.58431243896484,"z":"7cae5554.a7c84c","wires":[["4bc10430.8db0ac"]]},{"id":"1f764a1a.a7d3f6","type":"switchNode","name":"switch generate-unique-name-input.context-id","xml":"<switch test='`$generate-unique-name-input.context-id`'>\n","comments":"","outputs":1,"x":1053.6428718566895,"y":308.2588601112366,"z":"7cae5554.a7c84c","wires":[["e200ce82.9543e"]]},{"id":"e200ce82.9543e","type":"not-found","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1337.214199066162,"y":308.4970564842224,"z":"7cae5554.a7c84c","wires":[["33eb7c94.df9724"]]},{"id":"33eb7c94.df9724","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"generate-unique-name-input.context-id cannot be null for ASSIGN action\" />\n\n","comments":"","x":1516.7857551574707,"y":307.92557668685913,"z":"7cae5554.a7c84c","wires":[]},{"id":"5f9e5e0c.20be2","type":"outcome","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":549.6428833007812,"y":1747.8303608894348,"z":"7cae5554.a7c84c","wires":[["75703775.1f4058"]]},{"id":"75703775.1f4058","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='generate-unique-name-output.error-message' value='Invalid generate-unique-name-input.action. Valid values are ASSIGN or DELETE' />\n","comments":"","x":720.3096599578857,"y":1747.163664340973,"z":"7cae5554.a7c84c","wires":[]},{"id":"16f60ff4.382ec","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1870.7143478393555,"y":1136.2231798171997,"z":"7cae5554.a7c84c","wires":[["8903b08f.7c326","57783c58.a3f884"]]},{"id":"57783c58.a3f884","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' \n\tvalue=\"`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \n\t\t+ $tmp.context-id.nononap`\" />\n\n","comments":"","x":2075.142951965332,"y":1135.6517171859741,"z":"7cae5554.a7c84c","wires":[]},{"id":"866eef8d.d7b6d","type":"execute","name":"encode generate-unique-name-output.generated-name","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"urlEncode\">\n\t<parameter name=\"source\" value='`$generate-unique-name-output.generated-name`'/>\n\t<parameter name=\"outputPath\" value=\"encoded-name\" />\n\n","comments":"","outputs":1,"x":1475.7142791748047,"y":999.9999923706055,"z":"7cae5554.a7c84c","wires":[[]]}]
\ No newline at end of file
index d6072e7..43bae8f 100644 (file)
@@ -1 +1 @@
-[{"id":"e6f39633.471c48","type":"dgstart","name":"DGSTART","outputs":1,"x":258.5714416503906,"y":97.14286041259766,"z":"10870127.4386af","wires":[["d6249e04.66f74"]]},{"id":"d6249e04.66f74","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":333.8571472167969,"y":137.38097190856934,"z":"10870127.4386af","wires":[["6c9006ff.722f08"]]},{"id":"6c9006ff.722f08","type":"method","name":"network-topology-operation-activate","xml":"<method rpc='network-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":375.2500762939453,"y":180.89285469055176,"z":"10870127.4386af","wires":[["913b7a05.ce48c8"]]},{"id":"913b7a05.ce48c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":374.57147216796875,"y":275.58634185791016,"z":"10870127.4386af","wires":[["483fa189.e48fa","4a952ce4.1e15f4","dd05a3dc.3a557","abcbde1a.155d9","4323ba0.5293848","64b80dfc.ef3a34","9e1fc71.9223838","c9ccd6fd.b061c8"]]},{"id":"4f6e01d6.e961e","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":894.5714416503906,"y":271.14286041259766,"z":"10870127.4386af","wires":[["a48d6330.48ebc"]]},{"id":"a48d6330.48ebc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"network-id not found in AAI\" />","comments":"","x":1057.7658386230469,"y":271.2540817260742,"z":"10870127.4386af","wires":[]},{"id":"483fa189.e48fa","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":659.2935485839844,"y":275.6274642944336,"z":"10870127.4386af","wires":[["4f6e01d6.e961e","f7be2e5e.033bb"]]},{"id":"f7be2e5e.033bb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":887.2935485839844,"y":309.6274642944336,"z":"10870127.4386af","wires":[["54a3713d.2b9d5"]]},{"id":"54a3713d.2b9d5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'\" />","comments":"","x":1039.4046325683594,"y":309.84969329833984,"z":"10870127.4386af","wires":[]},{"id":"e6d2c8f2.14a568","type":"set","name":"set entity-id and plan-name","xml":"<set>\n\t<parameter name=\"eipam-ip-block.entity-id\" value=\"`$aai.l3-network.subnets.subnet[$sidx].subnet-id`\"/>\n\t<parameter name=\"eipam-ip-block.plans[0].plan-name\" value=\"`$tmp.eipam-subnet-row.plan-name`\"/>\n","comments":"","x":1087.6509094238281,"y":824.222297668457,"z":"10870127.4386af","wires":[]},{"id":"9db53dfb.ded5f","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":703.9365539550781,"y":465.3651809692383,"z":"10870127.4386af","wires":[["6df15d6b.7d45e4"]]},{"id":"6df15d6b.7d45e4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":907.9365539550781,"y":465.5080032348633,"z":"10870127.4386af","wires":[["34e2f4cb.2f293c"]]},{"id":"34e2f4cb.2f293c","type":"get-resource","name":"get eipam-ip-subnet by subnet-id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":863.0794677734375,"y":593.3651103973389,"z":"10870127.4386af","wires":[["5d8dc2c.3d6613c","4a3e4daf.fbea34","159507a4.d55848"]]},{"id":"d270ebed.73a6d8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet.\" />\n\t","comments":"","x":1271.2222290039062,"y":541.0793916881084,"z":"10870127.4386af","wires":[]},{"id":"5d8dc2c.3d6613c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1121.7938232421875,"y":609.0793621242046,"z":"10870127.4386af","wires":[["9a4c8eed.e5e32"]]},{"id":"4a3e4daf.fbea34","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1122.0841064453125,"y":543.0793916881084,"z":"10870127.4386af","wires":[["d270ebed.73a6d8"]]},{"id":"159507a4.d55848","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1122.9412155151367,"y":577.3651123046875,"z":"10870127.4386af","wires":[["3bd47e7c.2eb412"]]},{"id":"9a4c8eed.e5e32","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1274.507911682129,"y":610.5079824626446,"z":"10870127.4386af","wires":[["e6d2c8f2.14a568","d1f1dda7.2a7f","743c8d64.6209d4"]]},{"id":"3bd47e7c.2eb412","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Subnet not found in EIPAM_IP_SUBNETS - activate failed.\" />\n\t","comments":"","x":1270.222068786621,"y":573.3651428222656,"z":"10870127.4386af","wires":[]},{"id":"d1f1dda7.2a7f","type":"execute","name":"execute EIPAM activateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1100.5079498291016,"y":867.0793867111206,"z":"10870127.4386af","wires":[["14296d10.9a71c3"]]},{"id":"14296d10.9a71c3","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1310.5079803466797,"y":868.4697523117065,"z":"10870127.4386af","wires":[["14bf629f.48693d"]]},{"id":"14bf629f.48693d","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while activating subnet in EIPAM.\" />\n\t","comments":"","x":1474.5079612731934,"y":867.1840448379517,"z":"10870127.4386af","wires":[]},{"id":"743c8d64.6209d4","type":"save","name":"Update subnet to Active in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1099.0794525146484,"y":907.0793333053589,"z":"10870127.4386af","wires":[["b0892e3c.001c2","81c9d2da.4de6d","6955b5ef.93cc7c"]]},{"id":"d709d6dc.cc91a8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1467.6508331298828,"y":914.2222089767456,"z":"10870127.4386af","wires":[]},{"id":"6955b5ef.93cc7c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1318.222427368164,"y":982.2221794128418,"z":"10870127.4386af","wires":[["6d0338bb.0ea688"]]},{"id":"b0892e3c.001c2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1318.512710571289,"y":916.2222089767456,"z":"10870127.4386af","wires":[["d709d6dc.cc91a8"]]},{"id":"81c9d2da.4de6d","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1319.3698196411133,"y":950.5079295933247,"z":"10870127.4386af","wires":[["a647d288.410a9"]]},{"id":"6d0338bb.0ea688","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1470.9365158081055,"y":983.6507997512817,"z":"10870127.4386af","wires":[["9c0c90cf.0e24"]]},{"id":"a647d288.410a9","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1466.6506729125977,"y":946.5079601109028,"z":"10870127.4386af","wires":[]},{"id":"9c0c90cf.0e24","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"Created\" />\n\t\t","comments":"","outputs":1,"x":1696.22216796875,"y":984.3809642791748,"z":"10870127.4386af","wires":[["e6f35141.0faae","64a1bcb5.b701b4"]]},{"id":"1a14322d.73a58e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":2087.9683380126953,"y":974.2222089767456,"z":"10870127.4386af","wires":[]},{"id":"e2c902b5.a3806","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1938.5399322509766,"y":1042.2221794128418,"z":"10870127.4386af","wires":[["958ef34e.7f381"]]},{"id":"e6f35141.0faae","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1927.4015789031982,"y":980.5079393386841,"z":"10870127.4386af","wires":[["1a14322d.73a58e"]]},{"id":"64a1bcb5.b701b4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1939.6873245239258,"y":1010.5079295933247,"z":"10870127.4386af","wires":[["434dd028.03aa2"]]},{"id":"958ef34e.7f381","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2091.254020690918,"y":1043.6507997512817,"z":"10870127.4386af","wires":[[]]},{"id":"434dd028.03aa2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":2086.96817779541,"y":1006.5079601109028,"z":"10870127.4386af","wires":[]},{"id":"abcbde1a.155d9","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":667.3651161193848,"y":1390.507939338684,"z":"10870127.4386af","wires":[]},{"id":"64b80dfc.ef3a34","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $networkId\n + '/network-data/network-topology/'` \" />\n \n","comments":"","x":667.3690605163574,"y":1310.7019815444946,"z":"10870127.4386af","wires":[]},{"id":"4a952ce4.1e15f4","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n","comments":"","x":661.6546936035156,"y":1273.5590896606445,"z":"10870127.4386af","wires":[]},{"id":"dd05a3dc.3a557","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":709.6547546386719,"y":1356.1304550170898,"z":"10870127.4386af","wires":[]},{"id":"4323ba0.5293848","type":"switchNode","name":"switch $aai.l3-network.subnets.subnet_length","xml":"<switch test='`$aai.l3-network.subnets.subnet_length`'>\n","comments":"","outputs":1,"x":692.5714416503906,"y":369.1428909301758,"z":"10870127.4386af","wires":[["24ed13fa.fd22fc","87c32ead.5792"]]},{"id":"24ed13fa.fd22fc","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1012.5714416503906,"y":369.1428909301758,"z":"10870127.4386af","wires":[["55d6b99e.dc48b8"]]},{"id":"55d6b99e.dc48b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"no networks found\" />\n","comments":"","x":1234.3489685058594,"y":367.03186798095703,"z":"10870127.4386af","wires":[]},{"id":"87c32ead.5792","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":888.5714416503906,"y":409.1428909301758,"z":"10870127.4386af","wires":[["9db53dfb.ded5f"]]},{"id":"9e1fc71.9223838","type":"save","name":"update AnAI - network","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"Active\" />\t","comments":"","outputs":1,"x":699.2381057739258,"y":1153.476107597351,"z":"10870127.4386af","wires":[["503fe113.27f6d","728bfb7d.f2fb44"]]},{"id":"f1272b1f.5a1378","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network\" />\n\t","comments":"","x":1112.317611694336,"y":1138.9840593338013,"z":"10870127.4386af","wires":[]},{"id":"9d9f3cda.c470f","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":962.8892059326172,"y":1206.9840297698975,"z":"10870127.4386af","wires":[["ef2d84a7.0876f8"]]},{"id":"503fe113.27f6d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":951.7508525848389,"y":1145.2697896957397,"z":"10870127.4386af","wires":[["f1272b1f.5a1378"]]},{"id":"728bfb7d.f2fb44","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":964.0365982055664,"y":1175.2697799503803,"z":"10870127.4386af","wires":[["3ba7e47e.1480bc"]]},{"id":"ef2d84a7.0876f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1115.6032943725586,"y":1208.4126501083374,"z":"10870127.4386af","wires":[[]]},{"id":"3ba7e47e.1480bc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network.  Network not found.\" />\n\t","comments":"","x":1111.3174514770508,"y":1171.2698104679585,"z":"10870127.4386af","wires":[]},{"id":"c9ccd6fd.b061c8","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n","comments":"","x":703.0832290649414,"y":1233.5590562820435,"z":"10870127.4386af","wires":[]}]
+[{"id":"aad8b671.6c92a8","type":"dgstart","name":"DGSTART","outputs":1,"x":171.75,"y":129.5,"z":"31276fa5.74ef8","wires":[["fc1afe3.c14518"]]},{"id":"fc1afe3.c14518","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":247.03570556640625,"y":169.73811149597168,"z":"31276fa5.74ef8","wires":[["8bb44f8f.960958"]]},{"id":"8bb44f8f.960958","type":"method","name":"network-topology-operation-activate","xml":"<method rpc='network-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":288.4286346435547,"y":213.2499942779541,"z":"31276fa5.74ef8","wires":[["6a980331.36ce2c"]]},{"id":"6a980331.36ce2c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":287.7500305175781,"y":307.9434814453125,"z":"31276fa5.74ef8","wires":[["347a2bc6.901ffc","7c8b3998.1a0b68","70e85b23.8d3054","4a68fc12.7927f4","280acaa8.006566","afca1cc9.37ef2","f95d52a7.cfe038","1dc0ccd9.62a26b"]]},{"id":"f8ffe16f.6d2ce8","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":818.75,"y":301.50001525878906,"z":"31276fa5.74ef8","wires":[["e493f260.987388"]]},{"id":"e493f260.987388","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"network-id not found in AAI\" />","comments":"","x":981.9443969726562,"y":301.6112365722656,"z":"31276fa5.74ef8","wires":[]},{"id":"347a2bc6.901ffc","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id AND \n                     depth = 'all'\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":583.4721069335938,"y":305.984619140625,"z":"31276fa5.74ef8","wires":[["f8ffe16f.6d2ce8","7fd1cc43.5cbeac"]]},{"id":"7fd1cc43.5cbeac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":811.4721069335938,"y":339.984619140625,"z":"31276fa5.74ef8","wires":[["695fe527.9c94ac"]]},{"id":"695fe527.9c94ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'\" />","comments":"","x":963.5831909179688,"y":340.20684814453125,"z":"31276fa5.74ef8","wires":[]},{"id":"ca70884c.912a78","type":"set","name":"set entity-id and plan-name","xml":"<set>\n\t<parameter name=\"eipam-ip-block.entity-id\" value=\"`$aai.l3-network.subnets.subnet[$sidx].subnet-id`\"/>\n\t<parameter name=\"eipam-ip-block.plans[0].plan-name\" value=\"`$tmp.eipam-subnet-row.plan-name`\"/>\n","comments":"","x":1016.8294677734375,"y":1121.5794067382812,"z":"31276fa5.74ef8","wires":[]},{"id":"e4a7e0a0.e6b8a8","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":954.1151123046875,"y":836.7222900390625,"z":"31276fa5.74ef8","wires":[["ffba001b.9779c"]]},{"id":"ffba001b.9779c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1158.1151123046875,"y":835.8651123046875,"z":"31276fa5.74ef8","wires":[["caf9a917.b8b4b"]]},{"id":"caf9a917.b8b4b","type":"get-resource","name":"get eipam-ip-subnet by subnet-id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1113.2580261230469,"y":973.7222194671631,"z":"31276fa5.74ef8","wires":[["82c93d87.3c4cd8","8afed5a1.3d3c5","4c63e33f.93a614"]]},{"id":"b9d0e076.a549f","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet.\" />\n\t","comments":"","x":1521.4007873535156,"y":921.4365007579327,"z":"31276fa5.74ef8","wires":[]},{"id":"82c93d87.3c4cd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1371.9723815917969,"y":989.4364711940289,"z":"31276fa5.74ef8","wires":[["9227ef6b.5a4c5"]]},{"id":"8afed5a1.3d3c5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1372.2626647949219,"y":923.4365007579327,"z":"31276fa5.74ef8","wires":[["b9d0e076.a549f"]]},{"id":"4c63e33f.93a614","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1373.119773864746,"y":957.7222213745117,"z":"31276fa5.74ef8","wires":[["a33338bb.a90c68"]]},{"id":"9227ef6b.5a4c5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1524.6864700317383,"y":990.8650915324688,"z":"31276fa5.74ef8","wires":[["ca70884c.912a78","e84c68d7.f3801","56f420bb.33bc5"]]},{"id":"a33338bb.a90c68","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Subnet not found in EIPAM_IP_SUBNETS - activate failed.\" />\n\t","comments":"","x":1520.4006271362305,"y":953.7222518920898,"z":"31276fa5.74ef8","wires":[]},{"id":"e84c68d7.f3801","type":"execute","name":"execute EIPAM activateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1029.686508178711,"y":1164.4364957809448,"z":"31276fa5.74ef8","wires":[["a48dd3e1.d2aa28"]]},{"id":"a48dd3e1.d2aa28","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1239.686538696289,"y":1165.8268613815308,"z":"31276fa5.74ef8","wires":[["9055635.fe4ed2"]]},{"id":"9055635.fe4ed2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while activating subnet in EIPAM.\" />\n\t","comments":"","x":1403.6865196228027,"y":1164.5411539077759,"z":"31276fa5.74ef8","wires":[]},{"id":"56f420bb.33bc5","type":"save","name":"Update subnet to Active in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1028.2580108642578,"y":1204.436442375183,"z":"31276fa5.74ef8","wires":[["10829540.6646b3","5cb79e38.5ce198","f0c9957e.af2a88"]]},{"id":"e78db626.6538f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1396.8293914794922,"y":1211.5793180465698,"z":"31276fa5.74ef8","wires":[]},{"id":"f0c9957e.af2a88","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1247.4009857177734,"y":1279.579288482666,"z":"31276fa5.74ef8","wires":[["ea1492ee.0f56a"]]},{"id":"10829540.6646b3","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1247.6912689208984,"y":1213.5793180465698,"z":"31276fa5.74ef8","wires":[["e78db626.6538f8"]]},{"id":"5cb79e38.5ce198","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1248.5483779907227,"y":1247.8650386631489,"z":"31276fa5.74ef8","wires":[["6bd5881a.8cae5"]]},{"id":"ea1492ee.0f56a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1400.1150741577148,"y":1281.007908821106,"z":"31276fa5.74ef8","wires":[["71f89e7.9397de"]]},{"id":"6bd5881a.8cae5","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1395.829231262207,"y":1243.865069180727,"z":"31276fa5.74ef8","wires":[]},{"id":"71f89e7.9397de","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"Active\" />\n\t\t","comments":"","outputs":1,"x":1625.4007263183594,"y":1281.738073348999,"z":"31276fa5.74ef8","wires":[["dd793cd5.2b12d","3fbf7056.3305c8"]]},{"id":"7d340cb2.4be154","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":2000.1469802856445,"y":1274.5793916881084,"z":"31276fa5.74ef8","wires":[]},{"id":"8130f435.f558f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1850.7185745239258,"y":1342.5793621242046,"z":"31276fa5.74ef8","wires":[["f3e4ac3e.a58ab8"]]},{"id":"dd793cd5.2b12d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1839.5802211761475,"y":1280.865122050047,"z":"31276fa5.74ef8","wires":[["7d340cb2.4be154"]]},{"id":"3fbf7056.3305c8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1851.865966796875,"y":1310.8651123046875,"z":"31276fa5.74ef8","wires":[["9e49b5c9.859b6"]]},{"id":"f3e4ac3e.a58ab8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2003.4326629638672,"y":1344.0079824626446,"z":"31276fa5.74ef8","wires":[[]]},{"id":"9e49b5c9.859b6","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1999.1468200683594,"y":1306.8651428222656,"z":"31276fa5.74ef8","wires":[]},{"id":"4a68fc12.7927f4","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":585.5436668395996,"y":1596.8650207519531,"z":"31276fa5.74ef8","wires":[]},{"id":"afca1cc9.37ef2","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $networkId\n + '/network-data/network-topology/'` \" />\n \n","comments":"","x":585.5476112365723,"y":1517.0590629577637,"z":"31276fa5.74ef8","wires":[]},{"id":"7c8b3998.1a0b68","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n","comments":"","x":579.8332443237305,"y":1479.9161710739136,"z":"31276fa5.74ef8","wires":[]},{"id":"70e85b23.8d3054","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":627.8333053588867,"y":1562.487536430359,"z":"31276fa5.74ef8","wires":[]},{"id":"280acaa8.006566","type":"switchNode","name":"switch $aai.l3-network.subnets.subnet_length","xml":"<switch test='`$aai.l3-network.subnets.subnet_length`'>\n","comments":"","outputs":1,"x":612.75,"y":393.5,"z":"31276fa5.74ef8","wires":[["8347d939.5620b8","f2abfa4c.005c3"]]},{"id":"8347d939.5620b8","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":932.75,"y":393.5,"z":"31276fa5.74ef8","wires":[["b1e0408b.8fcf88"]]},{"id":"b1e0408b.8fcf88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"no networks found\" />\n","comments":"","x":1154.5275268554688,"y":391.38897705078125,"z":"31276fa5.74ef8","wires":[]},{"id":"f2abfa4c.005c3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":914.75,"y":427.5,"z":"31276fa5.74ef8","wires":[["a4f63900.f19bf"]]},{"id":"f95d52a7.cfe038","type":"save","name":"update AnAI - network","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"Active\" />\t","comments":"","outputs":1,"x":617.4166564941406,"y":1359.8331890106201,"z":"31276fa5.74ef8","wires":[["e1f780e.72e668","a6992d57.d1b588"]]},{"id":"f0cbc86c.4834d","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network\" />\n\t","comments":"","x":1030.4961624145508,"y":1345.3411407470703,"z":"31276fa5.74ef8","wires":[]},{"id":"c5f332ba.4d0fc8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":881.067756652832,"y":1413.3411111831665,"z":"31276fa5.74ef8","wires":[["a30e496c.388428"]]},{"id":"e1f780e.72e668","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":869.9294033050537,"y":1351.6268711090088,"z":"31276fa5.74ef8","wires":[["f0cbc86c.4834d"]]},{"id":"a6992d57.d1b588","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":882.2151489257812,"y":1381.6268613636494,"z":"31276fa5.74ef8","wires":[["89e9fe8c.80a52"]]},{"id":"a30e496c.388428","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1033.7818450927734,"y":1414.7697315216064,"z":"31276fa5.74ef8","wires":[[]]},{"id":"89e9fe8c.80a52","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network.  Network not found.\" />\n\t","comments":"","x":1029.4960021972656,"y":1377.6268918812275,"z":"31276fa5.74ef8","wires":[]},{"id":"1dc0ccd9.62a26b","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n","comments":"","x":621.2617797851562,"y":1439.9161376953125,"z":"31276fa5.74ef8","wires":[]},{"id":"e7f076b.7293d08","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\n","comments":"","outputs":1,"x":550.49609375,"y":701.74609375,"z":"31276fa5.74ef8","wires":[["5be403fb.f6e604","935c32f2.5c477"]]},{"id":"5be403fb.f6e604","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":538.49609375,"y":780.24609375,"z":"31276fa5.74ef8","wires":[["a5d42667.baffc"]]},{"id":"935c32f2.5c477","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":526.49609375,"y":837.24609375,"z":"31276fa5.74ef8","wires":[["7e645dee.196a5c"]]},{"id":"354a953d.970fea","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":930.49609375,"y":779.24609375,"z":"31276fa5.74ef8","wires":[["1834de34.aa66ca"]]},{"id":"1834de34.aa66ca","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1130.49609375,"y":779.388916015625,"z":"31276fa5.74ef8","wires":[["4e5f455.9e01cbc"]]},{"id":"4e5f455.9e01cbc","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $aai.l3-network.subnets.subnet[$sidx].subnet-id\" >\n<parameter name=\"orchestration-status\" value=\"Active\" />\n\t\t","comments":"","outputs":1,"x":1351.74609375,"y":778.74609375,"z":"31276fa5.74ef8","wires":[["ea2ce0fa.cbaf78","e5c37082.c5e4a"]]},{"id":"ca81daa8.aa2b88","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":1736.492317199707,"y":772.5873872935772,"z":"31276fa5.74ef8","wires":[]},{"id":"186b63eb.ee1064","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1587.0639114379883,"y":840.5873577296734,"z":"31276fa5.74ef8","wires":[["7fc8a15e.ded2e"]]},{"id":"ea2ce0fa.cbaf78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1575.92555809021,"y":778.8731176555157,"z":"31276fa5.74ef8","wires":[["ca81daa8.aa2b88"]]},{"id":"e5c37082.c5e4a","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1588.2113037109375,"y":808.8731079101562,"z":"31276fa5.74ef8","wires":[["591f495d.08622"]]},{"id":"7fc8a15e.ded2e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1739.7779998779297,"y":842.0159780681133,"z":"31276fa5.74ef8","wires":[[]]},{"id":"591f495d.08622","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1735.4921569824219,"y":804.8731384277344,"z":"31276fa5.74ef8","wires":[]},{"id":"a5d42667.baffc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":724.74609375,"y":781.24609375,"z":"31276fa5.74ef8","wires":[["354a953d.970fea"]]},{"id":"7e645dee.196a5c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":738.74609375,"y":837.24609375,"z":"31276fa5.74ef8","wires":[["e4a7e0a0.e6b8a8"]]},{"id":"a4f63900.f19bf","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\n","comments":"","outputs":1,"x":581.49609375,"y":507.24609375,"z":"31276fa5.74ef8","wires":[["37463523.271202","1363245c.95b004"]]},{"id":"37463523.271202","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":874.49609375,"y":505.74609375,"z":"31276fa5.74ef8","wires":[["e7f076b.7293d08"]]},{"id":"1363245c.95b004","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":865.49609375,"y":536.74609375,"z":"31276fa5.74ef8","wires":[["3f8c9bce.2fbecc"]]},{"id":"3f8c9bce.2fbecc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1060.49609375,"y":535.74609375,"z":"31276fa5.74ef8","wires":[["7ba3c6f1.8a0f7"]]},{"id":"7ba3c6f1.8a0f7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network collection activate failed\" />\n","comments":"","x":1261.49609375,"y":530.74609375,"z":"31276fa5.74ef8","wires":[]},{"id":"54e043ce.c9819c","type":"comment","name":"need to implement this","info":"","comments":"","x":1291.49609375,"y":499.24609375,"z":"31276fa5.74ef8","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.json
new file mode 100755 (executable)
index 0000000..2e0c8e8
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"ddaa8377.fa22a8","type":"dgstart","name":"DGSTART","outputs":1,"x":162.74999809265137,"y":128.33333349227905,"z":"293895e6.5ef0e2","wires":[["bee866d7.34a87"]]},{"id":"bee866d7.34a87","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":356.03568267822266,"y":188.09525346755981,"z":"293895e6.5ef0e2","wires":[["a4b64377.84e858"]]},{"id":"a4b64377.84e858","type":"method","name":"network-topology-operation-assign-automated","xml":"<method rpc='network-topology-operation-assign-automated' mode='sync'>\n","comments":"","outputs":1,"x":366.38106536865234,"y":293.8928370475769,"z":"293895e6.5ef0e2","wires":[["52e034b0.745ae4"]]},{"id":"32bd1ba1.6415a4","type":"comment","name":"Called from assign when network name is NOT passed in from mso","info":"","comments":"","x":546.6071319580078,"y":126.00000143051147,"z":"293895e6.5ef0e2","wires":[]},{"id":"52e034b0.745ae4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":278.74996185302734,"y":434.9999842643738,"z":"293895e6.5ef0e2","wires":[["f1fc9d62.38b5c","2966d0e0.8b25e8","e8da6f16.71f9b8","ad4ff9.5fa67008","2c27032c.5e2204","f827107c.d87818","2c6c62c8.5a4c2e","3d53982a.567ae","5768ac10.171294","3420d2a4.657bee","fd6db351.edfb","4db8414c.fd2348","c87d3fb.61607c","fe0c8615.109c78","67411a15.4513fc","16bcfe02.a78002","4acd25ef.ab1094","78d9149.661776c","6fc56656.d3bba","f387ea7a.cb332","74426281.f93a14","6c88ef63.8cc9","b853c9fb.a4b158","2688708b.68097","22bd05cf.445f7a","44cca957.3504a8","ece618e.04a51e8","ddf2d1ad.9086d","7852b58.654cd4c","31213429.ff2f4c","4c3863ea.780a64","f43b1f67.085098","88aa0e0f.278a3","c6bc7f3a.1e281","cb4086d2.f6774"]]},{"id":"f1fc9d62.38b5c","type":"set","name":"set tmp.l3-network","xml":"<set>\n<parameter name='tmp.l3-network.network-id' value=\"`$tmp.return.generate-l3network-network-id.uuid`\" />\n<parameter name='tmp.l3-network.network-name' value=\"`$tmp.network-instance-name`\" />\n<parameter name='tmp.l3-network.network-type' value=\"`$network-model.network-type`\" />\n<parameter name='tmp.l3-network.network-role' value=\"`$network-model.network-role`\" />\n<parameter name='tmp.l3-network.network-technology' value=\"`$network-model.network-technology`\" />\n<parameter name='tmp.l3-network.is-bound-to-vpn' value=\"`$network-model.is-bound-to-vpn`\" />\n<parameter name='tmp.l3-network.orchestration-status' value=\"PendingCreate\" />\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='tmp.l3-network.is-provider-network' value=\"`$network-model.is-provider-network`\" />\n<parameter name='tmp.l3-network.is-shared-network' value=\"`$network-model.is-shared-network`\" />\n<parameter name='tmp.l3-network.is-external-network' value=\"`$network-model.is-external-network`\" />\n<parameter name='tmp.l3-network.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.l3-network.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.l3-network.service-id' value=\"`$service-data.service-information.service-id`\" />\n<parameter name='tmp.l3-network.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $tmp.l3-network.network-id\n + '/network-data/network-topology/'` \" />\n","comments":"","x":781.7499313354492,"y":815.9999651908875,"z":"293895e6.5ef0e2","wires":[]},{"id":"2966d0e0.8b25e8","type":"switchNode","name":"switch network--model.is-provider-network","xml":"<switch test='`$network-model.is-provider-network`'>\n","comments":"","outputs":1,"x":859.2410736083984,"y":910.285710811615,"z":"293895e6.5ef0e2","wires":[["e7b008a0.418ec","d5dd32b7.555628"]]},{"id":"e7b008a0.418ec","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1164.3842239379883,"y":890.1111559867859,"z":"293895e6.5ef0e2","wires":[["2dfcff6c.e57a48"]]},{"id":"2dfcff6c.e57a48","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"`$network-model.physical-network-name`\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='true' />","comments":"","x":1432.3840789794922,"y":887.1111216545105,"z":"293895e6.5ef0e2","wires":[]},{"id":"d5dd32b7.555628","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1151.749282836914,"y":920.9841771125793,"z":"293895e6.5ef0e2","wires":[["642fce71.9bd878"]]},{"id":"642fce71.9bd878","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='false' />","comments":"","x":1436.0352401733398,"y":919.5556082725525,"z":"293895e6.5ef0e2","wires":[]},{"id":"e8da6f16.71f9b8","type":"switchNode","name":"switch network--model.is-shared-network","xml":"<switch test='`$network-model.is-shared-network`'>\n","comments":"","outputs":1,"x":856.9075927734375,"y":955.9205183982849,"z":"293895e6.5ef0e2","wires":[["c85002b3.dfee48","73fec284.227f6c"]]},{"id":"c85002b3.dfee48","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1162.5267944335938,"y":955.9841294288635,"z":"293895e6.5ef0e2","wires":[["72e5d36e.94fdfc"]]},{"id":"72e5d36e.94fdfc","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='true' />","comments":"","x":1454.8125076293945,"y":955.9839768409729,"z":"293895e6.5ef0e2","wires":[]},{"id":"73fec284.227f6c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1151.3208198547363,"y":991.2856364250183,"z":"293895e6.5ef0e2","wires":[["2a0962ea.47f27e"]]},{"id":"2a0962ea.47f27e","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='false' />","comments":"","x":1455.6067390441895,"y":991.1428141593933,"z":"293895e6.5ef0e2","wires":[]},{"id":"ad4ff9.5fa67008","type":"switchNode","name":"switch network--model.is-external-network","xml":"<switch test='`$network-model.is-external-network`'>\n","comments":"","outputs":1,"x":865.5908966064453,"y":1027.968159198761,"z":"293895e6.5ef0e2","wires":[["644c8ab8.07217c","5d3c03a7.b87cbc"]]},{"id":"644c8ab8.07217c","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1164.5433616638184,"y":1034.698477268219,"z":"293895e6.5ef0e2","wires":[["5ede0098.42a888"]]},{"id":"5ede0098.42a888","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='true' />","comments":"","x":1456.8290748596191,"y":1034.6983246803284,"z":"293895e6.5ef0e2","wires":[]},{"id":"5d3c03a7.b87cbc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1153.337387084961,"y":1069.9999842643738,"z":"293895e6.5ef0e2","wires":[["73e4d14e.10bed"]]},{"id":"73e4d14e.10bed","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='false' />","comments":"","x":1457.623306274414,"y":1069.8571619987488,"z":"293895e6.5ef0e2","wires":[]},{"id":"f827107c.d87818","type":"set","name":"set tmp.complex-found","xml":"<set>\n<parameter name='tmp.complex-found' value='false' />\n\n","comments":"","x":811.0614624023438,"y":1165.5421195030212,"z":"293895e6.5ef0e2","wires":[]},{"id":"2c27032c.5e2204","type":"switchNode","name":"switch network--model.is-bound-to-vpn","xml":"<switch test='`$network-model.is-bound-to-vpn`'>\n","comments":"","outputs":1,"x":857.1724243164062,"y":1104.0422587394714,"z":"293895e6.5ef0e2","wires":[["f59632be.ab57","e3b1b631.14c4b8"]]},{"id":"f59632be.ab57","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1162.7916221618652,"y":1109.1058259010315,"z":"293895e6.5ef0e2","wires":[["3a84d6bc.f116aa"]]},{"id":"3a84d6bc.f116aa","type":"set","name":"set tmp.l3-network.is-bound-to-vpn-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='true' />","comments":"","x":1455.077335357666,"y":1109.1056733131409,"z":"293895e6.5ef0e2","wires":[]},{"id":"e3b1b631.14c4b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1151.5856475830078,"y":1144.4073328971863,"z":"293895e6.5ef0e2","wires":[["30af655.b903c9a"]]},{"id":"30af655.b903c9a","type":"set","name":"set tmp.l3-network.is-bound-to-vpn-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='false' />","comments":"","x":1455.871566772461,"y":1144.2645106315613,"z":"293895e6.5ef0e2","wires":[]},{"id":"16bcfe02.a78002","type":"set","name":"set tmp.network-topology","xml":"<set>\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-id' value=\"`$tmp.l3-network.network-name`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-name' value=\"`$tmp.l3-network.network-name`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-type' value=\"`$tmp.l3-network.network-type`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-role' value=\"`$tmp.l3-network.network-role`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-technology' value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.network-topology.region-identifier.tenant' value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name='tmp.network-topology.region-identifier.aic-cloud-region' value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n<parameter name='tmp.network-topology.region-identifier.aic-clli' value=\"`$network-topology-operation-input.network-request-input.aic-clli`\" />\n<parameter name='tmp.network-topology.onap-model-information.' value=\"`$network-topology-operation-input.network-information.onap-model-information.`\" />\n<parameter name='tmp.network-topology.network-parameters.' value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.`\" />\n","comments":"","x":828.5831727981567,"y":2704.2797265052795,"z":"293895e6.5ef0e2","wires":[]},{"id":"f7696e6a.52691","type":"switchNode","name":"switch network-model.eipam-v4-address-plan (VIPR)","xml":"<switch test='`$network-model.eipam-v4-address-plan`'>\n","comments":"","outputs":1,"x":2312.4011001586914,"y":1729.882297039032,"z":"293895e6.5ef0e2","wires":[["dae3b0b5.b40e7","2be63d31.a0fc1a","ec03d835.f8721","51656656.ba094"]]},{"id":"dae3b0b5.b40e7","type":"other","name":"AIC_ATM_UNPROTECTED_V4","xml":"<outcome value='AIC_ATM_UNPROTECTED_V4'>","comments":"","outputs":1,"x":2772.400520324707,"y":1698.8821139335632,"z":"293895e6.5ef0e2","wires":[["1f720674.eca1b2"]]},{"id":"2be63d31.a0fc1a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2696.067485809326,"y":1814.2157225608826,"z":"293895e6.5ef0e2","wires":[["a31343ec.e76f08"]]},{"id":"ec03d835.f8721","type":"other","name":"AIC_ATM_PROTECTED_V4","xml":"<outcome value='AIC_ATM_PROTECTED_V4'>","comments":"","outputs":1,"x":2762.289131164551,"y":1736.4379525184631,"z":"293895e6.5ef0e2","wires":[["1f720674.eca1b2"]]},{"id":"71eecbd.b148b34","type":"switchNode","name":"switch network-model.eipam-v4-address-plan (SRIOV)","xml":"<switch test='`$network-model.eipam-v4-address-plan`'>\n","comments":"","outputs":1,"x":2348.1351013183594,"y":2078.4893565177917,"z":"293895e6.5ef0e2","wires":[["af18a1b8.3f9da","48638a1d.044944","bcb2da26.868168","b190ce.c871bf3"]]},{"id":"af18a1b8.3f9da","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V4","xml":"<outcome value='AIC_DATA_PLANE_UNPROTECTED_V4'>","comments":"","outputs":1,"x":2815.385040283203,"y":2077.7392830848694,"z":"293895e6.5ef0e2","wires":[["25845c0e.13752c"]]},{"id":"48638a1d.044944","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2707.992322921753,"y":2192.560908317566,"z":"293895e6.5ef0e2","wires":[["cc9dd635.98df68"]]},{"id":"bcb2da26.868168","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V4","xml":"<outcome value='AIC_DATA_PLANE_PROTECTED_V4'>","comments":"","outputs":1,"x":2811.773712158203,"y":2114.544826030731,"z":"293895e6.5ef0e2","wires":[["25845c0e.13752c"]]},{"id":"b190ce.c871bf3","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V4","xml":"<outcome value='AIC_DATA_PLANE_PRIVATE_V4'>","comments":"","outputs":1,"x":2793.9923248291016,"y":2153.3107810020447,"z":"293895e6.5ef0e2","wires":[["25845c0e.13752c"]]},{"id":"34c49751.1e7d6","type":"switchNode","name":"switch network-model.eipam-v6-address-plan","xml":"<switch test='`$network-model.eipam-v6-address-plan`'>\n","comments":"","outputs":1,"x":2292.3330612182617,"y":1897.4740328788757,"z":"293895e6.5ef0e2","wires":[["2321c9f0.8a0d9e","82367816.ed7db8","16e5d844.ab3f38","a6bdf612.22b0f8"]]},{"id":"da0609b1.dd66e","type":"switchNode","name":"switch network-model.eipam-v6-address-plan (SRIOV)","xml":"<switch test='`$network-model.eipam-v6-address-plan`'>\n","comments":"","outputs":1,"x":2384.1824951171875,"y":2296.680191516876,"z":"293895e6.5ef0e2","wires":[["2c5a63b9.3f81d4","6f253e2d.578688","66a6717f.0e464","12e3c9ff.f116ee","d57691f9.5e2ff","eb0937db.b0b998"]]},{"id":"2c5a63b9.3f81d4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2718.8966121673584,"y":2486.1807163357735,"z":"293895e6.5ef0e2","wires":[["418a0270.b2cdfc"]]},{"id":"6f253e2d.578688","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V6\">","comments":"","outputs":1,"x":2787.448028564453,"y":2297.8825373649597,"z":"293895e6.5ef0e2","wires":[["ba3daf8e.1a127"]]},{"id":"66a6717f.0e464","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value=\"AIC_ATM_PROTECTED_V6\">","comments":"","outputs":1,"x":2782.733383178711,"y":2339.8825602531433,"z":"293895e6.5ef0e2","wires":[["ba3daf8e.1a127"]]},{"id":"12e3c9ff.f116ee","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":2822.6350326538086,"y":2378.025414943695,"z":"293895e6.5ef0e2","wires":[["ba3daf8e.1a127"]]},{"id":"eb0937db.b0b998","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":2811.6356048583984,"y":2440.0256450772285,"z":"293895e6.5ef0e2","wires":[["ba3daf8e.1a127"]]},{"id":"d57691f9.5e2ff","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":2799.9211807250977,"y":2407.4543509483337,"z":"293895e6.5ef0e2","wires":[["ba3daf8e.1a127"]]},{"id":"fd6db351.edfb","type":"switchNode","name":"switch network-technology","xml":"<switch test='`$network-model.network-technology`'>\n","comments":"","outputs":1,"x":829.9508438110352,"y":1730.4166598320007,"z":"293895e6.5ef0e2","wires":[["bc99eab5.63fc78","98ca247b.003d6","878c8d61.5c11c"]]},{"id":"2c6c62c8.5a4c2e","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND \n\t\t     depth = '0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":827.2842483520508,"y":1323.4166903495789,"z":"293895e6.5ef0e2","wires":[["ac17137c.6c1968","364976ad.55413a"]]},{"id":"364976ad.55413a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1049.673355102539,"y":1360.1388583183289,"z":"293895e6.5ef0e2","wires":[["cdcb6a66.a11cf"]]},{"id":"ac17137c.6c1968","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1056.1733512878418,"y":1324.138919353485,"z":"293895e6.5ef0e2","wires":[["48995ae5.67c19c"]]},{"id":"106bd669.56604a","type":"comment","name":"Per test failure in IT, need to throw error if relationships don't exist","info":"","comments":"","x":945.5344848632812,"y":1280.4999976158142,"z":"293895e6.5ef0e2","wires":[]},{"id":"a4857175.d87198","type":"get-resource","name":"get-resource complex","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"complex\" \n\t\tkey=\"complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value\"\n        pfx='aai.complex' local-only='false' >\n        \n\n\n","comments":"","outputs":1,"x":1917.7286224365234,"y":1544.527916431427,"z":"293895e6.5ef0e2","wires":[["635ae7ba.6c555","4c24ef82.82de3","586982ec.1e8c34"]]},{"id":"4c24ef82.82de3","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2150.4789810180664,"y":1602.88871717453,"z":"293895e6.5ef0e2","wires":[["54196261.94e404"]]},{"id":"635ae7ba.6c555","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2152.978977203369,"y":1562.8887782096863,"z":"293895e6.5ef0e2","wires":[["cffd5f4a.151d08"]]},{"id":"5768ac10.171294","type":"for","name":"for relationship list","xml":"<for silentFailure='false' index='ridx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship_length`\" >\n","comments":"","outputs":1,"x":793.7013320922852,"y":1499.6470789909363,"z":"293895e6.5ef0e2","wires":[["798003f7.3d8904"]]},{"id":"ca236a12.216ce","type":"switchNode","name":"switch","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1199.2009963989258,"y":1503.3611903190613,"z":"293895e6.5ef0e2","wires":[["977e56b3.9b15b"]]},{"id":"798003f7.3d8904","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":1016.6177749633789,"y":1500.6113123893738,"z":"293895e6.5ef0e2","wires":[["ca236a12.216ce"]]},{"id":"977e56b3.9b15b","type":"other","name":"complex.physical-location-id","xml":"<outcome value='complex.physical-location-id'>\n","comments":"","outputs":1,"x":1421.701057434082,"y":1501.7778162956238,"z":"293895e6.5ef0e2","wires":[["16d6abf6.083fac"]]},{"id":"16d6abf6.083fac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1661.1173782348633,"y":1499.5279383659363,"z":"293895e6.5ef0e2","wires":[["a4857175.d87198","53e77c9e.f7a794","d6907b4c.cf3028"]]},{"id":"586982ec.1e8c34","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2145.506773206922,"y":1516.9444912274676,"z":"293895e6.5ef0e2","wires":[["33454633.eca53a"]]},{"id":"33454633.eca53a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2322.649642944336,"y":1518.194444179535,"z":"293895e6.5ef0e2","wires":[["47e7c181.61d528"]]},{"id":"53e77c9e.f7a794","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.network-request-input.aic-clli' value='`$aai.complex.physical-location-id`' />\n\n","comments":"","x":1885.617935180664,"y":1506.4723238945007,"z":"293895e6.5ef0e2","wires":[]},{"id":"3d53982a.567ae","type":"switchNode","name":"switch relationship_length","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":823.7287673950195,"y":1422.6945033073425,"z":"293895e6.5ef0e2","wires":[["184aa09c.2e8457","a9b6a010.eba4d8"]]},{"id":"184aa09c.2e8457","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1017.7288394504121,"y":1421.6945921050178,"z":"293895e6.5ef0e2","wires":[["6c249175.f5d028"]]},{"id":"a9b6a010.eba4d8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1019.7288360595703,"y":1460.6946234703064,"z":"293895e6.5ef0e2","wires":[["6c249175.f5d028"]]},{"id":"d6907b4c.cf3028","type":"set","name":"set tmp.complex-found","xml":"<set>\n<parameter name='tmp.complex-found' value='true' />\n\n","comments":"","x":1923.950942993164,"y":1474.8056979179382,"z":"293895e6.5ef0e2","wires":[]},{"id":"3420d2a4.657bee","type":"switchNode","name":"switch tmp.complex-found","xml":"<switch test='`$tmp.complex-found`'>\n","comments":"","outputs":1,"x":821.728889465332,"y":1582.9167323112488,"z":"293895e6.5ef0e2","wires":[["c4def4b4.63fea"]]},{"id":"c4def4b4.63fea","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1039.228889465332,"y":1582.2778162956238,"z":"293895e6.5ef0e2","wires":[["62b19f9d.67a67"]]},{"id":"bc99eab5.63fc78","type":"outcome","name":"outcome Contrail","xml":"<outcome value='Contrail'>\n","comments":"","outputs":1,"x":1072.8397598266602,"y":1730.8609957695007,"z":"293895e6.5ef0e2","wires":[["ad2de5e.0feaf98"]]},{"id":"98ca247b.003d6","type":"outcome","name":"outcome AIC_SR_IOV","xml":"<outcome value='AIC_SR_IOV'>\n","comments":"","outputs":1,"x":1106.8397903442383,"y":2073.8611178398132,"z":"293895e6.5ef0e2","wires":[["f42f3f68.8503f8"]]},{"id":"47e7c181.61d528","type":"switchNode","name":"switch region","xml":"<switch test='`$aai.complex.region`'>\n","comments":"","outputs":1,"x":2519.7289123535156,"y":1517.8609776496887,"z":"293895e6.5ef0e2","wires":[["eeb7c55f.544058","e483bf22.b6c018","6194657.fd9b99c","bd683dd1.b3f298","88a51647.0a80d8","d24339dd.e70008","78064e5a.452108","fa0d0769.128ad8"]]},{"id":"eeb7c55f.544058","type":"other","name":"CA","xml":"<outcome value='CA'>\n","comments":"","outputs":1,"x":2762.9591522216797,"y":1458.8888869285583,"z":"293895e6.5ef0e2","wires":[["6b7a7bfb.ed67c4"]]},{"id":"e483bf22.b6c018","type":"other","name":"US","xml":"<outcome value='US'>\n","comments":"","outputs":1,"x":2761.0343704223633,"y":1490.932584285736,"z":"293895e6.5ef0e2","wires":[["6b7a7bfb.ed67c4"]]},{"id":"6194657.fd9b99c","type":"other","name":"LA","xml":"<outcome value='LA'>\n","comments":"","outputs":1,"x":2759.605728149414,"y":1524.8611035346985,"z":"293895e6.5ef0e2","wires":[["6b7a7bfb.ed67c4"]]},{"id":"bd683dd1.b3f298","type":"other","name":"EMEA","xml":"<outcome value='EMEA'>\n","comments":"","outputs":1,"x":2759.7844581604004,"y":1556.1111493110657,"z":"293895e6.5ef0e2","wires":[["6b7a7bfb.ed67c4"]]},{"id":"88a51647.0a80d8","type":"other","name":"AP","xml":"<outcome value='AP'>\n","comments":"","outputs":1,"x":2759.605796813965,"y":1589.8611550331116,"z":"293895e6.5ef0e2","wires":[["6b7a7bfb.ed67c4"]]},{"id":"d24339dd.e70008","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2761.0343132019043,"y":1621.1110577583313,"z":"293895e6.5ef0e2","wires":[["de868ff7.e2f398"]]},{"id":"6b7a7bfb.ed67c4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2918.7285770840117,"y":1486.3612209426033,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"878c8d61.5c11c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1056.8398056030273,"y":2360.3060030937195,"z":"293895e6.5ef0e2","wires":[["964d0759.ba21c"]]},{"id":"1f720674.eca1b2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3029.839500427246,"y":1706.0834078788757,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"25845c0e.13752c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3086.840057373047,"y":2086.083400249481,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"ba3daf8e.1a127","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3128.8395919799805,"y":2344.083531200886,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"c87d3fb.61607c","type":"call","name":"call process-eipam-pools","xml":"<call module='GENERIC-RESOURCE-API' rpc='process-eipam-pools' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":817.4753398895264,"y":2476.4619154930115,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"67411a15.4513fc","type":"call","name":"call GENERIC-RESOURCE-API:create-l3-subnet","xml":"<call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":904.6861925125122,"y":2648.2196526527405,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"4db8414c.fd2348","type":"set","name":"set process-eipam-action","xml":"<set>\n<parameter name='tmp.process-eipam-action' value='assign' />\n","comments":"","x":820.9407939910889,"y":2437.4621596336365,"z":"293895e6.5ef0e2","wires":[]},{"id":"fe0c8615.109c78","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Values after process-eipam\"/>\n<parameter name=\"field5\" value=\"`level1-v4-mask`\"/>\n<parameter name=\"field6\" value=\"`$tmp.l3-network.level1.v4.mask`\"/>\n<parameter name=\"field7\" value=\"`level1-v4-ipprefix`\"/>\n<parameter name=\"field8\" value=\"`$tmp.l3-network.level1.v4.ip-prefix`\"/>\n<parameter name=\"field9\" value=\"`level1-v4-entity-id`\"/>\n<parameter name=\"field10\" value=\"`$tmp.l3-network.level1.v4.entity-id`\"/>\n<parameter name=\"field11\" value=\"`level2-v4-mask`\"/>\n<parameter name=\"field12\" value=\"`$tmp.l3-network.level2.v4.mask`\"/>\n<parameter name=\"field13\" value=\"`level2-v4-ipprefix`\"/>\n<parameter name=\"field14\" value=\"`$tmp.l3-network.level2.v4.ip-prefix`\"/>\n<parameter name=\"field15\" value=\"`level2-v4-entity-id`\"/>\n<parameter name=\"field16\" value=\"`$tmp.l3-network.level2.v4.entity-id`\"/>\n\n\n","comments":"","outputs":1,"x":767.5917949676514,"y":2512.2438979148865,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"ad2de5e.0feaf98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1284.8397903442383,"y":1729.8611178398132,"z":"293895e6.5ef0e2","wires":[["e335a0be.901ca","bbedd6ee.89d8b8"]]},{"id":"f42f3f68.8503f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1332.839729309082,"y":2073.8611178398132,"z":"293895e6.5ef0e2","wires":[["1581aae3.4fadd5","18d89bc5.ccc5bc"]]},{"id":"e335a0be.901ca","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":1540.8396682739258,"y":1728.4169039726257,"z":"293895e6.5ef0e2","wires":[["8105ec47.183e"]]},{"id":"8105ec47.183e","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1795.8397941589355,"y":1728.8454604148865,"z":"293895e6.5ef0e2","wires":[["3c8a3bf6.f3d274"]]},{"id":"3c8a3bf6.f3d274","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1968.4111137390137,"y":1729.274064540863,"z":"293895e6.5ef0e2","wires":[["f7696e6a.52691"]]},{"id":"1581aae3.4fadd5","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":1607.9509735107422,"y":2074.4169363975525,"z":"293895e6.5ef0e2","wires":[["d961b200.afc68"]]},{"id":"d961b200.afc68","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1862.951099395752,"y":2077.8454928398132,"z":"293895e6.5ef0e2","wires":[["f24844ce.f2b368"]]},{"id":"f24844ce.f2b368","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2035.52241897583,"y":2078.27409696579,"z":"293895e6.5ef0e2","wires":[["71eecbd.b148b34"]]},{"id":"18d89bc5.ccc5bc","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":1627.9509353637695,"y":2295.4168429374695,"z":"293895e6.5ef0e2","wires":[["8e75cddf.18434"]]},{"id":"8e75cddf.18434","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1882.9510612487793,"y":2298.84539937973,"z":"293895e6.5ef0e2","wires":[["587f23be.ee01f4"]]},{"id":"587f23be.ee01f4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2079.522392272949,"y":2297.2740817070007,"z":"293895e6.5ef0e2","wires":[["da0609b1.dd66e"]]},{"id":"bbedd6ee.89d8b8","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":1549.9509353637695,"y":1897.4168429374695,"z":"293895e6.5ef0e2","wires":[["3d360ef.f0501f2"]]},{"id":"3d360ef.f0501f2","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1804.9510612487793,"y":1900.8453993797302,"z":"293895e6.5ef0e2","wires":[["cd4df9ff.6b5c6"]]},{"id":"cd4df9ff.6b5c6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2001.5223922729492,"y":1899.2740817070007,"z":"293895e6.5ef0e2","wires":[["34c49751.1e7d6"]]},{"id":"51656656.ba094","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value='AIC_AIM_LANDING_NETWORK_V4'>","comments":"","outputs":1,"x":2786.8396224975586,"y":1770.9722323417664,"z":"293895e6.5ef0e2","wires":[["1f720674.eca1b2"]]},{"id":"82367816.ed7db8","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value='AIC_ATM_UNPROTECTED_V6'>","comments":"","outputs":1,"x":2777.639846801758,"y":1875.972312450409,"z":"293895e6.5ef0e2","wires":[["9d1ac85b.f8dfc"]]},{"id":"16e5d844.ab3f38","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value='AIC_ATM_PROTECTED_V6'>","comments":"","outputs":1,"x":2767.5284576416016,"y":1913.5281510353088,"z":"293895e6.5ef0e2","wires":[["9d1ac85b.f8dfc"]]},{"id":"9d1ac85b.f8dfc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3035.078826904297,"y":1883.1736063957214,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"a6bdf612.22b0f8","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value='AIC_AIM_LANDING_NETWORK_V6'>","comments":"","outputs":1,"x":2792.0789489746094,"y":1948.062430858612,"z":"293895e6.5ef0e2","wires":[["9d1ac85b.f8dfc"]]},{"id":"2321c9f0.8a0d9e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2698.083278656006,"y":1985.6404280662537,"z":"293895e6.5ef0e2","wires":[["f448e026.7558"]]},{"id":"78064e5a.452108","type":"other","name":"USA","xml":"<outcome value='USA'>\n","comments":"","outputs":1,"x":2760.823974609375,"y":1375.0516905784607,"z":"293895e6.5ef0e2","wires":[["4c37cf50.e01f5"]]},{"id":"4c37cf50.e01f5","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2921.617383956909,"y":1375.5278687477112,"z":"293895e6.5ef0e2","wires":[["8c6aee9f.d4174"]]},{"id":"8c6aee9f.d4174","type":"set","name":"set USA to US as work around","xml":"<set>\n<parameter name='aai.complex.region' value='US' />\n","comments":"","x":3134.951187133789,"y":1375.527936220169,"z":"293895e6.5ef0e2","wires":[]},{"id":"fa0d0769.128ad8","type":"other","name":"CALA","xml":"<outcome value='CALA'>\n","comments":"","outputs":1,"x":2759.839797973633,"y":1406.972312450409,"z":"293895e6.5ef0e2","wires":[["fd734913.d51d4"]]},{"id":"fd734913.d51d4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2920.633207321167,"y":1407.4484906196594,"z":"293895e6.5ef0e2","wires":[["343172b0.f8f56e"]]},{"id":"343172b0.f8f56e","type":"set","name":"set CALA to LA as work around","xml":"<set>\n<parameter name='aai.complex.region' value='LA' />\n","comments":"","x":3133.967010498047,"y":1407.4485580921173,"z":"293895e6.5ef0e2","wires":[]},{"id":"ece618e.04a51e8","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path'\n value=\"`$tmp.l3-network.self-link`\"/>\n \n","comments":"","x":657.9166507720947,"y":3737.571755886078,"z":"293895e6.5ef0e2","wires":[]},{"id":"44cca957.3504a8","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$tmp.l3-network.network-id`' />\n","comments":"","x":659.3451709747314,"y":3691.8573746681213,"z":"293895e6.5ef0e2","wires":[]},{"id":"ddf2d1ad.9086d","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\n<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`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":705.6308841705322,"y":3783.2860283851624,"z":"293895e6.5ef0e2","wires":[]},{"id":"2688708b.68097","type":"set","name":"set network in service-data","xml":"<set>\n<parameter name=\"service-data.networks.network[$nidx].network-id\" value='`$tmp.l3-network.network-id`' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-topology.\" value='$network-topology.' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-request-input.\" value='$x.' />\n<parameter name=\"service-data.networks.network_length\" value='`$nidx_len`' />\n\n","comments":"","x":729.1667032241821,"y":3611.6787384450436,"z":"293895e6.5ef0e2","wires":[]},{"id":"22bd05cf.445f7a","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n","comments":"","x":808.0120086669922,"y":617.4404835700989,"z":"293895e6.5ef0e2","wires":[]},{"id":"b853c9fb.a4b158","type":"set","name":"set network-topology-identifier-structure in service-data","xml":"<set>\n<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\n<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\n<parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\n<parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-parameters.`' />\n<parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />","comments":"","x":833.9524354934692,"y":3475.4297680854797,"z":"293895e6.5ef0e2","wires":[]},{"id":"f387ea7a.cb332","type":"save","name":"save relationship: service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"customer.global-customer-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.service-information.global-customer-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"service-subscription.service-type\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$service-data.service-information.subscription-service-type`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"service-instance.service-instance-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$service-data.service-information.service-instance-id`\" />","comments":"","outputs":1,"x":845.3147430419922,"y":3082.7002577781677,"z":"293895e6.5ef0e2","wires":[["7eb3a40a.7e9414","d1dfe3a9.bb9198"]]},{"id":"39ae8d85.6e5642","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.l3-network.network-name`\" />\n<parameter name=\"network-type\" value=\"`$tmp.l3-network.network-type`\" />\n<parameter name=\"network-role\" value=\"`$tmp.l3-network.network-role`\" />\n<parameter name=\"network-technology\" value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn-boolean`\" />\n<parameter name=\"service-id\" value=\"`$tmp.l3-network.service-id`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-information.tenant`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n<parameter name=\"persona-model-id\" value=\"`$tmp.l3-network.persona-model-id`\" />\n<parameter name=\"persona-model-version\" value=\"`$tmp.l3-network.persona-model-version`\" />\n<parameter name=\"persona-model-customization-id\" value=\"`$tmp.l3-network.persona-model-customization-id`\" />\n<parameter name=\"physical-network-name\" value=\"`$tmp.l3-network.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$tmp.l3-network.is-provider-network-boolean`\" />\n<parameter name=\"is-shared-network\" value=\"`$tmp.l3-network.is-shared-network-boolean`\" />\n<parameter name=\"is-external-network\" value=\"`$tmp.l3-network.is-external-network-boolean`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n","comments":"","outputs":1,"x":1171.1640014648438,"y":2786.46630859375,"z":"293895e6.5ef0e2","wires":[["17d2413.1f4be3f","eb5b34d1.4537b8"]]},{"id":"79a2f133.fd6f08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`\" />\n","comments":"","x":1856.84326171875,"y":2660.759765625,"z":"293895e6.5ef0e2","wires":[]},{"id":"17d2413.1f4be3f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1414.271484375,"y":2751.525390625,"z":"293895e6.5ef0e2","wires":[["6fed3d50.bda79c"]]},{"id":"efd11375.9b214","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":2641.6993265151978,"y":2963.048982143402,"z":"293895e6.5ef0e2","wires":[["3828c6d6.552ef2","94c217d1.df75c8"]]},{"id":"78d9149.661776c","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\n","comments":"","outputs":1,"x":790.2557344436646,"y":2941.525412082672,"z":"293895e6.5ef0e2","wires":[["5be49735.084798"]]},{"id":"5be49735.084798","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1017.3984146118164,"y":2940.414363384247,"z":"293895e6.5ef0e2","wires":[["fcd830c9.2b335","aa132056.6dc0b8"]]},{"id":"3828c6d6.552ef2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2993.254143714905,"y":2922.381850719452,"z":"293895e6.5ef0e2","wires":[["cfb1639.9c505a"]]},{"id":"74426281.f93a14","type":"save","name":"save relationship: tenant and cloud-region","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\tforce=\"true\" \n\tlocal-only=\"false\">\n\t<!-- create relationship-list -->\n\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"tenant\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.cloud-region.cloud-owner`\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"tenant.tenant-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n\t<parameter name=\"relationship-list.relationship[1].related-to\" value=\"cloud-region\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-value\" value=\"`$prop.cloud-region.cloud-owner`\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t\n\t","comments":"","outputs":1,"x":819.3033876419067,"y":3221.0969166755676,"z":"293895e6.5ef0e2","wires":[["a91d8420.27c3d","ff3870a3.9a1f6"]]},{"id":"a91d8420.27c3d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1067.3033609390259,"y":3223.0968651771545,"z":"293895e6.5ef0e2","wires":[["f1d931a1.d7cc9"]]},{"id":"f1d931a1.d7cc9","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1255.6961889266968,"y":3222.732983112335,"z":"293895e6.5ef0e2","wires":[["567e8b7c.83f8bc","cd23b00b.cf80e"]]},{"id":"567e8b7c.83f8bc","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1536.6843843460083,"y":3185.5465258061886,"z":"293895e6.5ef0e2","wires":[]},{"id":"94c217d1.df75c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3001.977288246155,"y":2960.0250391960144,"z":"293895e6.5ef0e2","wires":[["cfb1639.9c505a"]]},{"id":"ff3870a3.9a1f6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1075.311203956604,"y":3264.930187702179,"z":"293895e6.5ef0e2","wires":[["f1d931a1.d7cc9"]]},{"id":"7eb3a40a.7e9414","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1081.4617080688477,"y":3081.8426909446716,"z":"293895e6.5ef0e2","wires":[["84965dc9.8283b"]]},{"id":"d1dfe3a9.bb9198","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1197.1847200393677,"y":3122.1523509025574,"z":"293895e6.5ef0e2","wires":[["84965dc9.8283b"]]},{"id":"718d3d64.92a56c","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\">","comments":"","outputs":1,"x":2147.7791681289673,"y":3789.731879711151,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"c44d21c.69791e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error writing to l3-network - ' + $tmp.error-message`\"/>","comments":"","x":2136.3833017349243,"y":3832.9278903007507,"z":"293895e6.5ef0e2","wires":[]},{"id":"cd23b00b.cf80e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1839.2055559158325,"y":3793.733643054962,"z":"293895e6.5ef0e2","wires":[["718d3d64.92a56c","c44d21c.69791e","8a3142fd.49439","bccef547.3b91c"]]},{"id":"d329b682.7e474","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":3433.127190589905,"y":2937.239272594452,"z":"293895e6.5ef0e2","wires":[]},{"id":"cfb1639.9c505a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3177.9844484329224,"y":2936.6677346229553,"z":"293895e6.5ef0e2","wires":[["d329b682.7e474","cd23b00b.cf80e"]]},{"id":"eb5b34d1.4537b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1420.0809326171875,"y":2780.001708984375,"z":"293895e6.5ef0e2","wires":[["6fed3d50.bda79c"]]},{"id":"fcd830c9.2b335","type":"set","name":"set: tmp.subnet-id","xml":"<set>\n<parameter name=\"tmp.subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\"/>\n\t","comments":"","x":1239.1763610839844,"y":2909.239589214325,"z":"293895e6.5ef0e2","wires":[]},{"id":"aa132056.6dc0b8","type":"switchNode","name":"switch dhcp-enabled","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\n","comments":"","outputs":1,"x":1246.8110847473145,"y":2945.5369839668274,"z":"293895e6.5ef0e2","wires":[["46412666.490af","71945c2.83a5c24"]]},{"id":"71945c2.83a5c24","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1482.9538803100586,"y":2875.3940329551697,"z":"293895e6.5ef0e2","wires":[["25aa1229.98f47e"]]},{"id":"46412666.490af","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1478.8110847473145,"y":2957.53710603714,"z":"293895e6.5ef0e2","wires":[["7387a680.64d7c8"]]},{"id":"603e3edd.83a648","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":2678.9533462524414,"y":2884.7750086784363,"z":"293895e6.5ef0e2","wires":[["94c217d1.df75c8","3828c6d6.552ef2"]]},{"id":"25aa1229.98f47e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1673.8423080444336,"y":2875.6163840293884,"z":"293895e6.5ef0e2","wires":[["e9475920.9956e8"]]},{"id":"7387a680.64d7c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1671.6997566223145,"y":2961.7594571113586,"z":"293895e6.5ef0e2","wires":[["2086000.752238"]]},{"id":"21dcdad4.c9af16","type":"for","name":"for 0..vpn-bindings_length","xml":"<for index='vidx' start='0' end='`$vpn-bindings_length`' >\n","comments":"","outputs":1,"x":1372.9954986572266,"y":3021.0925307273865,"z":"293895e6.5ef0e2","wires":[["64ff0d18.410094"]]},{"id":"6fc56656.d3bba","type":"switchNode","name":"switch hasVpnBindings","xml":"<switch test='`$hasVpnBindings`'>\n","comments":"","outputs":1,"x":813.6626319885254,"y":3022.0559372901917,"z":"293895e6.5ef0e2","wires":[["aae2ae89.17beb8"]]},{"id":"a022b704.0f945","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1174.329360961914,"y":3023.3889174461365,"z":"293895e6.5ef0e2","wires":[["21dcdad4.c9af16"]]},{"id":"44d0134d.af865c","type":"save","name":"save relationship: vpn_bindings","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"vpn-binding\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"vpn-binding.vpn-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$vpn-bindings[$vidx].binding-uuid`\" />","comments":"","outputs":1,"x":1834.329116821289,"y":3021.0556654930115,"z":"293895e6.5ef0e2","wires":[["26719dab.73de8a","359616a1.9e9092"]]},{"id":"26719dab.73de8a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2171.0686922073364,"y":3026.5311121940613,"z":"293895e6.5ef0e2","wires":[["86119166.1b5a6"]]},{"id":"86119166.1b5a6","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":2327.9615716934204,"y":3026.1672196388245,"z":"293895e6.5ef0e2","wires":[["cd23b00b.cf80e","f91a0178.d1d88"]]},{"id":"359616a1.9e9092","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2180.099091529846,"y":3060.8095412254333,"z":"293895e6.5ef0e2","wires":[["86119166.1b5a6"]]},{"id":"64ff0d18.410094","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1590.6622467041016,"y":3023.0554213523865,"z":"293895e6.5ef0e2","wires":[["44d0134d.af865c"]]},{"id":"84965dc9.8283b","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1273.6255340576172,"y":3081.389070034027,"z":"293895e6.5ef0e2","wires":[["cd23b00b.cf80e","aab89d3a.4c2d68"]]},{"id":"aab89d3a.4c2d68","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving service instance relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":1498.6255340576172,"y":3080.0556960105896,"z":"293895e6.5ef0e2","wires":[]},{"id":"f91a0178.d1d88","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2555.6254663467407,"y":3025.388970851898,"z":"293895e6.5ef0e2","wires":[]},{"id":"aae2ae89.17beb8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1007.0435943603516,"y":3022.8532729148865,"z":"293895e6.5ef0e2","wires":[["a022b704.0f945"]]},{"id":"6c88ef63.8cc9","type":"switchNode","name":"switch network-technology","xml":"<switch test='`$network-model.network-technology`'>\n","comments":"","outputs":1,"x":776.376935005188,"y":3304.8531613349915,"z":"293895e6.5ef0e2","wires":[["748972ed.d13a4c"]]},{"id":"748972ed.d13a4c","type":"outcome","name":"outcome AIC_SR_IOV","xml":"<outcome value='AIC_SR_IOV'>\n","comments":"","outputs":1,"x":1079.2659120559692,"y":3306.2974972724915,"z":"293895e6.5ef0e2","wires":[["57356804.69abb"]]},{"id":"57356804.69abb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1297.2656679153442,"y":3304.297619342804,"z":"293895e6.5ef0e2","wires":[["5b36388c.88f4b8","bf9ed5a9.b8b25"]]},{"id":"5b36388c.88f4b8","type":"save","name":"save AnAI - segmentation-assignment","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"segmentation-assignment\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND segmentation-assignment.segmentation-id = $tmp.l3-network.segmentation-id\" >\n<!-- Create segmentation-assignment object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"segmentation-id\" value=\"`$tmp.l3-network.segmentation-id`\" />\n","comments":"","outputs":1,"x":1576.3768129348755,"y":3360.631115436554,"z":"293895e6.5ef0e2","wires":[["a98c5ab8.58a478","940d5b93.11a8e8"]]},{"id":"a98c5ab8.58a478","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1845.3768129348755,"y":3337.6312375068665,"z":"293895e6.5ef0e2","wires":[["fd0ca65b.b97618"]]},{"id":"940d5b93.11a8e8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1854.0999574661255,"y":3375.274425983429,"z":"293895e6.5ef0e2","wires":[["fd0ca65b.b97618"]]},{"id":"4829eae1.9d750c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2416.91649723053,"y":3354.1553416252136,"z":"293895e6.5ef0e2","wires":[]},{"id":"fd0ca65b.b97618","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2161.77391910553,"y":3353.5838084220886,"z":"293895e6.5ef0e2","wires":[["4829eae1.9d750c","cd23b00b.cf80e"]]},{"id":"449b0da0.8a9ffc","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties'>\n                  <parameter name='contextPrefix' value='prop'/>\n                  <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api.properties'/>\n","comments":"","outputs":1,"x":1551.3770570755005,"y":3254.519915431738,"z":"293895e6.5ef0e2","wires":[["25ce2041.ac8048","d0a813d7.fa3ff"]]},{"id":"25ce2041.ac8048","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1752.3769273757935,"y":3225.5199093818665,"z":"293895e6.5ef0e2","wires":[["1ae3834b.4454e5"]]},{"id":"d0a813d7.fa3ff","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1746.3769273757935,"y":3261.5199093818665,"z":"293895e6.5ef0e2","wires":[["2ca720cb.3108a8"]]},{"id":"e9c5ff44.a1485","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while reading default segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2286.0435724258423,"y":3247.1863474845886,"z":"293895e6.5ef0e2","wires":[]},{"id":"2ca720cb.3108a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2054.9009866714478,"y":3262.6150584220886,"z":"293895e6.5ef0e2","wires":[["e9c5ff44.a1485","cd23b00b.cf80e"]]},{"id":"e34c5712.24c058","type":"set","name":"set: tmp.l3-network.segmentation-id","xml":"<set>\n\t<parameter name=\"tmp.l3-network.segmentation-id\" value=\"`$prop.default.segmentation-assignment`\"/>","comments":"","x":2318.0435724258423,"y":3215.1863474845886,"z":"293895e6.5ef0e2","wires":[]},{"id":"1ae3834b.4454e5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2060.9009866714478,"y":3226.6150584220886,"z":"293895e6.5ef0e2","wires":[["e34c5712.24c058"]]},{"id":"bf9ed5a9.b8b25","type":"set","name":"set: segmentionat-d=1","xml":"<set>\n\t<parameter name=\"tmp.l3-network.segmentation-id\" value=\"1\"/>","comments":"","x":1531.3611116409302,"y":3327.7104182243347,"z":"293895e6.5ef0e2","wires":[]},{"id":"7fa6dac9.08cd2c","type":"comment","name":"future if need from property","info":"","comments":"","x":1549.9327211380005,"y":3219.853167384863,"z":"293895e6.5ef0e2","wires":[]},{"id":"e9475920.9956e8","type":"switchNode","name":"switch gateway-address","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\n","comments":"","outputs":1,"x":1893.8055953979492,"y":2875.9485545158386,"z":"293895e6.5ef0e2","wires":[["d00c210f.09e218","73807347.1a078c"]]},{"id":"d00c210f.09e218","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2220.2341089248657,"y":2848.3294129371643,"z":"293895e6.5ef0e2","wires":[["cc593137.6c9098"]]},{"id":"73807347.1a078c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2195.9483766555786,"y":2884.0438027381897,"z":"293895e6.5ef0e2","wires":[["293cfd18.c5497a"]]},{"id":"293cfd18.c5497a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2432.376754760742,"y":2884.472623348236,"z":"293895e6.5ef0e2","wires":[["603e3edd.83a648"]]},{"id":"6aed81c2.0cf788","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":2676.662612915039,"y":2849.329619884491,"z":"293895e6.5ef0e2","wires":[["3828c6d6.552ef2","94c217d1.df75c8"]]},{"id":"cc593137.6c9098","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2445.8001747131348,"y":2850.5987181663513,"z":"293895e6.5ef0e2","wires":[["6aed81c2.0cf788"]]},{"id":"2086000.752238","type":"switchNode","name":"switch gateway-address","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\n","comments":"","outputs":1,"x":1903.091323852539,"y":2960.663068294525,"z":"293895e6.5ef0e2","wires":[["9af99333.562788","9a5f4664.851838"]]},{"id":"9af99333.562788","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2229.519814491272,"y":2927.329685688019,"z":"293895e6.5ef0e2","wires":[["2d9e9ce0.f017a4"]]},{"id":"9a5f4664.851838","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2205.234082221985,"y":2963.044075489044,"z":"293895e6.5ef0e2","wires":[["98a4ceda.f14d78"]]},{"id":"98a4ceda.f14d78","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2406.6626710891724,"y":2964.4727396965027,"z":"293895e6.5ef0e2","wires":[["efd11375.9b214"]]},{"id":"2d9e9ce0.f017a4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2414.3718156814575,"y":2927.7416338920593,"z":"293895e6.5ef0e2","wires":[["acec681.34a3c18"]]},{"id":"acec681.34a3c18","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":2639.5196352005005,"y":2924.472321987152,"z":"293895e6.5ef0e2","wires":[["3828c6d6.552ef2","94c217d1.df75c8"]]},{"id":"4acd25ef.ab1094","type":"switchNode","name":"switch service-id","xml":"<switch test='`$tmp.l3-network.service-id`'>\n","comments":"","outputs":1,"x":781.0436401367188,"y":2772.853515625,"z":"293895e6.5ef0e2","wires":[["7f021e9b.a5c1c8","3b389f88.ce9ab8"]]},{"id":"7f021e9b.a5c1c8","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":970.0436401367188,"y":2751.853515625,"z":"293895e6.5ef0e2","wires":[["eb4c65af.abd668"]]},{"id":"3b389f88.ce9ab8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":945.0436401367188,"y":2786.853515625,"z":"293895e6.5ef0e2","wires":[["39ae8d85.6e5642"]]},{"id":"eb4c65af.abd668","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.l3-network.network-name`\" />\n<parameter name=\"network-type\" value=\"`$tmp.l3-network.network-type`\" />\n<parameter name=\"network-role\" value=\"`$tmp.l3-network.network-role`\" />\n<parameter name=\"network-technology\" value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn-boolean`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-information.tenant`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n<parameter name=\"persona-model-id\" value=\"`$tmp.l3-network.persona-model-id`\" />\n<parameter name=\"persona-model-version\" value=\"`$tmp.l3-network.persona-model-version`\" />\n<parameter name=\"persona-model-customization-id\" value=\"`$tmp.l3-network.persona-model-customization-id`\" />\n<parameter name=\"physical-network-name\" value=\"`$tmp.l3-network.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$tmp.l3-network.is-provider-network-boolean`\" />\n<parameter name=\"is-shared-network\" value=\"`$tmp.l3-network.is-shared-network-boolean`\" />\n<parameter name=\"is-external-network\" value=\"`$tmp.l3-network.is-external-network-boolean`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n","comments":"","outputs":1,"x":1177.0436401367188,"y":2751.853515625,"z":"293895e6.5ef0e2","wires":[["17d2413.1f4be3f","eb5b34d1.4537b8"]]},{"id":"7852b58.654cd4c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":658.7499485015869,"y":3850.904838413,"z":"293895e6.5ef0e2","wires":[]},{"id":"31213429.ff2f4c","type":"switchNode","name":"switch network-model.is-bound-to-vpn","xml":"<switch test='`$network-model.is-bound-to-vpn`'>\n","comments":"","outputs":1,"x":842.7500457763672,"y":756.000009059906,"z":"293895e6.5ef0e2","wires":[["61668342.b78f24"]]},{"id":"61668342.b78f24","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1107.7500495910645,"y":756.0000100135803,"z":"293895e6.5ef0e2","wires":[["6143b1fe.e94e"]]},{"id":"6143b1fe.e94e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":1270.5000915527344,"y":756.4999985694885,"z":"293895e6.5ef0e2","wires":[["4068bc26.c234d4"]]},{"id":"a2810608.412cb","type":"get-resource","name":"get-resource vpn-binding","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"vpn-binding\" \n\t\tkey=\"vpn-binding.vpn-id = $vpn-bindings[$vidx].binding-uuid\"\n        pfx='aai.vpnBinding' local-only='false' >\n\n","comments":"","outputs":1,"x":2552.0715866088867,"y":804.2738480567932,"z":"293895e6.5ef0e2","wires":[["3ec769c5.3b69b6","95bdee60.3a7e48","43fc7f1b.eab248"]]},{"id":"3ec769c5.3b69b6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2788.027919769287,"y":776.0278038978577,"z":"293895e6.5ef0e2","wires":[["c81ef1d0.c56528"]]},{"id":"95bdee60.3a7e48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2779.7779846191406,"y":810.6111693382263,"z":"293895e6.5ef0e2","wires":[["c81ef1d0.c56528"]]},{"id":"43fc7f1b.eab248","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2784.1388664245605,"y":740.3889183998108,"z":"293895e6.5ef0e2","wires":[["fcfdef84.8935f"]]},{"id":"fcfdef84.8935f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2949.1388664245605,"y":740.3889183998108,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"426bb16f.c9bb2","type":"comment","name":"pull vpn binding from db table vs field","info":"","comments":"","x":2150.212989807129,"y":733.9232773780823,"z":"293895e6.5ef0e2","wires":[]},{"id":"613afd9.7dfc984","type":"for","name":"for 0..vpn-bindings_length","xml":"<for index='vidx' start='0' end='`$vpn-bindings_length`' >\n","comments":"","outputs":1,"x":2124.578311920166,"y":802.7328181266785,"z":"293895e6.5ef0e2","wires":[["7f145964.210d18"]]},{"id":"7f145964.210d18","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2333.053966522217,"y":804.812225818634,"z":"293895e6.5ef0e2","wires":[["a2810608.412cb"]]},{"id":"8c080bcb.479bc","type":"set","name":"set hasVpnBindings=true","xml":"<set>\n<parameter name='hasVpnBindings' value='true' />\n","comments":"","x":2122.752670288086,"y":771.3042178153992,"z":"293895e6.5ef0e2","wires":[]},{"id":"4068bc26.c234d4","type":"get-resource","name":"get-resource VPN_BINDINGS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VPN_BINDINGS WHERE network_customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid'\n  pfx='vpn-bindings[]'>\n\n","comments":"","outputs":1,"x":1511.2817916870117,"y":756.6746144294739,"z":"293895e6.5ef0e2","wires":[["c7f6e79c.4ad44","cebe8d92.34fa78","60da40f1.463e18"]]},{"id":"cebe8d92.34fa78","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1733.710334777832,"y":849.3888840675354,"z":"293895e6.5ef0e2","wires":[["a3070615.94f568"]]},{"id":"60da40f1.463e18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1729.0433616638184,"y":888.722198009491,"z":"293895e6.5ef0e2","wires":[["afdf36e1.3edc88"]]},{"id":"c7f6e79c.4ad44","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1729.219367980957,"y":810.8148484230042,"z":"293895e6.5ef0e2","wires":[["ded06bb2.f6b7e8"]]},{"id":"ded06bb2.f6b7e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1899.424690246582,"y":810.3888840675354,"z":"293895e6.5ef0e2","wires":[["8c080bcb.479bc","613afd9.7dfc984"]]},{"id":"4c3863ea.780a64","type":"set","name":"set onap-model-info","xml":"<set>\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='s-onap-model-information.model-invariant-uuid' value='`$service-model.invariant-uuid`' />\n<parameter name='s-onap-model-information.model-version' value='`$service-model.version`' />\n<parameter name='s-onap-model-information.model-uuid' value='`$service-model.service-uuid`' />\n<parameter name='s-onap-model-information.model-name' value='`$service-model.name`' />\n<parameter name='n-onap-model-information.model-invariant-uuid' value='`$network-model.invariant-uuid`' />\n<parameter name='n-onap-model-information.model-version' value='`$network-model.version`' />\n<parameter name='n-onap-model-information.model-uuid' value='`$network-model.uuid`' />\n<parameter name='n-onap-model-information.model-name' value='`$network-model.name`' />","comments":"","x":790.75390625,"y":680.00390625,"z":"293895e6.5ef0e2","wires":[]},{"id":"f43b1f67.085098","type":"set","name":"set onap-model-info with mysql data","xml":"<set>\n<parameter name='network-data.service-information.ecomp-model-information.' value=\"`$s-onap-model-information.`\" />\n<parameter name='network-data.network-information.ecomp-model-information.' value=\"`$n-onap-model-information.`\" />\n","comments":"","x":840.0039215087891,"y":713.0039143562317,"z":"293895e6.5ef0e2","wires":[]},{"id":"bccef547.3b91c","type":"call","name":"call naming-policy-generate-name to rollback name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":2259.3800477981567,"y":3746.5046286582947,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"8a3142fd.49439","type":"set","name":"set parameters for generate-unique-name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n\n\n","comments":"","x":2219.630108833313,"y":3702.5046887397766,"z":"293895e6.5ef0e2","wires":[]},{"id":"23833e07.99958a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2802.681553840637,"y":3751.7563996315002,"z":"293895e6.5ef0e2","wires":[["ef665ef5.eb2a98","1521636d.390f25","f96be9ed.5e0508"]]},{"id":"1521636d.390f25","type":"call","name":"call naming-policy-generate-name to rollback name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":3109.1060609817505,"y":3754.5275464057922,"z":"293895e6.5ef0e2","wires":[[]]},{"id":"ef665ef5.eb2a98","type":"set","name":"set parameters for generate-unique-name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n\n\n","comments":"","x":3081.8562364578247,"y":3716.777464389801,"z":"293895e6.5ef0e2","wires":[]},{"id":"48995ae5.67c19c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1261.505012512207,"y":1320.5048537254333,"z":"293895e6.5ef0e2","wires":[["f8c096c7.aac118","23833e07.99958a"]]},{"id":"cdcb6a66.a11cf","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1257.755012512207,"y":1360.5048537254333,"z":"293895e6.5ef0e2","wires":[["9eef74f0.a1e1b","23833e07.99958a"]]},{"id":"f8c096c7.aac118","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Cloud region not found in AAI\"/>","comments":"","x":1495.2551574707031,"y":1319.2548823356628,"z":"293895e6.5ef0e2","wires":[]},{"id":"f96be9ed.5e0508","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error writing to l3-network - ' + $tmp.error-message`\"/>","comments":"","x":2988.75519657135,"y":3790.2547554969788,"z":"293895e6.5ef0e2","wires":[]},{"id":"9eef74f0.a1e1b","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error retrieving cloud region from AAI\"/>","comments":"","x":1495.2551651000977,"y":1360.5047507286072,"z":"293895e6.5ef0e2","wires":[]},{"id":"6c249175.f5d028","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1212.754867553711,"y":1439.2548804283142,"z":"293895e6.5ef0e2","wires":[["7597524b.c05c54","23833e07.99958a"]]},{"id":"7597524b.c05c54","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Cloud region missing relationships in AAI\"/>","comments":"","x":1445.2550048828125,"y":1438.004909992218,"z":"293895e6.5ef0e2","wires":[]},{"id":"62b19f9d.67a67","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1227.754867553711,"y":1581.7548804283142,"z":"293895e6.5ef0e2","wires":[["16974f9.b28683","23833e07.99958a"]]},{"id":"16974f9.b28683","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Complex not found in AAI\"/>","comments":"","x":1460.255012512207,"y":1581.7549214363098,"z":"293895e6.5ef0e2","wires":[]},{"id":"cffd5f4a.151d08","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2320.254867553711,"y":1562.7548804283142,"z":"293895e6.5ef0e2","wires":[["debc7aba.29c54","23833e07.99958a"]]},{"id":"54196261.94e404","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2316.504867553711,"y":1603.7548804283142,"z":"293895e6.5ef0e2","wires":[["5cd4560a.256b98","23833e07.99958a"]]},{"id":"debc7aba.29c54","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Complex not found in AAI\"/>","comments":"","x":2550.505195617676,"y":1565.5049233436584,"z":"293895e6.5ef0e2","wires":[]},{"id":"5cd4560a.256b98","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Error retrieving complex from AA\"/>","comments":"","x":2550.0050201416016,"y":1606.754777431488,"z":"293895e6.5ef0e2","wires":[]},{"id":"de868ff7.e2f398","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2934.9424209594727,"y":1621.5049204826355,"z":"293895e6.5ef0e2","wires":[["7e5580d1.9fcf78","23833e07.99958a"]]},{"id":"7e5580d1.9fcf78","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Complex.region unknown\"/>","comments":"","x":3155.4425735473633,"y":1621.5048174858093,"z":"293895e6.5ef0e2","wires":[]},{"id":"a31343ec.e76f08","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2871.192367553711,"y":1813.0048804283142,"z":"293895e6.5ef0e2","wires":[["7107b96e.fe9278","23833e07.99958a"]]},{"id":"7107b96e.fe9278","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Invalid address plan for VIPR\"/>","comments":"","x":3091.6925201416016,"y":1813.004777431488,"z":"293895e6.5ef0e2","wires":[]},{"id":"f448e026.7558","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2893.692367553711,"y":1985.5048804283142,"z":"293895e6.5ef0e2","wires":[["dbb7226b.0953e","23833e07.99958a"]]},{"id":"dbb7226b.0953e","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"EIPAM V6 Address plan should be null\"/>","comments":"","x":3114.1925201416016,"y":1985.504777431488,"z":"293895e6.5ef0e2","wires":[]},{"id":"cc9dd635.98df68","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2881.192367553711,"y":2189.254880428314,"z":"293895e6.5ef0e2","wires":[["13bc9b22.80b915","23833e07.99958a"]]},{"id":"13bc9b22.80b915","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Invalid address plan for SRIOV\"/>","comments":"","x":3101.6925201416016,"y":2189.254777431488,"z":"293895e6.5ef0e2","wires":[]},{"id":"418a0270.b2cdfc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2882.7283096313477,"y":2487.5765719413757,"z":"293895e6.5ef0e2","wires":[["9e54712b.194c98","23833e07.99958a"]]},{"id":"9e54712b.194c98","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Invalid ipv6 address plan for SRIOV\"/>","comments":"","x":3103.2284622192383,"y":2487.5764689445496,"z":"293895e6.5ef0e2","wires":[]},{"id":"964d0759.ba21c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1256.5049285888672,"y":2361.7546763420105,"z":"293895e6.5ef0e2","wires":[["8d799b4e.f02948","23833e07.99958a"]]},{"id":"8d799b4e.f02948","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Invalid network-technology.  Only AIC_SR_IOV and Contrail are supported for network automated flow\"/>","comments":"","x":1489.0050735473633,"y":2361.754717350006,"z":"293895e6.5ef0e2","wires":[]},{"id":"a3070615.94f568","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1907.4422454833984,"y":849.2548804283142,"z":"293895e6.5ef0e2","wires":[["21bdae32.51c022","23833e07.99958a"]]},{"id":"afdf36e1.3edc88","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1903.6922454833984,"y":889.2548804283142,"z":"293895e6.5ef0e2","wires":[["743cb5.96e0034c","23833e07.99958a"]]},{"id":"21bdae32.51c022","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Network model is_bound_to_vpn=true but no vpn_binding is present\"/>","comments":"","x":2141.1923904418945,"y":848.0049090385437,"z":"293895e6.5ef0e2","wires":[]},{"id":"743cb5.96e0034c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Unexpected error retrieving vpn binding\"/>","comments":"","x":2141.192398071289,"y":889.254777431488,"z":"293895e6.5ef0e2","wires":[]},{"id":"c81ef1d0.c56528","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2971.1924209594727,"y":795.504891872406,"z":"293895e6.5ef0e2","wires":[["ea8a27d2.4dd83","23833e07.99958a"]]},{"id":"ea8a27d2.4dd83","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'No vpn binding found for network-model.vpn-binding=' \n    + $vpn-bindings[$vidx].binding-uuid`\"/>","comments":"","x":3208.6925735473633,"y":795.5047888755798,"z":"293895e6.5ef0e2","wires":[]},{"id":"88aa0e0f.278a3","type":"set","name":"set: tmp.error-message to \"\"","xml":"<set>\n\t<parameter name=\"tmp.error-message\" value=\"\"/>","comments":"","x":812.2191925048828,"y":561.9334692955017,"z":"293895e6.5ef0e2","wires":[]},{"id":"c6bc7f3a.1e281","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":772.0412635803223,"y":444.2912917137146,"z":"293895e6.5ef0e2","wires":[["4352bf81.36bca8","2ea25c4b.e9b804"]]},{"id":"4352bf81.36bca8","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":960.6126480102539,"y":442.8626751899719,"z":"293895e6.5ef0e2","wires":[["56d49ab9.18493c"]]},{"id":"56d49ab9.18493c","type":"switchNode","name":"switch service-data.networks_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1209.8387413024902,"y":444.0535922050476,"z":"293895e6.5ef0e2","wires":[["d27193d0.539848","ee3cafd7.3c4058"]]},{"id":"d27193d0.539848","type":"other","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1502.934063911438,"y":442.86290073394775,"z":"293895e6.5ef0e2","wires":[["d8ac678b.d3417"]]},{"id":"d8ac678b.d3417","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='0' />\n<parameter name='nidx_len' value='1'/>\n","comments":"","x":1682.934105873108,"y":440.43431663513184,"z":"293895e6.5ef0e2","wires":[]},{"id":"ee3cafd7.3c4058","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1505.791226387024,"y":468.5771732330322,"z":"293895e6.5ef0e2","wires":[["2d29b63f.71cd2a"]]},{"id":"2d29b63f.71cd2a","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$service-data.networks.network_length`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length + 1`' />\n","comments":"","x":1684.3626565933228,"y":477.4343738555908,"z":"293895e6.5ef0e2","wires":[]},{"id":"2ea25c4b.e9b804","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":962.0412826538086,"y":481.4341473579407,"z":"293895e6.5ef0e2","wires":[["e1048edf.258b38"]]},{"id":"e1048edf.258b38","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$tmp.nidx`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length`' />\n","comments":"","x":1124.8984069824219,"y":481.4341731071472,"z":"293895e6.5ef0e2","wires":[]},{"id":"cb4086d2.f6774","type":"set","name":"set rename for call to create-l3-subnet","xml":"<set>\n<parameter name='v4.entity-id' value='`$tmp.l3-network.level2.v4.entity-id`' />\n<parameter name='v4.ip-prefix' value='`$tmp.l3-network.level2.v4.ip-prefix`' />\n<parameter name='v4.mask' value='`$tmp.l3-network.level2.v4.mask`' />\n<parameter name='v6.entity-id' value='`$tmp.l3-network.level2.v6.entity-id`' />\n<parameter name='v6.ip-prefix' value='`$tmp.l3-network.level2.v6.ip-prefix`' />\n<parameter name='v6.mask' value='`$tmp.l3-network.level2.v6.mask`' />\n\n","comments":"","x":868.7499980926514,"y":2563.5000014305115,"z":"293895e6.5ef0e2","wires":[]},{"id":"6fed3d50.bda79c","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1595.5,"y":2752.25,"z":"293895e6.5ef0e2","wires":[["de7043fa.21dad","cd23b00b.cf80e"]]},{"id":"de7043fa.21dad","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":1823.1638946533203,"y":2751.4717512130737,"z":"293895e6.5ef0e2","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.json
new file mode 100755 (executable)
index 0000000..5c7f93d
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"7d592922.381a98","type":"dgstart","name":"DGSTART","outputs":1,"x":234.75,"y":114,"z":"904f855.2f5e8f8","wires":[["2231b9ae.40730e"]]},{"id":"2231b9ae.40730e","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":371.0356903076172,"y":181.09526014328003,"z":"904f855.2f5e8f8","wires":[["5597044c.d58a04"]]},{"id":"5597044c.d58a04","type":"method","name":"network-topology-operation-assign-from-preload","xml":"<method rpc='network-topology-operation-assign-from-preload' mode='sync'>\n","comments":"","outputs":1,"x":373.71439361572266,"y":248.89284801483154,"z":"904f855.2f5e8f8","wires":[["eeff1f58.674cb"]]},{"id":"275965de.197eca","type":"comment","name":"Called from assign when network name passed in from mso","info":"","comments":"","x":571.6071395874023,"y":142.00000476837158,"z":"904f855.2f5e8f8","wires":[]},{"id":"eeff1f58.674cb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":353.74999237060547,"y":380.9999933242798,"z":"904f855.2f5e8f8","wires":[["9c2238aa.67ea08","8255a2a9.5c5808","f9dafdce.3c8a3","685cc7cd.396018","899c4fe3.7f9af8","a4c0d0b4.fb2228","e3f5293b.03dee","cc0b4bd9.424d18","d792a084.fab23","fbeedbdb.9915b","9af57339.b5c73","cae6b67f.073328","1fa70774.12d5c1","ad534b95.44473","6fca91a9.21355","27110277.784596","e618d649.0c64a8","1375dc08.d1881c","98f1afcd.7f17e","31fdd3c0.8004c4","ae3f6cc0.f931c","c33e48fe.f40f2","1edbf6d.7460609","d7a7e7e8.a8b248","6820b570.d2fcf4","2475aec8.3301ca","9d88f2e8.48f3e","75c470c.1b64c1","d03a4655.11876","250c1ed0.7ac68a"]]},{"id":"9c2238aa.67ea08","type":"get-resource","name":"get AnAI - l3-network by network-name","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-name = $tmp.network-instance-name\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":739.3293075561523,"y":694.7704095840454,"z":"904f855.2f5e8f8","wires":[["47b81159.539aa","88c61ad0.d333f"]]},{"id":"47b81159.539aa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1006.3293495178223,"y":694.7703790664673,"z":"904f855.2f5e8f8","wires":[["849fecc5.099258"]]},{"id":"849fecc5.099258","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error searching for l3-network with network-name =' + $tmp.network-instance-name + 'from AnAI'\" />","comments":"","x":1158.4404335021973,"y":694.9926080703735,"z":"904f855.2f5e8f8","wires":[]},{"id":"88c61ad0.d333f","type":"other","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1008.6072845458984,"y":732.2858028411865,"z":"904f855.2f5e8f8","wires":[["a3a611b6.7e9f98"]]},{"id":"a3a611b6.7e9f98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error l3-network with network-name =' + $tmp.network-instance-name + ' already exists in AnAI'\" />","comments":"","x":1159.6072425842285,"y":731.2857751846313,"z":"904f855.2f5e8f8","wires":[]},{"id":"8255a2a9.5c5808","type":"execute","name":"generate preload network url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.preload-network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pn-url\"/>\n    <parameter name=\"target\" value=\"{network-name}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.network-instance-name`\"/>\n","comments":"","outputs":1,"x":700.6071548461914,"y":534.2857880592346,"z":"904f855.2f5e8f8","wires":[[]]},{"id":"f9dafdce.3c8a3","type":"execute","name":"execute RestApiCallNode - Get preload-network by network-name","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pn-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"preload-data\" />\n\n","comments":"","outputs":1,"x":815.6072158813477,"y":569.5358800888062,"z":"904f855.2f5e8f8","wires":[["1a8fb816.080118","de38a578.c54d28"]]},{"id":"1a8fb816.080118","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1181.6072273254395,"y":574.2858438491821,"z":"904f855.2f5e8f8","wires":[["f2b3d346.87f28"]]},{"id":"f2b3d346.87f28","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1351.6071815490723,"y":573.7857294082642,"z":"904f855.2f5e8f8","wires":[[]]},{"id":"de38a578.c54d28","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1177.4589881896973,"y":606.3519020080566,"z":"904f855.2f5e8f8","wires":[["86b0c28f.440d28"]]},{"id":"86b0c28f.440d28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error: No preload-network found with network-name =' + $tmp.network-instance-name + ' in md-sal'\" />","comments":"","x":1355.6071853637695,"y":606.2858171463013,"z":"904f855.2f5e8f8","wires":[]},{"id":"d97278fc.3053e","type":"comment","name":"preload found in md-sal, aai network doesn't exist.  Proceed to create.","info":"","comments":"","x":834.6071243286133,"y":629.2859487533569,"z":"904f855.2f5e8f8","wires":[]},{"id":"16662914.1e81f7","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.network-instance-name`\" />\n<parameter name='network-type' value=\"`$network-model.network-type`\" />\n<parameter name='network-role' value=\"`$network-model.network-role`\" />\n<parameter name='network-technology' value=\"`$network-model.network-technology`\" />\n<parameter name='is-bound-to-vpn' value=\"`$network-model.is-bound-to-vpn`\" />\n<parameter name=\"service-id\" value=\"`$network-topology-operation-input.service-information.service-id`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name=\"network-role-instance\" value=\"0\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n<parameter name=\"physical-network-name\" value=\"`$preload-data.preload-network-topology-information.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$preload-data.preload-network-topology-information.is-provider-network`\" />\n<parameter name=\"is-shared-network\" value=\"`$preload-data.preload-network-topology-information.is-shared-network`\" />\n<parameter name=\"is-external-network\" value=\"`$preload-data.preload-network-topology-information.is-external-network`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n","comments":"","outputs":1,"x":1087.6789321899414,"y":862.4647035598755,"z":"904f855.2f5e8f8","wires":[["ae985daf.cc194","4833e133.eaab"]]},{"id":"ae985daf.cc194","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1291.4620971679688,"y":825.9800109863281,"z":"904f855.2f5e8f8","wires":[["f037d2da.e2da78"]]},{"id":"f037d2da.e2da78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Failed to save l3-network in AnAI with network-id = ' + $tmp.return.generate-l3network-network-id.uuid`\"/>","comments":"","x":1484.239646911621,"y":846.7577819824219,"z":"904f855.2f5e8f8","wires":[]},{"id":"685cc7cd.396018","type":"set","name":"set: tmp.error-message to \"\"","xml":"<set>\n\t<parameter name=\"tmp.error-message\" value=\"\"/>","comments":"","x":704.9851989746094,"y":658.7666625976562,"z":"904f855.2f5e8f8","wires":[]},{"id":"4833e133.eaab","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1301.5569381713867,"y":867.3384561538696,"z":"904f855.2f5e8f8","wires":[["f037d2da.e2da78"]]},{"id":"899c4fe3.7f9af8","type":"switchNode","name":"switch ... PRELOAD subnets_length","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets_length`\">","comments":"","outputs":1,"x":733.3571853637695,"y":995.4285650253296,"z":"904f855.2f5e8f8","wires":[["b535960c.037"]]},{"id":"b535960c.037","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":994.8016357421875,"y":995.2063007354736,"z":"904f855.2f5e8f8","wires":[["20af37fa.7e239"]]},{"id":"20af37fa.7e239","type":"set","name":"set PRELOAD subnets[] = 0","xml":"<set>\n<parameter name=\"preload-data.preload-network-topology-information.subnets_length\" value=\"0\" />\n","comments":"","x":1228.3572447035049,"y":995.206321398417,"z":"904f855.2f5e8f8","wires":[]},{"id":"a4c0d0b4.fb2228","type":"for","name":"for loop i - PRELOAD subnets","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.subnets_length`\">\n","comments":"","outputs":1,"x":714.1072463989258,"y":1087.4287095069885,"z":"904f855.2f5e8f8","wires":[["8602f731.72b7c8"]]},{"id":"8602f731.72b7c8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":971.1058654785156,"y":1087.4377207756042,"z":"904f855.2f5e8f8","wires":[["c7ed8c75.f11108","e7ad3a60.ccf05","75e2306b.a71d6","ca97996a.85c7f","3239fd87.45740a","fe762cff.ee4918","45e19eff.8708","18e3cafb.f22a2d","2d9b4f3.65a3a3"]]},{"id":"8bb52697.fd8018","type":"set","name":"set tmp.dhcpEnabled.boolean=false","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"false\" />\n","comments":"","x":1745.1072463989258,"y":1127.4287095069885,"z":"904f855.2f5e8f8","wires":[]},{"id":"9dd6b81f.8e0e5","type":"set","name":"set tmp.dhcpEnabled.boolean=true","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"true\" />\n","comments":"","x":1743.4247512817383,"y":1085.365159034729,"z":"904f855.2f5e8f8","wires":[]},{"id":"c7ed8c75.f11108","type":"switchNode","name":"switch: PRELOAD dhcp-enabled","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-enabled`\">","comments":"","outputs":1,"x":1235.4247512817383,"y":1084.8713846206665,"z":"904f855.2f5e8f8","wires":[["19d4b935.0a36c7","854d9609.d675e"]]},{"id":"19d4b935.0a36c7","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1492.6470947265625,"y":1085.0937051773071,"z":"904f855.2f5e8f8","wires":[["9dd6b81f.8e0e5"]]},{"id":"854d9609.d675e","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1492.5517654418945,"y":1126.9349265098572,"z":"904f855.2f5e8f8","wires":[["8bb52697.fd8018"]]},{"id":"e7ad3a60.ccf05","type":"switchNode","name":"switch: PRELOAD addr-from-start","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].addr-from-start`\">","comments":"","outputs":1,"x":1241.675163269043,"y":1241.6893377304077,"z":"904f855.2f5e8f8","wires":[["5ececd95.cb981c","c803a7a5.ad9e38","4d4043ed.bbe3f4"]]},{"id":"5ececd95.cb981c","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1495.8974914550781,"y":1199.6259698867798,"z":"904f855.2f5e8f8","wires":[["c8aeb545.ec2978"]]},{"id":"c803a7a5.ad9e38","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1495.8021545410156,"y":1284.181456565857,"z":"904f855.2f5e8f8","wires":[["7c696201.cb9d54"]]},{"id":"7c696201.cb9d54","type":"set","name":"set tmp.addrFromStart.boolean=false","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"false\" />\n","comments":"","x":1741.5004806518555,"y":1284.6751956939697,"z":"904f855.2f5e8f8","wires":[]},{"id":"c8aeb545.ec2978","type":"set","name":"set tmp.addrFromStart.boolean=true","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"true\" />\n","comments":"","x":1746.675148010254,"y":1199.8974237442017,"z":"904f855.2f5e8f8","wires":[]},{"id":"4d4043ed.bbe3f4","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1494.9608612060547,"y":1241.260908126831,"z":"904f855.2f5e8f8","wires":[["c8aeb545.ec2978"]]},{"id":"24c96fdf.aba0e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1479.1072463989258,"y":1550.4287095069885,"z":"904f855.2f5e8f8","wires":[["393be07f.91e3"]]},{"id":"ca97996a.85c7f","type":"switchNode","name":"switch test: PRELOAD gateway-address","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`\">","comments":"","outputs":1,"x":1255.5000762939453,"y":1398.231457233429,"z":"904f855.2f5e8f8","wires":[["95fd72a7.7afd08"]]},{"id":"95fd72a7.7afd08","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1495.9999828338623,"y":1398.2314133644104,"z":"904f855.2f5e8f8","wires":[["6e1d3211.0bee04"]]},{"id":"a1773e6f.77a1e","type":"GenericXML","name":"Execute: generate gateway-address","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getGatewayAddress\">\n\t<parameter name=\"ipAddress\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].start-address`\" />\n\t<parameter name=\"ipVersion\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].ip-version`\" />\n\t<parameter name=\"subnet\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`\" />\n\t<parameter name=\"ctxVariable\" value=\"tmp.return.generate.gateway-address\" />","comments":"","outputs":1,"x":1921.2499980926514,"y":1397.981420993805,"z":"904f855.2f5e8f8","wires":[["cbbe4a5f.1e968"]]},{"id":"6e1d3211.0bee04","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1646.7499904632568,"y":1398.2314238548279,"z":"904f855.2f5e8f8","wires":[["a1773e6f.77a1e","bd82e01.b8a6ea"]]},{"id":"75e2306b.a71d6","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`\" />\n","comments":"","x":1205.9999980926514,"y":1343.4814200401306,"z":"904f855.2f5e8f8","wires":[]},{"id":"bd82e01.b8a6ea","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$tmp.return.generate.gateway-address`\" />\n","comments":"","x":1892.7499980926514,"y":1458.9814229011536,"z":"904f855.2f5e8f8","wires":[]},{"id":"393be07f.91e3","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1678.5000743865967,"y":1550.0648274421692,"z":"904f855.2f5e8f8","wires":[["2e1587e6.6e5ca","10c680f7.aeae4f"]]},{"id":"2e1587e6.6e5ca","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving subnet in AnAI where subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`\"/>","comments":"","x":1917.599615097046,"y":1549.8147263526917,"z":"904f855.2f5e8f8","wires":[]},{"id":"3239fd87.45740a","type":"call","name":"call: generate-subnets-subnet-id","xml":"<call module=\"VNF-API\" rpc=\"generate-subnets-subnet-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":1230.614938735962,"y":1498.088562488556,"z":"904f855.2f5e8f8","wires":[["e7942995.6198b8"]]},{"id":"e7942995.6198b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1480.3649234771729,"y":1498.3385529518127,"z":"904f855.2f5e8f8","wires":[["10c680f7.aeae4f"]]},{"id":"fe762cff.ee4918","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid\" >\n<!-- Create subnet object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.return.generate-subnets-subnet-id.uuid`\" />\n<parameter name=\"subnet-name\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].subnet-name`\" />\n<parameter name=\"subnet-role\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].subnet-role`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-start-address`\" />\n<parameter name=\"dhcp-end\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-end-address`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.dhcpEnabled.boolean`\" />\n<parameter name=\"ip-assignment-direction\" value=\"`$tmp.addrFromStart.boolean`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":1229.490972518921,"y":1550.0802063941956,"z":"904f855.2f5e8f8","wires":[["24c96fdf.aba0e","49a6098a.a5c0b"]]},{"id":"49a6098a.a5c0b","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1486.4244785308838,"y":1597.1480813026428,"z":"904f855.2f5e8f8","wires":[["393be07f.91e3"]]},{"id":"cbbe4a5f.1e968","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2167.5434856414795,"y":1398.5052399635315,"z":"904f855.2f5e8f8","wires":[["10c680f7.aeae4f"]]},{"id":"45e19eff.8708","type":"switchNode","name":"switch host-routes_length","xml":"<switch test='`$preload-data.preload-network-topology-information.host-routes_length`'>\n","comments":"","outputs":1,"x":1224.107276916504,"y":1643.4287152290344,"z":"904f855.2f5e8f8","wires":[["c81c1b79.1b13c"]]},{"id":"c81c1b79.1b13c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1464.678695678711,"y":1643.0001244544983,"z":"904f855.2f5e8f8","wires":[["b6cc66.b6850b98"]]},{"id":"b6cc66.b6850b98","type":"set","name":"set host-routes_length to 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.host-routes_length' value='0' />\n","comments":"","x":1691.821662902832,"y":1643.4285683631897,"z":"904f855.2f5e8f8","wires":[]},{"id":"77358c60.78d16c","type":"call","name":"call: generate-host-routes-host-route-id","xml":"<call module=\"GENERIC-RESOURCE-API\" rpc=\"generate-host-routes-host-route-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":1810.0160446166992,"y":1766.4289870262146,"z":"904f855.2f5e8f8","wires":[["413368b1.e1c6c"]]},{"id":"413368b1.e1c6c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2074.76602935791,"y":1766.6789774894714,"z":"904f855.2f5e8f8","wires":[["10c680f7.aeae4f"]]},{"id":"18e3cafb.f22a2d","type":"for","name":"for loop h - PRELOAD host-routes","xml":"<for index=\"h\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.host-routes_length`\">\n","comments":"","outputs":1,"x":1229.7225723266602,"y":1769.5429739952087,"z":"904f855.2f5e8f8","wires":[["6f86d096.5b7ca"]]},{"id":"6f86d096.5b7ca","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1509.9606628417969,"y":1765.9713797569275,"z":"904f855.2f5e8f8","wires":[["77358c60.78d16c","d816e769.eaa37","f9fba56f.8a299"]]},{"id":"d816e769.eaa37","type":"set","name":"set tmp.local.subnet-id","xml":"<set>\n<parameter name=\"tmp.local.subnet-id\" value=\"`$tmp.return.generate-subnets-subnet-id.uuid`\" />\n","comments":"","x":1759.960563659668,"y":1702.971405506134,"z":"904f855.2f5e8f8","wires":[]},{"id":"dd067dea.d7e48","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2079.1073322296143,"y":1824.4288630485535,"z":"904f855.2f5e8f8","wires":[["b769acb0.ddfd88"]]},{"id":"b769acb0.ddfd88","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":2278.500160217285,"y":1824.0649809837341,"z":"904f855.2f5e8f8","wires":[["d96697d3.24a928","10c680f7.aeae4f"]]},{"id":"d96697d3.24a928","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2487.099769592285,"y":1823.8146152496338,"z":"904f855.2f5e8f8","wires":[]},{"id":"f9fba56f.8a299","type":"save","name":"save AnAI - host-routes.host-route","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"host-route\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid  \n\t\t\tAND host-route.host-route-id = $tmp.return.generate-host-routes-host-route-id.uuid\" >\n<!-- Create host-route object -->\n<parameter name=\"host-route-id\" value=\"`$tmp.return.generate-host-routes-host-route-id.uuid`\" />\n<parameter name=\"route-prefix\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].route-prefix`\" />\n<parameter name=\"next-hop\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].next-hop`\" />","comments":"","outputs":1,"x":1803.4910583496094,"y":1824.0803599357605,"z":"904f855.2f5e8f8","wires":[["dd067dea.d7e48","25e6c104.427846"]]},{"id":"25e6c104.427846","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2087.6744651794434,"y":1872.3981447219849,"z":"904f855.2f5e8f8","wires":[["b769acb0.ddfd88"]]},{"id":"e3f5293b.03dee","type":"switchNode","name":"switch service-id","xml":"<switch test='`$tmp.l3-network.service-id`'>\n","comments":"","outputs":1,"x":680.9287490844727,"y":848.4644546508789,"z":"904f855.2f5e8f8","wires":[["3e11851a.61719a","be4f6ec9.f5675"]]},{"id":"3e11851a.61719a","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":869.9287490844727,"y":827.4644546508789,"z":"904f855.2f5e8f8","wires":[["f1b4df9f.d8d0e"]]},{"id":"be4f6ec9.f5675","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":844.9287490844727,"y":862.4644546508789,"z":"904f855.2f5e8f8","wires":[["16662914.1e81f7"]]},{"id":"f1b4df9f.d8d0e","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.network-instance-name`\" />\n<parameter name='network-type' value=\"`$tmp.l3-network.network-type`\" />\n<parameter name='network-role' value=\"`$tmp.l3-network.network-role`\" />\n<parameter name='network-technology' value=\"`$network-model.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn-boolean`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name=\"network-role-instance\" value=\"0\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n<parameter name=\"physical-network-name\" value=\"`$preload-data.preload-network-topology-information.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$preload-data.preload-network-topology-information.is-provider-network`\" />\n<parameter name=\"is-shared-network\" value=\"`$preload-data.preload-network-topology-information.is-shared-network`\" />\n<parameter name=\"is-external-network\" value=\"`$preload-data.preload-network-topology-information.is-external-network`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n","comments":"","outputs":1,"x":1089.6786575317383,"y":829.9645071029663,"z":"904f855.2f5e8f8","wires":[["ae985daf.cc194","4833e133.eaab"]]},{"id":"d792a084.fab23","type":"save","name":"save relationship: tenant and cloud-region","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\tforce=\"true\" \n\tlocal-only=\"false\">\n\t<!-- create relationship-list -->\n\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"tenant\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.cloud-region.cloud-owner`\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"tenant.tenant-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n\t<parameter name=\"relationship-list.relationship[1].related-to\" value=\"cloud-region\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-value\" value=\"`$prop.cloud-region.cloud-owner`\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t\n\t","comments":"","outputs":1,"x":741.3571853637695,"y":2109.179002761841,"z":"904f855.2f5e8f8","wires":[["16175e24.e2a11a","34c93d4a.ebf89a"]]},{"id":"16175e24.e2a11a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":989.3571891784668,"y":2109.1789932250977,"z":"904f855.2f5e8f8","wires":[["71f7c6e5.f11fd"]]},{"id":"71f7c6e5.f11fd","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1177.7500171661377,"y":2108.8151111602783,"z":"904f855.2f5e8f8","wires":[["28674d86.03d222","10c680f7.aeae4f"]]},{"id":"28674d86.03d222","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1387.7381744384766,"y":2106.628755569458,"z":"904f855.2f5e8f8","wires":[]},{"id":"34c93d4a.ebf89a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":997.3650321960449,"y":2151.012315750122,"z":"904f855.2f5e8f8","wires":[["71f7c6e5.f11fd"]]},{"id":"cc0b4bd9.424d18","type":"set","name":"set l3-network","xml":"<set>\n<parameter name='tmp.l3-network.network-name' value=\"`$tmp.network-instance-name`\" />\n<parameter name='tmp.l3-network.network-type' value=\"`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`\" />\n<parameter name=\"tmp.l3-network.physical-network-name\" value=\"`$preload-data.preload-network-topology-information.physical-network-name`\" />\n<parameter name=\"tmp.l3-network.is-provider-network\" value=\"`$preload-data.preload-network-topology-information.is-provider-network`\" />\n<parameter name=\"tmp.l3-network.is-shared-network\" value=\"`$preload-data.preload-network-topology-information.is-shared-network`\" />\n<parameter name=\"tmp.l3-network.is-external-network\" value=\"`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-type`\" />\n<parameter name='tmp.l3-network.network-role' value=\"`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-role`\" />\n<parameter name='tmp.l3-network.network-technology' value=\"`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-technology`\" />\n<parameter name='tmp.l3-network.is-bound-to-vpn' value=\"`$network-model.is-bound-to-vpn`\" />\n<parameter name=\"tmp.l3-network.tenant-id\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name=\"tmp.l3-network.network-role-instance\" value=\"0\" />\n<parameter name='tmp.l3-network.orchestration-status' value=\"PendingCreate\" />\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='tmp.l3-network.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.l3-network.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.l3-network.service-id' value=\"`$service-data.service-information.service-id`\" />\n<parameter name='tmp.l3-network.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $tmp.l3-network.network-id\n + '/network-data/network-topology/'` \" />\n","comments":"","x":677.9287719726562,"y":758.2145385742188,"z":"904f855.2f5e8f8","wires":[]},{"id":"fbeedbdb.9915b","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n","comments":"","x":691.4642944335938,"y":390.00001096725464,"z":"904f855.2f5e8f8","wires":[]},{"id":"9af57339.b5c73","type":"set","name":"set onap-model-info","xml":"<set>\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='s-onap-model-information.model-invariant-uuid' value='`$service-model.invariant-uuid`' />\n<parameter name='s-onap-model-information.model-version' value='`$service-model.version`' />\n<parameter name='s-onap-model-information.model-uuid' value='`$service-model.service-uuid`' />\n<parameter name='s-onap-model-information.model-name' value='`$service-model.name`' />\n<parameter name='n-onap-model-information.model-invariant-uuid' value='`$network-model.invariant-uuid`' />\n<parameter name='n-onap-model-information.model-version' value='`$network-model.version`' />\n<parameter name='n-onap-model-information.model-uuid' value='`$network-model.uuid`' />\n<parameter name='n-onap-model-information.model-name' value='`$network-model.name`' />","comments":"","x":675.6347427368164,"y":420.0634126663208,"z":"904f855.2f5e8f8","wires":[]},{"id":"cae6b67f.073328","type":"set","name":"set onap-model-info with mysql data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.ecomp-model-information.' value=\"`$s-onap-model-information.`\" />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.ecomp-model-information.' value=\"`$n-onap-model-information.`\" />\n","comments":"","x":724.8847312927246,"y":450.563410282135,"z":"904f855.2f5e8f8","wires":[]},{"id":"ad534b95.44473","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path'\n value=\"`$tmp.l3-network.self-link`\"/>\n \n","comments":"","x":660.0010604858398,"y":3678.7512464523315,"z":"904f855.2f5e8f8","wires":[]},{"id":"1fa70774.12d5c1","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$tmp.l3-network.network-id`' />\n","comments":"","x":656.429557800293,"y":3635.036647796631,"z":"904f855.2f5e8f8","wires":[]},{"id":"27110277.784596","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":656.0010375976562,"y":3809.7509765625,"z":"904f855.2f5e8f8","wires":[]},{"id":"cd67760d.3b296","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid\">","comments":"","outputs":1,"x":2557.2512741088867,"y":3742.7511587142944,"z":"904f855.2f5e8f8","wires":[[]]},{"id":"e1d80a1a.7969e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error writing to l3-netework - ' + $tmp.error-message`\"/>","comments":"","x":2544.188606262207,"y":3785.947202682495,"z":"904f855.2f5e8f8","wires":[]},{"id":"10c680f7.aeae4f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2367.427536010742,"y":3743.0027475357056,"z":"904f855.2f5e8f8","wires":[["cd67760d.3b296","e1d80a1a.7969e8"]]},{"id":"2d9b4f3.65a3a3","type":"set","name":"set tmp.local.network-id","xml":"<set>\n<parameter name=\"tmp.local.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n","comments":"","x":1204.2101726531982,"y":1448.8384919166565,"z":"904f855.2f5e8f8","wires":[]},{"id":"6fca91a9.21355","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\n<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`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":701.2500610351562,"y":3725.2502098083496,"z":"904f855.2f5e8f8","wires":[]},{"id":"1375dc08.d1881c","type":"for","name":"for loop i - PRELOAD vpn-bindings","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.vpn-bindings_length`\">\n","comments":"","outputs":1,"x":731.001091003418,"y":2297.751326560974,"z":"904f855.2f5e8f8","wires":[["574d1c0a.691b24"]]},{"id":"574d1c0a.691b24","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":972.7788696289062,"y":2298.0013284683228,"z":"904f855.2f5e8f8","wires":[["fa2bbaf6.dd3228","200741d1.dc8a7e","a65f567d.8acfe8"]]},{"id":"41a8cddd.36fdfc","type":"save","name":"save relationship: vpn_bindings","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\tforce=\"true\" \n\tlocal-only=\"false\">\n\t\n\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"vpn-binding\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"vpn-binding.vpn-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.vpn-binding-id`\" />","comments":"","outputs":1,"x":1677.1637802124023,"y":2575.8306770324707,"z":"904f855.2f5e8f8","wires":[["8d07f24a.1fe3a8","4a84f29d.fed7ac","ea15ac27.f9401"]]},{"id":"e618d649.0c64a8","type":"switchNode","name":"switch ... PRELOAD vpn-bindings[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.vpn-bindings_length`\">","comments":"","outputs":1,"x":731.3785341050889,"y":2246.3326400121055,"z":"904f855.2f5e8f8","wires":[["74b70b65.70671c"]]},{"id":"74b70b65.70671c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":951.8229844835068,"y":2246.1103757222495,"z":"904f855.2f5e8f8","wires":[["73ec0d7b.d3f2a4"]]},{"id":"73ec0d7b.d3f2a4","type":"set","name":"set vpn-bindings[] = 0","xml":"<set>\n<parameter name=\"preload-data.preload-network-topology-information.vpn-bindings_length\" value=\"0\" />\n","comments":"","x":1146.3785934448242,"y":2246.110396385193,"z":"904f855.2f5e8f8","wires":[]},{"id":"ac65277d.2e0e68","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1915.2632484436035,"y":2481.6006326675415,"z":"904f855.2f5e8f8","wires":[["69a18f95.bb6bb"]]},{"id":"d2cfe57b.a35e58","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1922.7632522583008,"y":2434.100631713867,"z":"904f855.2f5e8f8","wires":[["69a18f95.bb6bb"]]},{"id":"69a18f95.bb6bb","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2098.263252258301,"y":2481.350633621216,"z":"904f855.2f5e8f8","wires":[["d6496602.bf5e48","10c680f7.aeae4f"]]},{"id":"d6496602.bf5e48","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2320.36279296875,"y":2481.1005325317383,"z":"904f855.2f5e8f8","wires":[]},{"id":"fa2bbaf6.dd3228","type":"switchNode","name":"switch: PRELOAD vpn-binding-id","xml":"<switch test=\"`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`\">","comments":"","outputs":1,"x":1251.263256072998,"y":2344.850570678711,"z":"904f855.2f5e8f8","wires":[["30879991.8d2a86"]]},{"id":"30879991.8d2a86","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1464.7632637023926,"y":2344.6005716323853,"z":"904f855.2f5e8f8","wires":[["bcd7dc4e.537ee8"]]},{"id":"bcd7dc4e.537ee8","type":"set","name":"set tmp.vpn-binding-id","xml":"<set>\n<parameter name=\"tmp.vpn-binding-id\" value=\"`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`\" />\n","comments":"","x":1647.2632637023926,"y":2344.6005725860596,"z":"904f855.2f5e8f8","wires":[]},{"id":"14075edf.8f17f1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1918.2632484436035,"y":2389.350631713867,"z":"904f855.2f5e8f8","wires":[["411a0ec1.9a0e68"]]},{"id":"8d07f24a.1fe3a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1902.2366561889648,"y":2575.306263923645,"z":"904f855.2f5e8f8","wires":[["ec08a067.d71d18"]]},{"id":"ec08a067.d71d18","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2090.129535675049,"y":2574.942371368408,"z":"904f855.2f5e8f8","wires":[["417f4c1f.354f84","10c680f7.aeae4f"]]},{"id":"417f4c1f.354f84","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2303.229076385498,"y":2575.6922702789307,"z":"904f855.2f5e8f8","wires":[]},{"id":"200741d1.dc8a7e","type":"switchNode","name":"switch: tmp.vpn-binding-id != NULL","xml":"<switch test=\"`$tmp.vpn-binding-id != ''`\">","comments":"","outputs":1,"x":1000.2633056640625,"y":2403.26708984375,"z":"904f855.2f5e8f8","wires":[["ce353cf6.29839"]]},{"id":"ce353cf6.29839","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1234.01318359375,"y":2403.26708984375,"z":"904f855.2f5e8f8","wires":[["d5c07d00.bbbf9"]]},{"id":"a65f567d.8acfe8","type":"set","name":"unset tmp.vpn-binding-id","xml":"<set>\n<parameter name=\"tmp.vpn-binding-id\" value=\"\" />\n","comments":"","x":1225.3385620117188,"y":2298.544904232025,"z":"904f855.2f5e8f8","wires":[]},{"id":"4a84f29d.fed7ac","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1905.8941268920898,"y":2662.16392993927,"z":"904f855.2f5e8f8","wires":[["e2bb2c87.3d244"]]},{"id":"e2bb2c87.3d244","type":"set","name":"set tmp.is-bound-to-vpn","xml":"<set>\n<parameter name=\"tmp.is-bound-to-vpn\" value=\"true\" />\n","comments":"","x":2096.39412689209,"y":2662.16392993927,"z":"904f855.2f5e8f8","wires":[]},{"id":"ea15ac27.f9401","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1910.3225936889648,"y":2617.9575357437134,"z":"904f855.2f5e8f8","wires":[["ec08a067.d71d18"]]},{"id":"411a0ec1.9a0e68","type":"switchNode","name":"switch: tmp.AnAI.vpn-binding.vpn-id","xml":"<switch test=\"`$tmp.AnAI.vpn-binding.vpn-id`\" >","comments":"","outputs":1,"x":2134.2711181640625,"y":2388.850341796875,"z":"904f855.2f5e8f8","wires":[["c1c55f5c.7e6848"]]},{"id":"c1c55f5c.7e6848","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2376.0211181640625,"y":2389.3504695892334,"z":"904f855.2f5e8f8","wires":[["9a952383.71055"]]},{"id":"9a952383.71055","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2555.1337890625,"y":2389.750732421875,"z":"904f855.2f5e8f8","wires":[["6f76fb55.547514","10c680f7.aeae4f"]]},{"id":"6f76fb55.547514","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'Failed to query vpn-bindings from AnAI where vpn-binding-id  = ' + $tmp.vpn-binding-id + '.'`\"/>","comments":"","x":2770.633758544922,"y":2389.7507152557373,"z":"904f855.2f5e8f8","wires":[]},{"id":"98f1afcd.7f17e","type":"switchNode","name":"switch ... PRELOAD network-policy[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.network-policy_length`\">","comments":"","outputs":1,"x":739.7509689331055,"y":2681.50096988678,"z":"904f855.2f5e8f8","wires":[["fe947295.cc353"]]},{"id":"fe947295.cc353","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":969.1954193115234,"y":2681.278705596924,"z":"904f855.2f5e8f8","wires":[["7d31c197.0306e8"]]},{"id":"7d31c197.0306e8","type":"set","name":"set network-policy[] = 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.network-policy_length' value='0' />\n","comments":"","x":1163.7510282728408,"y":2681.278726259867,"z":"904f855.2f5e8f8","wires":[]},{"id":"31fdd3c0.8004c4","type":"for","name":"for loop i - PRELOAD network-policy","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.network-policy_length`\">\n","comments":"","outputs":1,"x":739.1082305908203,"y":2727.0723609924316,"z":"904f855.2f5e8f8","wires":[["816cabff.5b8288"]]},{"id":"816cabff.5b8288","type":"switchNode","name":"switch: PRELOAD network-policy-fqdn != NULL","xml":"<switch test=\"`$preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn != ''`\">","comments":"","outputs":1,"x":1095.3704893324111,"y":2727.4216190973916,"z":"904f855.2f5e8f8","wires":[["6c21593a.79f8c8"]]},{"id":"6c21593a.79f8c8","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1361.1204893324111,"y":2727.6716190973916,"z":"904f855.2f5e8f8","wires":[["ebc6ee05.37034"]]},{"id":"ebc6ee05.37034","type":"save","name":"query AnAI - network-policy","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-fqdn = $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.AnAI.network-policy\">","comments":"","outputs":1,"x":1570.3704931471084,"y":2727.6716190973916,"z":"904f855.2f5e8f8","wires":[["fd584772.5251c8","107c735d.16382d","6dd4ddb8.3db9bc"]]},{"id":"fd584772.5251c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1778.3705770704482,"y":2768.671628634135,"z":"904f855.2f5e8f8","wires":[["5a78ea1e.a9aff4"]]},{"id":"107c735d.16382d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1783.8705808851455,"y":2727.1716276804605,"z":"904f855.2f5e8f8","wires":[["5a78ea1e.a9aff4"]]},{"id":"5a78ea1e.a9aff4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1948.3705808851455,"y":2768.421629587809,"z":"904f855.2f5e8f8","wires":[["e4f69cc5.48bbb","10c680f7.aeae4f"]]},{"id":"e4f69cc5.48bbb","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2157.4701215955947,"y":2768.1715284983316,"z":"904f855.2f5e8f8","wires":[]},{"id":"6dd4ddb8.3db9bc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1780.9017851087783,"y":2813.0007015864053,"z":"904f855.2f5e8f8","wires":[["2573614f.5ccd5e"]]},{"id":"2573614f.5ccd5e","type":"switchNode","name":"switch: tmp.AnAI.network-policy.network-policy-id","xml":"<switch test=\"`$tmp.AnAI.network-policy.network-policy-id`\" >","comments":"","outputs":1,"x":2058.981056213379,"y":2812.5005588531494,"z":"904f855.2f5e8f8","wires":[["d95b3655.f3c99","3bf15b8c.2b4dec"]]},{"id":"d95b3655.f3c99","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2332.731056213379,"y":2812.0005588531494,"z":"904f855.2f5e8f8","wires":[["a6733916.0987f"]]},{"id":"3bf15b8c.2b4dec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2332.223213195801,"y":2859.250657081604,"z":"904f855.2f5e8f8","wires":[["c4ba6c4d.50611"]]},{"id":"ae3f6cc0.f931c","type":"switchNode","name":"switch ... PRELOAD route-table-reference[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.route-table-reference_length`\">","comments":"","outputs":1,"x":757.4017868041992,"y":2880.0006036758423,"z":"904f855.2f5e8f8","wires":[["39c5aea5.9800ea"]]},{"id":"39c5aea5.9800ea","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1012.8462371826172,"y":2879.7783393859863,"z":"904f855.2f5e8f8","wires":[["ac917dd3.d158b"]]},{"id":"ac917dd3.d158b","type":"set","name":"set route-table-reference[] = 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.route-table-reference_length' value='0' />\n","comments":"","x":1217.1519088745117,"y":2878.528371810913,"z":"904f855.2f5e8f8","wires":[]},{"id":"c33e48fe.f40f2","type":"for","name":"for loop i - PRELOAD route-table-reference","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.route-table-reference_length`\">\n","comments":"","outputs":1,"x":755.7590484619141,"y":2927.571994781494,"z":"904f855.2f5e8f8","wires":[["1d90a206.a94ee6"]]},{"id":"1d90a206.a94ee6","type":"switchNode","name":"switch: PRELOAD route-table-reference-fqdn != NULL","xml":"<switch test=\"`$preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn != ''`\">","comments":"","outputs":1,"x":1141.354637145996,"y":2927.2545766830444,"z":"904f855.2f5e8f8","wires":[["d931b196.bb13c8"]]},{"id":"d931b196.bb13c8","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1407.104637145996,"y":2927.5045766830444,"z":"904f855.2f5e8f8","wires":[["c0151afe.ccf7d"]]},{"id":"c0151afe.ccf7d","type":"save","name":"query AnAI - route-table-reference","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"route-table-reference\" \n\t\tkey=\"route-table-reference.route-table-reference-fqdn = $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn\" \n\t\tpfx=\"tmp.AnAI.route-table-reference\">","comments":"","outputs":1,"x":1636.3546409606934,"y":2927.5045766830444,"z":"904f855.2f5e8f8","wires":[["1b0d4ab1.0fe45d","da9c4c3f.55e8f8","173ff66c.769472"]]},{"id":"1b0d4ab1.0fe45d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1862.3547248840332,"y":2968.5045862197876,"z":"904f855.2f5e8f8","wires":[["1a466fe2.b5678"]]},{"id":"da9c4c3f.55e8f8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1867.8547286987305,"y":2927.0045852661133,"z":"904f855.2f5e8f8","wires":[["1a466fe2.b5678"]]},{"id":"1a466fe2.b5678","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2032.3547286987305,"y":2968.254587173462,"z":"904f855.2f5e8f8","wires":[["20cd2a36.de0a3e","10c680f7.aeae4f"]]},{"id":"20cd2a36.de0a3e","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2241.4542694091797,"y":2968.0044860839844,"z":"904f855.2f5e8f8","wires":[]},{"id":"173ff66c.769472","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1864.8859329223633,"y":3012.833659172058,"z":"904f855.2f5e8f8","wires":[["2f54d5ed.3e6bf2"]]},{"id":"2f54d5ed.3e6bf2","type":"switchNode","name":"switch: tmp.AnAI.route-table-reference.route-table-reference-id","xml":"<switch test=\"`$tmp.AnAI.route-table-reference.route-table-reference-id`\" >","comments":"","outputs":1,"x":2182.965204026964,"y":3012.3335164388022,"z":"904f855.2f5e8f8","wires":[["a030e283.5654b8","bcbd20c4.9a6c98"]]},{"id":"c4ba6c4d.50611","type":"save","name":"save relationship: network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"network-policy\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"network-policy.network-policy-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.network-policy.network-policy-id`\" />","comments":"","outputs":1,"x":2562.2509689331055,"y":2859.00096988678,"z":"904f855.2f5e8f8","wires":[["a7e93fe1.c4cfa","e5d2edf9.e5817"]]},{"id":"a7e93fe1.c4cfa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2785.323844909668,"y":2858.476556777954,"z":"904f855.2f5e8f8","wires":[["fe22bb02.ebcb9"]]},{"id":"fe22bb02.ebcb9","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2965.216724395752,"y":2858.1126642227173,"z":"904f855.2f5e8f8","wires":[["66d9ed51.cfd7e4","10c680f7.aeae4f"]]},{"id":"66d9ed51.cfd7e4","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":3188.316265106201,"y":2858.8625631332397,"z":"904f855.2f5e8f8","wires":[]},{"id":"e5d2edf9.e5817","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2793.0602968004014,"y":2900.957081158956,"z":"904f855.2f5e8f8","wires":[["fe22bb02.ebcb9"]]},{"id":"a6733916.0987f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2504.3181076049805,"y":2810.9569025039673,"z":"904f855.2f5e8f8","wires":[["c4ae766a.d2c618","10c680f7.aeae4f"]]},{"id":"c4ae766a.d2c618","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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.'`\"/>","comments":"","x":2749.468818664551,"y":2810.45645904541,"z":"904f855.2f5e8f8","wires":[]},{"id":"94618525.84434","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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.'`\"/>","comments":"","x":2934.7509689331055,"y":3001.500725746155,"z":"904f855.2f5e8f8","wires":[]},{"id":"857a389b.9483f","type":"save","name":"save relationship: route-table-reference","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"route-table-reference\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"route-table-reference.route-table-reference-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.route-table-reference.route-table-reference-id`\" />","comments":"","outputs":1,"x":2752.834571838379,"y":3051.0445041656494,"z":"904f855.2f5e8f8","wires":[["640cf074.779e4","f83c3398.a3e3c8"]]},{"id":"640cf074.779e4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3007.9074478149414,"y":3050.5200910568237,"z":"904f855.2f5e8f8","wires":[["4f94a64b.a935a8"]]},{"id":"4f94a64b.a935a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3187.8003273010254,"y":3050.156198501587,"z":"904f855.2f5e8f8","wires":[["320aaa6d.7cc736","10c680f7.aeae4f"]]},{"id":"320aaa6d.7cc736","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":3411.8998947143555,"y":3049.9061212539673,"z":"904f855.2f5e8f8","wires":[]},{"id":"f83c3398.a3e3c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3015.643899705675,"y":3093.0006154378257,"z":"904f855.2f5e8f8","wires":[["4f94a64b.a935a8"]]},{"id":"a030e283.5654b8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2519.901710510254,"y":3003.500436782837,"z":"904f855.2f5e8f8","wires":[["9c548e59.9b55e"]]},{"id":"9c548e59.9b55e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2684.901710510254,"y":3003.000436782837,"z":"904f855.2f5e8f8","wires":[["94618525.84434","10c680f7.aeae4f"]]},{"id":"bcbd20c4.9a6c98","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2519.393867492676,"y":3050.7505350112915,"z":"904f855.2f5e8f8","wires":[["857a389b.9483f"]]},{"id":"4ed44f0b.2faec8","type":"save","name":"update AnAI - l3-network","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"is-bound-to-vpn\" value=\"true\" />","comments":"","outputs":1,"x":1147.8759689331055,"y":3049.000725746155,"z":"904f855.2f5e8f8","wires":[["b5e3d12a.6f35a8","fcaa4883.a338b8"]]},{"id":"b5e3d12a.6f35a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1344.1591262817383,"y":3049.016043663025,"z":"904f855.2f5e8f8","wires":[["f4cb6f65.8fc2b"]]},{"id":"1edbf6d.7460609","type":"switchNode","name":"switch ... tmp.is-bound-to-vpn","xml":"<switch test=\"`$tmp.is-bound-to-vpn`\">","comments":"","outputs":1,"x":710.0188674926758,"y":3049.1436138153076,"z":"904f855.2f5e8f8","wires":[["b8c162bf.bfffb8"]]},{"id":"b8c162bf.bfffb8","type":"outcome","name":"true","xml":"<outcome value=\"true\">","comments":"","outputs":1,"x":929.4633178710938,"y":3048.9213495254517,"z":"904f855.2f5e8f8","wires":[["4ed44f0b.2faec8"]]},{"id":"f4cb6f65.8fc2b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1556.2688064575195,"y":3049.393569946289,"z":"904f855.2f5e8f8","wires":[["9f9ea316.b821c8","10c680f7.aeae4f"]]},{"id":"9f9ea316.b821c8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1774.7687911987305,"y":3049.14354801178,"z":"904f855.2f5e8f8","wires":[]},{"id":"fcaa4883.a338b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1351.6457595825195,"y":3090.115693092346,"z":"904f855.2f5e8f8","wires":[["f4cb6f65.8fc2b"]]},{"id":"c9e16987.b4c4a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":990.3972854614258,"y":3199.8412466049194,"z":"904f855.2f5e8f8","wires":[["e48c4af.29ae6b8"]]},{"id":"e48c4af.29ae6b8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1170.2901649475098,"y":3199.4773540496826,"z":"904f855.2f5e8f8","wires":[["815fdd3b.9aa418","10c680f7.aeae4f"]]},{"id":"815fdd3b.9aa418","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1408.3897323608398,"y":3199.227276802063,"z":"904f855.2f5e8f8","wires":[]},{"id":"27c04aed.76d49e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":998.1337373521592,"y":3242.321770985922,"z":"904f855.2f5e8f8","wires":[["e48c4af.29ae6b8"]]},{"id":"d7a7e7e8.a8b248","type":"save","name":"save relationship: service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"customer.global-customer-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.service-information.global-customer-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"service-subscription.service-type\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$service-data.service-information.subscription-service-type`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"service-instance.service-instance-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$service-data.service-information.service-instance-id`\" />","comments":"","outputs":1,"x":733.3760604858398,"y":3198.250744819641,"z":"904f855.2f5e8f8","wires":[["c9e16987.b4c4a8","27c04aed.76d49e"]]},{"id":"2475aec8.3301ca","type":"set","name":"set network in service-data","xml":"<set>\n<parameter name=\"service-data.networks.network[$nidx].network-id\" value='`$tmp.l3-network.network-id`' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-information.from-preload\" value='true' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-topology.\" value='$network-topology.' />\n<parameter name=\"service-data.networks.network_length\" value='`$nidx_len`' />\n\n","comments":"","x":719.7509689331055,"y":3486.500725746155,"z":"904f855.2f5e8f8","wires":[]},{"id":"6820b570.d2fcf4","type":"set","name":"set network-topology-identifier-structure in service-data","xml":"<set>\n<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\n<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\n<parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\n<parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-parameters.`' />\n<parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />","comments":"","x":803.5009498596191,"y":3379.358116298914,"z":"904f855.2f5e8f8","wires":[]},{"id":"9d88f2e8.48f3e","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":672.6088180541992,"y":319.00167179107666,"z":"904f855.2f5e8f8","wires":[["fc452003.28b968","f6026195.195f2"]]},{"id":"fc452003.28b968","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":861.1802024841309,"y":317.573055267334,"z":"904f855.2f5e8f8","wires":[["e37c065b.540c88"]]},{"id":"e37c065b.540c88","type":"switchNode","name":"switch service-data.networks_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1110.4062957763672,"y":318.76397228240967,"z":"904f855.2f5e8f8","wires":[["e663db13.5a4698","c5159555.fdb15"]]},{"id":"e663db13.5a4698","type":"other","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1403.501618385315,"y":317.5732808113098,"z":"904f855.2f5e8f8","wires":[["25d54d17.2b7a32"]]},{"id":"25d54d17.2b7a32","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='0' />\n<parameter name='nidx_len' value='1'/>\n","comments":"","x":1583.5016603469849,"y":315.1446967124939,"z":"904f855.2f5e8f8","wires":[]},{"id":"c5159555.fdb15","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1406.3587808609009,"y":343.2875533103943,"z":"904f855.2f5e8f8","wires":[["92920675.a1a7e"]]},{"id":"92920675.a1a7e","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$service-data.networks.network_length`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length + 1`' />\n","comments":"","x":1584.9302110671997,"y":352.1447539329529,"z":"904f855.2f5e8f8","wires":[]},{"id":"f6026195.195f2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":862.6088371276855,"y":356.14452743530273,"z":"904f855.2f5e8f8","wires":[["27be96dc.4200d2"]]},{"id":"27be96dc.4200d2","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$tmp.nidx`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length`' />\n","comments":"","x":1025.4659614562988,"y":356.1445531845093,"z":"904f855.2f5e8f8","wires":[]},{"id":"75c470c.1b64c1","type":"execute","name":"execute printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/lmr-nto.log' />","comments":"","outputs":1,"x":676.75,"y":605,"z":"904f855.2f5e8f8","wires":[[]]},{"id":"d03a4655.11876","type":"execute","name":"execute printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/lmr-nto2.log' />","comments":"","outputs":1,"x":694.75,"y":3528.5,"z":"904f855.2f5e8f8","wires":[[]]},{"id":"250c1ed0.7ac68a","type":"set","name":"set network-information in service-data","xml":"<set>\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-information.network-id\" value='`$tmp.l3-network.network-id`' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-information.from-preload\" value='true' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-information.network-type\" value='`$tmp.l3-network.network-type`' />\n\n","comments":"","x":751,"y":806.25,"z":"904f855.2f5e8f8","wires":[]},{"id":"7d4ea1ca.77ea4","type":"save","name":"query AnAI - vpn-bindings","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vpn-binding\" \n\t\tkey=\"vpn-binding.vpn-id = $tmp.vpn-binding-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.AnAI.vpn-binding\">","comments":"","outputs":1,"x":1706,"y":2403.25,"z":"904f855.2f5e8f8","wires":[["14075edf.8f17f1","d2cfe57b.a35e58","ac65277d.2e0e68"]]},{"id":"d5c07d00.bbbf9","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1463.5,"y":2403.5,"z":"904f855.2f5e8f8","wires":[["7d4ea1ca.77ea4","41a8cddd.36fdfc"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.json
new file mode 100755 (executable)
index 0000000..22d17e6
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"67a53f15.ab9b6","type":"dgstart","name":"DGSTART","outputs":1,"x":133.57701110839844,"y":62.1484432220459,"z":"d5178f42.44976","wires":[["b0d5fc31.8c038"]]},{"id":"b0d5fc31.8c038","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":290.4341335296631,"y":175.6246566772461,"z":"d5178f42.44976","wires":[["366ff52e.33c5ca"]]},{"id":"366ff52e.33c5ca","type":"method","name":"network-topology-operation-assign-vlantagging-instancegroup","xml":"<method rpc='network-topology-operation-assign-vlantagging-instancegroup' mode='sync'>\n","comments":"","outputs":1,"x":336.2080764770508,"y":279.27935695648193,"z":"d5178f42.44976","wires":[["830a3a63.0a3188"]]},{"id":"23048cc0.43a9d4","type":"comment","name":"Called from assign when network instance group passed in from mso","info":"","comments":"","x":368.71986389160156,"y":139.95797157287598,"z":"d5178f42.44976","wires":[]},{"id":"830a3a63.0a3188","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":235.86273193359375,"y":576.67236328125,"z":"d5178f42.44976","wires":[["a3dcfb29.be3be8","44bed9f5.f8a198","6b6b467e.e2b328","6e7beecb.c5df7","a8edbe94.39dac","d4e2ddfb.452e","352b0634.a770ea","c0d1166f.f33bd","3e6da276.1b9876","39ea7531.083dba","985b6687.301738","b1ce3134.3e591","e090256e.e635b8","22e7595d.96a916","93ad9038.590b3","b93d2eef.37f8c","58f3035b.c67d9c","c8f94428.c0f5e8","85da8119.1634e","f05d6459.4c0c08","1eee48d9.dde947","47106adb.c7b994","f241bc6f.abe91","fe4bedce.dccf4","36134ff2.81826","ad080ed7.e2805","83f50832.31bf28","92dee517.041028","ce90a809.365528","4d821497.3ac9ac","bb175352.d3a6d","1868f533.5d5d1b","c535d1b3.3325f","43ee4152.fab5d","1618d258.7486ae","c252ed05.9b99f","307054cf.25730c","8576e473.d1f3e8","9695c264.9ae04","94083d5a.ebf56","48826944.8a8cc8"]]},{"id":"bb175352.d3a6d","type":"set","name":"set nig.vpn-bindings","xml":"<set>\n<parameter name='nig.vpn-bindings.id' value=\"`$vpn-binding.vpn-binding-id`\" />\n<parameter name='nig.vpn-bindings.global-route-target' value=\"`$vpn-binding.global-route-target`\" />\n<parameter name='nig.vpn-bindings.aic-zone' value=\"`$aaiapi.output.cloud-zone`\" />\n<parameter name='nig.vpn-bindings.route-target-role' value=\"`$vpn-binding.route-target-role`\" />\n\n","comments":"","x":755.2925186157227,"y":1952.6742695571156,"z":"d5178f42.44976","wires":[]},{"id":"6e7beecb.c5df7","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n<parameter name='service-data.networks.network[$nidx].network-id' value='`$tmp.l3-network.network-id`' />","comments":"","x":906.2679061889648,"y":338.28430461883545,"z":"d5178f42.44976","wires":[]},{"id":"a8edbe94.39dac","type":"set","name":"set onap-model-info","xml":"<set>\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='s-onap-model-information.model-invariant-uuid' value='`$service-model.invariant-uuid`' />\n<parameter name='s-onap-model-information.model-version' value='`$service-model.version`' />\n<parameter name='s-onap-model-information.model-uuid' value='`$service-model.service-uuid`' />\n<parameter name='s-onap-model-information.model-name' value='`$service-model.name`' />\n<parameter name='n-onap-model-information.model-invariant-uuid' value='`$network-model.invariant-uuid`' />\n<parameter name='n-onap-model-information.model-version' value='`$network-model.version`' />\n<parameter name='n-onap-model-information.model-uuid' value='`$network-model.uuid`' />\n<parameter name='n-onap-model-information.model-name' value='`$network-model.name`' />","comments":"","x":892.8668212890625,"y":372.7048645019531,"z":"d5178f42.44976","wires":[]},{"id":"d4e2ddfb.452e","type":"set","name":"set onap-model-info with mysql data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx]..network-data.service-information.onap-model-information.' value=\"`$s-onap-model-information.`\" />\n<parameter name='service-data.networks.network[$nidx]..network-data.network-information.onap-model-information.' value=\"`$n-onap-model-information.`\" />\n","comments":"","x":946.2596778869629,"y":409.13341426849365,"z":"d5178f42.44976","wires":[]},{"id":"6b6b467e.e2b328","type":"set","name":"set: tmp.error-message to \"\", set tmp.l3-network","xml":"<set>\n\t<parameter name=\"tmp.error-message\" value=\"\"/>\n\t<parameter name=\"tmp.l3-network.network-instance-group-id\" value=\"`$network-topology-operation-input.network-request-input.network-instance-group-id`\" />\n\t<parameter name='tmp.l3-network.network-type' value=\"`$network-model.network-type`\" />\n\t<parameter name='tmp.l3-network.network-role' value=\"`$network-model.network-role`\" />\n\t<parameter name='tmp.l3-network.network-technology' value=\"`$network-model.network-technology`\" />","comments":"","x":981.4751014709473,"y":298.4915442466736,"z":"d5178f42.44976","wires":[]},{"id":"93ad9038.590b3","type":"set","name":"set: get-complex-resource-service-model-input.customization-uuid","xml":"<set>\n\t<parameter name=\"get-complex-resource-service-model-input.customization-uuid\" value=\"`$aaiapi.output.collection-customization-uuid`\"/>","comments":"","x":908.3611755371094,"y":1220.3469247817993,"z":"d5178f42.44976","wires":[]},{"id":"22e7595d.96a916","type":"call","name":"call aai-get-network-instance-group","xml":"<call module='GENERIC-RESOURCE-API' rpc='aai-get-network-instance-group' mode='sync' >\n","comments":"","outputs":1,"x":834.7896575927734,"y":1046.6325091720792,"z":"d5178f42.44976","wires":[[]]},{"id":"85da8119.1634e","type":"set","name":"set: get-data-from-policy-input.policy-instance-name for subnet assignment","xml":"<set>\n\t<parameter name=\"get-data-from-policy-input.policy-instance-name\" value=\"`$get-complex-resource-service-model-output.subnet-assignment-policy`\" />\n\t","comments":"","x":953.1470718383789,"y":1405.6041303275852,"z":"d5178f42.44976","wires":[]},{"id":"f05d6459.4c0c08","type":"call","name":"call get-data-from-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' >\n","comments":"","outputs":1,"x":789.1469879150391,"y":1444.6040411590366,"z":"d5178f42.44976","wires":[[]]},{"id":"7a297c31.4a0a24","type":"comment","name":"Determine if subnet use is unique or shared","info":"","comments":"","x":856.1469192504883,"y":1374.604030191782,"z":"d5178f42.44976","wires":[]},{"id":"1eee48d9.dde947","type":"set","name":"set: nig.subnet-assignment-policy.subnet-use","xml":"<set>\n\t<parameter name=\"nig.subnet-assignment-policy.subnet-use\" value=\"`$get-data-from-policy-output.ip-assignment`\" />\n\t","comments":"","x":858.6469116210938,"y":1480.6040077804355,"z":"d5178f42.44976","wires":[]},{"id":"ad080ed7.e2805","type":"set","name":"set: cloud owner/region","xml":"<set>\n\t<parameter name=\"aaiapi.input.cloud-owner\" value=\"`$prop.cloud-region.cloud-owner`\" />\n\t<parameter name=\"aaiapi.input.cloud-region-id\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\n\t","comments":"","x":773.7544403076172,"y":1794.0051078796387,"z":"d5178f42.44976","wires":[]},{"id":"83f50832.31bf28","type":"call","name":"call aai-get-aic-zone","xml":"<call module='GENERIC-RESOURCE-API' rpc='aai-get-aic-zone' mode='sync' >\n","comments":"","outputs":1,"x":760.7544021606445,"y":1825.005069732666,"z":"d5178f42.44976","wires":[[]]},{"id":"ce90a809.365528","type":"set","name":"set params for mS","xml":"<set>\n\t<parameter name=\"nig.cloud-zone\" value=\"`$aaiapi.output.cloud-zone`\" />\n\t<parameter name=\"rt.aic-zone\" value=\"`$aaiapi.output.cloud-zone`\" />\n\t<parameter name=\"rt.resource\" value=\"NetworkID\" />\n\t<parameter name=\"rt.resource-value\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"rt.network-name\" value=\"`$tmp.l3-network.network-name`\" />\n\t<parameter name=\"rt.service-instance-id\" value=\"`$network-topology-operation-input.service-information.service-instance-id`\" />\n\t<parameter name=\"rt.network-instance-group-id\" value=\"`$tmp.l3-network.network-instance-group-id`\" />","comments":"","x":751.2543869018555,"y":1886.0055103302002,"z":"d5178f42.44976","wires":[]},{"id":"eef385b1.a41f98","type":"comment","name":"Get aic zone","info":"","comments":"","x":742.0043296813965,"y":1760.0050220489502,"z":"d5178f42.44976","wires":[]},{"id":"4d821497.3ac9ac","type":"call","name":"call create-route-target-and-vpn-binding","xml":"<call module='GENERIC-RESOURCE-API' rpc='create-route-target-and-vpn-binding' mode='sync' >\n","comments":"","outputs":1,"x":818.0046463012695,"y":1922.005283355713,"z":"d5178f42.44976","wires":[[]]},{"id":"b1ce3134.3e591","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":826.1826171875,"y":936.2040013672085,"z":"d5178f42.44976","wires":[["cd276bd4.4ec2d8","1fb23d1f.248fb3"]]},{"id":"cd276bd4.4ec2d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1106.1826133728027,"y":936.203972756979,"z":"d5178f42.44976","wires":[["c9ac2f78.68a14"]]},{"id":"1fb23d1f.248fb3","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1109.1825408935547,"y":972.2040061355801,"z":"d5178f42.44976","wires":[[]]},{"id":"c9ac2f78.68a14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error searching for l3-network with network-id =' + $tmp.l3-network.network-id + 'from AnAI.  Network should be created by MSO'\" />","comments":"","x":1258.2936973571777,"y":936.4262017608853,"z":"d5178f42.44976","wires":[]},{"id":"8417006f.508b2","type":"comment","name":"Verify the network exists in AAI, else throw error","info":"","comments":"","x":856.1826019287109,"y":892.2040490509244,"z":"d5178f42.44976","wires":[]},{"id":"fd2df853.9f51c8","type":"execute","name":"execute RestApiCallNode - Get network instance group by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nig-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-nig\" />\n\n","comments":"","outputs":1,"x":2543.5757904052734,"y":3081.1475110054016,"z":"d5178f42.44976","wires":[["b1af37b5.b16318","1d58b7d3.9f05e8"]]},{"id":"b1af37b5.b16318","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2882.371627807617,"y":3044.455379009247,"z":"d5178f42.44976","wires":[["851e27ab.fc1778"]]},{"id":"851e27ab.fc1778","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":3061.3716926574707,"y":3044.955325603485,"z":"d5178f42.44976","wires":[[]]},{"id":"7aa290b9.dbfb","type":"comment","name":"Delete network-instance-group from mdsal on rollback","info":"","comments":"","x":2518.979106903076,"y":3048.0269055366516,"z":"d5178f42.44976","wires":[]},{"id":"1d58b7d3.9f05e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2880.223400115967,"y":3124.5214619636536,"z":"d5178f42.44976","wires":[["64bdc280.770b8c"]]},{"id":"64bdc280.770b8c","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":3060.2233505249023,"y":3125.188012599945,"z":"d5178f42.44976","wires":[[]]},{"id":"c535d1b3.3325f","type":"save","name":"save relationship: l3-network to instance group","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\tforce=\"true\" \n\tlocal-only=\"false\">\n\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"instance-group\" />\n\t<parameter name=\"relationship-list.relationship[0].related-link\" value=\"`'/aai/v$/network/instance-groups/instance-group/'+ $tmp.network-instance-group-id`\" />\n","comments":"","outputs":1,"x":833.0040893554688,"y":2601.004062652588,"z":"d5178f42.44976","wires":[["3203a1dc.f1b18e","b974bb76.717a98"]]},{"id":"3203a1dc.f1b18e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1118.077003479004,"y":2596.479751586914,"z":"d5178f42.44976","wires":[["e5a724d0.277648"]]},{"id":"e5a724d0.277648","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1305.969882965088,"y":2596.1158590316772,"z":"d5178f42.44976","wires":[["e6189e22.f13c9"]]},{"id":"e6189e22.f13c9","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving instance-group relationship for l3-network in AnAI where instance-group-id = ' + $tmp.network-instance-group-id`\"/>","comments":"","x":1519.069423675537,"y":2596.8657579421997,"z":"d5178f42.44976","wires":[]},{"id":"b974bb76.717a98","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1126.162940979004,"y":2639.1310234069824,"z":"d5178f42.44976","wires":[["e5a724d0.277648"]]},{"id":"750843e0.4ef3ac","type":"comment","name":"Save relationship to Network instance group","info":"","comments":"","x":825.0040893554688,"y":2566.004069328308,"z":"d5178f42.44976","wires":[]},{"id":"9695c264.9ae04","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path'\n value=\"`$tmp.l3-network.self-link`\"/>\n \n","comments":"","x":749.0040817260742,"y":3179.004289627075,"z":"d5178f42.44976","wires":[]},{"id":"8576e473.d1f3e8","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$tmp.l3-network.network-id`' />\n","comments":"","x":745.4325790405273,"y":3135.2896909713745,"z":"d5178f42.44976","wires":[]},{"id":"48826944.8a8cc8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":755.0040283203125,"y":3378.7184524536133,"z":"d5178f42.44976","wires":[]},{"id":"94083d5a.ebf56","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\n<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`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":790.2530822753906,"y":3225.5032529830933,"z":"d5178f42.44976","wires":[]},{"id":"8a263bc3.22e118","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1057.4002418518066,"y":2768.094113200903,"z":"d5178f42.44976","wires":[["8567ebd6.a38748"]]},{"id":"8567ebd6.a38748","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1237.2931213378906,"y":2767.730220645666,"z":"d5178f42.44976","wires":[["4fa520ad.fc33e"]]},{"id":"4fa520ad.fc33e","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1475.3926887512207,"y":2767.4801433980465,"z":"d5178f42.44976","wires":[]},{"id":"3d5a9b10.7d0c54","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1065.13669374254,"y":2810.5746375819053,"z":"d5178f42.44976","wires":[["8567ebd6.a38748"]]},{"id":"43ee4152.fab5d","type":"save","name":"save relationship: service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"customer.global-customer-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.service-information.global-customer-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"service-subscription.service-type\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$service-data.service-information.subscription-service-type`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"service-instance.service-instance-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$service-data.service-information.service-instance-id`\" />","comments":"","outputs":1,"x":800.3790168762207,"y":2766.5036114156246,"z":"d5178f42.44976","wires":[["8a263bc3.22e118","3d5a9b10.7d0c54"]]},{"id":"307054cf.25730c","type":"set","name":"set network in service-data","xml":"<set>\n<parameter name=\"service-data.networks.network[$nidx].network-id\" value='`$tmp.l3-network.network-id`' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-topology.\" value='$network-topology.' />\n<parameter name=\"service-data.networks.network_length\" value='`$nidx_len`' />\n\n","comments":"","x":786.7539253234863,"y":3054.7535923421383,"z":"d5178f42.44976","wires":[]},{"id":"1618d258.7486ae","type":"set","name":"set network-topology-identifier-structure in service-data","xml":"<set>\n<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\n<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\n<parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\n<parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-parameters.`' />\n<parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />","comments":"","x":870.50390625,"y":2947.6109828948975,"z":"d5178f42.44976","wires":[]},{"id":"b93d2eef.37f8c","type":"call","name":"call get-complex-resource-service-model","xml":"<call module='GENERIC-RESOURCE-API' rpc='get-complex-resource-service-model' mode='sync' >\n","comments":"","outputs":1,"x":833.57568359375,"y":1256.3110961914062,"z":"d5178f42.44976","wires":[[]]},{"id":"a7165e9f.1f2c4","type":"comment","name":"Get complex service model info","info":"","comments":"","x":796.8969650268555,"y":1181.6325550079346,"z":"d5178f42.44976","wires":[]},{"id":"e090256e.e635b8","type":"set","name":"set aaiapi.input.network-instance-group-id","xml":"<set>\n<parameter name='aaiapi.input.network-instance-group-id' value=\"`$tmp.l3-network.network-instance-group-id`\" />","comments":"","x":854.2896728515625,"y":1011.6324462890625,"z":"d5178f42.44976","wires":[]},{"id":"1868f533.5d5d1b","type":"switchNode","name":"switch nig.subnet-assignment-policy.subnet-use","xml":"<switch test='`$nig.subnet-assignment-policy.subnet-use`'>\n","comments":"","outputs":1,"x":853.7540588378906,"y":2008.0041007995605,"z":"d5178f42.44976","wires":[["80ea04d2.713458","bb4bfbdc.3ac068","5d5a651b.69c2fc"]]},{"id":"80ea04d2.713458","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1188.7540283203125,"y":2010.004098892212,"z":"d5178f42.44976","wires":[["c40792bd.8000b"]]},{"id":"e259f887.453e58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1395.0397911071777,"y":2082.5756874084473,"z":"d5178f42.44976","wires":[["da09529c.7bd81"]]},{"id":"bb4bfbdc.3ac068","type":"other","name":"outcome unique","xml":"<outcome value='unique'>\n","comments":"","outputs":1,"x":1191.7541580200195,"y":2046.0042152404785,"z":"d5178f42.44976","wires":[["e8c6568f.40eef8"]]},{"id":"5d5a651b.69c2fc","type":"other","name":"outcome shared","xml":"<outcome value='shared'>\n","comments":"","outputs":1,"x":1189.7540283203125,"y":2083.004098892212,"z":"d5178f42.44976","wires":[["e259f887.453e58"]]},{"id":"da09529c.7bd81","type":"switchNode","name":"switch first-network","xml":"<switch test='`$tmp.first-network`'>\n","comments":"","outputs":1,"x":1622.7540283203125,"y":2083.0041546821594,"z":"d5178f42.44976","wires":[["fab5e305.08848","a54c9af5.901b08"]]},{"id":"fab5e305.08848","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1864.754020690918,"y":1802.0040340423584,"z":"d5178f42.44976","wires":[["e8c6568f.40eef8"]]},{"id":"a54c9af5.901b08","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1885.7541704177856,"y":2639.0047483444214,"z":"d5178f42.44976","wires":[["5c068cfe.3f07a4"]]},{"id":"40a6453b.1fd08c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"Subnet use not set\"/>","comments":"","x":1614.7540664672852,"y":2010.0044298171997,"z":"d5178f42.44976","wires":[]},{"id":"c1d9c0b7.72207","type":"switchNode","name":"switch tmp.nig-preexists","xml":"<switch test='`$tmp.nig-preexists`'>\n","comments":"","outputs":1,"x":1782.0039978027344,"y":3047.0039596557617,"z":"d5178f42.44976","wires":[["d00ae7b1.1e2958","b8eeae0.6645e5"]]},{"id":"d00ae7b1.1e2958","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1995.0040817260742,"y":3015.4327602386475,"z":"d5178f42.44976","wires":[["36213aaa.5381f6"]]},{"id":"b8eeae0.6645e5","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1994.004056930542,"y":3079.0040760040283,"z":"d5178f42.44976","wires":[["3ed49ae5.86c5a6"]]},{"id":"3ed49ae5.86c5a6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2180.4326934814453,"y":3079.2900104522705,"z":"d5178f42.44976","wires":[["fd2df853.9f51c8"]]},{"id":"36213aaa.5381f6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2177.7897987365723,"y":3013.8610706329346,"z":"d5178f42.44976","wires":[[]]},{"id":"c40792bd.8000b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1383.5040283203125,"y":2011.004098892212,"z":"d5178f42.44976","wires":[["40a6453b.1fd08c","c1d9c0b7.72207"]]},{"id":"35159ac5.660f16","type":"comment","name":"Need to add more thorough rollback","info":"","comments":"","x":1789.1827850341797,"y":2985.0042428970337,"z":"d5178f42.44976","wires":[]},{"id":"f241bc6f.abe91","type":"call","name":"call naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":821.6469955444336,"y":1620.6043549178867,"z":"d5178f42.44976","wires":[[]]},{"id":"47106adb.c7b994","type":"set","name":"set parameters for generate-unique-name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$get-complex-resource-service-model-output.network-naming-policy`' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$network-model.customization-uuid`' />\n\n\n","comments":"","x":842.3971710205078,"y":1583.6043979524402,"z":"d5178f42.44976","wires":[]},{"id":"fe4bedce.dccf4","type":"set","name":"set network name","xml":"<set>\n<parameter name='tmp.l3-network.network-name' value='`$naming-policy-generate-name-output.network-name`' />\n\n\n\n","comments":"","x":770.8970489501953,"y":1655.604353010538,"z":"d5178f42.44976","wires":[]},{"id":"49a4db31.f771e4","type":"comment","name":"Generate a name","info":"","comments":"","x":764.64697265625,"y":1543.6043673156528,"z":"d5178f42.44976","wires":[]},{"id":"36134ff2.81826","type":"set","name":"set tmp.network-topology","xml":"<set>\n<parameter name='network-topology.network-topology-identifier-structure.network-id' value=\"`$tmp.l3-network.network-id`\" />\n<parameter name='network-topology.network-topology-identifier-structure.network-name' value=\"`$tmp.l3-network.network-name`\" />\n<parameter name='network-topology.network-topology-identifier-structure.network-instance-group-id' value=\"`$tmp.l3-network.network-instance-group-id`\" />\n<parameter name='network-topology.network-topology-identifier-structure.network-type' value=\"`$tmp.l3-network.network-type`\" />\n<parameter name='network-topology.network-topology-identifier-structure.network-role' value=\"`$tmp.l3-network.network-role`\" />\n<parameter name='network-topology.network-topology-identifier-structure.network-technology' value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name='network-topology.region-identifier.tenant' value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name='network-topology.region-identifier.aic-cloud-region' value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n<parameter name='network-topology.region-identifier.aic-clli' value=\"`$network-topology-operation-input.network-request-input.aic-clli`\" />\n<parameter name='network-topology.onap-model-information.' value=\"`$network-topology-operation-input.network-information.onap-model-information.`\" />\n<parameter name='network-topology.network-parameters.' value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.`\" />\n<parameter name='nig.network.network-id' value=\"`$tmp.l3-network.network-id`\" />","comments":"","x":795.3969892263412,"y":1690.604379713419,"z":"d5178f42.44976","wires":[]},{"id":"58f3035b.c67d9c","type":"set","name":"set: nig identifier data","xml":"<set>\n\t<parameter name=\"nig.network-instance-group-id\" value=\"`$tmp.l3-network.network-instance-group-id`\"/>\n\t<parameter name=\"nig.network-instance-group-function\" value=\"`$aaiapi.output.collection-function`\"/>\n\t<parameter name=\"nig.service-instance-id\" value=\"`$network-topology-operation-input.service-information.service-instance-id`\"/>\n","comments":"","x":770.9164733886719,"y":1301.3838511108188,"z":"d5178f42.44976","wires":[]},{"id":"c8f94428.c0f5e8","type":"set","name":"set network-id","xml":"<set>\n<parameter name='nig.networks.network[$ngnidx].network-id' value=\"`$tmp.l3-network.network-id`\" />","comments":"","x":751.8531799316406,"y":1332.3834181426791,"z":"d5178f42.44976","wires":[]},{"id":"a3dcfb29.be3be8","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":892.2912139892578,"y":117.14844608306885,"z":"d5178f42.44976","wires":[["30c9e880.3ebc78","7464fb80.2dd3b4"]]},{"id":"30c9e880.3ebc78","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1118.5768585205078,"y":117.14839267730713,"z":"d5178f42.44976","wires":[["9337c637.20ec98"]]},{"id":"9337c637.20ec98","type":"switchNode","name":"switch service-data.networks_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1367.8029518127441,"y":118.33930969238281,"z":"d5178f42.44976","wires":[["b0241fa7.69347","6cbf8a0c.d761d4"]]},{"id":"b0241fa7.69347","type":"other","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1665.898292541504,"y":102.14861726760864,"z":"d5178f42.44976","wires":[["173ed7db.4f7aa8"]]},{"id":"173ed7db.4f7aa8","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='0' />\n<parameter name='nidx_len' value='1'/>\n","comments":"","x":1836.6127471923828,"y":102.7200288772583,"z":"d5178f42.44976","wires":[]},{"id":"6cbf8a0c.d761d4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1663.7554368972778,"y":142.86289072036743,"z":"d5178f42.44976","wires":[["254ad291.d12d8e"]]},{"id":"254ad291.d12d8e","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$service-data.networks.network_length`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length + 1`' />\n","comments":"","x":1836.3268671035767,"y":143.72009134292603,"z":"d5178f42.44976","wires":[]},{"id":"7464fb80.2dd3b4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1120.0054931640625,"y":155.71986484527588,"z":"d5178f42.44976","wires":[["5b261be0.07e9c4"]]},{"id":"5b261be0.07e9c4","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$tmp.nidx`' />\n<parameter name='nidx_len' value='`$service-data.networks.network_length`' />\n","comments":"","x":1282.8626174926758,"y":155.71989059448242,"z":"d5178f42.44976","wires":[]},{"id":"44bed9f5.f8a198","type":"switchNode","name":"switch tmp.ngidx ","xml":"<switch test=\"`$tmp.ngidx`\">\n\n","comments":"","outputs":1,"x":892.8627777099609,"y":204.29132843017578,"z":"d5178f42.44976","wires":[["d6e4ec1a.e6e93","8751a27d.a5675"]]},{"id":"d6e4ec1a.e6e93","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1134.291275024414,"y":202.86267757415771,"z":"d5178f42.44976","wires":[["b03031bc.a8721"]]},{"id":"b03031bc.a8721","type":"switchNode","name":"switch service-data.network-instance-groups.network-instance-group_len","xml":"<switch test='`$service-data.network-instance-groups.network-instance-group_len`'>\n","comments":"","outputs":1,"x":1499.231704711914,"y":204.05360412597656,"z":"d5178f42.44976","wires":[["f57cf34f.7619f","d6ea05bc.20b178"]]},{"id":"f57cf34f.7619f","type":"other","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1913.7556266784668,"y":204.29148191213608,"z":"d5178f42.44976","wires":[["b0c63751.bc3848"]]},{"id":"b0c63751.bc3848","type":"set","name":"set ngidx","xml":"<set>\n<parameter name='ngidx' value='0' />\n<parameter name='ngidx_len' value='1'/>\n<parameter name=\"ngnidx\" value='0' />\n<parameter name=\"nig.preexists\" value=\"false\"/>\n<parameter name=\"nig.first-network\" value=\"true\"/>\n<parameter name=\"nig.networks.network_len\" value=\"1\" />\n\n","comments":"","x":2086.612817764282,"y":202.14860528707504,"z":"d5178f42.44976","wires":[]},{"id":"d6ea05bc.20b178","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1912.3271217346191,"y":238.57717990875244,"z":"d5178f42.44976","wires":[["9b5fbee6.21443"]]},{"id":"9b5fbee6.21443","type":"set","name":"set ngidx","xml":"<set>\n<parameter name='ngidx' value='`$service-data.network-instance-groups.network-instance-group_length`' />\n<parameter name='ngidx_len' value='`$service-data.network-instance-groups.network-instance-group_length + 1`' />\n<parameter name=\"nig.preexists\" value=\"false\"/>\n<parameter name=\"ngnidx\" value='0' />\n<parameter name=\"nig.first-network\" value=\"true\"/>\n<parameter name=\"nig.networks.network_len\" value=\"1\" />","comments":"","x":2088.041379928589,"y":237.72010797262192,"z":"d5178f42.44976","wires":[]},{"id":"8751a27d.a5675","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1135.7199096679688,"y":241.43414974212646,"z":"d5178f42.44976","wires":[["8415c5ef.359e28"]]},{"id":"16fb0168.14aadf","type":"set","name":"set ngidx","xml":"<set>\n<parameter name='ngidx' value='`$tmp.ngidx`' />\n<parameter name='ngidx_len' value='`$service-data.network-instance-groups.network-instance-group_length`' />\n<parameter name=\"nig.preexists\" value=\"false\"/>","comments":"","x":1504.2913513183594,"y":240.00561666488647,"z":"d5178f42.44976","wires":[]},{"id":"8415c5ef.359e28","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1308.5770263671875,"y":241.4341583251953,"z":"d5178f42.44976","wires":[["16fb0168.14aadf","ce6e4cc2.462f2"]]},{"id":"ce6e4cc2.462f2","type":"switchNode","name":"switch networks.network_len","xml":"<switch test='`$ctx.network-instance-group-data.networks.network_len`'>\n","comments":"","outputs":1,"x":1574.2918243408203,"y":275.71987533569336,"z":"d5178f42.44976","wires":[["4e750736.532bf8","d95056d5.924ce8","c969201f.52f67"]]},{"id":"4e750736.532bf8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1831.1484718322754,"y":308.8269855976105,"z":"d5178f42.44976","wires":[["c10f69b8.9aebd8"]]},{"id":"d95056d5.924ce8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1829.148582458496,"y":277.8270561695099,"z":"d5178f42.44976","wires":[["c10f69b8.9aebd8"]]},{"id":"c10f69b8.9aebd8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2026.1744999355742,"y":308.38727392090686,"z":"d5178f42.44976","wires":[["763b73e5.e9fa9c"]]},{"id":"763b73e5.e9fa9c","type":"set","name":"set: first-network = true","xml":"<set>\n<parameter name=\"nig.first-network\" value=\"true\" />\n<parameter name=\"ngnidx\" value=\"0\" />\n<parameter name=\"nig.networks.network_len\" value=\"1\" />","comments":"","x":2258.6746372646758,"y":307.1373034848107,"z":"d5178f42.44976","wires":[]},{"id":"c969201f.52f67","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1831.8184700012207,"y":344.0778257846832,"z":"d5178f42.44976","wires":[["4933902d.618d4"]]},{"id":"4933902d.618d4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2027.711441040039,"y":344.07779335975647,"z":"d5178f42.44976","wires":[["cdb6a15a.3212a","798af161.c715b"]]},{"id":"cdb6a15a.3212a","type":"set","name":"set: first-network = false","xml":"<set>\n<parameter name=\"nig.first-network\" value=\"false\" />\n<parameter name=\"ngnidx\" value=\"`$ctx.network-instance-group-data.networks.network_length`\" />\n<parameter name=\"nig.networks.network_len\" value=\"`$ctx.network-instance-group-data.networks.network_length + 1`\" />\n<parameter name=\"nig.\" value=\"`$ctx.network-instance-group-data.`\" />","comments":"","x":2259.2117652893066,"y":375.8278331756592,"z":"d5178f42.44976","wires":[]},{"id":"798af161.c715b","type":"set","name":"set: nig data","xml":"<set>\n<parameter name=\"nig.\" value=\"`$ctx.network-instance-group-data.`\" />","comments":"","x":2227.503879547119,"y":342.0039052963257,"z":"d5178f42.44976","wires":[]},{"id":"5c068cfe.3f07a4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2097.004189491272,"y":2639.004349708557,"z":"d5178f42.44976","wires":[["48c61180.635eb"]]},{"id":"48c61180.635eb","type":"switchNode","name":"switch ngnidx","xml":"<switch test='`$ngnidx`'>\n","comments":"","outputs":1,"x":2291.0042581558228,"y":2639.004288673401,"z":"d5178f42.44976","wires":[["aa783e80.a6c83","554f9fef.e514d"]]},{"id":"aa783e80.a6c83","type":"outcome","name":"0","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2482.004204750061,"y":2613.004267692566,"z":"d5178f42.44976","wires":[["2a71e575.36750a"]]},{"id":"554f9fef.e514d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2483.004288673401,"y":2644.004319190979,"z":"d5178f42.44976","wires":[[]]},{"id":"2a71e575.36750a","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\n","comments":"","outputs":1,"x":2677.254292488098,"y":2612.0042600631714,"z":"d5178f42.44976","wires":[["46adadcf.b10ea4"]]},{"id":"46adadcf.b10ea4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2877.396858215332,"y":2616.8931579589844,"z":"d5178f42.44976","wires":[["fae75c2d.25c5c","896df025.a1fea"]]},{"id":"fae75c2d.25c5c","type":"set","name":"set: tmp.subnet-id","xml":"<set>\n<parameter name=\"tmp.subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\"/>\n\t","comments":"","x":3099.1748046875,"y":2585.7183837890625,"z":"d5178f42.44976","wires":[]},{"id":"896df025.a1fea","type":"switchNode","name":"switch dhcp-enabled","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\n","comments":"","outputs":1,"x":3106.80952835083,"y":2622.015778541565,"z":"d5178f42.44976","wires":[[]]},{"id":"e8c6568f.40eef8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2041.0041122436523,"y":1624.0039863586426,"z":"d5178f42.44976","wires":[["e65e043c.0d83c8","9ab51d6.254d9e","727e503e.e99e1","76567230.ae29cc","2c47409f.cb9c7","1451a72d.c96e71","6d06e17a.7f1a2","95e4e3b2.775858"]]},{"id":"e65e043c.0d83c8","type":"set","name":"set: input for process-generic-eipam-pools","xml":"<set>\n<parameter name=\"tmp.skip-first-level\" value=\"Y\"/>\n<parameter name=\"tmp.allocate-subnet-flag\" value=\"Y\"/>\n<parameter name=\"generate-FQPN-input.aic-cloud-region\" value=\"`$aai.cloud-region.cloud-region-id`\" />\n<parameter name=\"generate-FQPN-input.network-name\" value=\"`$network-topology.network-topology-identifier-structure.network-name`\" />\n<parameter name=\"generate-FQPN-input.network-role\" value=\"`$network-topology.network-topology-identifier-structure.network-role`\" />\n<parameter name=\"generate-FQPN-input.network-collection\" value=\"`$aaiapi.output.collection-name`\" />\n<parameter name=\"generate-FQPN-input.network-id\" value=\"`$network-topology.network-topology-identifier-structure.network-id`\" />\n<parameter name=\"tmp.network-id\" value=\"`network-topology.network-topology-identifier-structure.network-id`\" />\n<parameter name=\"tmp.network-instance-group-id\" value=\"`$network-topology.network-topology-identifier-structure.network-instance-group-id`\" />\n\n<!-- the following are not set by calling dg\ngenerate-FQPN-input.subnet-role\ngenerate-FQPN-input.zone\ngenerate-FQPN-input.equipment\n-->\n<!-- network model is already in contect memory -->\n<!-- aai.cloud-region.cloud-region-id  is already in contect memory -->\n\n\t","comments":"","x":2347.2537841796875,"y":1606.0040283203125,"z":"d5178f42.44976","wires":[]},{"id":"9ab51d6.254d9e","type":"switchNode","name":"switch $network-model.eipam-v4-address-plan is not null","xml":"<switch test=\"`$network-model.eipam-v4-address-plan != ''`\">\n","comments":"","outputs":1,"x":2394.25390625,"y":1723.00390625,"z":"d5178f42.44976","wires":[["c9d4cba4.24fff8"]]},{"id":"42389da4.7eb2c4","type":"comment","name":"Process v4 plan","info":"","comments":"","x":2260.254005432129,"y":1691.0040283203125,"z":"d5178f42.44976","wires":[]},{"id":"c9d4cba4.24fff8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2701.253890991211,"y":1691.0039176940918,"z":"d5178f42.44976","wires":[["1e20a4e2.74b9eb"]]},{"id":"1e20a4e2.74b9eb","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2865.2539138793945,"y":1691.0039367675781,"z":"d5178f42.44976","wires":[["8a474f48.9398f","11cb7113.5402d7"]]},{"id":"727e503e.e99e1","type":"switchNode","name":"switch $network-model.eipam-v6-address-plan is not null","xml":"<switch test=\"`$network-model.eipam-v6-address-plan != ''`\">\n","comments":"","outputs":1,"x":2394.2537841796875,"y":1816.00390625,"z":"d5178f42.44976","wires":[["e81185af.c04448"]]},{"id":"2765b6a2.a89dfa","type":"comment","name":"Process v6 plan","info":"","comments":"","x":2265.2538452148438,"y":1784.0040893554688,"z":"d5178f42.44976","wires":[]},{"id":"e81185af.c04448","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2709.253776550293,"y":1816.0038986206055,"z":"d5178f42.44976","wires":[["6635ad54.167cd4"]]},{"id":"6635ad54.167cd4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2873.2537994384766,"y":1816.0039176940918,"z":"d5178f42.44976","wires":[["3e402883.aa4e28","31489f02.5d1d88"]]},{"id":"8a474f48.9398f","type":"set","name":"set: v4plan in mdsal","xml":"<set>\n<parameter name=\"network-topology.network-identifier-structure.eipam-v4-address-plan\" value=\"`$network-model.eipam-v4-address-plan`\" />\n\t","comments":"","x":3061.254035949707,"y":1691.0039672851562,"z":"d5178f42.44976","wires":[]},{"id":"3e402883.aa4e28","type":"set","name":"set: v6plan in mdsal","xml":"<set>\n<parameter name=\"network-topology.network-identifier-structure.eipam-v6-address-plan\" value=\"`$network-model.eipam-v4-address-plan`\" />\n\t","comments":"","x":3076.2538146972656,"y":1815.0039367675781,"z":"d5178f42.44976","wires":[]},{"id":"92dee517.041028","type":"set","name":"set tmp.network-topology","xml":"<set>\n<parameter name='network-topology.region-identifier.aic-clli' value=\"`$aaiapi.output.aic-clli`\" />\n","comments":"","x":775.25390625,"y":1853.0040283203125,"z":"d5178f42.44976","wires":[]},{"id":"76567230.ae29cc","type":"call","name":"call process-generic-eipam-pools","xml":"<call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\n","comments":"","outputs":1,"x":2314.8831787109375,"y":1640.88330078125,"z":"d5178f42.44976","wires":[["3ee93bff.44a3fc"]]},{"id":"3ee93bff.44a3fc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2543.41650390625,"y":1640.4832763671875,"z":"d5178f42.44976","wires":[["f0d7d581.591998"]]},{"id":"f0d7d581.591998","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Error from process-generic-eipam-pools, ' + $error-message`\" />\n","comments":"","x":2702.1664848327637,"y":1640.4832725524902,"z":"d5178f42.44976","wires":[]},{"id":"11cb7113.5402d7","type":"for","name":"for 0..CreatePoolPlans_length","xml":"<for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\n","comments":"","outputs":1,"x":3093.88330078125,"y":1735.88330078125,"z":"d5178f42.44976","wires":[["32ce7747.c70768"]]},{"id":"32ce7747.c70768","type":"switchNode","name":"switch PlanName == network-model.eipam-v4-address-plan","xml":"<switch test=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v4-address-plan`\">\n","comments":"","outputs":1,"x":3476.88330078125,"y":1735.88330078125,"z":"d5178f42.44976","wires":[["73515ea5.55cd5"]]},{"id":"31489f02.5d1d88","type":"for","name":"for 0..CreatePoolPlans_length","xml":"<for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\n","comments":"","outputs":1,"x":3111.88330078125,"y":1853.88330078125,"z":"d5178f42.44976","wires":[["39f88f1c.91ea8"]]},{"id":"39f88f1c.91ea8","type":"switchNode","name":"switch PlanName == network-model.eipam-v6-address-plan","xml":"<switch test=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v6-address-plan`\">\n","comments":"","outputs":1,"x":3502.88330078125,"y":1853.88330078125,"z":"d5178f42.44976","wires":[["cff6d3ae.f1aa3"]]},{"id":"73515ea5.55cd5","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3813.883331298828,"y":1735.8833312988281,"z":"d5178f42.44976","wires":[["b96644be.0dbc98"]]},{"id":"cff6d3ae.f1aa3","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3827.88330078125,"y":1853.4832763671875,"z":"d5178f42.44976","wires":[["746695da.4b9b9c"]]},{"id":"b96644be.0dbc98","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3973.316650390625,"y":1736.0833740234375,"z":"d5178f42.44976","wires":[["5cbea0a0.58604"]]},{"id":"746695da.4b9b9c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3984.316650390625,"y":1853.0833740234375,"z":"d5178f42.44976","wires":[["31f3e12f.a943de"]]},{"id":"5cbea0a0.58604","type":"set","name":"set: v4 ip info","xml":"<set>\n<parameter name=\"v4.ip-prefix\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`\"/>\n<parameter name=\"v4.mask\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`\"/>\n<parameter name=\"v4.entity-id\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`\"/>","comments":"","x":4164.2666015625,"y":1736.0833740234375,"z":"d5178f42.44976","wires":[]},{"id":"31f3e12f.a943de","type":"set","name":"set: v6 ip info","xml":"<set>\n<parameter name=\"v6.ip-prefix\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`\"/>\n<parameter name=\"v6.mask\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`\"/>\n<parameter name=\"v6.entity-id\" value=\"`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`\"/>","comments":"","x":4177.88330078125,"y":1853.0833740234375,"z":"d5178f42.44976","wires":[]},{"id":"2c47409f.cb9c7","type":"call","name":"call GENERIC-RESOURCE-API:create-l3-subnet","xml":"<call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":2373.0864181518555,"y":1868.0233001708984,"z":"d5178f42.44976","wires":[[]]},{"id":"889334d4.ee512","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.l3-network.network-name`\" />\n<parameter name=\"network-type\" value=\"`$network-model.network-type`\" />\n<parameter name=\"network-role\" value=\"`$network-model.network-role`\" />\n<parameter name=\"network-technology\" value=\"`$network-model.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn-boolean`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-information.tenant`\" />\n<parameter name=\"model-invariant-id\" value=\"`$network-model.invariant_uuid`\" />\n<parameter name=\"model-version\" value=\"`$network-model.version`\" />\n<parameter name=\"model-customization-id\" value=\"`$network-model.customization-id`\" />\n<parameter name=\"physical-network-name\" value=\"`$network-model.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$tmp.l3-network.is-provider-network-boolean`\" />\n<parameter name=\"is-shared-network\" value=\"`$tmp.l3-network.is-shared-network-boolean`\" />\n<parameter name=\"is-external-network\" value=\"`$tmp.l3-network.is-external-network-boolean`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n<parameter name=\"service-id\" value=\"`$tmp.l3-network.service-id`\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n\n","comments":"","outputs":1,"x":2659.050048828125,"y":1966.2833251953125,"z":"d5178f42.44976","wires":[["fd2dffb4.626d88","166d7fb.02683"]]},{"id":"bc8ed07.0e83cb","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`\" />\n","comments":"","x":3148.7292909622192,"y":1931.5768394470215,"z":"d5178f42.44976","wires":[]},{"id":"fd2dffb4.626d88","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2902.1575317382812,"y":1931.3424072265625,"z":"d5178f42.44976","wires":[["bc8ed07.0e83cb"]]},{"id":"6d06e17a.7f1a2","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\n","comments":"","outputs":1,"x":2277.1418199539185,"y":2072.342499732971,"z":"d5178f42.44976","wires":[["b25f750f.5ab41"]]},{"id":"b25f750f.5ab41","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2504.2845001220703,"y":2071.231451034546,"z":"d5178f42.44976","wires":[["d4bb25ae.3ce62","c577661b.70d328","b6bec758.f11a5","bedb778a.035b4"]]},{"id":"166d7fb.02683","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2907.9669799804688,"y":1959.8187255859375,"z":"d5178f42.44976","wires":[["bc8ed07.0e83cb"]]},{"id":"d4bb25ae.3ce62","type":"set","name":"set: tmp.subnet-id","xml":"<set>\n<parameter name=\"tmp.subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\"/>\n\t","comments":"","x":2726.0624465942383,"y":2040.056676864624,"z":"d5178f42.44976","wires":[]},{"id":"c577661b.70d328","type":"switchNode","name":"switch dhcp-enabled","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\n","comments":"","outputs":1,"x":2733.6971702575684,"y":2076.3540716171265,"z":"d5178f42.44976","wires":[["50789132.4385b8","615683d.86d5bfc"]]},{"id":"615683d.86d5bfc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2969.8399658203125,"y":2006.2111206054688,"z":"d5178f42.44976","wires":[["282d91de.f05ee6"]]},{"id":"50789132.4385b8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2965.6971702575684,"y":2088.354193687439,"z":"d5178f42.44976","wires":[["6ee6838a.ca20ac"]]},{"id":"282d91de.f05ee6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3160.7283935546875,"y":2006.4334716796875,"z":"d5178f42.44976","wires":[["7c2c5c81.31cfa4"]]},{"id":"6ee6838a.ca20ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3158.5858421325684,"y":2092.5765447616577,"z":"d5178f42.44976","wires":[["506e8049.8f6fc8"]]},{"id":"7c2c5c81.31cfa4","type":"switchNode","name":"switch gateway-address","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\n","comments":"","outputs":1,"x":3380.691680908203,"y":2006.7656421661377,"z":"d5178f42.44976","wires":[["72eb0aff.498254","b992c40a.e3fc88"]]},{"id":"506e8049.8f6fc8","type":"switchNode","name":"switch gateway-address","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\n","comments":"","outputs":1,"x":3389.977409362793,"y":2091.480155944824,"z":"d5178f42.44976","wires":[["f9389512.87fe1","d915319.95e925"]]},{"id":"1451a72d.c96e71","type":"switchNode","name":"switch service-id","xml":"<switch test='`$tmp.l3-network.service-id`'>\n","comments":"","outputs":1,"x":2268.9296875,"y":1952.6705322265625,"z":"d5178f42.44976","wires":[["b6d98b6a.61fe58","3902684f.6009f8"]]},{"id":"b6d98b6a.61fe58","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2457.9296875,"y":1931.6705322265625,"z":"d5178f42.44976","wires":[["54a47008.56e48"]]},{"id":"3902684f.6009f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2432.9296875,"y":1966.6705322265625,"z":"d5178f42.44976","wires":[["889334d4.ee512"]]},{"id":"54a47008.56e48","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.l3-network.network-name`\" />\n<parameter name=\"network-type\" value=\"`$network-model.network-type`\" />\n<parameter name=\"network-role\" value=\"`$network-model.network-role`\" />\n<parameter name=\"network-technology\" value=\"`$network-model.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn-boolean`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-information.tenant`\" />\n<parameter name=\"model-invariant-id\" value=\"`$network-model.invariant_uuid`\" />\n<parameter name=\"model-version\" value=\"`$network-model.version`\" />\n<parameter name=\"model-customization-id\" value=\"`$network-model.customization-id`\" />\n<parameter name=\"physical-network-name\" value=\"`$network-model.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$tmp.l3-network.is-provider-network-boolean`\" />\n<parameter name=\"is-shared-network\" value=\"`$tmp.l3-network.is-shared-network-boolean`\" />\n<parameter name=\"is-external-network\" value=\"`$tmp.l3-network.is-external-network-boolean`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />","comments":"","outputs":1,"x":2664.9296875,"y":1931.6705322265625,"z":"d5178f42.44976","wires":[["fd2dffb4.626d88","166d7fb.02683"]]},{"id":"352b0634.a770ea","type":"set","name":"set tmp.l3-network","xml":"<set>\n<parameter name='tmp.l3-network.network-type' value=\"`$network-model.network-type`\" />\n<parameter name='tmp.l3-network.network-role' value=\"`$network-model.network-role`\" />\n<parameter name='tmp.l3-network.network-technology' value=\"`$network-model.network-technology`\" />\n<parameter name='tmp.l3-network.is-bound-to-vpn' value=\"`$network-model.is-bound-to-vpn`\" />\n<parameter name='tmp.l3-network.orchestration-status' value=\"PendingCreate\" />\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='tmp.l3-network.is-provider-network' value=\"`$network-model.is-provider-network`\" />\n<parameter name='tmp.l3-network.is-shared-network' value=\"`$network-model.is-shared-network`\" />\n<parameter name='tmp.l3-network.is-external-network' value=\"`$network-model.is-external-network`\" />\n<parameter name='tmp.l3-network.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.l3-network.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.l3-network.service-id' value=\"`$service-data.service-information.service-id`\" />\n<parameter name='tmp.l3-network.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $tmp.l3-network.network-id\n + '/network-data/network-topology/'` \" />\n","comments":"","x":886.88330078125,"y":451.4833068847656,"z":"d5178f42.44976","wires":[]},{"id":"c252ed05.9b99f","type":"set","name":"set network instance group in service-data","xml":"<set>\n<parameter name=\"service-data.network-instance-groups.network-instance-group[$ngidx].\" value='`$nig.`' />\n\n\n","comments":"","x":828.88330078125,"y":2999.4833984375,"z":"d5178f42.44976","wires":[]},{"id":"c0d1166f.f33bd","type":"switchNode","name":"switch network--model.is-provider-network","xml":"<switch test='`$network-model.is-provider-network`'>\n","comments":"","outputs":1,"x":943.6000061035156,"y":517.8833475112915,"z":"d5178f42.44976","wires":[["2d70e649.07ae42","3835b478.0b1234"]]},{"id":"2d70e649.07ae42","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1248.7431564331055,"y":497.7087926864624,"z":"d5178f42.44976","wires":[["9294abcc.7f7ec8"]]},{"id":"9294abcc.7f7ec8","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"`$network-model.physical-network-name`\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='true' />","comments":"","x":1516.7430114746094,"y":494.708758354187,"z":"d5178f42.44976","wires":[]},{"id":"3835b478.0b1234","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1236.1082153320312,"y":528.5818138122559,"z":"d5178f42.44976","wires":[["4cb8c1ac.228e38"]]},{"id":"4cb8c1ac.228e38","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='false' />","comments":"","x":1520.394172668457,"y":527.153244972229,"z":"d5178f42.44976","wires":[]},{"id":"3e6da276.1b9876","type":"switchNode","name":"switch network--model.is-shared-network","xml":"<switch test='`$network-model.is-shared-network`'>\n","comments":"","outputs":1,"x":941.2665252685547,"y":563.5181550979614,"z":"d5178f42.44976","wires":[["9f3ffa9d.8179c","76801177.35bc58"]]},{"id":"9f3ffa9d.8179c","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1246.885726928711,"y":563.58176612854,"z":"d5178f42.44976","wires":[["26f53153.826cbe"]]},{"id":"26f53153.826cbe","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='true' />","comments":"","x":1539.1714401245117,"y":563.5816135406494,"z":"d5178f42.44976","wires":[]},{"id":"76801177.35bc58","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1235.6797523498535,"y":598.8832731246948,"z":"d5178f42.44976","wires":[["f9000a6c.baff6"]]},{"id":"f9000a6c.baff6","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='false' />","comments":"","x":1539.9656715393066,"y":598.7404508590698,"z":"d5178f42.44976","wires":[]},{"id":"39ea7531.083dba","type":"switchNode","name":"switch network--model.is-external-network","xml":"<switch test='`$network-model.is-external-network`'>\n","comments":"","outputs":1,"x":949.9498291015625,"y":635.5657958984375,"z":"d5178f42.44976","wires":[["7aba3265.5fa204","c956eb87.42b64"]]},{"id":"7aba3265.5fa204","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1248.9022941589355,"y":642.2961139678955,"z":"d5178f42.44976","wires":[["d8231d31.87054"]]},{"id":"d8231d31.87054","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='true' />","comments":"","x":1541.1880073547363,"y":642.2959613800049,"z":"d5178f42.44976","wires":[]},{"id":"c956eb87.42b64","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1237.6963195800781,"y":677.5976209640503,"z":"d5178f42.44976","wires":[["df2c956f.5ebb7"]]},{"id":"df2c956f.5ebb7","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='false' />","comments":"","x":1541.9822387695312,"y":677.4547986984253,"z":"d5178f42.44976","wires":[]},{"id":"985b6687.301738","type":"switchNode","name":"switch network--model.is-bound-to-vpn","xml":"<switch test='`$network-model.is-bound-to-vpn`'>\n","comments":"","outputs":1,"x":935.5313415527344,"y":748.6398734451504,"z":"d5178f42.44976","wires":[["841de692.8816c8","92021a98.fb2718"]]},{"id":"841de692.8816c8","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1247.1505546569824,"y":716.703462600708,"z":"d5178f42.44976","wires":[["ae32e0dd.54349"]]},{"id":"ae32e0dd.54349","type":"set","name":"set tmp.l3-network.is-bound-to-vpn-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='true' />","comments":"","x":1539.4362678527832,"y":716.7033100128174,"z":"d5178f42.44976","wires":[]},{"id":"92021a98.fb2718","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1235.944580078125,"y":752.0049695968628,"z":"d5178f42.44976","wires":[["53abbcde.c1e354"]]},{"id":"53abbcde.c1e354","type":"set","name":"set tmp.l3-network.is-bound-to-vpn-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='false' />","comments":"","x":1540.2304992675781,"y":751.8621473312378,"z":"d5178f42.44976","wires":[]},{"id":"4e2d72ac.a20f14","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":4070.083251953125,"y":2100.4833984375,"z":"d5178f42.44976","wires":[["c0ceef0e.0078a","1e9136c3.87ee69"]]},{"id":"c0ceef0e.0078a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4421.638069152832,"y":2059.81626701355,"z":"d5178f42.44976","wires":[["15650c05.6d1314"]]},{"id":"1e9136c3.87ee69","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":4430.361213684082,"y":2097.4594554901123,"z":"d5178f42.44976","wires":[["15650c05.6d1314"]]},{"id":"d752adcc.20017","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":4861.511116027832,"y":2074.67368888855,"z":"d5178f42.44976","wires":[]},{"id":"15650c05.6d1314","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4606.36837387085,"y":2074.102150917053,"z":"d5178f42.44976","wires":[["d752adcc.20017"]]},{"id":"461634d9.663cc4","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":4107.337271690369,"y":2022.2094249725342,"z":"d5178f42.44976","wires":[["1e9136c3.87ee69","c0ceef0e.0078a"]]},{"id":"72eb0aff.498254","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3648.618034362793,"y":1985.7638292312622,"z":"d5178f42.44976","wires":[["94f52050.d9fb1"]]},{"id":"b992c40a.e3fc88","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3624.332302093506,"y":2021.4782190322876,"z":"d5178f42.44976","wires":[["c9204b2d.3b077"]]},{"id":"c9204b2d.3b077","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3860.7606801986694,"y":2021.907039642334,"z":"d5178f42.44976","wires":[["461634d9.663cc4"]]},{"id":"f531428e.13ed98","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":4105.046538352966,"y":1986.7640361785889,"z":"d5178f42.44976","wires":[["c0ceef0e.0078a","1e9136c3.87ee69"]]},{"id":"94f52050.d9fb1","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3874.184100151062,"y":1988.0331344604492,"z":"d5178f42.44976","wires":[["f531428e.13ed98"]]},{"id":"f9389512.87fe1","type":"outcome","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3657.903739929199,"y":2064.7641019821167,"z":"d5178f42.44976","wires":[["ecdbbdf9.e0987"]]},{"id":"d915319.95e925","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3633.618007659912,"y":2100.478491783142,"z":"d5178f42.44976","wires":[["2d8feac9.f46f5e"]]},{"id":"2d8feac9.f46f5e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3835.0465965270996,"y":2101.9071559906006,"z":"d5178f42.44976","wires":[["4e2d72ac.a20f14"]]},{"id":"ecdbbdf9.e0987","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3842.7557411193848,"y":2065.176050186157,"z":"d5178f42.44976","wires":[["57002b51.96ccbc"]]},{"id":"57002b51.96ccbc","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":4067.9035606384277,"y":2061.90673828125,"z":"d5178f42.44976","wires":[["c0ceef0e.0078a","1e9136c3.87ee69"]]},{"id":"b6bec758.f11a5","type":"set","name":"set: subnet in mdsal","xml":"<set>\n<parameter name=\"nig.subnets[$msidx].start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"nig.subnets[$msidx].subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"nig.subnets[$msidx].subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"nig.subnets[$msidx].gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"nig.subnets[$msidx].cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"nig.subnets[$msidx].ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"nig.subnets[$msidx].dhcp-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"nig.subnets[$msidx].dhcp-end-address\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"nig.subnets[$msidx].dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n\t","comments":"","x":2732.283203125,"y":2114.4833984375,"z":"d5178f42.44976","wires":[]},{"id":"95e4e3b2.775858","type":"set","name":"set: msidx","xml":"<set>\n<parameter name=\"msidx\" value=\"`$nig.subnets_length`\" />\n\t","comments":"","x":2252.2830810546875,"y":2033.4832763671875,"z":"d5178f42.44976","wires":[]},{"id":"bedb778a.035b4","type":"set","name":"set: increment msidx","xml":"<set>\n<parameter name=\"msidx\" value=\"`$msidx + 1`\" />\n<parameter name=\"nig.subnets_length\" value=\"`$nig.subnets_length + 1`\" />\n\t","comments":"","x":2729.283203125,"y":2151.4833984375,"z":"d5178f42.44976","wires":[]}]
\ No newline at end of file
index b13b073..887976b 100644 (file)
@@ -1 +1 @@
-[{"id":"89493007.0268b","type":"dgstart","name":"DGSTART","outputs":1,"x":111,"y":80,"z":"1a8b5305.c085cd","wires":[["a4a8f170.658a9"]]},{"id":"a4a8f170.658a9","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":254.2856903076172,"y":140.2381067276001,"z":"1a8b5305.c085cd","wires":[["751a884f.6eaac8"]]},{"id":"751a884f.6eaac8","type":"method","name":"network-topology-operation-assign","xml":"<method rpc='network-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":229.96437072753906,"y":220.892840385437,"z":"1a8b5305.c085cd","wires":[["df0099f6.6eeb38"]]},{"id":"df0099f6.6eeb38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":189.28572845458984,"y":405.1578025817871,"z":"1a8b5305.c085cd","wires":[["b6852699.060e68","f58c2417.cbf1f8","91b6be2e.099cc","c7c72a39.652de8","8773a6fd.bcffa8","71a62cc6.0c1ad4","9c5b3463.cd7bf8","a057f23f.aa6af","868ff2ba.bc798","679ee129.c4252","34cb595d.aff816","a5f2c0c4.2e002","aa240c34.3d017","cae13e62.0dbe2","b7ab3890.826f88","a6f05dc6.5396f","2fbd77c1.048628","a9dd6669.a72c38","7a1a7c2.ce09484","5b1e35b2.5ea92c","60381262.576cfc","b629208a.09c27","4728dc8a.76ddd4","a2da1074.b277a","e495d7bf.6827a8","797304de.6cccec","ed1fbf08.fa0f9","cb2ae5c7.b8f7a8","2709264e.6759fa","ca6d6436.b4f728","61bb926f.cd7d7c","13db491e.a822c7","63bb1d97.e60064"]]},{"id":"b6852699.060e68","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":501.7738227844238,"y":3448.8575134277344,"z":"1a8b5305.c085cd","wires":[]},{"id":"f58c2417.cbf1f8","type":"switchNode","name":"switch network-model.is-bound-to-vpn","xml":"<switch test='`$network-model.is-bound-to-vpn`'>\n","comments":"","outputs":1,"x":577.6110610961914,"y":263.6111059188843,"z":"1a8b5305.c085cd","wires":[["c74440f1.9c51e"]]},{"id":"c74440f1.9c51e","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":842.6110649108887,"y":263.6111068725586,"z":"1a8b5305.c085cd","wires":[["9b88c546.2f2778"]]},{"id":"9b88c546.2f2778","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":1005.3611068725586,"y":264.1110954284668,"z":"1a8b5305.c085cd","wires":[["960cc18d.2fd1b"]]},{"id":"be126fa6.e030e","type":"get-resource","name":"get-resource vpn-binding","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"vpn-binding\" \n\t\tkey=\"vpn-binding.vpn-id = $vpn-bindings[$vidx].binding-uuid\"\n        pfx='aai.vpnBinding' local-only='false' >\n\n","comments":"","outputs":1,"x":2285.932662963867,"y":257.8849563598633,"z":"1a8b5305.c085cd","wires":[["612f7c79.d93d64","29e26ef4.5879a2","70ec648.56c6c9c"]]},{"id":"612f7c79.d93d64","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2521.8889961242676,"y":229.63891220092773,"z":"1a8b5305.c085cd","wires":[["b29726d5.228328"]]},{"id":"29e26ef4.5879a2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2514.8889389038086,"y":262.972243309021,"z":"1a8b5305.c085cd","wires":[["b29726d5.228328"]]},{"id":"b29726d5.228328","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vpn binding found for network-model.vpn-binding=' \n    + $vpn-bindings[$vidx].binding-uuid`\" />\n\n","comments":"","x":2704.031726837158,"y":234.21033000946045,"z":"1a8b5305.c085cd","wires":[]},{"id":"91b6be2e.099cc","type":"switchNode","name":"switch network-request-information.network-name","xml":"<switch test='`$network-topology-operation-input.network-request-input.network-name`'>\n","comments":"","outputs":1,"x":604.3651161193848,"y":470.68650007247925,"z":"1a8b5305.c085cd","wires":[["22435a1e.c63286","1ea3bcf5.db62a3"]]},{"id":"a4d718a8.4b5a78","type":"comment","name":"if network-name not populated, generate","info":"","comments":"","x":577.8889389038086,"y":297.6388816833496,"z":"1a8b5305.c085cd","wires":[]},{"id":"22435a1e.c63286","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":899.5556564331055,"y":463.97219467163086,"z":"1a8b5305.c085cd","wires":[["1d9431b.4db66ce"]]},{"id":"1d9431b.4db66ce","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1092.8888549804688,"y":461.3055396080017,"z":"1a8b5305.c085cd","wires":[["a9e920ad.ae72"]]},{"id":"a9e920ad.ae72","type":"switchNode","name":"switch network-model.ecomp-generated-naming","xml":"<switch test='`$network-model.ecomp-generated-naming`'>\n","comments":"","outputs":1,"x":1387.5554695129395,"y":459.3055396080017,"z":"1a8b5305.c085cd","wires":[["2c61b334.66b64c","a3fb55a9.a89968"]]},{"id":"2c61b334.66b64c","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1707.5555229187012,"y":447.30554962158203,"z":"1a8b5305.c085cd","wires":[["e30091c0.02f1a"]]},{"id":"e30091c0.02f1a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":1876.305564880371,"y":447.80553817749023,"z":"1a8b5305.c085cd","wires":[["7a3fdfa5.4ccd4"]]},{"id":"a3fb55a9.a89968","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1698.7778129577637,"y":480.30554962158203,"z":"1a8b5305.c085cd","wires":[["da34b64.c9ee048"]]},{"id":"da34b64.c9ee048","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Network name is required if ecomp naming is false\" />\n\n","comments":"","x":1876.7778129577637,"y":479.30554962158203,"z":"1a8b5305.c085cd","wires":[]},{"id":"7a3fdfa5.4ccd4","type":"switchNode","name":"switch network-model.ecomp-generated-naming","xml":"<switch test='`$network-model.naming-policy`'>\n","comments":"","outputs":1,"x":2198.221389770508,"y":447.3055124282837,"z":"1a8b5305.c085cd","wires":[["f1453c06.5ed4a","6b66fa0f.19fd64","f9fba683.787ff8","e3a6601d.ee1c2","d21320c7.875be","3927bc9.ef1ad44"]]},{"id":"6b66fa0f.19fd64","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2501.2216873168945,"y":711.3055171966553,"z":"1a8b5305.c085cd","wires":[["42111482.a679dc"]]},{"id":"f1453c06.5ed4a","type":"other","name":"outcome org.openecomp.policy.naming.SriovProvider.SriovProviderNetwork","xml":"<outcome value='org.openecomp.policy.naming.SriovProvider.SriovProviderNetwork'>\n","comments":"","outputs":1,"x":2715.333381652832,"y":615.3055877685547,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"42111482.a679dc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unknown naming policy = ' \n    + $network-model.naming-policy`\" />\n\n","comments":"","x":2661.665948867798,"y":710.9721937179565,"z":"1a8b5305.c085cd","wires":[]},{"id":"36f8e62e.3e607a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3251.000175476074,"y":188.6388816833496,"z":"1a8b5305.c085cd","wires":[["e8c5e30.358142","dac3091b.c72dd8","61e7e703.d3e688","749f7e23.95d86","f1f2ca4a.1510c8","c5ab838b.1f37b"]]},{"id":"e8c5e30.358142","type":"set","name":"set nameformat","xml":"<set>\n<parameter name='tmp.network-name-prefix' value='$TenantName_int_$role_net' />\n","comments":"","x":3687.6187286376953,"y":85.40079879760742,"z":"1a8b5305.c085cd","wires":[]},{"id":"4ed6dd56.64d354","type":"set","name":"set nameformat","xml":"<set>\n<parameter name='tmp.network-name-prefix' value='$TenantName_$role_net' />\n","comments":"","x":3685.4286880493164,"y":127.25794219970703,"z":"1a8b5305.c085cd","wires":[]},{"id":"9269a69b.c004e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3201.57186126709,"y":615.3056554794312,"z":"1a8b5305.c085cd","wires":[["4ed6dd56.64d354","dac3091b.c72dd8","61e7e703.d3e688","749f7e23.95d86","f1f2ca4a.1510c8","c5ab838b.1f37b"]]},{"id":"f9fba683.787ff8","type":"other","name":"outcome org.openecomp.policy.naming.ViprProtectedOam.ViprOamProtectedNetwork","xml":"<outcome value='org.openecomp.policy.naming.ViprProtectedOam.ViprOamProtectedNetwork'>\n","comments":"","outputs":1,"x":2755.111503601074,"y":338.6389513015747,"z":"1a8b5305.c085cd","wires":[["36f8e62e.3e607a"]]},{"id":"dac3091b.c72dd8","type":"execute","name":"execute SliStringUtils - replace tenantname","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-name-prefix`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-name-prefix\"/>\n    <parameter name=\"target\" value=\"$TenantName\"/>\n    <parameter name=\"replacement\" value=\"`$aai.tenant.tenant-name`\"/>\n\n","comments":"","outputs":1,"x":3761.873222351074,"y":250.92461776733398,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"61e7e703.d3e688","type":"execute","name":"execute SliStringUtils - replace role","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-name-prefix`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-name-prefix\"/>\n    <parameter name=\"target\" value=\"$role\"/>\n    <parameter name=\"replacement\" value=\"`$network-model.network-role`\"/>\n\n","comments":"","outputs":1,"x":3734.873222351074,"y":285.924617767334,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"749f7e23.95d86","type":"get-resource","name":"get-resource NETWORK_INSTANCE_NAME_INDEX","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix\n    = $tmp.network-name-prefix'\n  pfx='db.network-name-prefix'>\n\n","comments":"","outputs":1,"x":3784.539970397949,"y":321.924617767334,"z":"1a8b5305.c085cd","wires":[["d1722a3d.4b95d8"]]},{"id":"f1f2ca4a.1510c8","type":"switchNode","name":"switch index-number","xml":"<switch test='`$db.network-name-prefix.index-number`'>\n","comments":"","outputs":1,"x":3690.25431060791,"y":426.21020221710205,"z":"1a8b5305.c085cd","wires":[["e5a7ba6c.507c58","27e6f16.769840e"]]},{"id":"27e6f16.769840e","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3873.1113510131836,"y":467.63871574401855,"z":"1a8b5305.c085cd","wires":[["b0448576.a22c18"]]},{"id":"e5a7ba6c.507c58","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3874.5399017333984,"y":383.3530445098877,"z":"1a8b5305.c085cd","wires":[["7b9484b0.6f36cc"]]},{"id":"9b3d1da7.01a72","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)\"\n  force='false' pfx='pfx'>\n","comments":"","outputs":1,"x":4248.825759887695,"y":487.6390686035156,"z":"1a8b5305.c085cd","wires":[["63e45141.ca441"]]},{"id":"7f3fa0.f0f1d06","type":"set","name":"increment index number","xml":"<set>\n<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />\n","comments":"","x":4245.96854019165,"y":360.4960594177246,"z":"1a8b5305.c085cd","wires":[]},{"id":"b0448576.a22c18","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4031.6828956604004,"y":466.21035957336426,"z":"1a8b5305.c085cd","wires":[["a01edb2f.ec40a8","9b3d1da7.01a72"]]},{"id":"d1722a3d.4b95d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4058.825611114502,"y":320.4960289001465,"z":"1a8b5305.c085cd","wires":[["f4b5aa4d.2456c8"]]},{"id":"f4b5aa4d.2456c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading the NETWORK_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":4213.111427307129,"y":320.4960479736328,"z":"1a8b5305.c085cd","wires":[]},{"id":"a01edb2f.ec40a8","type":"set","name":"set new index number to 1","xml":"<set>\n<parameter name='tmp.index-number' value='1' />\n","comments":"","x":4254.54012298584,"y":444.78167724609375,"z":"1a8b5305.c085cd","wires":[]},{"id":"9005b1b8.d71dc","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"update NETWORK_INSTANCE_NAME_INDEX\n       set index_number = $tmp.index-number\n       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix \"\n  force='false' pfx='pfx'>\n","comments":"","outputs":1,"x":4253.111484527588,"y":401.9246120452881,"z":"1a8b5305.c085cd","wires":[["d17ac839.1a13f8"]]},{"id":"7b9484b0.6f36cc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4031.682792663574,"y":381.9244918823242,"z":"1a8b5305.c085cd","wires":[["7f3fa0.f0f1d06","9005b1b8.d71dc"]]},{"id":"d17ac839.1a13f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4475.96854019165,"y":401.9246120452881,"z":"1a8b5305.c085cd","wires":[["957fcd83.2301e"]]},{"id":"957fcd83.2301e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to update SERVICE_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":4630.254356384277,"y":401.9246311187744,"z":"1a8b5305.c085cd","wires":[]},{"id":"63e45141.ca441","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4474.539840698242,"y":487.6388244628906,"z":"1a8b5305.c085cd","wires":[["deb7415b.ff8fd"]]},{"id":"deb7415b.ff8fd","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":4628.825656890869,"y":487.63884353637695,"z":"1a8b5305.c085cd","wires":[]},{"id":"c5ab838b.1f37b","type":"set","name":"set tmp.network-instance-name","xml":"<set>\n<parameter name='tmp.network-instance-name' value=\"`$tmp.network-name-prefix + '_' + $tmp.index-number`\" />\n","comments":"","x":3727.825107574463,"y":505.3531255722046,"z":"1a8b5305.c085cd","wires":[]},{"id":"c7c72a39.652de8","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path'\n value=\"`$tmp.l3-network.self-link`\"/>\n \n","comments":"","x":503.2063407897949,"y":3350.4801511764526,"z":"1a8b5305.c085cd","wires":[]},{"id":"8773a6fd.bcffa8","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$tmp.l3-network.network-id`' />\n","comments":"","x":504.63486099243164,"y":3304.765769958496,"z":"1a8b5305.c085cd","wires":[]},{"id":"a057f23f.aa6af","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />\n<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`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":550.9205741882324,"y":3396.194423675537,"z":"1a8b5305.c085cd","wires":[]},{"id":"71a62cc6.0c1ad4","type":"set","name":"set network in service-data","xml":"<set>\n<parameter name=\"service-data.networks.network[$nidx].network-id\" value='`$tmp.l3-network.network-id`' />\n<parameter name=\"service-data.networks.network[$nidx].network-data.network-topology.\" value='$network-topology.' />\n<parameter name=\"service-data.networks.network_length\" value='`$nidx+1`' />\n\n","comments":"","x":552.4920387268066,"y":3124.051595687866,"z":"1a8b5305.c085cd","wires":[]},{"id":"9c5b3463.cd7bf8","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n","comments":"","x":547.7300186157227,"y":3163.813540458679,"z":"1a8b5305.c085cd","wires":[]},{"id":"868ff2ba.bc798","type":"set","name":"set network-topology-identifier-structure in service-data","xml":"<set>\n<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />\n<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />\n<parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />\n<parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-input-parameters.`' />\n<parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' />","comments":"","x":637.4920539855957,"y":3016.908727169037,"z":"1a8b5305.c085cd","wires":[]},{"id":"679ee129.c4252","type":"switchNode","name":"switch service-data.networks_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":582.2538871765137,"y":3073.0992045402527,"z":"1a8b5305.c085cd","wires":[["d892cc25.abd2e","1419948c.74a04b"]]},{"id":"d892cc25.abd2e","type":"other","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":886.0634269714355,"y":3064.0516147613525,"z":"1a8b5305.c085cd","wires":[["256eeb6b.789b54"]]},{"id":"256eeb6b.789b54","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='0' />\n","comments":"","x":1066.0634689331055,"y":3061.6230306625366,"z":"1a8b5305.c085cd","wires":[]},{"id":"1419948c.74a04b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":888.9205894470215,"y":3089.765887260437,"z":"1a8b5305.c085cd","wires":[["265dbf75.6b9f6"]]},{"id":"265dbf75.6b9f6","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$service-data.networks.network_length`' />\n","comments":"","x":1067.4920196533203,"y":3098.6230878829956,"z":"1a8b5305.c085cd","wires":[]},{"id":"70ec648.56c6c9c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2517.999942779541,"y":194.00002670288086,"z":"1a8b5305.c085cd","wires":[["25c11570.4e18ba"]]},{"id":"25c11570.4e18ba","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2682.999942779541,"y":194.00002670288086,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"ea7bbc28.439ef","type":"comment","name":"pull vpn binding from db table vs field","info":"","comments":"","x":1884.0740661621094,"y":187.53438568115234,"z":"1a8b5305.c085cd","wires":[]},{"id":"2dde48f4.4544e8","type":"for","name":"for 0..vpn-bindings_length","xml":"<for index='vidx' start='0' end='`$vpn-bindings_length`' >\n","comments":"","outputs":1,"x":1858.4393882751465,"y":256.34392642974854,"z":"1a8b5305.c085cd","wires":[["654f5072.a2802"]]},{"id":"654f5072.a2802","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2066.9150428771973,"y":258.4233341217041,"z":"1a8b5305.c085cd","wires":[["be126fa6.e030e"]]},{"id":"911dd542.ed2ee8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Unexpected error retrieving vpn binding\" />\n\n","comments":"","x":1638.6769752502441,"y":330.77249813079834,"z":"1a8b5305.c085cd","wires":[]},{"id":"32d5ba47.7aac96","type":"set","name":"set hasVpnBindings=true","xml":"<set>\n<parameter name='hasVpnBindings' value='true' />\n","comments":"","x":1856.6137466430664,"y":224.91532611846924,"z":"1a8b5305.c085cd","wires":[]},{"id":"1ea3bcf5.db62a3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":887.1851005554199,"y":520.2963137626648,"z":"1a8b5305.c085cd","wires":[["e6e8dae5.027898"]]},{"id":"34cb595d.aff816","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND\n\t\t     tenant.tenant-id = $network-topology-operation-input.network-request-input.tenant\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":516.6295700073242,"y":382.962947845459,"z":"1a8b5305.c085cd","wires":[["8869ece2.c675b","49964e35.7bcd","f9e58c7b.aacc4"]]},{"id":"8869ece2.c675b","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":737.4909591674805,"y":375.5740623474121,"z":"1a8b5305.c085cd","wires":[["12cdda76.c90c96"]]},{"id":"49964e35.7bcd","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":732.8239860534668,"y":408.9073762893677,"z":"1a8b5305.c085cd","wires":[["12cdda76.c90c96"]]},{"id":"12cdda76.c90c96","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":933.666633605957,"y":383.6296272277832,"z":"1a8b5305.c085cd","wires":[]},{"id":"4f0e6905.0b7fa8","type":"set","name":"set tmp.network-instance-name","xml":"<set>\n<parameter name='tmp.network-instance-name' value=\"`$network-topology-operation-input.network-request-input.network-name`\" />\n","comments":"","x":1342.3702583312988,"y":520.2962832450867,"z":"1a8b5305.c085cd","wires":[]},{"id":"e6e8dae5.027898","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1085.7036628723145,"y":520.2962832450867,"z":"1a8b5305.c085cd","wires":[["4f0e6905.0b7fa8"]]},{"id":"aa240c34.3d017","type":"set","name":"set tmp.l3-network","xml":"<set>\n<parameter name='tmp.l3-network.network-id' value=\"`$tmp.return.generate-l3network-network-id.uuid`\" />\n<parameter name='tmp.l3-network.network-name' value=\"`$tmp.network-instance-name`\" />\n<parameter name='tmp.l3-network.network-type' value=\"`$network-model.network-type`\" />\n<parameter name='tmp.l3-network.network-role' value=\"`$network-model.network-role`\" />\n<parameter name='tmp.l3-network.network-technology' value=\"`$network-model.network-technology`\" />\n<parameter name='tmp.l3-network.is-bound-to-vpn' value=\"`$network-model.is-bound-to-vpn`\" />\n<parameter name='tmp.l3-network.orchestration-status' value=\"PendingCreate\" />\n<parameter name='tmp.l3-network.model-invariant-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`\" />\n<parameter name='tmp.l3-network.model-version-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-version`\" />\n<parameter name='tmp.l3-network.model-customization-id' value=\"`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`\" />\n<parameter name='tmp.l3-network.is-provider-network' value=\"`$network-model.is-provider-network`\" />\n<parameter name='tmp.l3-network.is-shared-network' value=\"`$network-model.is-shared-network`\" />\n<parameter name='tmp.l3-network.is-external-network' value=\"`$network-model.is-external-network`\" />\n<parameter name='tmp.l3-network.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.l3-network.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.l3-network.service-id' value=\"`$service-data.service-information.service-id`\" />\n<parameter name='tmp.l3-network.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $tmp.l3-network.network-id\n + '/network-data/network-topology/'` \" />\n","comments":"","x":509.244140625,"y":653.2910766601562,"z":"1a8b5305.c085cd","wires":[]},{"id":"a5f2c0c4.2e002","type":"call","name":"call generate-l3network-network-id","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-l3network-network-id' mode='sync' >\n","comments":"","outputs":1,"x":556.3866653442383,"y":605.7196311950684,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"cae13e62.0dbe2","type":"switchNode","name":"switch network--model.is-provider-network","xml":"<switch test='`$network-model.is-provider-network`'>\n","comments":"","outputs":1,"x":582.7352676391602,"y":694.5768089294434,"z":"1a8b5305.c085cd","wires":[["89c6a854.601f48","7724a3fb.17a6ec"]]},{"id":"89c6a854.601f48","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":882.8784408569336,"y":679.402265548706,"z":"1a8b5305.c085cd","wires":[["602f391.030b8c8"]]},{"id":"602f391.030b8c8","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"`$network-model.physical-network-name`\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='true' />","comments":"","x":1150.8782958984375,"y":676.4022312164307,"z":"1a8b5305.c085cd","wires":[]},{"id":"4728dc8a.76ddd4","type":"set","name":"set tmp.network-topology","xml":"<set>\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-id' value=\"`$tmp.l3-network.network-name`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-name' value=\"`$tmp.l3-network.network-name`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-type' value=\"`$tmp.l3-network.network-type`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-role' value=\"`$tmp.l3-network.network-role`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.network-technology' value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v4-address-plan' value=\"`$network-model.eipam-v4-address-plan`\" />\n<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v6-address-plan' value=\"`$network-model.eipam-v6-address-plan`\" />\n<parameter name='tmp.network-topology.region-identifier.tenant' value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n<parameter name='tmp.network-topology.region-identifier.aic-cloud-region' value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n<parameter name='tmp.network-topology.region-identifier.aic-clli' value=\"`$network-topology-operation-input.network-request-input.aic-clli`\" />\n<parameter name='tmp.network-topology.onap-model-information.' value=\"`$network-topology-operation-input.network-information.onap-model-information.`\" />\n<parameter name='tmp.network-topology.network-parameters.' value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.`\" />\n","comments":"","x":577.4101905822754,"y":2448.9736881256104,"z":"1a8b5305.c085cd","wires":[]},{"id":"bc4df92.6ad6f08","type":"switchNode","name":"switch network-model.eipam-v4-address-plan (VIPR)","xml":"<switch test='`$network-model.eipam-v4-address-plan`'>\n","comments":"","outputs":1,"x":2028.5613021850586,"y":1388.909984588623,"z":"1a8b5305.c085cd","wires":[["5efa60f2.f4a81","464197e1.4cabd8","b87722fe.57e3c","279f950e.baf49a"]]},{"id":"5efa60f2.f4a81","type":"other","name":"AIC_ATM_UNPROTECTED_V4","xml":"<outcome value='AIC_ATM_UNPROTECTED_V4'>","comments":"","outputs":1,"x":2488.560722351074,"y":1357.9098014831543,"z":"1a8b5305.c085cd","wires":[["b8481fbd.f33f6"]]},{"id":"464197e1.4cabd8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2412.2276878356934,"y":1473.2434101104736,"z":"1a8b5305.c085cd","wires":[["54efc2e2.b2c12c"]]},{"id":"797304de.6cccec","type":"save","name":"save relationship: service-instance","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"service-instance\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"customer.global-customer-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.service-information.global-customer-id`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"service-subscription.service-type\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$service-data.service-information.subscription-service-type`\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"service-instance.service-instance-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$service-data.service-information.service-instance-id`\" />","comments":"","outputs":1,"x":617.2711410522461,"y":2710.8468132019043,"z":"1a8b5305.c085cd","wires":[["2f4f1f7c.f19a9","29f88949.932b36"]]},{"id":"b87722fe.57e3c","type":"other","name":"AIC_ATM_PROTECTED_V4","xml":"<outcome value='AIC_ATM_PROTECTED_V4'>","comments":"","outputs":1,"x":2478.449333190918,"y":1395.4656400680542,"z":"1a8b5305.c085cd","wires":[["b8481fbd.f33f6"]]},{"id":"54efc2e2.b2c12c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid address plan for VIPR\" />\n","comments":"","x":2583.1158714294434,"y":1474.5766925811768,"z":"1a8b5305.c085cd","wires":[]},{"id":"ccfde65e.e5a838","type":"switchNode","name":"switch network-model.eipam-v4-address-plan (SRIOV)","xml":"<switch test='`$network-model.eipam-v4-address-plan`'>\n","comments":"","outputs":1,"x":2064.2953033447266,"y":1737.5170440673828,"z":"1a8b5305.c085cd","wires":[["7d69ddb.4eb1724","661e7fce.8d3e6","cb5bdfca.b22e2","2a9685d1.8f282a"]]},{"id":"7d69ddb.4eb1724","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V4","xml":"<outcome value='AIC_DATA_PLANE_UNPROTECTED_V4'>","comments":"","outputs":1,"x":2531.5452423095703,"y":1736.7669706344604,"z":"1a8b5305.c085cd","wires":[["dd3a41a3.fce13"]]},{"id":"661e7fce.8d3e6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2424.15252494812,"y":1851.588595867157,"z":"1a8b5305.c085cd","wires":[["e08c16f9.560da8"]]},{"id":"cb5bdfca.b22e2","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V4","xml":"<outcome value='AIC_DATA_PLANE_PROTECTED_V4'>","comments":"","outputs":1,"x":2527.9339141845703,"y":1773.5725135803223,"z":"1a8b5305.c085cd","wires":[["dd3a41a3.fce13"]]},{"id":"e08c16f9.560da8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid address plan for SRIOV\" />\n","comments":"","x":2570.0407104492188,"y":1854.1718482971191,"z":"1a8b5305.c085cd","wires":[]},{"id":"2a9685d1.8f282a","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V4","xml":"<outcome value='AIC_DATA_PLANE_PRIVATE_V4'>","comments":"","outputs":1,"x":2510.1525268554688,"y":1812.3384685516357,"z":"1a8b5305.c085cd","wires":[["dd3a41a3.fce13"]]},{"id":"14bf4e76.feb402","type":"switchNode","name":"switch network-model.eipam-v6-address-plan","xml":"<switch test='`$network-model.eipam-v6-address-plan`'>\n","comments":"","outputs":1,"x":2008.493263244629,"y":1556.5017204284668,"z":"1a8b5305.c085cd","wires":[["24428acd.934a56","a8641e83.b8db7","95022c2.dc0f4d","e1a0deaa.2971a"]]},{"id":"a2da1074.b277a","type":"save","name":"save AnAI - l3-network","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"network-name\" value=\"`$tmp.l3-network.network-name`\" />\n<parameter name=\"network-type\" value=\"`$tmp.l3-network.network-type`\" />\n<parameter name=\"network-role\" value=\"`$tmp.l3-network.network-role`\" />\n<parameter name=\"network-technology\" value=\"`$tmp.l3-network.network-technology`\" />\n<parameter name=\"is-bound-to-vpn\" value=\"`$tmp.l3-network.is-bound-to-vpn`\" />\n<parameter name=\"service-id\" value=\"`$tmp.l3-network.service-id`\" />\n<parameter name=\"tenant-id\" value=\"`$network-topology-operation-input.network-request-information.tenant`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />\n<parameter name=\"persona-model-id\" value=\"`$tmp.l3-network.persona-model-id`\" />\n<parameter name=\"persona-model-version\" value=\"`$tmp.l3-network.persona-model-version`\" />\n<parameter name=\"persona-model-customization-id\" value=\"`$tmp.l3-network.persona-model-customization-id`\" />\n<parameter name=\"physical-network-name\" value=\"`$tmp.l3-network.physical-network-name`\" />\n<parameter name=\"is-provider-network\" value=\"`$tmp.l3-network.is-provider-network-boolean`\" />\n<parameter name=\"is-shared-network\" value=\"`$tmp.l3-network.is-shared-network-boolean`\" />\n<parameter name=\"is-external-network\" value=\"`$tmp.l3-network.is-external-network-boolean`\" />\n<parameter name=\"selflink\" value=\"`$tmp.l3-network.self-link`\" />\n","comments":"","outputs":1,"x":560.1203231811523,"y":2508.6126823425293,"z":"1a8b5305.c085cd","wires":[["c40893c5.bed6a","cc2e1488.ed29e8"]]},{"id":"a3b08dd5.410cf","type":"switchNode","name":"switch network-model.eipam-v6-address-plan (SRIOV)","xml":"<switch test='`$network-model.eipam-v6-address-plan`'>\n","comments":"","outputs":1,"x":2100.3426971435547,"y":1955.7078790664673,"z":"1a8b5305.c085cd","wires":[["9370dcee.b1658","230c5ba9.b8ec14","8421ed93.f98dc","d1efeef1.782e5","c7ab8d9a.6efc4","4e216a04.bdc844"]]},{"id":"9370dcee.b1658","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2434.770872116089,"y":2150.6365903019905,"z":"1a8b5305.c085cd","wires":[["e7e4c219.08456"]]},{"id":"e7e4c219.08456","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid ipv6 address plan for SRIOV\" />\n","comments":"","x":2600.6589279174805,"y":2149.6485112309456,"z":"1a8b5305.c085cd","wires":[]},{"id":"230c5ba9.b8ec14","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value=\"AIC_ATM_UNPROTECTED_V6\">","comments":"","outputs":1,"x":2503.6082305908203,"y":1956.9102249145508,"z":"1a8b5305.c085cd","wires":[["403ea448.83caac"]]},{"id":"8421ed93.f98dc","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value=\"AIC_ATM_PROTECTED_V6\">","comments":"","outputs":1,"x":2498.893585205078,"y":1998.9102478027344,"z":"1a8b5305.c085cd","wires":[["403ea448.83caac"]]},{"id":"d1efeef1.782e5","type":"other","name":"AIC_DATA_PLANE_UNPROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_UNPROTECTED_V6\">","comments":"","outputs":1,"x":2538.795234680176,"y":2037.0531024932861,"z":"1a8b5305.c085cd","wires":[["403ea448.83caac"]]},{"id":"4e216a04.bdc844","type":"other","name":"AIC_DATA_PLANE_PROTECTED_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PROTECTED_V6\">","comments":"","outputs":1,"x":2527.509864807129,"y":2104.4815190434456,"z":"1a8b5305.c085cd","wires":[["403ea448.83caac"]]},{"id":"c7ab8d9a.6efc4","type":"other","name":"AIC_DATA_PLANE_PRIVATE_V6","xml":"<outcome value=\"AIC_DATA_PLANE_PRIVATE_V6\">","comments":"","outputs":1,"x":2515.795440673828,"y":2071.910224914551,"z":"1a8b5305.c085cd","wires":[["403ea448.83caac"]]},{"id":"7724a3fb.17a6ec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":870.2434997558594,"y":710.2752866744995,"z":"1a8b5305.c085cd","wires":[["e943ec69.aeaf6"]]},{"id":"e943ec69.aeaf6","type":"set","name":"set tmp.l3-network.physical-network-name","xml":"<set>\n<parameter name='tmp.l3-network.physical-network-name' value=\"\" />\n<parameter name='tmp.l3-network.is-provider-network-boolean' value='false' />","comments":"","x":1154.5294570922852,"y":708.8467178344727,"z":"1a8b5305.c085cd","wires":[]},{"id":"b7ab3890.826f88","type":"switchNode","name":"switch network--model.is-shared-network","xml":"<switch test='`$network-model.is-shared-network`'>\n","comments":"","outputs":1,"x":583.7351722717285,"y":741.878303527832,"z":"1a8b5305.c085cd","wires":[["ddbe6021.0df94","43db457d.275bfc"]]},{"id":"ddbe6021.0df94","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":881.0210113525391,"y":745.2752389907837,"z":"1a8b5305.c085cd","wires":[["dfdc8285.e2d84"]]},{"id":"dfdc8285.e2d84","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='true' />","comments":"","x":1173.3067245483398,"y":745.2750864028931,"z":"1a8b5305.c085cd","wires":[]},{"id":"43db457d.275bfc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":869.8150367736816,"y":780.5767459869385,"z":"1a8b5305.c085cd","wires":[["48fd2235.78fcdc"]]},{"id":"48fd2235.78fcdc","type":"set","name":"set tmp.l3-network.is-shared-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-shared-network-boolean' value='false' />","comments":"","x":1174.1009559631348,"y":780.4339237213135,"z":"1a8b5305.c085cd","wires":[]},{"id":"a6f05dc6.5396f","type":"switchNode","name":"switch network--model.is-external-network","xml":"<switch test='`$network-model.is-external-network`'>\n","comments":"","outputs":1,"x":586.7517318725586,"y":810.5926513671875,"z":"1a8b5305.c085cd","wires":[["dde6ab06.666f48","3f618dc2.181b72"]]},{"id":"dde6ab06.666f48","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":884.0375709533691,"y":813.9895868301392,"z":"1a8b5305.c085cd","wires":[["fa82ba7a.274818"]]},{"id":"fa82ba7a.274818","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='true' />","comments":"","x":1176.32328414917,"y":813.9894342422485,"z":"1a8b5305.c085cd","wires":[]},{"id":"3f618dc2.181b72","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":872.8315963745117,"y":849.291093826294,"z":"1a8b5305.c085cd","wires":[["1d5e084a.a29b78"]]},{"id":"1d5e084a.a29b78","type":"set","name":"set tmp.l3-network.is-external-network-boolean","xml":"<set>\n<parameter name='tmp.l3-network.is-external-network-boolean' value='false' />","comments":"","x":1177.1175155639648,"y":849.148271560669,"z":"1a8b5305.c085cd","wires":[]},{"id":"3837a2bc.6e158e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`\" />\n","comments":"","x":1023.7992134094238,"y":2491.6560916900635,"z":"1a8b5305.c085cd","wires":[]},{"id":"c40893c5.bed6a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":795.2278213500977,"y":2490.671829223633,"z":"1a8b5305.c085cd","wires":[["3837a2bc.6e158e"]]},{"id":"8d2ed5fd.a2be38","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":1678.6559104919434,"y":2591.67188167572,"z":"1a8b5305.c085cd","wires":[["10173bcb.62db54","304a38c0.5ac098"]]},{"id":"e495d7bf.6827a8","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\n","comments":"","outputs":1,"x":562.2121324539185,"y":2569.6719675064087,"z":"1a8b5305.c085cd","wires":[["9a14be8b.c4dce"]]},{"id":"9a14be8b.c4dce","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":789.3548126220703,"y":2568.5609188079834,"z":"1a8b5305.c085cd","wires":[["113cc2e1.6bb4ed","cb48f70c.4ee7f8"]]},{"id":"10173bcb.62db54","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1934.4962425231934,"y":2548.1478338241577,"z":"1a8b5305.c085cd","wires":[["e72b852c.6da448"]]},{"id":"ed1fbf08.fa0f9","type":"save","name":"save relationship: tenant and cloud-region","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" \n\tforce=\"true\" \n\tlocal-only=\"false\">\n\t<!-- create relationship-list -->\n\t<parameter name=\"relationship-list.relationship[0].related-to\" value=\"tenant\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"CloudOwner\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"tenant.tenant-id\" />\n\t<parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.tenant`\" />\n\t<parameter name=\"relationship-list.relationship[1].related-to\" value=\"cloud-region\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[0].relationship-value\" value=\"CloudOwner\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n\t<parameter name=\"relationship-list.relationship[1].relationship-data[1].relationship-value\" value=\"`$network-topology-operation-input.network-request-input.aic-cloud-region`\" />\n\t\n\t","comments":"","outputs":1,"x":617.9264144897461,"y":2846.2435417175293,"z":"1a8b5305.c085cd","wires":[["f876d5b8.4f26c8","9ea6263d.2cf398"]]},{"id":"f876d5b8.4f26c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":865.9264183044434,"y":2846.243532180786,"z":"1a8b5305.c085cd","wires":[["e0ef3b91.882348"]]},{"id":"e0ef3b91.882348","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1054.3192462921143,"y":2845.879650115967,"z":"1a8b5305.c085cd","wires":[["74512067.32d89","21428fc3.65275"]]},{"id":"74512067.32d89","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":1300.0851249694824,"y":2836.5820569992065,"z":"1a8b5305.c085cd","wires":[]},{"id":"304a38c0.5ac098","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1943.2193870544434,"y":2585.79102230072,"z":"1a8b5305.c085cd","wires":[["e72b852c.6da448"]]},{"id":"9ea6263d.2cf398","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":873.9342613220215,"y":2888.0768547058105,"z":"1a8b5305.c085cd","wires":[["e0ef3b91.882348"]]},{"id":"2f4f1f7c.f19a9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":853.4181060791016,"y":2709.989246368408,"z":"1a8b5305.c085cd","wires":[["10d1d9fc.30afb6"]]},{"id":"29f88949.932b36","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":864.1411399841309,"y":2743.632335662842,"z":"1a8b5305.c085cd","wires":[["10d1d9fc.30afb6"]]},{"id":"48994ca2.f68244","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\">","comments":"","outputs":1,"x":1814.7355880737305,"y":3411.2118644714355,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"ca9121d3.7a07d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error writing to l3-network - ' + $tmp.error-message`\"/>","comments":"","x":1803.3397216796875,"y":3454.407875061035,"z":"1a8b5305.c085cd","wires":[]},{"id":"21428fc3.65275","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1624.911849975586,"y":3411.4634532928467,"z":"1a8b5305.c085cd","wires":[["48994ca2.f68244","ca9121d3.7a07d"]]},{"id":"dc5a36f4.8bbba8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2374.3692893981934,"y":2563.0052556991577,"z":"1a8b5305.c085cd","wires":[]},{"id":"e72b852c.6da448","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2119.2267112731934,"y":2562.4337224960327,"z":"1a8b5305.c085cd","wires":[["dc5a36f4.8bbba8","21428fc3.65275"]]},{"id":"cc2e1488.ed29e8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":799.0373191833496,"y":2520.1482458114624,"z":"1a8b5305.c085cd","wires":[["3837a2bc.6e158e"]]},{"id":"113cc2e1.6bb4ed","type":"set","name":"set: tmp.subnet-id","xml":"<set>\n<parameter name=\"tmp.subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\"/>\n\t","comments":"","x":1015.4183883666992,"y":2528.8146476745605,"z":"1a8b5305.c085cd","wires":[]},{"id":"cb48f70c.4ee7f8","type":"switchNode","name":"switch dhcp-enabled","xml":"<switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\n","comments":"","outputs":1,"x":1018.7674827575684,"y":2573.683539390564,"z":"1a8b5305.c085cd","wires":[["332a0d9a.2096e2","37b18102.98d6ce"]]},{"id":"37b18102.98d6ce","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1252.7674827575684,"y":2549.6836614608765,"z":"1a8b5305.c085cd","wires":[["bbfc739f.96b1"]]},{"id":"332a0d9a.2096e2","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1250.7674827575684,"y":2585.6836614608765,"z":"1a8b5305.c085cd","wires":[["4c50ff55.54e58"]]},{"id":"412912ba.445eac","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnet-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet[$sidx].subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.l3-network.subnet[$sidx].gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$tmp.l3-network.subnet[$sidx].network-start-address`\" />\n<parameter name=\"cidr-mask\" value=\"`$tmp.l3-network.subnet[$sidx].cidr-mask`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.l3-network.subnet[$sidx].ip-version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet[$sidx].dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":1678.7672386169434,"y":2547.68360042572,"z":"1a8b5305.c085cd","wires":[["304a38c0.5ac098","10173bcb.62db54"]]},{"id":"bbfc739f.96b1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1443.6559104919434,"y":2549.906012535095,"z":"1a8b5305.c085cd","wires":[["412912ba.445eac"]]},{"id":"4c50ff55.54e58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1443.6561546325684,"y":2589.906012535095,"z":"1a8b5305.c085cd","wires":[["8d2ed5fd.a2be38"]]},{"id":"3917cd9.7ed7c32","type":"for","name":"for 0..vpn-bindings_length","xml":"<for index='vidx' start='0' end='`$vpn-bindings_length`' >\n","comments":"","outputs":1,"x":1144.9518966674805,"y":2649.239086151123,"z":"1a8b5305.c085cd","wires":[["7c900881.645018"]]},{"id":"cb2ae5c7.b8f7a8","type":"switchNode","name":"switch hasVpnBindings","xml":"<switch test='`$hasVpnBindings`'>\n","comments":"","outputs":1,"x":585.6190299987793,"y":2650.202492713928,"z":"1a8b5305.c085cd","wires":[["8207c0b3.22e3f"]]},{"id":"6cf30f85.f2632","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":946.285758972168,"y":2651.535472869873,"z":"1a8b5305.c085cd","wires":[["3917cd9.7ed7c32"]]},{"id":"5f2018d1.a1d508","type":"save","name":"save relationship: vpn_bindings","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.l3-network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"vpn-binding\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"vpn-binding.vpn-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$vpn-bindings[$vidx].binding-uuid`\" />","comments":"","outputs":1,"x":1606.285514831543,"y":2649.202220916748,"z":"1a8b5305.c085cd","wires":[["c08b58ea.2e93c8","6ffa9708.073958"]]},{"id":"c08b58ea.2e93c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1838.0251121520996,"y":2648.0110969543457,"z":"1a8b5305.c085cd","wires":[["a8bf5972.afc6a8"]]},{"id":"a8bf5972.afc6a8","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1994.9179916381836,"y":2647.647204399109,"z":"1a8b5305.c085cd","wires":[["21428fc3.65275","55da40d2.2f072"]]},{"id":"6ffa9708.073958","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1847.0555114746094,"y":2682.289525985718,"z":"1a8b5305.c085cd","wires":[["a8bf5972.afc6a8"]]},{"id":"7c900881.645018","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1362.6186447143555,"y":2651.201976776123,"z":"1a8b5305.c085cd","wires":[["5f2018d1.a1d508"]]},{"id":"10d1d9fc.30afb6","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1045.581932067871,"y":2709.5356254577637,"z":"1a8b5305.c085cd","wires":[["21428fc3.65275","fd152d37.d5acd"]]},{"id":"fd152d37.d5acd","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving service instance relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":1270.581932067871,"y":2708.202251434326,"z":"1a8b5305.c085cd","wires":[]},{"id":"55da40d2.2f072","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2222.581886291504,"y":2646.8689556121826,"z":"1a8b5305.c085cd","wires":[]},{"id":"b629208a.09c27","type":"switchNode","name":"switch network-technology","xml":"<switch test='`$network-model.network-technology`'>\n","comments":"","outputs":1,"x":546.1110458374023,"y":1389.4443473815918,"z":"1a8b5305.c085cd","wires":[["5d98c991.20e8f8","9d4e2f0d.1638","bcb49c2d.d02b3"]]},{"id":"a9dd6669.a72c38","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND \n\t\t     depth = '0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":543.444450378418,"y":982.4443778991699,"z":"1a8b5305.c085cd","wires":[["b1b41c5c.6ac73","b1eb8b68.e93818"]]},{"id":"b1eb8b68.e93818","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":765.8335571289062,"y":1019.1665458679199,"z":"1a8b5305.c085cd","wires":[["358bf8ac.301e38"]]},{"id":"358bf8ac.301e38","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":944.1192016601562,"y":1019.1665458679199,"z":"1a8b5305.c085cd","wires":[]},{"id":"b1b41c5c.6ac73","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":772.333553314209,"y":983.1666069030762,"z":"1a8b5305.c085cd","wires":[["cccc3223.636ff"]]},{"id":"cccc3223.636ff","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region not found in AAI\" />\n","comments":"","x":940.1113891601562,"y":982.4721488952637,"z":"1a8b5305.c085cd","wires":[]},{"id":"9de966ff.c0be48","type":"comment","name":"Per test failure in IT, need to throw error if relationships don't exist","info":"","comments":"","x":661.6946868896484,"y":939.5276851654053,"z":"1a8b5305.c085cd","wires":[]},{"id":"2fbd77c1.048628","type":"set","name":"set tmp.complex-found","xml":"<set>\n<parameter name='tmp.complex-found' value='false' />\n\n","comments":"","x":529.8890609741211,"y":882.8332328796387,"z":"1a8b5305.c085cd","wires":[]},{"id":"93a30dfc.d4482","type":"get-resource","name":"get-resource complex","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"complex\" \n\t\tkey=\"complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value\"\n        pfx='aai.complex' local-only='false' >\n        \n\n\n","comments":"","outputs":1,"x":1634.999870300293,"y":1202.4444198608398,"z":"1a8b5305.c085cd","wires":[["4044fb25.8ce8c4","898fafd9.df1f5","9249c225.c0f71"]]},{"id":"898fafd9.df1f5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1866.6391830444336,"y":1261.916404724121,"z":"1a8b5305.c085cd","wires":[["97d0bcc0.ddc29"]]},{"id":"97d0bcc0.ddc29","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving complex from AAI\" />\n","comments":"","x":2040.9248275756836,"y":1261.916404724121,"z":"1a8b5305.c085cd","wires":[]},{"id":"4044fb25.8ce8c4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1869.1391792297363,"y":1221.9164657592773,"z":"1a8b5305.c085cd","wires":[["b737ddd0.c8ed4"]]},{"id":"b737ddd0.c8ed4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Complex not found in AAI\" />\n","comments":"","x":2036.917106628418,"y":1221.2218132019043,"z":"1a8b5305.c085cd","wires":[]},{"id":"5b1e35b2.5ea92c","type":"for","name":"for relationship list","xml":"<for silentFailure='false' index='ridx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship_length`\" >\n","comments":"","outputs":1,"x":509.86153411865234,"y":1158.6747665405273,"z":"1a8b5305.c085cd","wires":[["6b0ad57f.0fe9cc"]]},{"id":"862e6c4c.7a97","type":"switchNode","name":"switch","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":915.361198425293,"y":1162.3888778686523,"z":"1a8b5305.c085cd","wires":[["5eb1534d.ddb1fc"]]},{"id":"6b0ad57f.0fe9cc","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":732.7779769897461,"y":1159.6389999389648,"z":"1a8b5305.c085cd","wires":[["862e6c4c.7a97"]]},{"id":"5eb1534d.ddb1fc","type":"other","name":"complex.physical-location-id","xml":"<outcome value='complex.physical-location-id'>\n","comments":"","outputs":1,"x":1137.8612594604492,"y":1160.8055038452148,"z":"1a8b5305.c085cd","wires":[["ec522bfd.604bd8"]]},{"id":"ec522bfd.604bd8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1377.2775802612305,"y":1158.5556259155273,"z":"1a8b5305.c085cd","wires":[["93a30dfc.d4482","a0b8ae7e.73db","1478ab7a.138b25"]]},{"id":"9249c225.c0f71","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1861.6669752332891,"y":1175.9721787770586,"z":"1a8b5305.c085cd","wires":[["73c62e58.62479"]]},{"id":"73c62e58.62479","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2038.8098449707031,"y":1177.222131729126,"z":"1a8b5305.c085cd","wires":[["97a332a5.2b6c9"]]},{"id":"a0b8ae7e.73db","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.network-request-input.aic-clli' value='`$aai.complex.physical-location-id`' />\n\n","comments":"","x":1601.7781372070312,"y":1165.5000114440918,"z":"1a8b5305.c085cd","wires":[]},{"id":"7a1a7c2.ce09484","type":"switchNode","name":"switch relationship_length","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":539.8889694213867,"y":1081.7221908569336,"z":"1a8b5305.c085cd","wires":[["727319e3.8edd98","26c69776.80cfa8"]]},{"id":"727319e3.8edd98","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":733.8890414767793,"y":1080.7222796546089,"z":"1a8b5305.c085cd","wires":[["6823a93b.07df48"]]},{"id":"26c69776.80cfa8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":735.8890380859375,"y":1119.7223110198975,"z":"1a8b5305.c085cd","wires":[["6823a93b.07df48"]]},{"id":"6823a93b.07df48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region missing relationships in AAI\" />\n","comments":"","x":919.8890380859375,"y":1085.7223110198975,"z":"1a8b5305.c085cd","wires":[]},{"id":"1478ab7a.138b25","type":"set","name":"set tmp.complex-found","xml":"<set>\n<parameter name='tmp.complex-found' value='true' />\n\n","comments":"","x":1640.1111450195312,"y":1133.8333854675293,"z":"1a8b5305.c085cd","wires":[]},{"id":"60381262.576cfc","type":"switchNode","name":"switch tmp.complex-found","xml":"<switch test='`$tmp.complex-found`'>\n","comments":"","outputs":1,"x":537.8890914916992,"y":1241.9444198608398,"z":"1a8b5305.c085cd","wires":[["5a328de2.03b8b4"]]},{"id":"5a328de2.03b8b4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":755.3890914916992,"y":1241.3055038452148,"z":"1a8b5305.c085cd","wires":[["e8bfbba2.de15b8"]]},{"id":"e8bfbba2.de15b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Complex not found in AAI\" />\n","comments":"","x":912.889030456543,"y":1242.8056259155273,"z":"1a8b5305.c085cd","wires":[]},{"id":"5d98c991.20e8f8","type":"outcome","name":"outcome Contrail","xml":"<outcome value='Contrail'>\n","comments":"","outputs":1,"x":788.9999618530273,"y":1389.8886833190918,"z":"1a8b5305.c085cd","wires":[["f6f1d63d.fe27e8"]]},{"id":"9d4e2f0d.1638","type":"outcome","name":"outcome AIC_SR_IOV","xml":"<outcome value='AIC_SR_IOV'>\n","comments":"","outputs":1,"x":822.9999923706055,"y":1732.8888053894043,"z":"1a8b5305.c085cd","wires":[["46abce7a.44c39"]]},{"id":"97a332a5.2b6c9","type":"switchNode","name":"switch region","xml":"<switch test='`$aai.complex.region`'>\n","comments":"","outputs":1,"x":2241.4445724487305,"y":1176.8888053894043,"z":"1a8b5305.c085cd","wires":[["38bf1673.6311ca","961953ad.504c8","5a180df4.7bc884","f16470ad.05b77","7e5b906f.9202a","5490bc7c.7aca24"]]},{"id":"38bf1673.6311ca","type":"other","name":"USA","xml":"<outcome value='USA'>\n","comments":"","outputs":1,"x":2475.9447729322637,"y":1120.1388247807818,"z":"1a8b5305.c085cd","wires":[["b368b63c.3dd7a8"]]},{"id":"961953ad.504c8","type":"other","name":"US","xml":"<outcome value='US'>\n","comments":"","outputs":1,"x":2477.1946601867676,"y":1151.3888368606567,"z":"1a8b5305.c085cd","wires":[["b368b63c.3dd7a8"]]},{"id":"5a180df4.7bc884","type":"other","name":"CALA","xml":"<outcome value='CALA'>\n","comments":"","outputs":1,"x":2477.1946601867676,"y":1183.8888368606567,"z":"1a8b5305.c085cd","wires":[["b368b63c.3dd7a8"]]},{"id":"f16470ad.05b77","type":"other","name":"EMEA","xml":"<outcome value='EMEA'>\n","comments":"","outputs":1,"x":2475.9446601867676,"y":1215.1388368606567,"z":"1a8b5305.c085cd","wires":[["b368b63c.3dd7a8"]]},{"id":"7e5b906f.9202a","type":"other","name":"AP","xml":"<outcome value='AP'>\n","comments":"","outputs":1,"x":2477.1946601867676,"y":1248.8887758255005,"z":"1a8b5305.c085cd","wires":[["b368b63c.3dd7a8"]]},{"id":"5490bc7c.7aca24","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2477.1945152282715,"y":1280.1387453079224,"z":"1a8b5305.c085cd","wires":[["e44c109d.dc45c"]]},{"id":"e44c109d.dc45c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Complex.region unknown\" />\n","comments":"","x":2645.9446601867676,"y":1278.8887758255005,"z":"1a8b5305.c085cd","wires":[]},{"id":"b368b63c.3dd7a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2634.888779110379,"y":1145.3889084921943,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"bcb49c2d.d02b3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":773.0000076293945,"y":2019.3336906433105,"z":"1a8b5305.c085cd","wires":[["939bed8f.13cae"]]},{"id":"939bed8f.13cae","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid network-technology.  Only AIC_SR_IOV and Contrail are supported\" />\n","comments":"","x":1000.9999465942383,"y":2019.3336906433105,"z":"1a8b5305.c085cd","wires":[]},{"id":"b8481fbd.f33f6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2745.9997024536133,"y":1365.1110954284668,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"dd3a41a3.fce13","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2803.000259399414,"y":1745.1110877990723,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"403ea448.83caac","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2844.9997940063477,"y":2003.1112187504768,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"ca6d6436.b4f728","type":"call","name":"call process-eipam-pools","xml":"<call module='GENERIC-RESOURCE-API' rpc='process-eipam-pools' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":570.3022994995117,"y":2234.156078338623,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"13db491e.a822c7","type":"call","name":"call GENERIC-RESOURCE-API:create-l3-subnet","xml":"<call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":651.5131759643555,"y":2312.913890838623,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"2709264e.6759fa","type":"set","name":"set process-eipam-action","xml":"<set>\n<parameter name='tmp.process-eipam-action' value='assign' />\n","comments":"","x":573.7677536010742,"y":2195.156322479248,"z":"1a8b5305.c085cd","wires":[]},{"id":"61bb926f.cd7d7c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Values after process-eipam\"/>\n<parameter name=\"field5\" value=\"`level1-v4-mask`\"/>\n<parameter name=\"field6\" value=\"`$tmp.l3-network.level1.v4.mask`\"/>\n<parameter name=\"field7\" value=\"`level1-v4-ipprefix`\"/>\n<parameter name=\"field8\" value=\"`$tmp.l3-network.level1.v4.ip-prefix`\"/>\n<parameter name=\"field9\" value=\"`level1-v4-entity-id`\"/>\n<parameter name=\"field10\" value=\"`$tmp.l3-network.level1.v4.entity-id`\"/>\n<parameter name=\"field11\" value=\"`level2-v4-mask`\"/>\n<parameter name=\"field12\" value=\"`$tmp.l3-network.level2.v4.mask`\"/>\n<parameter name=\"field13\" value=\"`level2-v4-ipprefix`\"/>\n<parameter name=\"field14\" value=\"`$tmp.l3-network.level2.v4.ip-prefix`\"/>\n<parameter name=\"field15\" value=\"`level2-v4-entity-id`\"/>\n<parameter name=\"field16\" value=\"`$tmp.l3-network.level2.v4.entity-id`\"/>\n\n\n","comments":"","outputs":1,"x":520.4187545776367,"y":2269.938060760498,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"f6f1d63d.fe27e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1000.9999923706055,"y":1388.8888053894043,"z":"1a8b5305.c085cd","wires":[["d1028c12.c84fc","bade0de.687c6f"]]},{"id":"46abce7a.44c39","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1048.9999313354492,"y":1732.8888053894043,"z":"1a8b5305.c085cd","wires":[["6dc461c1.1dfdf","330b7d34.5dfc22"]]},{"id":"8207c0b3.22e3f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":778.9999923706055,"y":2650.999828338623,"z":"1a8b5305.c085cd","wires":[["6cf30f85.f2632"]]},{"id":"f9e58c7b.aacc4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":732.9999923706055,"y":344.00002670288086,"z":"1a8b5305.c085cd","wires":[["18ec6cc4.a941f3"]]},{"id":"18ec6cc4.a941f3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":912.9999847412109,"y":342.00000190734863,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"63bb1d97.e60064","type":"switchNode","name":"switch network-technology","xml":"<switch test='`$network-model.network-technology`'>\n","comments":"","outputs":1,"x":574.9999923706055,"y":2927.999828338623,"z":"1a8b5305.c085cd","wires":[["939b5aed.1aae58"]]},{"id":"939b5aed.1aae58","type":"outcome","name":"outcome AIC_SR_IOV","xml":"<outcome value='AIC_SR_IOV'>\n","comments":"","outputs":1,"x":877.8889694213867,"y":2929.444164276123,"z":"1a8b5305.c085cd","wires":[["e82a508a.4229a"]]},{"id":"e82a508a.4229a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1095.8887252807617,"y":2927.4442863464355,"z":"1a8b5305.c085cd","wires":[["aebd7334.b437c","8cea94a0.5581b8"]]},{"id":"aebd7334.b437c","type":"save","name":"save AnAI - segmentation-assignment","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"segmentation-assignment\" \n\t\tkey=\"l3-network.network-id = $tmp.l3-network.network-id \n\t\t\tAND segmentation-assignment.segmentation-id = $tmp.l3-network.segmentation-id\" >\n<!-- Create segmentation-assignment object -->\n<parameter name=\"network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"segmentation-id\" value=\"`$tmp.l3-network.segmentation-id`\" />\n","comments":"","outputs":1,"x":1374.999870300293,"y":2983.7777824401855,"z":"1a8b5305.c085cd","wires":[["635baecf.da65a","844325db.02e548"]]},{"id":"635baecf.da65a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1643.999870300293,"y":2960.777904510498,"z":"1a8b5305.c085cd","wires":[["1db9bcd1.f30e23"]]},{"id":"844325db.02e548","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1652.723014831543,"y":2998.4210929870605,"z":"1a8b5305.c085cd","wires":[["1db9bcd1.f30e23"]]},{"id":"fc0f6851.bec3b8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":2083.872917175293,"y":2975.635326385498,"z":"1a8b5305.c085cd","wires":[]},{"id":"1db9bcd1.f30e23","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1828.730339050293,"y":2975.063793182373,"z":"1a8b5305.c085cd","wires":[["fc0f6851.bec3b8","21428fc3.65275"]]},{"id":"c2804041.b3c85","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties'>\n                  <parameter name='contextPrefix' value='prop'/>\n                  <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api.properties'/>\n","comments":"","outputs":1,"x":1342.999984741211,"y":2906.666576385498,"z":"1a8b5305.c085cd","wires":[["5bb8bd75.e7bd04","b6b631b.f63f8d"]]},{"id":"5bb8bd75.e7bd04","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1550.999984741211,"y":2848.666576385498,"z":"1a8b5305.c085cd","wires":[["44e3f917.1e2e28"]]},{"id":"b6b631b.f63f8d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1544.999984741211,"y":2884.666576385498,"z":"1a8b5305.c085cd","wires":[["4be39f81.4fd4a"]]},{"id":"95dbb3fd.0c1f7","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while reading default segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`\"/>","comments":"","x":1952.9999923706055,"y":2868.666332244873,"z":"1a8b5305.c085cd","wires":[]},{"id":"4be39f81.4fd4a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1721.857406616211,"y":2884.095043182373,"z":"1a8b5305.c085cd","wires":[["95dbb3fd.0c1f7","21428fc3.65275"]]},{"id":"e1be1a52.54f3b8","type":"set","name":"set: tmp.l3-network.segmentation-id","xml":"<set>\n\t<parameter name=\"tmp.l3-network.segmentation-id\" value=\"`$prop.default.segmentation-assignment`\"/>","comments":"","x":1984.9999923706055,"y":2836.666332244873,"z":"1a8b5305.c085cd","wires":[]},{"id":"44e3f917.1e2e28","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1727.857406616211,"y":2848.095043182373,"z":"1a8b5305.c085cd","wires":[["e1be1a52.54f3b8"]]},{"id":"d1028c12.c84fc","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":1256.999870300293,"y":1387.4445915222168,"z":"1a8b5305.c085cd","wires":[["2024b896.76a498"]]},{"id":"2024b896.76a498","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1511.9999961853027,"y":1387.8731479644775,"z":"1a8b5305.c085cd","wires":[["27e33253.31496e"]]},{"id":"27e33253.31496e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1684.5713157653809,"y":1388.301752090454,"z":"1a8b5305.c085cd","wires":[["bc4df92.6ad6f08"]]},{"id":"6dc461c1.1dfdf","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":1324.1111755371094,"y":1733.4446239471436,"z":"1a8b5305.c085cd","wires":[["140551e2.4f61fe"]]},{"id":"140551e2.4f61fe","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1579.1113014221191,"y":1736.8731803894043,"z":"1a8b5305.c085cd","wires":[["ea5dcb81.6728d8"]]},{"id":"ea5dcb81.6728d8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1751.6826210021973,"y":1737.3017845153809,"z":"1a8b5305.c085cd","wires":[["ccfde65e.e5a838"]]},{"id":"330b7d34.5dfc22","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":1344.1111373901367,"y":1954.4445304870605,"z":"1a8b5305.c085cd","wires":[["65a51dc6.c0e5e4"]]},{"id":"65a51dc6.c0e5e4","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1599.1112632751465,"y":1957.8730869293213,"z":"1a8b5305.c085cd","wires":[["9d1d090d.9dc2f8"]]},{"id":"9d1d090d.9dc2f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1795.6825942993164,"y":1956.3017692565918,"z":"1a8b5305.c085cd","wires":[["a3b08dd5.410cf"]]},{"id":"bade0de.687c6f","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":1266.1111373901367,"y":1556.4445304870605,"z":"1a8b5305.c085cd","wires":[["4e4efcc8.51a894"]]},{"id":"4e4efcc8.51a894","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1521.1112632751465,"y":1559.8730869293213,"z":"1a8b5305.c085cd","wires":[["26c43fce.b1a9a"]]},{"id":"26c43fce.b1a9a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1717.6825942993164,"y":1558.3017692565918,"z":"1a8b5305.c085cd","wires":[["14bf4e76.feb402"]]},{"id":"8cea94a0.5581b8","type":"set","name":"set: segmentionat-d=1","xml":"<set>\n\t<parameter name=\"tmp.l3-network.segmentation-id\" value=\"1\"/>","comments":"","x":1329.9841690063477,"y":2950.8570852279663,"z":"1a8b5305.c085cd","wires":[]},{"id":"7e62bfac.efaea","type":"comment","name":"future if need from property","info":"","comments":"","x":1348.5556564331055,"y":2871.999828338623,"z":"1a8b5305.c085cd","wires":[]},{"id":"e3a6601d.ee1c2","type":"other","name":"outcome oam_vipr_protected_network","xml":"<outcome value='oam_vipr_protected_network'>\n","comments":"","outputs":1,"x":2609.555305480957,"y":375.50263023376465,"z":"1a8b5305.c085cd","wires":[["36f8e62e.3e607a"]]},{"id":"d21320c7.875be","type":"other","name":"outcome network_without_route_tags_naming_default","xml":"<outcome value='network_without_route_tags_naming_default'>\n","comments":"","outputs":1,"x":2656.2219772338867,"y":412.16929817199707,"z":"1a8b5305.c085cd","wires":[["36f8e62e.3e607a"]]},{"id":"3927bc9.ef1ad44","type":"other","name":"outcome sriov_provider_network","xml":"<outcome value='sriov_provider_network'>\n","comments":"","outputs":1,"x":2587.888801574707,"y":648.8359718322754,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"f545226c.1e1f3","type":"other","name":"outcome oam_atm_u_landing_network","xml":"<outcome value='oam_atm_u_landing_network'>\n","comments":"","outputs":1,"x":2602.888496398926,"y":453.83595752716064,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"983a4aba.12f018","type":"other","name":"outcome oam_atm_p_landing_network","xml":"<outcome value='oam_atm_p_landing_network'>\n","comments":"","outputs":1,"x":2601.2216720581055,"y":488.8359594345093,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"9ac69de3.85dd5","type":"other","name":"outcome oam_aim_landing_network","xml":"<outcome value='oam_aim_landing_network'>\n","comments":"","outputs":1,"x":2594.5555114746094,"y":520.502628326416,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"56b6dcac.c4bfc4","type":"other","name":"outcome network_with_route_tags_naming_default","xml":"<outcome value='network_with_route_tags_naming_default'>\n","comments":"","outputs":1,"x":2639.555595397949,"y":553.8359527587891,"z":"1a8b5305.c085cd","wires":[["9269a69b.c004e8"]]},{"id":"279f950e.baf49a","type":"other","name":"AIC_AIM_LANDING_NETWORK_V4","xml":"<outcome value='AIC_AIM_LANDING_NETWORK_V4'>","comments":"","outputs":1,"x":2502.999824523926,"y":1429.9999198913574,"z":"1a8b5305.c085cd","wires":[["b8481fbd.f33f6"]]},{"id":"960cc18d.2fd1b","type":"get-resource","name":"get-resource VPN_BINDINGS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VPN_BINDINGS WHERE network_customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid'\n  pfx='vpn-bindings[]'>\n\n","comments":"","outputs":1,"x":1246.142807006836,"y":264.28571128845215,"z":"1a8b5305.c085cd","wires":[["feb45c91.fd681","d7038114.b2909","7f333885.c94138"]]},{"id":"d7038114.b2909","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1467.5714111328125,"y":296.99999237060547,"z":"1a8b5305.c085cd","wires":[["ef08fa38.9d4078"]]},{"id":"7f333885.c94138","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1462.9044380187988,"y":329.33330631256104,"z":"1a8b5305.c085cd","wires":[["911dd542.ed2ee8"]]},{"id":"feb45c91.fd681","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1463.0804443359375,"y":264.4259567260742,"z":"1a8b5305.c085cd","wires":[["cda800bd.57b12"]]},{"id":"ef08fa38.9d4078","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Network model is_bound_to_vpn=true but no vpn_binding is present\" />\n\n","comments":"","x":1636.1428604125977,"y":297.28572368621826,"z":"1a8b5305.c085cd","wires":[]},{"id":"cda800bd.57b12","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1633.2857666015625,"y":263.99999237060547,"z":"1a8b5305.c085cd","wires":[["32d5ba47.7aac96","2dde48f4.4544e8"]]},{"id":"43007d32.9c93f4","type":"comment","name":"Changelog","info":"1707: Change vpn binding from field to table selection\n1710: Add ipv6 vipr flows","comments":"","x":323.8571472167969,"y":80.00000667572021,"z":"1a8b5305.c085cd","wires":[]},{"id":"a8641e83.b8db7","type":"other","name":"AIC_ATM_UNPROTECTED_V6","xml":"<outcome value='AIC_ATM_UNPROTECTED_V6'>","comments":"","outputs":1,"x":2493.800048828125,"y":1535,"z":"1a8b5305.c085cd","wires":[["140e9a55.7c9096"]]},{"id":"95022c2.dc0f4d","type":"other","name":"AIC_ATM_PROTECTED_V6","xml":"<outcome value='AIC_ATM_PROTECTED_V6'>","comments":"","outputs":1,"x":2483.6886596679688,"y":1572.5558385849,"z":"1a8b5305.c085cd","wires":[["140e9a55.7c9096"]]},{"id":"140e9a55.7c9096","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2751.239028930664,"y":1542.2012939453125,"z":"1a8b5305.c085cd","wires":[[]]},{"id":"e1a0deaa.2971a","type":"other","name":"AIC_AIM_LANDING_NETWORK_V6","xml":"<outcome value='AIC_AIM_LANDING_NETWORK_V6'>","comments":"","outputs":1,"x":2508.2391510009766,"y":1607.0901184082031,"z":"1a8b5305.c085cd","wires":[["140e9a55.7c9096"]]},{"id":"24428acd.934a56","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2414.243480682373,"y":1644.6681156158447,"z":"1a8b5305.c085cd","wires":[["7c564997.04f088"]]},{"id":"7c564997.04f088","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"EIPAM V6 Address plan should be null\" />\n","comments":"","x":2585.131175994873,"y":1643.5013790130615,"z":"1a8b5305.c085cd","wires":[]}]
+[{"id":"35351cd8.e49b6c","type":"dgstart","name":"DGSTART","outputs":1,"x":163.75,"y":130,"z":"a4ab5e6a.05da68","wires":[["c488ab18.813ac"]]},{"id":"c488ab18.813ac","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":307.0356903076172,"y":193.09525775909424,"z":"a4ab5e6a.05da68","wires":[["fd3bd3dd.2fc7e"]]},{"id":"fd3bd3dd.2fc7e","type":"method","name":"network-topology-operation-assign","xml":"<method rpc='network-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":282.71437072753906,"y":270.892840385437,"z":"a4ab5e6a.05da68","wires":[["a504ce7b.f4be1"]]},{"id":"a504ce7b.f4be1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":242.03572845458984,"y":455.1578025817871,"z":"a4ab5e6a.05da68","wires":[["7a78b4c3.1d1704","6f978d59.65e2a4","e6aea972.81fa58","c105f712.43feb","2065d316.e3c6b4","435263ad.548d94"]]},{"id":"7a78b4c3.1d1704","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":531.0953216552734,"y":838.428908675909,"z":"a4ab5e6a.05da68","wires":[]},{"id":"9407b227.b5aac","type":"switchNode","name":"switch network-request-information.network-name","xml":"<switch test='`$network-topology-operation-input.network-request-input.network-name`'>\n","comments":"","outputs":1,"x":1393.3293914794922,"y":758.2224534451962,"z":"a4ab5e6a.05da68","wires":[["26796752.d0dcf","b2889a92.f25fa"]]},{"id":"8d83af5b.faf8e","type":"comment","name":"if network-name not populated, generate and call automated flow","info":"","comments":"","x":1979.7104797363281,"y":681.281824439764,"z":"a4ab5e6a.05da68","wires":[]},{"id":"26796752.d0dcf","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1824.7344284057617,"y":724.4007714688778,"z":"a4ab5e6a.05da68","wires":[["2bd3b459.1b62a4"]]},{"id":"2bd3b459.1b62a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2018.067626953125,"y":721.7341164052486,"z":"a4ab5e6a.05da68","wires":[["ad0c5cfa.c98228"]]},{"id":"ad0c5cfa.c98228","type":"switchNode","name":"switch network-model.onap-generated-naming","xml":"<switch test='`$network-model.ecomp-generated-naming`'>\n","comments":"","outputs":1,"x":2318.01993560791,"y":720.734105437994,"z":"a4ab5e6a.05da68","wires":[["ae485efb.76a4e8","ac9117f1.1932"]]},{"id":"ae485efb.76a4e8","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":2637.0200386047363,"y":708.7340984344482,"z":"a4ab5e6a.05da68","wires":[["dca1d141.97d82"]]},{"id":"dca1d141.97d82","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":2805.7700805664062,"y":709.2340869903564,"z":"a4ab5e6a.05da68","wires":[["d12936a3.5fdc98","819f29fe.58f36","56735c9d.4e8e44","2a9c33ec.5e77dc"]]},{"id":"ac9117f1.1932","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2628.242328643799,"y":741.7340984344482,"z":"a4ab5e6a.05da68","wires":[["7163c04e.950f4"]]},{"id":"7163c04e.950f4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Network name is required if onap naming is false\" />\n\n","comments":"","x":2809.742515563965,"y":745.7342141568661,"z":"a4ab5e6a.05da68","wires":[]},{"id":"cb324a53.198fb8","type":"switchNode","name":"switch network-model.onap-generated-naming","xml":"<switch test='`$network-model.naming-policy`'>\n","comments":"","outputs":1,"x":2797.792922973633,"y":1273.127024024725,"z":"a4ab5e6a.05da68","wires":[["75edc6c0.f99408","d438a51e.a26e5","534c46ca.643cc8","113fc1c8.4946c6","90e61ae1.f9a06","9b9f98f0.979af"]]},{"id":"d438a51e.a26e5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3115.7932891845703,"y":1493.1270688474178,"z":"a4ab5e6a.05da68","wires":[["30260c5a.e9ea44"]]},{"id":"75edc6c0.f99408","type":"other","name":"outcome org.openecomp.policy.naming.SriovProvider.SriovProviderNetwork","xml":"<outcome value='org.openecomp.policy.naming.SriovProvider.SriovProviderNetwork'>\n","comments":"","outputs":1,"x":3314.904739379883,"y":1419.1271246373653,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"30260c5a.e9ea44","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unknown naming policy = ' \n    + $network-model.naming-policy`\" />\n\n","comments":"","x":3276.2375507354736,"y":1492.793745368719,"z":"a4ab5e6a.05da68","wires":[]},{"id":"9be184e1.57cef8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3830.8228454589844,"y":1180.210465848446,"z":"a4ab5e6a.05da68","wires":[["39a69556.129652","f43c5a5f.3f54a8","85714f6b.fb864","5ebec644.0ccd68","a8167cc8.a0a54","b9ae426.3e3c74"]]},{"id":"39a69556.129652","type":"set","name":"set nameformat","xml":"<set>\n<parameter name='tmp.network-name-prefix' value='$TenantName_int_$role_net' />\n","comments":"","x":4343.297813415527,"y":1074.5436511933804,"z":"a4ab5e6a.05da68","wires":[]},{"id":"2c4f1662.4b4d3a","type":"set","name":"set nameformat","xml":"<set>\n<parameter name='tmp.network-name-prefix' value='$TenantName_$role_net' />\n","comments":"","x":4341.107772827148,"y":1116.40079459548,"z":"a4ab5e6a.05da68","wires":[]},{"id":"9056cce6.58fbd","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3726.393653869629,"y":1404.8771620690823,"z":"a4ab5e6a.05da68","wires":[["2c4f1662.4b4d3a","f43c5a5f.3f54a8","85714f6b.fb864","5ebec644.0ccd68","a8167cc8.a0a54","b9ae426.3e3c74"]]},{"id":"534c46ca.643cc8","type":"other","name":"outcome org.openecomp.policy.naming.ViprProtectedOam.ViprOamProtectedNetwork","xml":"<outcome value='org.openecomp.policy.naming.ViprProtectedOam.ViprOamProtectedNetwork'>\n","comments":"","outputs":1,"x":3353.6828384399414,"y":1164.460464477539,"z":"a4ab5e6a.05da68","wires":[["9be184e1.57cef8"]]},{"id":"f43c5a5f.3f54a8","type":"execute","name":"execute SliStringUtils - replace tenantname","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-name-prefix`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-name-prefix\"/>\n    <parameter name=\"target\" value=\"$TenantName\"/>\n    <parameter name=\"replacement\" value=\"`$aai.tenant.tenant-name`\"/>\n\n","comments":"","outputs":1,"x":4417.552307128906,"y":1240.067470163107,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"85714f6b.fb864","type":"execute","name":"execute SliStringUtils - replace role","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.network-name-prefix`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.network-name-prefix\"/>\n    <parameter name=\"target\" value=\"$role\"/>\n    <parameter name=\"replacement\" value=\"`$network-model.network-role`\"/>\n\n","comments":"","outputs":1,"x":4390.552307128906,"y":1275.067470163107,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"5ebec644.0ccd68","type":"get-resource","name":"get-resource NETWORK_INSTANCE_NAME_INDEX","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix\n    = $tmp.network-name-prefix'\n  pfx='db.network-name-prefix'>\n\n","comments":"","outputs":1,"x":4440.219055175781,"y":1311.067470163107,"z":"a4ab5e6a.05da68","wires":[["5140a76f.251638"]]},{"id":"a8167cc8.a0a54","type":"switchNode","name":"switch index-number","xml":"<switch test='`$db.network-name-prefix.index-number`'>\n","comments":"","outputs":1,"x":4345.933395385742,"y":1415.353054612875,"z":"a4ab5e6a.05da68","wires":[["1ecccb29.20b9dd","6a4c6ddb.dc419c"]]},{"id":"6a4c6ddb.dc419c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":4528.790435791016,"y":1456.7815681397915,"z":"a4ab5e6a.05da68","wires":[["6510627a.0b6c54"]]},{"id":"1ecccb29.20b9dd","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4530.2189865112305,"y":1372.4958969056606,"z":"a4ab5e6a.05da68","wires":[["c1c17349.e7014"]]},{"id":"c5d52aa5.50e6e","type":"save","name":"save (insert) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)\"\n  force='false' pfx='pfx'>\n","comments":"","outputs":1,"x":4902.005027770996,"y":1479.281955331564,"z":"a4ab5e6a.05da68","wires":[["814eff24.4c754"]]},{"id":"7afcc751.2cd6a","type":"set","name":"increment index number","xml":"<set>\n<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />\n","comments":"","x":4901.647624969482,"y":1349.6389118134975,"z":"a4ab5e6a.05da68","wires":[]},{"id":"6510627a.0b6c54","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4687.361980438232,"y":1455.3532119691372,"z":"a4ab5e6a.05da68","wires":[["9e67cd6.09d453","c5d52aa5.50e6e"]]},{"id":"5140a76f.251638","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4714.504695892334,"y":1309.6388812959194,"z":"a4ab5e6a.05da68","wires":[["a58dedfa.823ee"]]},{"id":"a58dedfa.823ee","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading the NETWORK_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":4868.790512084961,"y":1309.6389003694057,"z":"a4ab5e6a.05da68","wires":[]},{"id":"9e67cd6.09d453","type":"set","name":"set new index number to 1","xml":"<set>\n<parameter name='tmp.index-number' value='1' />\n","comments":"","x":4910.219207763672,"y":1433.9245296418667,"z":"a4ab5e6a.05da68","wires":[]},{"id":"61fdf122.30c6d","type":"save","name":"save (update) name index","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"update NETWORK_INSTANCE_NAME_INDEX\n       set index_number = $tmp.index-number\n       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix \"\n  force='false' pfx='pfx'>\n","comments":"","outputs":1,"x":4908.79056930542,"y":1391.067464441061,"z":"a4ab5e6a.05da68","wires":[["ee2bd7a9.0d103"]]},{"id":"c1c17349.e7014","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4687.361877441406,"y":1371.0673442780972,"z":"a4ab5e6a.05da68","wires":[["7afcc751.2cd6a","61fdf122.30c6d"]]},{"id":"ee2bd7a9.0d103","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5131.647624969482,"y":1391.067464441061,"z":"a4ab5e6a.05da68","wires":[["c54eb549.7b55c"]]},{"id":"c54eb549.7b55c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to update SERVICE_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":5285.933441162109,"y":1391.0674835145473,"z":"a4ab5e6a.05da68","wires":[]},{"id":"814eff24.4c754","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5130.218925476074,"y":1476.7816768586636,"z":"a4ab5e6a.05da68","wires":[["1d6e678c.ed74c8"]]},{"id":"1d6e678c.ed74c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table\" />\n","comments":"","x":5284.504741668701,"y":1476.78169593215,"z":"a4ab5e6a.05da68","wires":[]},{"id":"b9ae426.3e3c74","type":"set","name":"set tmp.network-instance-name","xml":"<set>\n<parameter name='tmp.network-instance-name' value=\"`$tmp.network-name-prefix + '_' + $tmp.index-number`\" />\n","comments":"","x":4383.504192352295,"y":1494.4959779679775,"z":"a4ab5e6a.05da68","wires":[]},{"id":"b2889a92.f25fa","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1805.3638343811035,"y":777.7248501777649,"z":"a4ab5e6a.05da68","wires":[["a9470efa.ce6fb8"]]},{"id":"6f978d59.65e2a4","type":"get-resource","name":"get-resource tenant","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"tenant\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND\n\t\t     tenant.tenant-id = $network-topology-operation-input.network-request-input.tenant\"\n        pfx='aai.tenant' local-only='false' >\n\n","comments":"","outputs":1,"x":578.9153747558594,"y":451.46299585700035,"z":"a4ab5e6a.05da68","wires":[["510eff14.764978","e2757e9.6ede2","723bb3a4.0a6514"]]},{"id":"510eff14.764978","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":814.5267105102539,"y":455.5740579068661,"z":"a4ab5e6a.05da68","wires":[["32cf849b.47605c"]]},{"id":"e2757e9.6ede2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":809.8597373962402,"y":488.90737184882164,"z":"a4ab5e6a.05da68","wires":[["32cf849b.47605c"]]},{"id":"32cf849b.47605c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Tenant not found in AAI\" />\n\n","comments":"","x":1010.7023849487305,"y":463.62962278723717,"z":"a4ab5e6a.05da68","wires":[]},{"id":"b95af8cf.640458","type":"set","name":"set tmp.network-instance-name","xml":"<set>\n<parameter name='tmp.network-instance-name' value=\"`$network-topology-operation-input.network-request-input.network-name`\" />\n<parameter name='tmp.l3-network.network-name' value=\"`$network-topology-operation-input.network-request-input.network-name`\" />\n","comments":"","x":2273.835075378418,"y":770.7248662412167,"z":"a4ab5e6a.05da68","wires":[]},{"id":"a9470efa.ce6fb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2003.882396697998,"y":777.7248196601868,"z":"a4ab5e6a.05da68","wires":[["b95af8cf.640458","d5f7e16b.7cecb"]]},{"id":"994ffad3.0ba89","type":"call","name":"call generate-l3network-network-id","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-l3network-network-id' mode='sync' >\n","comments":"","outputs":1,"x":1233.0295639038086,"y":542.5410922467709,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"723bb3a4.0a6514","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":810.0357437133789,"y":424.0000222623348,"z":"a4ab5e6a.05da68","wires":[["2d78cce8.fc4c2c"]]},{"id":"2d78cce8.fc4c2c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1002.5357437133789,"y":424.75003084540367,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"113fc1c8.4946c6","type":"other","name":"outcome oam_vipr_protected_network","xml":"<outcome value='oam_vipr_protected_network'>\n","comments":"","outputs":1,"x":3208.126640319824,"y":1201.324143409729,"z":"a4ab5e6a.05da68","wires":[["9be184e1.57cef8"]]},{"id":"90e61ae1.f9a06","type":"other","name":"outcome network_without_route_tags_naming_default","xml":"<outcome value='network_without_route_tags_naming_default'>\n","comments":"","outputs":1,"x":3254.793312072754,"y":1237.9908113479614,"z":"a4ab5e6a.05da68","wires":[["9be184e1.57cef8"]]},{"id":"9b9f98f0.979af","type":"other","name":"outcome sriov_provider_network","xml":"<outcome value='sriov_provider_network'>\n","comments":"","outputs":1,"x":3187.460159301758,"y":1452.657508701086,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"99f811c1.c71dc","type":"other","name":"outcome oam_atm_u_landing_network","xml":"<outcome value='oam_atm_u_landing_network'>\n","comments":"","outputs":1,"x":3201.459831237793,"y":1279.657470703125,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"87fe61ea.a414a","type":"other","name":"outcome oam_atm_p_landing_network","xml":"<outcome value='oam_atm_p_landing_network'>\n","comments":"","outputs":1,"x":3199.7930068969727,"y":1314.6574726104736,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"8e28dbe.70ebe28","type":"other","name":"outcome oam_aim_landing_network","xml":"<outcome value='oam_aim_landing_network'>\n","comments":"","outputs":1,"x":3193.1268463134766,"y":1346.3241415023804,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"774e8da3.9580cc","type":"other","name":"outcome network_with_route_tags_naming_default","xml":"<outcome value='network_with_route_tags_naming_default'>\n","comments":"","outputs":1,"x":3238.1269302368164,"y":1379.6574659347534,"z":"a4ab5e6a.05da68","wires":[["9056cce6.58fbd"]]},{"id":"8e167533.9d1438","type":"comment","name":"Changelog","info":"1707: Change vpn binding from field to table selection\n1710: Add ipv6 vipr flows\n1806: Separate out to automated vs preload vs vlan tagging","comments":"","x":376.6071472167969,"y":130.00000667572021,"z":"a4ab5e6a.05da68","wires":[]},{"id":"e6aea972.81fa58","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":642.3214950561523,"y":362.7181886136532,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"71ac9cb8.c11e3c","type":"comment","name":"Pre-1806 naming logic","info":"","comments":"","x":2718.8212890625,"y":1240.8254249989986,"z":"a4ab5e6a.05da68","wires":[]},{"id":"d12936a3.5fdc98","type":"call","name":"call naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":3083.9288177490234,"y":747.0039323270321,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"819f29fe.58f36","type":"set","name":"set parameters for generate-unique-name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$network-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$network-model.customization-uuid`' />\n\n\n","comments":"","x":3106.6791076660156,"y":709.004013389349,"z":"a4ab5e6a.05da68","wires":[]},{"id":"56735c9d.4e8e44","type":"set","name":"set network name","xml":"<set>\n<parameter name='tmp.network-instance-name' value='`$naming-policy-generate-name-output.network-name`' />\n<parameter name='tmp.l3-network.network-name' value='`$naming-policy-generate-name-output.network-name`' />\n\n\n\n","comments":"","x":3033.178871154785,"y":782.0039304196835,"z":"a4ab5e6a.05da68","wires":[]},{"id":"d5f7e16b.7cecb","type":"call","name":"call network-topology-operation-assign-from-preload","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-from-preload' mode='sync' >\n","comments":"","outputs":1,"x":2337.9648056030273,"y":805.4324515759945,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"2a9c33ec.5e77dc","type":"call","name":"call network-topology-operation-assign-automated","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-automated' mode='sync' >\n","comments":"","outputs":1,"x":3137.091377258301,"y":819.5833495557308,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"c105f712.43feb","type":"set","name":"set tmp.l3-network.network-id","xml":"<set>\n<parameter name='tmp.l3-network.network-id' value='`$tmp.return.generate-l3network-network-id.uuid`' />\n<parameter name='network-topology-operation-input.network-information.network-id' value='`$tmp.return.generate-l3network-network-id.uuid`' />","comments":"","x":581.4961700439453,"y":627.2500842511654,"z":"a4ab5e6a.05da68","wires":[]},{"id":"2065d316.e3c6b4","type":"switchNode","name":"switch network-request-information.network-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-id`'>\n","comments":"","outputs":1,"x":631.0000610351562,"y":581.0039370954037,"z":"a4ab5e6a.05da68","wires":[["d4168914.09272","40ee795c.063838"]]},{"id":"d4168914.09272","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":960,"y":544.0039218366146,"z":"a4ab5e6a.05da68","wires":[["994ffad3.0ba89"]]},{"id":"40ee795c.063838","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":940.6294059753418,"y":583.3280005455017,"z":"a4ab5e6a.05da68","wires":[["e717894c.aca1a"]]},{"id":"e717894c.aca1a","type":"set","name":"set network-id","xml":"<set>\n<parameter name='tmp.return.generate-l3network-network-id.uuid' value='`$network-topology-operation-input.network-information.network-id`' />\n\n\n\n","comments":"","x":1163,"y":582.7540283203125,"z":"a4ab5e6a.05da68","wires":[]},{"id":"52111bb9.bd57fc","type":"comment","name":"if network-instance-group-id populated, follow vlan tagging flow","info":"","comments":"","x":685.8945465087891,"y":727.2913134992123,"z":"a4ab5e6a.05da68","wires":[]},{"id":"435263ad.548d94","type":"switchNode","name":"switch network-request-information.network-instance-group-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\n","comments":"","outputs":1,"x":684.6127166748047,"y":762.1563418805599,"z":"a4ab5e6a.05da68","wires":[["e25525d.3b75958","b57f4a07.8cd1e8"]]},{"id":"e25525d.3b75958","type":"other","name":"outcome NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1067.3232421875,"y":760.148541778326,"z":"a4ab5e6a.05da68","wires":[["9407b227.b5aac"]]},{"id":"b57f4a07.8cd1e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1047.9526481628418,"y":799.4726204872131,"z":"a4ab5e6a.05da68","wires":[["d8ce728c.6ea7b8"]]},{"id":"d8ce728c.6ea7b8","type":"call","name":"call network-topology-operation-assign-vlantagging-instancegroup","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-vlantagging-instancegroup' mode='sync' >\n","comments":"","outputs":1,"x":1448.8237915039062,"y":801.2916396558285,"z":"a4ab5e6a.05da68","wires":[[]]},{"id":"210258e5.7e72f","type":"comment","name":"if network-name not populated, generate and call automated flow","info":"","comments":"","x":1995.8810729980469,"y":872.3133433759212,"z":"a4ab5e6a.05da68","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_network-topology-operation-changeassign.json
new file mode 100755 (executable)
index 0000000..94de3de
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"78cb8595.ca2464","type":"dgstart","name":"DGSTART","outputs":1,"x":147.5,"y":112,"z":"99faf548.31fd3","wires":[["8cb2b66b.81bcd8"]]},{"id":"8cb2b66b.81bcd8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":290.7856903076172,"y":175.09525775909424,"z":"99faf548.31fd3","wires":[["4040c418.7fc174"]]},{"id":"4040c418.7fc174","type":"method","name":"network-topology-operation-changeassign","xml":"<method rpc='network-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":264.46437072753906,"y":250.89285469055176,"z":"99faf548.31fd3","wires":[["fdca899b.1c557"]]},{"id":"fdca899b.1c557","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":163.2857437133789,"y":430.9078121185303,"z":"99faf548.31fd3","wires":[["84b36df2.25e65","84ee1670.5f0a7","aeb06755.a7872","fd434a74.035768","5872c2e1.fd902c","151d8dc1.30e372","4cf6fa1f.47b03c","203bed4.3354e12","f2c572bd.81ebb","1011fe25.8dc6ca","3fed421d.e63e86","b8e99272.6fe8b","3991c105.213bc6","f7643660.4bcd8","95446770.fe01d8","ee3e375d.3ff768","2a9c6277.2cb43e","af7b04ae.883c9","d6bd7579.410f98","5606ead2.76c2b4"]]},{"id":"b3e6283f.d4bc","type":"comment","name":"Changelog","info":"1806: new DG for changeassign for preload","comments":"","x":360.3571472167969,"y":112.00000667572021,"z":"99faf548.31fd3","wires":[]},{"id":"84b36df2.25e65","type":"execute","name":"execute Properties - pull properties file","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":602.678596496582,"y":443.2896785736084,"z":"99faf548.31fd3","wires":[[]]},{"id":"aeb06755.a7872","type":"get-resource","name":"get AnAI - l3-network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-request-information.network-id\n\t\t\tAND depth='all'\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.AnAI.l3network\">\n","comments":"","outputs":1,"x":542.1846008300781,"y":694.247106552124,"z":"99faf548.31fd3","wires":[["a46bd08e.5da5a","5c1a94fd.e35f64"]]},{"id":"151d8dc1.30e372","type":"switchNode","name":"switch: AnAI == PRELOAD - network-name","xml":"<switch test=\"`$tmp.AnAI.l3network.network-name == $preload-data.preload-network-topology-information.network-topology-identifier.network-name`\">","comments":"","outputs":1,"x":611.8473815917969,"y":926.4177303314209,"z":"99faf548.31fd3","wires":[["a8efc187.30f838"]]},{"id":"1011fe25.8dc6ca","type":"for","name":"for loop k - tmp.AnAI.l3network.subnets.subnet","xml":"<for index=\"k\" start=\"0\" end=\"`$tmp.AnAI.l3network.subnets.subnet_length`\">\n","comments":"","outputs":1,"x":621.8988800048828,"y":1186.4765882492065,"z":"99faf548.31fd3","wires":[["b0f7d04e.f6228"]]},{"id":"5c01494c.b5ff3","type":"for","name":"for loop i - PRELOAD subnets","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.subnets_length`\">\n","comments":"","outputs":1,"x":1004.8394660949707,"y":2504.9333333969116,"z":"99faf548.31fd3","wires":[["c8f11916.cc498"]]},{"id":"5f010c7f.3fb644","type":"returnSuccess","name":"return success","xml":"<return status=\"success\">\n\t<parameter name=\"networkId\" value=\"`$network-topology-operation-input.network-request-information.network-id`\" />\n\t<parameter name=\"error-code\" value=\"200\" />","comments":"","x":490.6006507873535,"y":7526.331782341003,"z":"99faf548.31fd3","wires":[]},{"id":"a46bd08e.5da5a","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":729.0895500183105,"y":735.4414100646973,"z":"99faf548.31fd3","wires":[["577c5c6.eef4ea4"]]},{"id":"577c5c6.eef4ea4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'network-id: ' + $network-topology-operation-input.network-request-information.network-id + 'not found in AnAI'`\" />","comments":"","x":891.7283248901367,"y":735.330397605896,"z":"99faf548.31fd3","wires":[]},{"id":"2c0b312d.fcb97e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":764.2245063781738,"y":1342.4961166381836,"z":"99faf548.31fd3","wires":[["9abbbbfa.53807","f2815bd8.a2a3e8"]]},{"id":"8097d12.27e8db","type":"set","name":"initialize tmp.start-address-match = 0","xml":"<set>\n<parameter name='tmp.start-address-match' value='0' />\n","comments":"","x":836.7513465881348,"y":1234.0304651260376,"z":"99faf548.31fd3","wires":[]},{"id":"318783fb.42fd1c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1459.8359107971191,"y":2569.1835403442383,"z":"99faf548.31fd3","wires":[["284ced49.664fa2","c7a5fe9e.78c0c"]]},{"id":"c233c3d1.d2adc","type":"set","name":"initialize tmp.start-address-match = 0","xml":"<set>\n<parameter name=\"tmp.start-address-match\" value=\"0\" />\n","comments":"","x":1527.651569366455,"y":2505.419786453247,"z":"99faf548.31fd3","wires":[]},{"id":"9abbbbfa.53807","type":"for","name":"for loop n PRELOAD subnets","xml":"<for index=\"n\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.subnets_length`\">\n","comments":"","outputs":1,"x":996.955078125,"y":1343.0199851989746,"z":"99faf548.31fd3","wires":[["fa146218.ec01a8"]]},{"id":"be029b56.cf1df","type":"switchNode","name":"switch: tmp.start-address-match = 0","xml":"<switch test=\"`$tmp.start-address-match == 0`\">","comments":"","outputs":1,"x":1403.3373908996582,"y":2038.0627098083496,"z":"99faf548.31fd3","wires":[["de23edc2.3b0c28"]]},{"id":"284ced49.664fa2","type":"for","name":"for loop j - AnAI l3subnet","xml":"<for index=\"j\" start=\"0\" end=\"`$tmp.AnAI.l3network.subnets.subnet_length`\">\n","comments":"","outputs":1,"x":1681.0319175720215,"y":2569.5992250442505,"z":"99faf548.31fd3","wires":[["afdd26c6.cae418"]]},{"id":"de23edc2.3b0c28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1640.7497215270996,"y":2037.6302165985107,"z":"99faf548.31fd3","wires":[["5ee496da.7cbdc8"]]},{"id":"37fb1c35.831964","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1955.8168830871582,"y":2623.7336387634277,"z":"99faf548.31fd3","wires":[["a9319a23.6cb84"]]},{"id":"fa146218.ec01a8","type":"switchNode","name":"switch: AnAI-k == PRELOAD-n start-address","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].network-start-address == $preload-data.preload-network-topology-information.subnets[$n].start-address`\">","comments":"","outputs":1,"x":1333.034423828125,"y":1342.8733177185059,"z":"99faf548.31fd3","wires":[["53d9bc33.649454"]]},{"id":"afdd26c6.cae418","type":"switchNode","name":"switch: PRELOAD-i == AnAI-j start-address","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].start-address == $tmp.AnAI.l3network.subnets.subnet[$j].network-start-address`\">","comments":"","outputs":1,"x":1995.0833473205566,"y":2570.1826963424683,"z":"99faf548.31fd3","wires":[["b36ddf7d.2b52b8"]]},{"id":"a9319a23.6cb84","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2135.956226348877,"y":2624.2042837142944,"z":"99faf548.31fd3","wires":[["1b52fec9.004729","4a073530.673444","b69dabd1.9cf9c8","6e6f182b.08ba18","b941f229.313c28","9fa0a0b1.0a386","6499a1da.9e778"]]},{"id":"53d9bc33.649454","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1617.6036109924316,"y":1015.5789260864258,"z":"99faf548.31fd3","wires":[["f2efaecb.a4c288"]]},{"id":"5ee496da.7cbdc8","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":1824.2445945739746,"y":2037.0247611999512,"z":"99faf548.31fd3","wires":[["c11c2553.d05c4","d170de98.954d98","791db7cd.110f5"]]},{"id":"b36ddf7d.2b52b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2246.285015106201,"y":2569.6224908828735,"z":"99faf548.31fd3","wires":[["84c63af2.77852"]]},{"id":"c11c2553.d05c4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2061.2204360961914,"y":2036.905517578125,"z":"99faf548.31fd3","wires":[["85718701.a91ff"]]},{"id":"cad3b8b9.df2fb8","type":"comment","name":"foreach AnAI l3subnet not found in PRELOAD, set pending-delete","info":"","comments":"","x":1116.9951782226562,"y":1991.508466720581,"z":"99faf548.31fd3","wires":[]},{"id":"a6a0b46e.ea3b68","type":"comment","name":"foreach PRELOAD subnet not found in AnAI l3subnet, create subnet in AnAI","info":"","comments":"","x":738.895751953125,"y":2457.522095680237,"z":"99faf548.31fd3","wires":[]},{"id":"7ba20b9c.bf119c","type":"comment","name":"start-addr matched, compare other subnet attrs","info":"","comments":"","x":1324.1495208740234,"y":1294.1844925880432,"z":"99faf548.31fd3","wires":[]},{"id":"8a28bf8a.ec8a78","type":"comment","name":"foreach AnAI subnet attr different from PRELOAD, update AnAI and set pending-update","info":"","comments":"","x":2017.4664039611816,"y":616.4829177856445,"z":"99faf548.31fd3","wires":[]},{"id":"1b52fec9.004729","type":"switchNode","name":"switch : PRELOAD dhcp-enabled","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-enabled`\">","comments":"","outputs":1,"x":2441.034351348877,"y":2623.851176261902,"z":"99faf548.31fd3","wires":[["9bb2de7a.c88328","55d656da.00646"]]},{"id":"55d656da.00646","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":2688.5899085998535,"y":2624.77188205719,"z":"99faf548.31fd3","wires":[["517d00af.9ef16"]]},{"id":"9bb2de7a.c88328","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2689.256649017334,"y":2671.2163791656494,"z":"99faf548.31fd3","wires":[["4fd23755.392b2"]]},{"id":"b0f7d04e.f6228","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":575.0187950134277,"y":1234.314980506897,"z":"99faf548.31fd3","wires":[["8097d12.27e8db","2c0b312d.fcb97e","62ed2b02.abed04"]]},{"id":"62ed2b02.abed04","type":"set","name":"initialize tmp.subnetUpdate = 0","xml":"<set>\n<parameter name='tmp.subnetUpdate' value='0' />\n","comments":"","x":817.5111503601074,"y":1279.6883325576782,"z":"99faf548.31fd3","wires":[]},{"id":"c8f11916.cc498","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1265.625675201416,"y":2505.3988723754883,"z":"99faf548.31fd3","wires":[["c233c3d1.d2adc","318783fb.42fd1c"]]},{"id":"d170de98.954d98","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2067.9432945251465,"y":2190.7074871063232,"z":"99faf548.31fd3","wires":[["27921b9c.80f68c"]]},{"id":"9e85f245.d4b0e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2736.5464935302734,"y":3193.0616664886475,"z":"99faf548.31fd3","wires":[["51b0e536.da0e8c"]]},{"id":"f89e3ebf.b351","type":"set","name":"set tmp.subnetRollback: orchestraton-status","xml":"<set>\n  <parameter name=\"tmp.subnetRollback[$x].subnet-id\" value= \"`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`\"/>\n  <parameter name=\"tmp.subnetRollback[$x].orchestration-status\" value= \"`$tmp.AnAI.l3network.subnets.subnet[$k].orchestration-status`\" />\n  <parameter name=\"tmp.subnetRollback[$x].type\" value = \"delete\"  />\n  \n\n\n","comments":"","x":2511.9457664489746,"y":2189.898748397827,"z":"99faf548.31fd3","wires":[]},{"id":"27921b9c.80f68c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2204.8030548095703,"y":2190.470316886902,"z":"99faf548.31fd3","wires":[["f89e3ebf.b351","72749e8c.4d3648","b21b63dd.91c4d"]]},{"id":"51b0e536.da0e8c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2878.9909286499023,"y":3193.107374191284,"z":"99faf548.31fd3","wires":[["5c1d7222.a0c1a4","6a26699.aef9d18","6b5d4ec3.3c3e58","5348546b.a906bc"]]},{"id":"5c1d7222.a0c1a4","type":"set","name":"set tmp.subnetRollback for create","xml":"<set>\n  <parameter name=\"tmp.subnetRollback[$x].subnet-id\" value= \"`$tmp.return.generate-subnets-subnet-id.uuid`\" />\n  <parameter name=\"tmp.subnetRollback[$x].type\" value = \"create\"  />","comments":"","x":3149.2768363952637,"y":3193.8219709396362,"z":"99faf548.31fd3","wires":[]},{"id":"72749e8c.4d3648","type":"set","name":"$x++","xml":"<set>\n  <parameter name=\"x\" value = \"`$x + 1`\"  />\n\n","comments":"","x":2395.650722503662,"y":2235.94939994812,"z":"99faf548.31fd3","wires":[]},{"id":"6a26699.aef9d18","type":"set","name":"$x++","xml":"<set>\n  <parameter name=\"x\" value = \"`$x + 1`\"  />\n\n","comments":"","x":3066.2131156921387,"y":3239.386336326599,"z":"99faf548.31fd3","wires":[]},{"id":"5c1a94fd.e35f64","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":722.045768737793,"y":694.6399879455566,"z":"99faf548.31fd3","wires":[["805f4ce3.7858f8"]]},{"id":"805f4ce3.7858f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"`'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + ' from AnAI'`\" />","comments":"","x":881.156852722168,"y":694.8622169494629,"z":"99faf548.31fd3","wires":[]},{"id":"a8efc187.30f838","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":866.0973815917969,"y":926.421727180481,"z":"99faf548.31fd3","wires":[["bb3c93c4.2f3f6"]]},{"id":"bb3c93c4.2f3f6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'No preload network found with network-name = ' + $tmp.AnAI.l3network.network-name + ' in SDNC'`\" />","comments":"","x":1028.736156463623,"y":926.3107147216797,"z":"99faf548.31fd3","wires":[]},{"id":"ce72f11c.50bff8","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":2497.061740875244,"y":2123.707365989685,"z":"99faf548.31fd3","wires":[]},{"id":"b941f229.313c28","type":"save","name":"save AnAI - l3-network.subnets.subnet","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid\" >\n\t<!-- Create l3-network object -->\n\t<parameter name=\"network-id\" value=\"`$tmp.AnAI.l3network.network-id`\" />\n\t<parameter name=\"subnet-id\" value=\"`$tmp.return.generate-subnets-subnet-id.uuid`\" />\n\t<parameter name=\"gateway-address\" value=\"`$tmp.gateway-address`\" />\n\t<parameter name=\"subnet-name\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].subnet-name`\" />\t\t\n\t<parameter name=\"network-start-address\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].start-address`\" />\n\t<parameter name=\"cidr-mask\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`\" />\n\t<parameter name=\"ip-version\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].ip-version`\" />\n\t<parameter name=\"dhcp-start\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-start-address`\" />\n\t<parameter name=\"dhcp-end\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].dhcp-end-address`\" />\n\t<parameter name=\"dhcp-enabled\" value=\"`$tmp.dhcpEnabled.boolean`\" />\n\t<parameter name=\"ip-assignment-direction\" value=\"`$tmp.addrFromStart.boolean`\" />\n\t<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":2453.2047595977783,"y":3053.3509311676025,"z":"99faf548.31fd3","wires":[["5cbf09b9.68eac8","9e85f245.d4b0e","48e77510.8d6f74"]]},{"id":"5cbf09b9.68eac8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2730.821033477783,"y":3053.6994342803955,"z":"99faf548.31fd3","wires":[["7ed587ce.58bb7"]]},{"id":"b69dabd1.9cf9c8","type":"switchNode","name":"switch : PRELOAD gateway-address","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`\">","comments":"","outputs":1,"x":2452.0707359313965,"y":2918.6447286605835,"z":"99faf548.31fd3","wires":[["fd829caf.94df28"]]},{"id":"fd829caf.94df28","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":2675.5707359313965,"y":2918.6447286605835,"z":"99faf548.31fd3","wires":[["ca740c1.333a3f"]]},{"id":"5df53d20.23f0d4","type":"GenericXML","name":"Execute: generate gateway-address","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getGatewayAddress\">\n\t<parameter name=\"ipAddress\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].start-address`\" />\n\t<parameter name=\"ipVersion\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].ip-version`\" />\n\t<parameter name=\"subnet\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].cidr-mask`\" />\n\t<parameter name=\"ctxVariable\" value=\"tmp.return.generate.gateway-address\" />","comments":"","outputs":1,"x":3048.8207511901855,"y":2918.394736289978,"z":"99faf548.31fd3","wires":[[]]},{"id":"ca740c1.333a3f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2817.320743560791,"y":2918.644739151001,"z":"99faf548.31fd3","wires":[["5df53d20.23f0d4","5d6ff69d.f979f8"]]},{"id":"4a073530.673444","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name='tmp.gateway-address' value='`$preload-data.preload-network-topology-information.subnets[$i].gateway-address`' />\n","comments":"","x":2414.5707511901855,"y":2874.8947353363037,"z":"99faf548.31fd3","wires":[]},{"id":"5d6ff69d.f979f8","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$tmp.return.generate.gateway-address`\" />\n","comments":"","x":3015.3207511901855,"y":2960.3947381973267,"z":"99faf548.31fd3","wires":[]},{"id":"6e6f182b.08ba18","type":"call","name":"call generate-subnets-subnet-id","xml":"<call module=\"VNF-API\" rpc=\"generate-subnets-subnet-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":2432.1857147216797,"y":3006.501851081848,"z":"99faf548.31fd3","wires":[["df1c94ad.d58c2"]]},{"id":"df1c94ad.d58c2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2695.9356994628906,"y":3006.751841545105,"z":"99faf548.31fd3","wires":[["7ed587ce.58bb7"]]},{"id":"85718701.a91ff","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2265.5258407592773,"y":2037.171579360962,"z":"99faf548.31fd3","wires":[["ce72f11c.50bff8","7539d8e7.6520d8","c1e8109.33219f"]]},{"id":"517d00af.9ef16","type":"set","name":"set tmp.dhcpEnabled.bolean=false","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"false\" />\n","comments":"","x":2944.7283668518066,"y":2624.3148374557495,"z":"99faf548.31fd3","wires":[]},{"id":"4fd23755.392b2","type":"set","name":"set tmp.dhcpEnabled.boolean=true","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"true\" />\n","comments":"","x":2946.5101585388184,"y":2670.929913520813,"z":"99faf548.31fd3","wires":[]},{"id":"53eb3226.6cd5d4","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3175.343620300293,"y":3142.5335903167725,"z":"99faf548.31fd3","wires":[]},{"id":"7ed587ce.58bb7","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2930.5578079223633,"y":3053.3907718658447,"z":"99faf548.31fd3","wires":[["53eb3226.6cd5d4","3ff5481d.28183","3060e5d9.8b532a"]]},{"id":"3ff5481d.28183","type":"set","name":"set i, j max + 1","xml":"<set>\n\t<parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />\n\t<parameter name='i' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />","comments":"","x":3139.057846069336,"y":3053.3907890319824,"z":"99faf548.31fd3","wires":[]},{"id":"d982bcdf.e05c5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'Error updating l3-network in AnAI with network-id = ' + $tmp.AnAI.l3network.network-id + ' - ' + $tmp.error-message + ' - ' + $tmp.rollback.error-message`\"/>","comments":"","x":1116.36665725708,"y":7374.491377830505,"z":"99faf548.31fd3","wires":[]},{"id":"d6bd7579.410f98","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":503.46631622314453,"y":7430.028269767761,"z":"99faf548.31fd3","wires":[]},{"id":"6b5d4ec3.3c3e58","type":"set","name":"set tmp.l3networkUpdate = 1","xml":"<set>\n<parameter name='tmp.l3networkUpdate' value='1' />\n","comments":"","x":3135.60945892334,"y":3285.910446166992,"z":"99faf548.31fd3","wires":[]},{"id":"d20488b7.54f5f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1737.8528366088867,"y":6141.0212779045105,"z":"99faf548.31fd3","wires":[["f5491b15.8a826"]]},{"id":"c9a6b2f7.6419f","type":"switchNode","name":"switch : tmp.l3networkUpdate = 1","xml":"<switch test=\"`$tmp.l3networkUpdate == 1`\">\n","comments":"","outputs":1,"x":977.0615577697754,"y":6141.137383937836,"z":"99faf548.31fd3","wires":[["53f56d25.6348ac"]]},{"id":"53f56d25.6348ac","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1190.7282218933105,"y":6140.914918422699,"z":"99faf548.31fd3","wires":[["f5387c8b.6ac678"]]},{"id":"f5387c8b.6ac678","type":"save","name":"update AnAI - l3-network.orchestration-status","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingUpdate\" />","comments":"","outputs":1,"x":1445.77592086792,"y":6141.0418581962585,"z":"99faf548.31fd3","wires":[["d20488b7.54f5f8","6832d8a7.75e9e8","46e1f204.12633c"]]},{"id":"f5491b15.8a826","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1912.9187965393066,"y":6141.327346324921,"z":"99faf548.31fd3","wires":[["97748f15.931678","3e0459f9.200e1e"]]},{"id":"97748f15.931678","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"An error occurred while updating l3-network.orchestration-status in AnAI\"/>","comments":"","x":2160.0628776550293,"y":6141.129821300507,"z":"99faf548.31fd3","wires":[]},{"id":"36a15b72.a0658c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":610.5582847595215,"y":3710.5745153427124,"z":"99faf548.31fd3","wires":[["6b5eeaf8.68d51c","dbd29e8d.9dd118"]]},{"id":"f3afb4a0.398f6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":564.033878326416,"y":4565.322596788406,"z":"99faf548.31fd3","wires":[["4222d324.4898b4","461742ab.1d3484"]]},{"id":"f59af4d8.685088","type":"save","name":"Rollback AnAI - l3-network.orchestration-status","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"`$tmp.AnAI.l3network.orchestration-status`\" />","comments":"","outputs":1,"x":1727.0260772705078,"y":7277.312352180481,"z":"99faf548.31fd3","wires":[["a00f453a.858988","ff448016.b11eb8"]]},{"id":"b21b63dd.91c4d","type":"set","name":"set tmp.l3networkUpdate = 1","xml":"<set>\n<parameter name=\"tmp.l3networkUpdate\" value=\"1\" />\n","comments":"","x":2463.418788909912,"y":2281.064504623413,"z":"99faf548.31fd3","wires":[]},{"id":"c7a5fe9e.78c0c","type":"switchNode","name":"switch: tmp.start-address-match = 0","xml":"<switch test=\"`$tmp.start-address-match == 0`\">","comments":"","outputs":1,"x":1716.2402076721191,"y":2624.0289993286133,"z":"99faf548.31fd3","wires":[["37fb1c35.831964"]]},{"id":"84c63af2.77852","type":"set","name":"set tmp.start-address-match = 1","xml":"<set>\n<parameter name='tmp.start-address-match' value='1' />\n","comments":"","x":2467.7402305603027,"y":2569.279040336609,"z":"99faf548.31fd3","wires":[]},{"id":"6b5eeaf8.68d51c","type":"save","name":"delete relationship: vpn_binding","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\tAND related-to = vpn-binding\" >","comments":"","outputs":1,"x":882.1806716918945,"y":3710.862449645996,"z":"99faf548.31fd3","wires":[["e3e61d44.abb2f"]]},{"id":"5dfb8fb6.f3579","type":"for","name":"for loop i - PRELOAD vpn-bindings","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.vpn-bindings_length`\">\n","comments":"","outputs":1,"x":1534.9068624708389,"y":3856.0290934244786,"z":"99faf548.31fd3","wires":[["76217cb4.f91a3c"]]},{"id":"76217cb4.f91a3c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1773.6846410963271,"y":3856.279095331827,"z":"99faf548.31fd3","wires":[["95a5f85e.7040b","2ccf674.f327f98","4f6f9141.e4ee6","49ced0c0.0d0a6"]]},{"id":"3a17d689.c8bcea","type":"save","name":"save relationship: vpn_bindings","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"vpn-binding\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"vpn-binding.vpn-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.vpn-binding-id`\" />","comments":"","outputs":1,"x":2924.879108428955,"y":4204.251133918762,"z":"99faf548.31fd3","wires":[["23d5f47a.fc9304","66ece968.e2a5f","980e97ec.e3025"]]},{"id":"5cfc33fd.ad0c9c","type":"switchNode","name":"switch ... PRELOAD vpn-bindings[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.vpn-bindings_length`\">","comments":"","outputs":1,"x":1535.2843055725098,"y":3812.6104068756104,"z":"99faf548.31fd3","wires":[["6446b344.0b3694"]]},{"id":"6446b344.0b3694","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1761.7287559509277,"y":3812.3881425857544,"z":"99faf548.31fd3","wires":[["7ee8f2a.3360e8c"]]},{"id":"7ee8f2a.3360e8c","type":"set","name":"set vpn-bindings[] = 0","xml":"<set>\n<parameter name=\"preload-data.preload-network-topology-information.vpn-bindings_length\" value=\"0\" />\n","comments":"","x":1950.284364912245,"y":3812.3881632486973,"z":"99faf548.31fd3","wires":[]},{"id":"eff4b893.59d03","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2326.4190237257217,"y":3949.8783976236973,"z":"99faf548.31fd3","wires":[["4fe98a6a.aca81c"]]},{"id":"4fe98a6a.aca81c","type":"save","name":"query AnAI - vpn-bindings","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vpn-binding\" \n\t\tkey=\"vpn-binding.global-route-target = $preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target\" \n\t\tpfx=\"tmp.AnAI.vpn-binding\">","comments":"","outputs":1,"x":2530.9190199110244,"y":3949.6283985773716,"z":"99faf548.31fd3","wires":[["b501292d.6ed1d8","965ac69e.2f8b68","5693a5ae.52f284"]]},{"id":"b501292d.6ed1d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2772.669058057997,"y":3997.128366152445,"z":"99faf548.31fd3","wires":[["6d1eda91.2e6a1c"]]},{"id":"965ac69e.2f8b68","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2778.1690618726943,"y":3949.6283651987706,"z":"99faf548.31fd3","wires":[["6d1eda91.2e6a1c"]]},{"id":"6d1eda91.2e6a1c","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":2925.6690618726943,"y":3996.878367106119,"z":"99faf548.31fd3","wires":[["6b6c53ae.e7e78c","85345bb9.7023d8"]]},{"id":"6b6c53ae.e7e78c","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'Failed to query vpn-bindings n AnAI where global-route-target = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target`\"/>","comments":"","x":3166.7686025831435,"y":3996.6282660166416,"z":"99faf548.31fd3","wires":[]},{"id":"95a5f85e.7040b","type":"switchNode","name":"switch: PRELOAD vpn-binding-id","xml":"<switch test=\"`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`\">","comments":"","outputs":1,"x":2069.169027540419,"y":3904.1283375422154,"z":"99faf548.31fd3","wires":[["1d812b6.bb0a9d5"]]},{"id":"1d812b6.bb0a9d5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2289.6690351698135,"y":3903.8783384958897,"z":"99faf548.31fd3","wires":[["3d5e08d1.854308"]]},{"id":"3d5e08d1.854308","type":"set","name":"set tmp.vpn-binding-id","xml":"<set>\n<parameter name=\"tmp.vpn-binding-id\" value=\"`$preload-data.preload-network-topology-information.vpn-bindings[$i].vpn-binding-id`\" />\n","comments":"","x":2485.1690351698135,"y":3903.878339449564,"z":"99faf548.31fd3","wires":[]},{"id":"5693a5ae.52f284","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2778.0859031677246,"y":4098.294943809509,"z":"99faf548.31fd3","wires":[["a1289d1c.ed3668"]]},{"id":"a1289d1c.ed3668","type":"set","name":"set tmp.vpn-binding-id","xml":"<set>\n<parameter name=\"tmp.vpn-binding-id\" value=\"`$tmp.AnAI.vpn-binding.vpn-id`\" />\n","comments":"","x":2968.5859031677246,"y":4098.294943809509,"z":"99faf548.31fd3","wires":[]},{"id":"23d5f47a.fc9304","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3184.9519844055176,"y":4203.7267208099365,"z":"99faf548.31fd3","wires":[["122ef45b.214554"]]},{"id":"122ef45b.214554","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":3341.8448638916016,"y":4203.3628282547,"z":"99faf548.31fd3","wires":[["d0dbeeeb.6ef02","fb4e9cd8.b15bc","3651c046.062be"]]},{"id":"d0dbeeeb.6ef02","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.vpn-binding-id`\"/>","comments":"","x":3561.944404602051,"y":4203.112727165222,"z":"99faf548.31fd3","wires":[]},{"id":"94c7a9eb.736488","type":"switchNode","name":"switch: tmp.vpn-binding-id != NULL","xml":"<switch test=\"`$tmp.vpn-binding-id != ''`\">","comments":"","outputs":1,"x":2482.419101715088,"y":4204.294880867004,"z":"99faf548.31fd3","wires":[["5ec692d1.023e34"]]},{"id":"5ec692d1.023e34","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2704.669105529785,"y":4204.294880867004,"z":"99faf548.31fd3","wires":[["3a17d689.c8bcea"]]},{"id":"d0a5b457.98849","type":"switchNode","name":"switch ... PRELOAD network-policy[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.network-policy_length`\">","comments":"","outputs":1,"x":1480.0854606628418,"y":4703.695333242416,"z":"99faf548.31fd3","wires":[["89fe2912.b7d1c"]]},{"id":"89fe2912.b7d1c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1709.5299110412598,"y":4703.47306895256,"z":"99faf548.31fd3","wires":[["a56ffb2b.b423e8"]]},{"id":"a56ffb2b.b423e8","type":"set","name":"set network-policy[] = 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.network-policy_length' value='0' />\n","comments":"","x":1904.0855200025771,"y":4703.473089615503,"z":"99faf548.31fd3","wires":[]},{"id":"aeefcea0.4d5f5","type":"for","name":"for loop i - PRELOAD network-policy","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.network-policy_length`\">\n","comments":"","outputs":1,"x":1479.4427223205566,"y":4749.266724348068,"z":"99faf548.31fd3","wires":[["b24a775e.99b738"]]},{"id":"91e9b173.465ed","type":"save","name":"save relationship: network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"network-policy\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"network-policy.network-policy-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.network-policy.network-policy-id`\" />","comments":"","outputs":1,"x":2812.8556327819824,"y":4948.453424215317,"z":"99faf548.31fd3","wires":[["a1914926.c0666","71f2c219.19753c","e8b59d42.c0eab8"]]},{"id":"b24a775e.99b738","type":"switchNode","name":"switch: PRELOAD network-policy-fqdn != NULL","xml":"<switch test=\"`$preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn != NULL`\">","comments":"","outputs":1,"x":1837.9549200269912,"y":4749.3659786383305,"z":"99faf548.31fd3","wires":[["671f99c0.ad63b"]]},{"id":"671f99c0.ad63b","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2118.704920026991,"y":4749.6159786383305,"z":"99faf548.31fd3","wires":[["8729b44c.2d0be8"]]},{"id":"8729b44c.2d0be8","type":"save","name":"query AnAI - network-policy","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"network-policy\" \n\t\tkey=\"network-policy.network-policy-fqdn = $preload-data.preload-network-topology-information.network-policy[$i].network-policy-fqdn\"  \n\t\tpfx=\"tmp.AnAI.network-policy\" >","comments":"","outputs":1,"x":2318.7049560546875,"y":4749.61589884758,"z":"99faf548.31fd3","wires":[["3ffbea82.fd9536","12ae7a61.8768ee","ca38600c.0020d8"]]},{"id":"3ffbea82.fd9536","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2582.7049882676865,"y":4790.365820964178,"z":"99faf548.31fd3","wires":[["9457d779.d039a8"]]},{"id":"12ae7a61.8768ee","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2588.204992082384,"y":4749.865820010504,"z":"99faf548.31fd3","wires":[["9457d779.d039a8"]]},{"id":"9457d779.d039a8","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":2737.704992082384,"y":4790.115821917852,"z":"99faf548.31fd3","wires":[["9163a003.11c3a","1d9e30c4.0c4247"]]},{"id":"9163a003.11c3a","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":2953.804532792833,"y":4789.865720828375,"z":"99faf548.31fd3","wires":[]},{"id":"a1914926.c0666","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3055.928508758545,"y":4947.929011106491,"z":"99faf548.31fd3","wires":[["f21e8ec.4a2e97"]]},{"id":"f21e8ec.4a2e97","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":3196.821388244629,"y":4947.565118551254,"z":"99faf548.31fd3","wires":[["d905fa8b.6faa88","113e310a.374617"]]},{"id":"d905fa8b.6faa88","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`\"/>","comments":"","x":3427.920928955078,"y":4947.315017461777,"z":"99faf548.31fd3","wires":[]},{"id":"4222d324.4898b4","type":"save","name":"delete relationship: network-policy","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t AND related-to = network-policy\" >","comments":"","outputs":1,"x":852.2481575012207,"y":4565.131925106049,"z":"99faf548.31fd3","wires":[["f621a0f6.517d5"]]},{"id":"9fa0a0b1.0a386","type":"set","name":"set tmp.local.network-id","xml":"<set>\n<parameter name=\"tmp.local.network-id\" value=\"`$tmp.AnAI.l3network.network-id`\" />\n","comments":"","x":2411.7919311523438,"y":2961.6719512939453,"z":"99faf548.31fd3","wires":[]},{"id":"9e765f6.18a54a","type":"comment","name":"query l3-network gets all the subnets and relationships for free","info":"","comments":"","x":668.3274421691895,"y":652.7670316696167,"z":"99faf548.31fd3","wires":[]},{"id":"2ccf674.f327f98","type":"switchNode","name":"switch: PRELOAD route-target != NULL","xml":"<switch test=\"`$preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target != ''`\" >","comments":"","outputs":1,"x":2090.506101820204,"y":3949.4339024225865,"z":"99faf548.31fd3","wires":[["eff4b893.59d03"]]},{"id":"203bed4.3354e12","type":"set","name":"initialize tmp variables, x, tmp.error-message, tmp.l3networkUpdate, execute_failure","xml":"<set>\n\t<parameter name='x' value='0' />\n\t<parameter name='tmp.error-message' value='' />\n\t<parameter name='execute_failure' value='false' />\n\t<parameter name='tmp.l3networkUpdate' value='0' />","comments":"","x":735.9704895019531,"y":1014.6836652755737,"z":"99faf548.31fd3","wires":[]},{"id":"ca38600c.0020d8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2587.4705848693848,"y":4947.957292318344,"z":"99faf548.31fd3","wires":[["91e9b173.465ed"]]},{"id":"4f6f9141.e4ee6","type":"set","name":"unset tmp.vpn-binding-id","xml":"<set>\n<parameter name=\"tmp.vpn-binding-id\" value=\"\" />\n","comments":"","x":2043.2918379041885,"y":3856.362458864847,"z":"99faf548.31fd3","wires":[]},{"id":"e3e61d44.abb2f","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1113.4584884643555,"y":3710.445677757263,"z":"99faf548.31fd3","wires":[["350799e9.fe8dae"]]},{"id":"350799e9.fe8dae","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1273.1952629089355,"y":3711.1370153427124,"z":"99faf548.31fd3","wires":[["33acc231.92afd6","3695e1f7.f39ba6"]]},{"id":"33acc231.92afd6","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"An error occurred while deleting l3-network vpn-binding relationship from AnAI\"/>","comments":"","x":1491.8752326965332,"y":3711.445852279663,"z":"99faf548.31fd3","wires":[]},{"id":"f621a0f6.517d5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1076.383129119873,"y":4564.715136051178,"z":"99faf548.31fd3","wires":[["8b976e5b.81b298"]]},{"id":"8b976e5b.81b298","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1253.1199035644531,"y":4564.406473636627,"z":"99faf548.31fd3","wires":[["1802fcbe.a809bb","ab2d703d.ad753"]]},{"id":"1802fcbe.a809bb","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"An error occurred while deleting l3-network network-policy relationship from AnAI in preparation to regenerate the network-policy relationship from PRELOAD.\"/>","comments":"","x":1477.133129119873,"y":4564.715136051178,"z":"99faf548.31fd3","wires":[]},{"id":"a17c212d.6d8c98","type":"switchNode","name":"switch : tmp.l3network.status.updated = 1","xml":"<switch test=\"`$tmp.l3network.status.updated == 1`\">\n","comments":"","outputs":1,"x":1210.9943389892578,"y":7277.22934627533,"z":"99faf548.31fd3","wires":[["e944b625.a0c928"]]},{"id":"e944b625.a0c928","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1463.6609725952148,"y":7277.506934165955,"z":"99faf548.31fd3","wires":[["f59af4d8.685088"]]},{"id":"602e376c.c4711","type":"set","name":"set tmp.l3network.status.updated = 1","xml":"<set>\n<parameter name='tmp.l3network.status.updated' value='1' />\n","comments":"","x":1994.0300331115723,"y":6244.672054767609,"z":"99faf548.31fd3","wires":[]},{"id":"6832d8a7.75e9e8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1741.958667755127,"y":6244.945868015289,"z":"99faf548.31fd3","wires":[["602e376c.c4711"]]},{"id":"76253b37.b24f94","type":"for","name":"for loop z - tmp.AnAI.l3network.relationship-list.relationship[]","xml":"<for index=\"z\" start=\"0\" end=\"`$tmp.AnAI.l3network.relationship-list.relationship_length`\">\n","comments":"","outputs":1,"x":1264.92280960083,"y":6370.695941925049,"z":"99faf548.31fd3","wires":[["c1e34c4f.182718"]]},{"id":"c1e34c4f.182718","type":"switchNode","name":"switch: relationship[].related-to","xml":"<switch test=\"`$tmp.AnAI.l3network.relationship-list.relationship[$z].related-to`\">","comments":"","outputs":1,"x":1689.1727485656738,"y":6370.4459409713745,"z":"99faf548.31fd3","wires":[["b3135a2c.45dc","e3320fe5.f246","56bfd6a9.df74c8"]]},{"id":"b3135a2c.45dc","type":"other","name":"vpn-binding","xml":"<outcome value='vpn-binding'>\n","comments":"","outputs":1,"x":1964.6727485656738,"y":6370.6959409713745,"z":"99faf548.31fd3","wires":[["edb8cf05.bcac58"]]},{"id":"cb67a904.b6e338","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":931.9227409362793,"y":6370.195941925049,"z":"99faf548.31fd3","wires":[["76253b37.b24f94","1397b2f8.aa246d","a17c212d.6d8c98","d982bcdf.e05c5","ccdc8502.0da05"]]},{"id":"338ee831.4b10d8","type":"save","name":"Rollback to save relationship: vpn_binding","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"vpn-binding\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"vpn-binding.vpn-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`\" />","comments":"","outputs":1,"x":2721.7561378479004,"y":6370.6959409713745,"z":"99faf548.31fd3","wires":[["e47e5a64.5dd5b8","c8eb5da8.a0d2f8"]]},{"id":"e47e5a64.5dd5b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2974.829013824463,"y":6370.171527862549,"z":"99faf548.31fd3","wires":[["c9b0d245.a678c8"]]},{"id":"c9b0d245.a678c8","type":"set","name":"set: tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'An error occurred during rollback of l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":3214.8214149475098,"y":6369.557363510132,"z":"99faf548.31fd3","wires":[]},{"id":"15d373be.656d44","type":"set","name":"set tmp.network-policy.updated = 1","xml":"<set>\n<parameter name='tmp.network-policy.updated' value='1' />\n","comments":"","x":3301.2560691833496,"y":5038.136010885239,"z":"99faf548.31fd3","wires":[]},{"id":"6b825d42.c37bfc","type":"set","name":"set tmp.vpn-binding.updated = 1","xml":"<set>\n<parameter name='tmp.vpn-binding.updated' value='1' />\n","comments":"","x":3411.803798675537,"y":4346.278992652893,"z":"99faf548.31fd3","wires":[]},{"id":"71f2c219.19753c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3062.5060691833496,"y":5038.386010885239,"z":"99faf548.31fd3","wires":[["15d373be.656d44"]]},{"id":"66ece968.e2a5f","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3188.0537910461426,"y":4346.278992652893,"z":"99faf548.31fd3","wires":[["6b825d42.c37bfc"]]},{"id":"e3320fe5.f246","type":"other","name":"network-policy","xml":"<outcome value='network-policy'>\n","comments":"","outputs":1,"x":1975.6250190734863,"y":6519.51709651947,"z":"99faf548.31fd3","wires":[["380a603e.477d1"]]},{"id":"87fc3a57.8fef78","type":"save","name":"Rollback to save relationship: network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"network-policy\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"network-policy.network-policy-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`\" />","comments":"","outputs":1,"x":2770.7082862854004,"y":6518.85072851181,"z":"99faf548.31fd3","wires":[["9087c57b.d4e668","8d4f07c3.f8ed6"]]},{"id":"9087c57b.d4e668","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3030.781162261963,"y":6518.326315402985,"z":"99faf548.31fd3","wires":[["15f4af6d.bab1f9"]]},{"id":"15f4af6d.bab1f9","type":"set","name":"tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'An error occurred during rollback of l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":3246.7734870910645,"y":6518.71190404892,"z":"99faf548.31fd3","wires":[]},{"id":"380a603e.477d1","type":"switchNode","name":"switch:  tmp.network-policy.updated == 1","xml":"<switch test=\"`$tmp.network-policy.updated == 1`\">","comments":"","outputs":1,"x":2246.958507537842,"y":6519.517298698425,"z":"99faf548.31fd3","wires":[["518200d0.33825"]]},{"id":"edb8cf05.bcac58","type":"switchNode","name":"switch:  tmp.vpn-binding.updated == 1","xml":"<switch test=\"`$tmp.vpn-binding.updated == 1`\">","comments":"","outputs":1,"x":2206.9585151672363,"y":6370.517340660095,"z":"99faf548.31fd3","wires":[["c05563d0.07e468"]]},{"id":"c05563d0.07e468","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2440.9585151672363,"y":6370.517340660095,"z":"99faf548.31fd3","wires":[["338ee831.4b10d8"]]},{"id":"518200d0.33825","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2491.9585151672363,"y":6519.517340660095,"z":"99faf548.31fd3","wires":[["87fc3a57.8fef78"]]},{"id":"acaf4bf.d8e9e38","type":"for","name":"for loop i - tmp.AnAI.l3network.subnets.subnet[]","xml":"<for index=\"i\" start=\"0\" end=\"`$tmp.AnAI.l3network.subnets.subnet_length`\">\n","comments":"","outputs":1,"x":1770.934658050537,"y":6874.695291519165,"z":"99faf548.31fd3","wires":[["4c0539c1.07c51"]]},{"id":"3e3f642b.b4579c","type":"switchNode","name":"switch: tmp.subnetRollback[].type","xml":"<switch test=\"`$tmp.subnetRollback[$j].type`\">","comments":"","outputs":1,"x":3087.7078819274902,"y":6874.983587265015,"z":"99faf548.31fd3","wires":[["51c12107.579138","4b1b03f5.a74b4c"]]},{"id":"51c12107.579138","type":"outcomeTrue","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":3326.4223594665527,"y":6874.832225799561,"z":"99faf548.31fd3","wires":[["6d2c5b80.49b5ac"]]},{"id":"4b1b03f5.a74b4c","type":"outcomeTrue","name":"update","xml":"<outcome value='update'>\n","comments":"","outputs":1,"x":3327.9936866760254,"y":6920.404623031616,"z":"99faf548.31fd3","wires":[["4783b0f7.1268"]]},{"id":"6d2c5b80.49b5ac","type":"save","name":"Rollback AnAI delete - l3network.subnets.subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id\" >\n<parameter name=\"orchestration-status\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`\" />\n\t\t","comments":"","outputs":1,"x":3608.8510246276855,"y":6874.4051876068115,"z":"99faf548.31fd3","wires":[["7c973dca.78763c","d960b59c.11f63"]]},{"id":"1e801387.42aacc","type":"outcomeTrue","name":"create","xml":"<outcome value='create'>\n","comments":"","outputs":1,"x":2409.4002265930176,"y":7107.0330419540405,"z":"99faf548.31fd3","wires":[["f1fa3232.1abd7"]]},{"id":"f1fa3232.1abd7","type":"delete","name":"Rollback AnAI create -  l3-network.subnets.subnet","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id\" >","comments":"","outputs":1,"x":2695.685634613037,"y":7106.010865211487,"z":"99faf548.31fd3","wires":[["9271cba0.7e82a8","ddfcf45f.b6b89"]]},{"id":"1397b2f8.aa246d","type":"for","name":"for loop j - subnetRollback[]","xml":"<for index=\"j\" start=\"0\" end=\"`$x`\">\n","comments":"","outputs":1,"x":1175.220417022705,"y":6825.765031814575,"z":"99faf548.31fd3","wires":[["882aa706.c87ac"]]},{"id":"4c0539c1.07c51","type":"switchNode","name":"switch: subnet-id  tmp.AnAI.l3network.subnets.subnet[] == tmp.subnetRollback[]","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-id == $tmp.subnetRollback[$j].subnet-id`\">","comments":"","outputs":1,"x":2273.934825897217,"y":6874.98072719574,"z":"99faf548.31fd3","wires":[["b72f3ec7.5c0c58"]]},{"id":"b72f3ec7.5c0c58","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2651.6492233276367,"y":6875.40908908844,"z":"99faf548.31fd3","wires":[["f921cbd2.fc183"]]},{"id":"4783b0f7.1268","type":"save","name":"rollback AnAI update - l3-network.subnets.subnet ","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$j].subnet-id\" >\n<parameter name=\"subnet-name\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-name`\"/>\n<parameter name=\"gateway-address\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].gateway-address`\"/>\n<parameter name=\"cidr-mask\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].cidr-mask`\"/>\n<parameter name=\"dhcp-start\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-start`\"/>\n<parameter name=\"dhcp-end\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-end`\"/>\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-enabled`\"/>\n<parameter name=\"orchestration-status\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`\" />\n\t\t","comments":"","outputs":1,"x":3610.6495933532715,"y":6919.765399932861,"z":"99faf548.31fd3","wires":[["59a58bb0.48d64c","88059f52.82953"]]},{"id":"3e0459f9.200e1e","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":2169.5656242370605,"y":6184.648462772369,"z":"99faf548.31fd3","wires":[]},{"id":"7c735817.29606","type":"outcomeTrue","name":"true","xml":"<outcome value=\"true\">","outputs":1,"x":720.5178565979004,"y":6370.183808326721,"z":"99faf548.31fd3","wires":[["cb67a904.b6e338"]]},{"id":"3991c105.213bc6","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":577.9109382629395,"y":2504.4221019744873,"z":"99faf548.31fd3","wires":[["102e2893.d19faf"]]},{"id":"102e2893.d19faf","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":780.625186920166,"y":2504.422124862671,"z":"99faf548.31fd3","wires":[["5c01494c.b5ff3"]]},{"id":"f2815bd8.a2a3e8","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":978.9467010498047,"y":2038.136121749878,"z":"99faf548.31fd3","wires":[["7ad92bd4.cef314"]]},{"id":"7ad92bd4.cef314","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1175.9108619689941,"y":2038.3860549926758,"z":"99faf548.31fd3","wires":[["be029b56.cf1df"]]},{"id":"7539d8e7.6520d8","type":"set","name":"set k, n max + 1","xml":"<set>\n\t<parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\n\t<parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />","comments":"","x":2466.911075592041,"y":2036.386194229126,"z":"99faf548.31fd3","wires":[]},{"id":"f7643660.4bcd8","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":534.875186920166,"y":3648.529046058655,"z":"99faf548.31fd3","wires":[["f692f6df.50d63"]]},{"id":"f692f6df.50d63","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":737.5894355773926,"y":3648.5290689468384,"z":"99faf548.31fd3","wires":[["36a15b72.a0658c"]]},{"id":"af7b04ae.883c9","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":513.9584999084473,"y":6370.612001419067,"z":"99faf548.31fd3","wires":[["7c735817.29606"]]},{"id":"2a9c6277.2cb43e","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":520.8871040344238,"y":6140.076347351074,"z":"99faf548.31fd3","wires":[["8525e190.d98848"]]},{"id":"8525e190.d98848","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":723.6013526916504,"y":6140.076370239258,"z":"99faf548.31fd3","wires":[["c9a6b2f7.6419f"]]},{"id":"95446770.fe01d8","type":"switchNode","name":"switch: texecute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":546.680736541748,"y":4488.695550203323,"z":"99faf548.31fd3","wires":[["b7a849c7.6c009"]]},{"id":"b7a849c7.6c009","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":749.3949851989746,"y":4488.695573091507,"z":"99faf548.31fd3","wires":[["f3afb4a0.398f6"]]},{"id":"dbd29e8d.9dd118","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":866.1252174377441,"y":3812.6955308914185,"z":"99faf548.31fd3","wires":[["286dd957.a2c98e"]]},{"id":"286dd957.a2c98e","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1068.8394660949707,"y":3812.695553779602,"z":"99faf548.31fd3","wires":[["12b40a45.433596"]]},{"id":"12b40a45.433596","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1247.7918434143066,"y":3812.529022216797,"z":"99faf548.31fd3","wires":[["5cfc33fd.ad0c9c","5dfb8fb6.f3579"]]},{"id":"3695e1f7.f39ba6","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":1496.696475982666,"y":3753.6480884552,"z":"99faf548.31fd3","wires":[]},{"id":"85345bb9.7023d8","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3172.458599090576,"y":4040.8621883392334,"z":"99faf548.31fd3","wires":[]},{"id":"49ced0c0.0d0a6","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":2036.6253547668457,"y":4203.029056549072,"z":"99faf548.31fd3","wires":[["62af2ab9.276e04"]]},{"id":"62af2ab9.276e04","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2239.3396034240723,"y":4203.029079437256,"z":"99faf548.31fd3","wires":[["94c7a9eb.736488"]]},{"id":"fb4e9cd8.b15bc","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3568.5535316467285,"y":4288.909888267517,"z":"99faf548.31fd3","wires":[]},{"id":"3651c046.062be","type":"set","name":"set i = max + 1","xml":"<set>\n  <parameter name=\"i\" value = \"`$preload-data.preload-network-topology-information.vpn-bindings_length + 1`\"  />\n\n","comments":"","x":3535.696491241455,"y":4245.814639091492,"z":"99faf548.31fd3","wires":[]},{"id":"461742ab.1d3484","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":827.5140342712402,"y":4705.084690332413,"z":"99faf548.31fd3","wires":[["30bb23db.ab8e5c"]]},{"id":"30bb23db.ab8e5c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1030.2282829284668,"y":4705.084713220596,"z":"99faf548.31fd3","wires":[["f76e423b.ce48b"]]},{"id":"f76e423b.ce48b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1216.4029350280762,"y":4704.0288207530975,"z":"99faf548.31fd3","wires":[["d0a5b457.98849","aeefcea0.4d5f5"]]},{"id":"ab2d703d.ad753","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":1482.7360343933105,"y":4610.877638101578,"z":"99faf548.31fd3","wires":[]},{"id":"1d9e30c4.0c4247","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":2962.291820526123,"y":4834.029151678085,"z":"99faf548.31fd3","wires":[]},{"id":"113e310a.374617","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3438.5779151916504,"y":4991.3148629665375,"z":"99faf548.31fd3","wires":[]},{"id":"882aa706.c87ac","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1434.8396949768066,"y":6824.0276737213135,"z":"99faf548.31fd3","wires":[["acaf4bf.d8e9e38","d4f31adc.46316","c9de33ed.33cd18"]]},{"id":"1ed364f.3bfd91b","type":"set","name":"set: tmp.rollbck.match = 1","xml":"<set>\n\t<parameter name=\"tmp.rollback.match\" value=\"1\"/>","comments":"","x":3069.9826698303223,"y":6999.813808441162,"z":"99faf548.31fd3","wires":[]},{"id":"f921cbd2.fc183","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2818.9824028015137,"y":6874.813808441162,"z":"99faf548.31fd3","wires":[["3e3f642b.b4579c","1ed364f.3bfd91b"]]},{"id":"d4f31adc.46316","type":"switchNode","name":"switch: tmp.rollback.match == 0","xml":"<switch test=\"`$tmp.rollback.match == 0`\">","comments":"","outputs":1,"x":1723.2680702209473,"y":7107.600283622742,"z":"99faf548.31fd3","wires":[["ab4ed8f.d749728"]]},{"id":"c53e5930.c23958","type":"switchNode","name":"switch: tmp.subnetRollback[].type","xml":"<switch test=\"`$tmp.subnetRollback[$j].type`\">","comments":"","outputs":1,"x":2175.982410430908,"y":7106.885443687439,"z":"99faf548.31fd3","wires":[["1e801387.42aacc"]]},{"id":"7c973dca.78763c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3898.6967964172363,"y":6874.67115688324,"z":"99faf548.31fd3","wires":[["21f8d2e6.30fa16"]]},{"id":"21f8d2e6.30fa16","type":"set","name":"set: tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'failed to rollback the subnet.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":4163.689208984375,"y":6874.056761741638,"z":"99faf548.31fd3","wires":[]},{"id":"bfc1e7fc.7a9658","type":"set","name":"set: tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'failed to rollback the subnet attributes update in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":4166.554096221924,"y":6919.528549194336,"z":"99faf548.31fd3","wires":[]},{"id":"12a29993.21784e","type":"set","name":"set: tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'failed to rollback to delete subnet from AnAI where subnet-id = ' + $tmp.subnetRollback[$j].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":3214.696720123291,"y":7106.170809745789,"z":"99faf548.31fd3","wires":[]},{"id":"59a58bb0.48d64c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3898.6966133117676,"y":6919.813876152039,"z":"99faf548.31fd3","wires":[["bfc1e7fc.7a9658"]]},{"id":"9271cba0.7e82a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2983.8396492004395,"y":7105.599450111389,"z":"99faf548.31fd3","wires":[["12a29993.21784e"]]},{"id":"34cb7d8.6b99182","type":"set","name":"set: tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'failed to rollback l3network.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":2240.839527130127,"y":7276.099722862244,"z":"99faf548.31fd3","wires":[]},{"id":"a00f453a.858988","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2002.9824562072754,"y":7276.528363227844,"z":"99faf548.31fd3","wires":[["34cb7d8.6b99182"]]},{"id":"72b3fa21.56287c","type":"comment","name":"----  ROLLBACK STARTS HERE  ----","info":"","comments":"","x":578.1489372253418,"y":6323.409649848938,"z":"99faf548.31fd3","wires":[]},{"id":"3060e5d9.8b532a","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`\"/>","comments":"","x":3167.220527648926,"y":3095.624238014221,"z":"99faf548.31fd3","wires":[]},{"id":"c1e8109.33219f","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while updating subnet status to PendingDelete in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`\"/>","comments":"","x":2488.1965522766113,"y":2079.1003017425537,"z":"99faf548.31fd3","wires":[]},{"id":"c9de33ed.33cd18","type":"set","name":"set: tmp.rollbck.match = 0","xml":"<set>\n\t<parameter name=\"tmp.rollback.match\" value=\"0\"/>","comments":"","x":1703.2681007385254,"y":6824.314642906189,"z":"99faf548.31fd3","wires":[]},{"id":"48e77510.8d6f74","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2739.0777473449707,"y":3098.957498550415,"z":"99faf548.31fd3","wires":[["7ed587ce.58bb7"]]},{"id":"791db7cd.110f5","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2070.0537147521973,"y":2080.719367980957,"z":"99faf548.31fd3","wires":[["85718701.a91ff"]]},{"id":"980e97ec.e3025","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3193.982349395752,"y":4246.576512336731,"z":"99faf548.31fd3","wires":[["122ef45b.214554"]]},{"id":"e8b59d42.c0eab8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3064.4823265075684,"y":4993.933755636215,"z":"99faf548.31fd3","wires":[[]]},{"id":"46e1f204.12633c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1746.1489906311035,"y":6183.100154399872,"z":"99faf548.31fd3","wires":[["f5491b15.8a826"]]},{"id":"fd434a74.035768","type":"switchNode","name":"switch: AnAI == INPUT - network-name","xml":"<switch test=\"`$tmp.AnAI.l3network.network-name == $network-data.network-topology.network-topology-identifier-structure.network-name`\">","comments":"","outputs":1,"x":600.8037414550781,"y":836.7987289428711,"z":"99faf548.31fd3","wires":[["b58edb46.eb0908"]]},{"id":"b58edb46.eb0908","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":848.0537414550781,"y":836.8027257919312,"z":"99faf548.31fd3","wires":[["f18b0c90.7bbd6"]]},{"id":"f18b0c90.7bbd6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'The input network-name,' + network-topology-operation-input.network-request-information.network-name + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`\" />","comments":"","x":1010.6925163269043,"y":836.6917133331299,"z":"99faf548.31fd3","wires":[]},{"id":"5872c2e1.fd902c","type":"switchNode","name":"switch: AnAI == INPUT - network-type","xml":"<switch test=\"`$tmp.AnAI.l3network.network-type == $network-data.network-topology.network-topology-identifier-structure.network-type`\">","comments":"","outputs":1,"x":594.517993927002,"y":880.0844306945801,"z":"99faf548.31fd3","wires":[["2e62ccf9.7369f4"]]},{"id":"2e62ccf9.7369f4","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":848.767993927002,"y":880.0884275436401,"z":"99faf548.31fd3","wires":[["86d72b8.7dd3d58"]]},{"id":"86d72b8.7dd3d58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'The input network-type,' + network-topology-operation-input.network-request-information.network-type + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`\" />","comments":"","x":1011.4067687988281,"y":879.9774150848389,"z":"99faf548.31fd3","wires":[]},{"id":"4cf6fa1f.47b03c","type":"switchNode","name":"switch: AnAI == PRELOAD - network-type","xml":"<switch test=\"`$tmp.AnAI.l3network.network-type == $preload-data.preload-network-topology-information.network-topology-identifier.network-type`\">","comments":"","outputs":1,"x":609.6609191894531,"y":970.0844240188599,"z":"99faf548.31fd3","wires":[["f0a901b3.35778"]]},{"id":"f0a901b3.35778","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":865.9109191894531,"y":970.0884208679199,"z":"99faf548.31fd3","wires":[["b4a265e7.43d6b8"]]},{"id":"b4a265e7.43d6b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"`'No preload network found with network-type = ' + $tmp.AnAI.l3network.network-type + ' in SDNC'`\" />","comments":"","x":1028.5496940612793,"y":969.9774084091187,"z":"99faf548.31fd3","wires":[]},{"id":"ab4ed8f.d749728","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1943.0896186828613,"y":7107.655534744263,"z":"99faf548.31fd3","wires":[["c53e5930.c23958"]]},{"id":"8d4f07c3.f8ed6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3039.041706085205,"y":6557.945352077484,"z":"99faf548.31fd3","wires":[["15f4af6d.bab1f9"]]},{"id":"c8eb5da8.a0d2f8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2982.041706085205,"y":6410.611609458923,"z":"99faf548.31fd3","wires":[["c9b0d245.a678c8"]]},{"id":"d960b59c.11f63","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3906.708564758301,"y":6829.4445104599,"z":"99faf548.31fd3","wires":[["21f8d2e6.30fa16"]]},{"id":"88059f52.82953","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3906.3751907348633,"y":6964.77800655365,"z":"99faf548.31fd3","wires":[["bfc1e7fc.7a9658"]]},{"id":"ddfcf45f.b6b89","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2992.3752784729004,"y":7147.944578170776,"z":"99faf548.31fd3","wires":[["12a29993.21784e"]]},{"id":"ff448016.b11eb8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2010.7084999084473,"y":7318.777847290039,"z":"99faf548.31fd3","wires":[["34cb7d8.6b99182"]]},{"id":"f2c572bd.81ebb","type":"switchNode","name":"switch ... tmp.AnAI.l3network.subnets.subnet[]","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet_length`\">","comments":"","outputs":1,"x":617.8037414550781,"y":1056.219388961792,"z":"99faf548.31fd3","wires":[["fb903b2f.603ee8"]]},{"id":"fb903b2f.603ee8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":888.2481918334961,"y":1055.997124671936,"z":"99faf548.31fd3","wires":[["a45e56d9.99242"]]},{"id":"a45e56d9.99242","type":"set","name":"set tmp.AnAI.l3network.subnets.subnet[] = 0","xml":"<set>\n<parameter name=\"tmp.AnAI.l3network.subnets.subnet_length\" value=\"0\" />\n","comments":"","x":1145.8038007948135,"y":1055.9971453348794,"z":"99faf548.31fd3","wires":[]},{"id":"c14d77b1.f2f7c8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":557.9108467102051,"y":5487.767111301422,"z":"99faf548.31fd3","wires":[["3956dd79.c084b2","425f0d8c.c1ee44"]]},{"id":"aedd7d7d.b1ce78","type":"switchNode","name":"switch ... PRELOAD route-table-reference[]","xml":"<switch test=\"`$preload-data.preload-network-topology-information.route-table-reference_length`\">","comments":"","outputs":1,"x":1505.2124519348145,"y":5626.140190601349,"z":"99faf548.31fd3","wires":[["17dc8ddf.09e272"]]},{"id":"17dc8ddf.09e272","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1761.9068794250488,"y":5625.917680263519,"z":"99faf548.31fd3","wires":[["aacd6fd8.a16c2"]]},{"id":"aacd6fd8.a16c2","type":"set","name":"set route-table-reference[] = 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.route-table-reference_length' value='0' />\n","comments":"","x":1976.4624883863662,"y":5625.917700926462,"z":"99faf548.31fd3","wires":[]},{"id":"e0f430f6.63b6a8","type":"for","name":"for loop i - PRELOAD route-table-reference","xml":"<for index=\"i\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.route-table-reference_length`\">\n","comments":"","outputs":1,"x":1504.8197059631348,"y":5671.711480617523,"z":"99faf548.31fd3","wires":[["a8fb8dec.01b2c"]]},{"id":"b7c9330.00b54d","type":"save","name":"save relationship: network-policy","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"route-table-reference\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"route-table-reference.route-table-reference-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.route-table-reference.route-table-reference-id`\" />","comments":"","outputs":1,"x":2937.2326011657715,"y":5870.898035526276,"z":"99faf548.31fd3","wires":[["eb723736.ee1f9","48189378.2e324c","2bcbf9cd.81d636"]]},{"id":"a8fb8dec.01b2c","type":"switchNode","name":"switch: PRELOAD route-table-reference-fqdn != NULL","xml":"<switch test=\"`$preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn != NULL`\">","comments":"","outputs":1,"x":1915.5819129943848,"y":5671.810601711273,"z":"99faf548.31fd3","wires":[["76fa4efe.1b099"]]},{"id":"76fa4efe.1b099","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2201.3319206237793,"y":5672.060601711273,"z":"99faf548.31fd3","wires":[["e2be0c8c.4da208"]]},{"id":"e2be0c8c.4da208","type":"save","name":"query AnAI - route-table-reference","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"route-table-reference\" \n\t\tkey=\"route-table-reference.route-table-reference-fqdn = $preload-data.preload-network-topology-information.route-table-reference[$i].route-table-reference-fqdn\" \n\t\tpfx=\"tmp.AnAI.route-table-reference\">","comments":"","outputs":1,"x":2419.510711669922,"y":5672.060549736023,"z":"99faf548.31fd3","wires":[["eea7c76d.c86c","73b0557f.a6c464","37524b00.463986"]]},{"id":"eea7c76d.c86c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2707.0819566514756,"y":5712.810432275137,"z":"99faf548.31fd3","wires":[["4d042141.6192b"]]},{"id":"73b0557f.a6c464","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2712.581960466173,"y":5672.310431321463,"z":"99faf548.31fd3","wires":[["4d042141.6192b"]]},{"id":"4d042141.6192b","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":2862.081960466173,"y":5712.560433228811,"z":"99faf548.31fd3","wires":[["9c651ed9.3c54e8","d4bd34a1.1cbc28"]]},{"id":"9c651ed9.3c54e8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":3078.181501176622,"y":5712.310332139334,"z":"99faf548.31fd3","wires":[]},{"id":"eb723736.ee1f9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3198.305477142334,"y":5870.37362241745,"z":"99faf548.31fd3","wires":[["faac9695.a14ad"]]},{"id":"faac9695.a14ad","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":3339.198356628418,"y":5870.009729862213,"z":"99faf548.31fd3","wires":[["6adb7f2c.ca6ff","71ef52d7.590ce4"]]},{"id":"6adb7f2c.ca6ff","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while saving l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`\"/>","comments":"","x":3570.297897338867,"y":5869.759628772736,"z":"99faf548.31fd3","wires":[]},{"id":"3956dd79.c084b2","type":"save","name":"delete relationship: route-table-reference","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t AND related-to = route-table-reference\" >","comments":"","outputs":1,"x":846.1251258850098,"y":5487.576439619064,"z":"99faf548.31fd3","wires":[["ba84caf1.b95928"]]},{"id":"37524b00.463986","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2711.847553253174,"y":5870.401903629303,"z":"99faf548.31fd3","wires":[["b7c9330.00b54d"]]},{"id":"ba84caf1.b95928","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1139.260097503662,"y":5487.159650564194,"z":"99faf548.31fd3","wires":[["1b8ed9c.0dd75a6"]]},{"id":"1b8ed9c.0dd75a6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1315.9968719482422,"y":5486.850988149643,"z":"99faf548.31fd3","wires":[["d0eb7413.c21e8","d5b9f2ce.b30ff8"]]},{"id":"d0eb7413.c21e8","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"An error occurred while deleting l3-network route-table-reference relationship from AnAI prior to regenerate the route-table-reference relationship from PRELOAD.\"/>","comments":"","x":1540.010097503662,"y":5487.159650564194,"z":"99faf548.31fd3","wires":[]},{"id":"dc67c501.47d9d8","type":"set","name":"set tmp.route-table-reference.updated = 1","xml":"<set>\n<parameter name='tmp.route-table-reference.updated' value='1' />\n","comments":"","x":3443.6330375671387,"y":5960.5806221961975,"z":"99faf548.31fd3","wires":[]},{"id":"48189378.2e324c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3204.8830375671387,"y":5960.8306221961975,"z":"99faf548.31fd3","wires":[["dc67c501.47d9d8"]]},{"id":"ee3e375d.3ff768","type":"switchNode","name":"switch: texecute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":536.5576972961426,"y":5411.140158176422,"z":"99faf548.31fd3","wires":[["e116631a.73ac68"]]},{"id":"e116631a.73ac68","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":743.2719535827637,"y":5411.140087604523,"z":"99faf548.31fd3","wires":[["c14d77b1.f2f7c8"]]},{"id":"425f0d8c.c1ee44","type":"switchNode","name":"switch: execute_failure","xml":"<switch test=\"`$execute_failure`\">","comments":"","outputs":1,"x":821.3910026550293,"y":5627.5292048454285,"z":"99faf548.31fd3","wires":[["ed5dc0c0.0ccf8"]]},{"id":"ed5dc0c0.0ccf8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1024.1052513122559,"y":5627.529227733612,"z":"99faf548.31fd3","wires":[["65de5abb.394444"]]},{"id":"65de5abb.394444","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1222.7799034118652,"y":5626.473432064056,"z":"99faf548.31fd3","wires":[["aedd7d7d.b1ce78","e0f430f6.63b6a8"]]},{"id":"d5b9f2ce.b30ff8","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":1545.6130027770996,"y":5533.3221526145935,"z":"99faf548.31fd3","wires":[]},{"id":"d4bd34a1.1cbc28","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3086.668788909912,"y":5756.473762989044,"z":"99faf548.31fd3","wires":[]},{"id":"71ef52d7.590ce4","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3580.9548835754395,"y":5913.759474277496,"z":"99faf548.31fd3","wires":[]},{"id":"2bcbf9cd.81d636","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3206.8592948913574,"y":5916.378366947174,"z":"99faf548.31fd3","wires":[[]]},{"id":"56bfd6a9.df74c8","type":"other","name":"route-table-reference","xml":"<outcome value='route-table-reference'>\n","comments":"","outputs":1,"x":1990.8275451660156,"y":6671.933737754822,"z":"99faf548.31fd3","wires":[["36b863a.f55881c"]]},{"id":"14f6d939.1ddf87","type":"save","name":"Rollback to save relationship: route-table-reference","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network:relationship-list\" \n\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id\" >\n<parameter name=\"relationship-list.relationship[0].related-to\" value=\"route-table-reference\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"route-table-reference.route-table-reference-id\" />\n<parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`\" />","comments":"","outputs":1,"x":2805.910820007324,"y":6671.267318725586,"z":"99faf548.31fd3","wires":[["4636255c.b23d6c","d1aa7b77.e97c2"]]},{"id":"4636255c.b23d6c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3065.9836959838867,"y":6670.74290561676,"z":"99faf548.31fd3","wires":[["1d67e3e9.81fba4"]]},{"id":"1d67e3e9.81fba4","type":"set","name":"tmp.rollback.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.rollback.error-message\" value=\"`'An error occurred during rollback of l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`\"/>","comments":"","x":3281.9760208129883,"y":6671.128494262695,"z":"99faf548.31fd3","wires":[]},{"id":"36b863a.f55881c","type":"switchNode","name":"switch:  tmp.route-table-reference.updated == 1","xml":"<switch test=\"`$tmp.route-table-reference.updated == 1`\">","comments":"","outputs":1,"x":2262.161033630371,"y":6671.933939933777,"z":"99faf548.31fd3","wires":[["f9643ab8.53c508"]]},{"id":"f9643ab8.53c508","type":"other","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2507.1610412597656,"y":6671.933981895447,"z":"99faf548.31fd3","wires":[["14f6d939.1ddf87"]]},{"id":"d1aa7b77.e97c2","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3074.244239807129,"y":6710.36194229126,"z":"99faf548.31fd3","wires":[["1d67e3e9.81fba4"]]},{"id":"41a365fc.f77acc","type":"switchNode","name":"switch: AnAI-k == PRELOAD-n cidr-mask","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].cidr-mask == $preload-data.preload-network-topology-information.subnets[$n].cidr-mask`\">","comments":"","outputs":1,"x":2129.291877746582,"y":737.5843949317932,"z":"99faf548.31fd3","wires":[["ff7eb4dc.c16978"]]},{"id":"3ba5a771.321f1","type":"set","name":"set tmp.start-address-match = 1","xml":"<set>\n<parameter name='tmp.start-address-match' value='1' />\n","comments":"","x":2101.5798416137695,"y":689.059859752655,"z":"99faf548.31fd3","wires":[]},{"id":"f2efaecb.a4c288","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1798.5235328674316,"y":1015.5294876098633,"z":"99faf548.31fd3","wires":[["3ba5a771.321f1","41a365fc.f77acc","101a7415.05b704","8fb775eb.d0728","84204b69.12019","39a0fd5.09c1302","9cfdad47.74479","358d7a72.66f4b6","fed208d7.282448","d65c60ca.e54b08","7d24ad9b.e9cd44","601da03.e985be"]]},{"id":"ff7eb4dc.c16978","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2375.872570037842,"y":738.038284778595,"z":"99faf548.31fd3","wires":[["3f393593.252182"]]},{"id":"a4ef9b17.97de1","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id \n\t\t\tAND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id\" >\n\t<!-- Update l3network.subnet -->\n\t<parameter name=\"gateway-address\" value=\"`$tmp.gateway-address`\"/>\n\t<parameter name=\"subnet-name\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].subnet-name`\"/>\n\t<parameter name=\"cidr-mask\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].cidr-mask`\"/>\n\t<parameter name=\"dhcp-start\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].dhcp-start-address`\"/>\n\t<parameter name=\"dhcp-end\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].dhcp-end-address`\"/>\n\t<parameter name=\"dhcp-enabled\" value=\"`$tmp.dhcpEnabled.boolean`\"/>\n\t<parameter name=\"ip-assignment-direction\" value=\"`$tmp.addrFromStart.boolean`\" />\n\t<parameter name=\"orchestration-status\" value=\"PendingUpdate\" />\n\t\t","comments":"","outputs":1,"x":2525.152286529541,"y":1588.4918403625488,"z":"99faf548.31fd3","wires":[["b9906b65.eab918","de2a40b4.84aaa","3cdc30fb.83fab"]]},{"id":"358d7a72.66f4b6","type":"switchNode","name":"switch: AnAI-k == PRELOAD-n dhcp-enabled.boolean","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-enabled == $tmp.dhcpEnabled.boolean`\">","comments":"","outputs":1,"x":2174.1975631713867,"y":1265.7128739356995,"z":"99faf548.31fd3","wires":[["1dc403ed.214874"]]},{"id":"1dc403ed.214874","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2457.031467437744,"y":1265.6850504875183,"z":"99faf548.31fd3","wires":[["de20db38.3b0d1"]]},{"id":"af40b8ec.a37c18","type":"set","name":"set tmp.dhcpEnabled.bolean=false","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"false\" />\n","comments":"","x":2569.852550506592,"y":1014.8456635475159,"z":"99faf548.31fd3","wires":[]},{"id":"be7dcc15.da6e","type":"set","name":"set tmp.dhcpEnabled.boolean=true","xml":"<set>\n<parameter name=\"tmp.dhcpEnabled.boolean\" value=\"true\" />\n","comments":"","x":2571.4915885925293,"y":1056.3178334236145,"z":"99faf548.31fd3","wires":[]},{"id":"9cfdad47.74479","type":"switchNode","name":"switch : PRELOAD-n dhcp-enabled","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$n].dhcp-enabled`\">","comments":"","outputs":1,"x":2120.759777069092,"y":1014.6109833717346,"z":"99faf548.31fd3","wires":[["d840bbd8.c5951","da2f001f.887f6"]]},{"id":"da2f001f.887f6","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":2350.815441131592,"y":1014.8888154029846,"z":"99faf548.31fd3","wires":[["af40b8ec.a37c18"]]},{"id":"d840bbd8.c5951","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2350.2322425842285,"y":1056.0833287239075,"z":"99faf548.31fd3","wires":[["be7dcc15.da6e"]]},{"id":"101a7415.05b704","type":"switchNode","name":"switch: tmp.subnetUpdate = 1","xml":"<switch test=\"`$tmp.subnetUpdate == 1`\">","comments":"","outputs":1,"x":2095.6028785705566,"y":1589.8112993240356,"z":"99faf548.31fd3","wires":[["28ca435b.4d4e2c"]]},{"id":"28ca435b.4d4e2c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2322.031482696533,"y":1589.478144645691,"z":"99faf548.31fd3","wires":[["a4ef9b17.97de1"]]},{"id":"1c47a89d.311727","type":"set","name":"set tmp.l3networkUpdate = 1","xml":"<set>\n<parameter name=\"tmp.l3networkUpdate\" value=\"1\" />\n","comments":"","x":3132.9122314453125,"y":1833.2711534500122,"z":"99faf548.31fd3","wires":[]},{"id":"8fb775eb.d0728","type":"switchNode","name":"switch: l3subnet[k] == PRELOAD subnets[n] dhcp-start","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-start == $preload-data.preload-network-topology-information.subnets[$n].dhcp-start-address`\">","comments":"","outputs":1,"x":2175.833984375,"y":1313.736750125885,"z":"99faf548.31fd3","wires":[["28752c5a.b879bc"]]},{"id":"28752c5a.b879bc","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2456.7504920959473,"y":1313.4589648246765,"z":"99faf548.31fd3","wires":[["29ebe2f8.a64166"]]},{"id":"84204b69.12019","type":"switchNode","name":"switch: l3subnet[k] == PRELOAD subnets[n] dhcp-end","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-end == $preload-data.preload-network-topology-information.subnets[$n].dhcp-end-address`\">","comments":"","outputs":1,"x":2173.05615234375,"y":1361.0701241493225,"z":"99faf548.31fd3","wires":[["48afca80.0eb22c"]]},{"id":"48afca80.0eb22c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2455.9726600646973,"y":1360.792338848114,"z":"99faf548.31fd3","wires":[["f6b46141.4699d8"]]},{"id":"b086b6c5.b9fd08","type":"GenericXML","name":"Execute: generate gateway-address","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getGatewayAddress\">\n\t<parameter name=\"ipAddress\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].start-address`\" />\n\t<parameter name=\"ipVersion\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].ip-version`\" />\n\t<parameter name=\"subnet\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].cidr-mask`\" />\n\t<parameter name=\"ctxVariable\" value=\"tmp.return.generate.gateway-address\" />","comments":"","outputs":1,"x":2731.4072036743164,"y":796.3979897499084,"z":"99faf548.31fd3","wires":[[]]},{"id":"28b52dd3.7082f2","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$tmp.return.generate.gateway-address`\" />\n","comments":"","x":3442.157329559326,"y":859.3979907035828,"z":"99faf548.31fd3","wires":[]},{"id":"39a0fd5.09c1302","type":"switchNode","name":"switch : PRELOAD gateway-address","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`\">","comments":"","outputs":1,"x":2116.6572036743164,"y":796.3979897499084,"z":"99faf548.31fd3","wires":[["e677bc38.dc3a58","d7d19f20.309a6"]]},{"id":"e677bc38.dc3a58","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":2350.6572036743164,"y":796.3979897499084,"z":"99faf548.31fd3","wires":[["699bee75.d526c"]]},{"id":"d7d19f20.309a6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2352.6572036743164,"y":840.3979897499084,"z":"99faf548.31fd3","wires":[["952d7c82.288e9"]]},{"id":"952d7c82.288e9","type":"switchNode","name":"switch: AnAI-k == PRELOAD-n gateway-address","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $preload-data.preload-network-topology-information.subnets[$n].gateway-address`\">","comments":"","outputs":1,"x":2585.6573600769043,"y":919.1122632026672,"z":"99faf548.31fd3","wires":[["4c118380.ad6dd4","19576292.7c9aad"]]},{"id":"4c118380.ad6dd4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2862.1573600769043,"y":919.3622632026672,"z":"99faf548.31fd3","wires":[["cbfa742a.a43be"]]},{"id":"f62c0289.88fe68","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`\" />\n","comments":"","x":3349.1573219299316,"y":917.5051140785217,"z":"99faf548.31fd3","wires":[]},{"id":"699bee75.d526c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2490.6572036743164,"y":796.3979897499084,"z":"99faf548.31fd3","wires":[["b086b6c5.b9fd08","87eadea7.8d4478"]]},{"id":"cbfa742a.a43be","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3001.1573600769043,"y":919.3622632026672,"z":"99faf548.31fd3","wires":[["f62c0289.88fe68","b181244c.b92ee8"]]},{"id":"9c428746.5e9d98","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3148.0461463928223,"y":1675.3703269958496,"z":"99faf548.31fd3","wires":[]},{"id":"f12386c9.7995d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2915.7527389526367,"y":1588.5290937423706,"z":"99faf548.31fd3","wires":[["9c428746.5e9d98","27f12fa3.0e7c5","d3a3c9df.e66c78"]]},{"id":"b9906b65.eab918","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2748.215518951416,"y":1588.241662979126,"z":"99faf548.31fd3","wires":[["f12386c9.7995d8"]]},{"id":"de2a40b4.84aaa","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2755.7772789001465,"y":1743.1879358291626,"z":"99faf548.31fd3","wires":[["f666d70f.2e613"]]},{"id":"6eb2f489.97fe34","type":"set","name":"set tmp.subnetRollback: keys","xml":"<set>\n  <parameter name=\"tmp.subnetRollback[$x].subnet-id\" value= \"`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`\"/>\n  <parameter name=\"tmp.subnetRollback[$x].type\" value = \"update\"/>\n  \n\n\n","comments":"","x":3132.0407905578613,"y":1743.4227285385132,"z":"99faf548.31fd3","wires":[]},{"id":"f666d70f.2e613","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2894.2762298583984,"y":1743.1731042861938,"z":"99faf548.31fd3","wires":[["6eb2f489.97fe34","54f8f3cb.add09c","1c47a89d.311727"]]},{"id":"54f8f3cb.add09c","type":"set","name":"$x++","xml":"<set>\n  <parameter name=\"x\" value = \"`$x + 1`\"  />\n\n","comments":"","x":3061.7309761047363,"y":1788.9733877182007,"z":"99faf548.31fd3","wires":[]},{"id":"f7d88440.0483e8","type":"set","name":"set tmp.subnetUpdate = 1","xml":"<set>\n<parameter name=\"tmp.subnetUpdate\" value=\"1\" />\n","comments":"","x":2868.157611846924,"y":1312.6838030815125,"z":"99faf548.31fd3","wires":[]},{"id":"87eadea7.8d4478","type":"switchNode","name":"switch: AnAI-k == tmp.return.generate.gateway-address","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $tmp.return.generate.gateway-address`\">","comments":"","outputs":1,"x":2790.8635063171387,"y":859.2670702934265,"z":"99faf548.31fd3","wires":[["72052273.e10864"]]},{"id":"72052273.e10864","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3075.435199737549,"y":858.7313723564148,"z":"99faf548.31fd3","wires":[["9773e5bb.fc3d8"]]},{"id":"9773e5bb.fc3d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3220.113666534424,"y":859.1678652763367,"z":"99faf548.31fd3","wires":[["28b52dd3.7082f2","b181244c.b92ee8"]]},{"id":"de20db38.3b0d1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2594.3638801574707,"y":1265.9178347587585,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"29ebe2f8.a64166","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2593.6138801574707,"y":1312.9178366661072,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"f6b46141.4699d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2593.1138801574707,"y":1361.1678376197815,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"3f393593.252182","type":"set","name":"set tmp.subnetUpdate = 1","xml":"<set>\n<parameter name=\"tmp.subnetUpdate\" value=\"1\" />\n","comments":"","x":2580.863628387451,"y":737.7551808357239,"z":"99faf548.31fd3","wires":[]},{"id":"27f12fa3.0e7c5","type":"set","name":"set k, n max + 1","xml":"<set>\n\t<parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\n\t<parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />","comments":"","x":3115.863956451416,"y":1588.3505306243896,"z":"99faf548.31fd3","wires":[]},{"id":"b181244c.b92ee8","type":"set","name":"set tmp.subnetUpdate = 1","xml":"<set>\n<parameter name=\"tmp.subnetUpdate\" value=\"1\" />\n","comments":"","x":3353.5778312683105,"y":968.0408978462219,"z":"99faf548.31fd3","wires":[]},{"id":"19576292.7c9aad","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2863.292339324951,"y":964.1837391853333,"z":"99faf548.31fd3","wires":[["9504cc02.0a1f58"]]},{"id":"9504cc02.0a1f58","type":"set","name":"set tmp.gateway-address","xml":"<set>\n<parameter name=\"tmp.gateway-address\" value=\"`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`\" />\n","comments":"","x":3059.149272918701,"y":964.3266224861145,"z":"99faf548.31fd3","wires":[]},{"id":"d3a3c9df.e66c78","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"tmp.error-message\" value=\"`'An error occurred while updating subnet attributes in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`\"/>","comments":"","x":3140.0782737731934,"y":1631.8148107528687,"z":"99faf548.31fd3","wires":[]},{"id":"3cdc30fb.83fab","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2756.5067100524902,"y":1631.8624181747437,"z":"99faf548.31fd3","wires":[["f12386c9.7995d8"]]},{"id":"fed208d7.282448","type":"switchNode","name":"switch: l3subnet[k] == PRELOAD subnets[n] subnet-name","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-name == $preload-data.preload-network-topology-information.subnets[$n].subnet-name`\">","comments":"","outputs":1,"x":2185.8994369506836,"y":1407.7670607566833,"z":"99faf548.31fd3","wires":[["442ff957.20bbc"]]},{"id":"442ff957.20bbc","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2485.815944671631,"y":1407.4892754554749,"z":"99faf548.31fd3","wires":[["d042dd24.3307a"]]},{"id":"d042dd24.3307a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2623.9571647644043,"y":1407.8647742271423,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"3f952973.3c3546","type":"set","name":"set tmp.addrFromStart.bolean=false","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"false\" />\n","comments":"","x":2572.3636894226074,"y":1113.9178748130798,"z":"99faf548.31fd3","wires":[]},{"id":"59f14f10.d6082","type":"set","name":"set tmp.addrFromStart.boolean=true","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"true\" />\n","comments":"","x":2574.002727508545,"y":1155.3900446891785,"z":"99faf548.31fd3","wires":[]},{"id":"d65c60ca.e54b08","type":"switchNode","name":"switch : PRELOAD-n addr-from-start","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$n].addr-from-start`\">","comments":"","outputs":1,"x":2123.2709159851074,"y":1113.6831946372986,"z":"99faf548.31fd3","wires":[["adbeda1f.3083d","e1d75a89.8723d8"]]},{"id":"e1d75a89.8723d8","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":2353.3265800476074,"y":1113.9610266685486,"z":"99faf548.31fd3","wires":[["3f952973.3c3546"]]},{"id":"adbeda1f.3083d","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2352.743381500244,"y":1155.1555399894714,"z":"99faf548.31fd3","wires":[["59f14f10.d6082"]]},{"id":"601da03.e985be","type":"switchNode","name":"switch: AnAI-k == PRELOAD-n addrFromStart.boolean","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].ip-assignment-direction == $tmp.addrFromStart.boolean`\">","comments":"","outputs":1,"x":2174.363628387451,"y":1220.1678576469421,"z":"99faf548.31fd3","wires":[["45a8e12f.45c57"]]},{"id":"45a8e12f.45c57","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2457.1975326538086,"y":1220.140034198761,"z":"99faf548.31fd3","wires":[["4a363391.8e9414"]]},{"id":"4a363391.8e9414","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2594.529945373535,"y":1220.3728184700012,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"7d24ad9b.e9cd44","type":"switchNode","name":"switch: l3subnet[k] == PRELOAD subnets[n] subnet-role","xml":"<switch test=\"`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-role == $preload-data.preload-network-topology-information.subnets[$n].subnet-role`\">","comments":"","outputs":1,"x":2184.363628387451,"y":1452.6678576469421,"z":"99faf548.31fd3","wires":[["786164e5.30fc9c"]]},{"id":"786164e5.30fc9c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2484.2801361083984,"y":1452.3900723457336,"z":"99faf548.31fd3","wires":[["4d54dd31.720a7c"]]},{"id":"4d54dd31.720a7c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2622.421356201172,"y":1452.7655711174011,"z":"99faf548.31fd3","wires":[["f7d88440.0483e8"]]},{"id":"6d27754.91a1f8c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3271.577642440796,"y":3516.822518348694,"z":"99faf548.31fd3","wires":[["5110cf67.6403a"]]},{"id":"5110cf67.6403a","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":3470.970470428467,"y":3516.4586362838745,"z":"99faf548.31fd3","wires":[["3ecf3010.00d5b","1180ab4e.80b135"]]},{"id":"3ecf3010.00d5b","type":"set","name":"set: tmp.error-message","xml":"<set>\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<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`\"/>","comments":"","x":3691.070011138916,"y":3516.208535194397,"z":"99faf548.31fd3","wires":[]},{"id":"2282ff54.aaa3e8","type":"call","name":"call: generate-host-routes-host-route-id","xml":"<call module=\"VNF-API\" rpc=\"generate-host-routes-host-route-id\" mode=\"sync\" >\n","comments":"","outputs":1,"x":3011.085334777832,"y":3470.4823713302612,"z":"99faf548.31fd3","wires":[["1b1e2a5e.1081a6"]]},{"id":"1b1e2a5e.1081a6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3272.835319519043,"y":3470.732361793518,"z":"99faf548.31fd3","wires":[["5110cf67.6403a"]]},{"id":"5621b71d.945c98","type":"save","name":"save AnAI - host-routes.host-route","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"host-route\" \n\t\tkey=\"l3-network.network-id = $tmp.AnAI.l3network.network-id  \n\t\t\tAND subnet.subnet-id = $tmp.local.subnet-id  \n\t\t\tAND host-route.host-route-id = $tmp.return.generate-host-routes-host-route-id.uuid\" >\n<!-- Create host-route object -->\n<parameter name=\"host-route-id\" value=\"`$tmp.return.generate-host-routes-host-route-id.uuid`\" />\n<parameter name=\"route-prefix\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].route-prefix`\" />\n<parameter name=\"next-hop\" value=\"`$preload-data.preload-network-topology-information.subnets[$i].host-routes[$h].next-hop`\" />","comments":"","outputs":1,"x":2995.961368560791,"y":3516.474015235901,"z":"99faf548.31fd3","wires":[["6d27754.91a1f8c","6cd11b79.ec678c"]]},{"id":"6cd11b79.ec678c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3279.894874572754,"y":3563.541890144348,"z":"99faf548.31fd3","wires":[["5110cf67.6403a"]]},{"id":"c45dc5f3.c229a","type":"for","name":"for loop h - PRELOAD host-routes","xml":"<for index=\"h\" start=\"0\" end=\"`$preload-data.preload-network-topology-information.subnets[$i].host-routes_length`\">\n","comments":"","outputs":1,"x":2438.791831970215,"y":3470.596242904663,"z":"99faf548.31fd3","wires":[["24f6dc0c.3cc6dc"]]},{"id":"24f6dc0c.3cc6dc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2708.0299530029297,"y":3470.024764060974,"z":"99faf548.31fd3","wires":[["2282ff54.aaa3e8","5621b71d.945c98"]]},{"id":"6814d148.b02918","type":"set","name":"set tmp.local.subnet-id","xml":"<set>\n<parameter name=\"tmp.local.subnet-id\" value=\"`$tmp.AnAI.l3network.subnets.subnet[$j].subnet-id`\" />\n","comments":"","x":2403.6252250671387,"y":3319.9176931381226,"z":"99faf548.31fd3","wires":[]},{"id":"6fca63db.36a404","type":"set","name":"set tmp.addrFromStart.bolean=false","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"false\" />\n","comments":"","x":2961.2917671203613,"y":2744.9177532196045,"z":"99faf548.31fd3","wires":[]},{"id":"c4e49471.506be","type":"set","name":"set tmp.addrFromStart.boolean=true","xml":"<set>\n<parameter name=\"tmp.addrFromStart.boolean\" value=\"true\" />\n","comments":"","x":2962.930805206299,"y":2786.389923095703,"z":"99faf548.31fd3","wires":[]},{"id":"6499a1da.9e778","type":"switchNode","name":"switch : PRELOAD-n addr-from-start","xml":"<switch test=\"`$preload-data.preload-network-topology-information.subnets[$n].addr-from-start`\">","comments":"","outputs":1,"x":2447.0562171936035,"y":2786.2545099258423,"z":"99faf548.31fd3","wires":[["f7756088.8ee018","67a5b3ff.025a6c","69cb5ef.fd054a"]]},{"id":"67a5b3ff.025a6c","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":2710.2546577453613,"y":2744.9609050750732,"z":"99faf548.31fd3","wires":[["6fca63db.36a404"]]},{"id":"f7756088.8ee018","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2709.671459197998,"y":2786.155418395996,"z":"99faf548.31fd3","wires":[["c4e49471.506be"]]},{"id":"916f68b3.411ab8","type":"switchNode","name":"switch host-routes_length","xml":"<switch test='`$preload-data.preload-network-topology-information.subnets[$i].host-routes_length`'>\n","comments":"","outputs":1,"x":2415.0537757873535,"y":3398.0131301879883,"z":"99faf548.31fd3","wires":[["555795d9.7a1144"]]},{"id":"555795d9.7a1144","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2655.6251945495605,"y":3397.584539413452,"z":"99faf548.31fd3","wires":[["1c07b0ec.e8eaa7"]]},{"id":"1c07b0ec.e8eaa7","type":"set","name":"set host-routes_length to 0","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.subnets[$i].host-routes_length' value='0' />\n","comments":"","x":2882.7681617736816,"y":3398.0129833221436,"z":"99faf548.31fd3","wires":[]},{"id":"1180ab4e.80b135","type":"returnSuccess","name":"set execute_failure = true","xml":"<return status='success'>\n\t<parameter name='execute_failure' value='true' />\n","comments":"","x":3695.0540657043457,"y":3559.441717147827,"z":"99faf548.31fd3","wires":[]},{"id":"ccdc8502.0da05","type":"set","name":"set ROLLBACK_START","xml":"<set>\n<parameter name='ROLLBACK_START' value='NETWORK_TOPOLOGY_CHANGEASSIGN' />\n","comments":"","x":1157.9109077453613,"y":6318.01323890686,"z":"99faf548.31fd3","wires":[]},{"id":"5348546b.a906bc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2187.196475982666,"y":3319.9176712036133,"z":"99faf548.31fd3","wires":[["6814d148.b02918","916f68b3.411ab8","c45dc5f3.c229a"]]},{"id":"69cb5ef.fd054a","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":2711.1965675354004,"y":2829.4415969848633,"z":"99faf548.31fd3","wires":[["c4e49471.506be"]]},{"id":"84ee1670.5f0a7","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\n","comments":"","outputs":1,"x":553.4346008300781,"y":357.9970827102661,"z":"99faf548.31fd3","wires":[["88ba72dc.ce70d","bd813794.8f96e"]]},{"id":"88ba72dc.ce70d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":778.8506660461426,"y":339.5521297454834,"z":"99faf548.31fd3","wires":[["cb30e47b.b67808"]]},{"id":"bd813794.8f96e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":773.2951049804688,"y":388.3298616409302,"z":"99faf548.31fd3","wires":[["d0bf808b.d6a33"]]},{"id":"d0bf808b.d6a33","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"Error: changeassign only allowed for networks with from-preload set to true\" />","comments":"","x":938.4346466064453,"y":387.99708461761475,"z":"99faf548.31fd3","wires":[]},{"id":"cb30e47b.b67808","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":920.9345703125,"y":339.9970703125,"z":"99faf548.31fd3","wires":[[]]},{"id":"3fed421d.e63e86","type":"execute","name":"generate preload network url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.preload-network`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pn-url\"/>\n    <parameter name=\"target\" value=\"{network-name}\"/>\n    <parameter name=\"replacement\" value=\"`$network-topology-operation-input.network-request-information.network-name`\"/>\n","comments":"","outputs":1,"x":569.9971313476562,"y":554.2471661567688,"z":"99faf548.31fd3","wires":[[]]},{"id":"b8e99272.6fe8b","type":"execute","name":"execute RestApiCallNode - Get preload-network by network-name","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pn-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"preload-data\" />\n\n","comments":"","outputs":1,"x":686.2471771240234,"y":586.9972295761108,"z":"99faf548.31fd3","wires":[["8b1aab55.e51f78","4ae4c873.f968"]]},{"id":"8b1aab55.e51f78","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1052.2471885681152,"y":591.7471933364868,"z":"99faf548.31fd3","wires":[["ab206880.cc5468"]]},{"id":"ab206880.cc5468","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1222.247142791748,"y":591.2470788955688,"z":"99faf548.31fd3","wires":[[]]},{"id":"4ae4c873.f968","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1048.098949432373,"y":623.8132514953613,"z":"99faf548.31fd3","wires":[["de5c4732.58bba"]]},{"id":"de5c4732.58bba","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error: No preload-network found with network-name =' + $tmp.network-instance-name + ' in md-sal'\" />","comments":"","x":1226.2471466064453,"y":623.747166633606,"z":"99faf548.31fd3","wires":[]},{"id":"592b5af8.983664","type":"comment","name":"Error if from-preload is not true","info":"","comments":"","x":573.7500305175781,"y":322.00000762939453,"z":"99faf548.31fd3","wires":[]},{"id":"a118b584.13b3f8","type":"comment","name":"Read properties","info":"","comments":"","x":530.0000152587891,"y":407.0000104904175,"z":"99faf548.31fd3","wires":[]},{"id":"c39d640f.75ab2","type":"comment","name":"Read preload data from mdsal","info":"","comments":"","x":571.2500152587891,"y":515.7500143051147,"z":"99faf548.31fd3","wires":[]},{"id":"e5d8e3fb.d16cd","type":"comment","name":"Validate network name and type match","info":"","comments":"","x":590.0000305175781,"y":797.0000228881836,"z":"99faf548.31fd3","wires":[]},{"id":"26fe5b3e.c1646c","type":"comment","name":"Loop through subnets from AAI and compare to preload data","info":"","comments":"","x":656.2500305175781,"y":1140.75004196167,"z":"99faf548.31fd3","wires":[]},{"id":"5606ead2.76c2b4","type":"returnSuccess","name":"return success","xml":"<return status=\"success\">\n\t<parameter name=\"networkId\" value=\"`$network-topology-operation-input.network-request-information.network-id`\" />\n\t<parameter name=\"error-code\" value=\"200\" />","comments":"","x":475.7149658203125,"y":7478.7861328125,"z":"99faf548.31fd3","wires":[]}]
\ No newline at end of file
index 511b25a..e8251b4 100644 (file)
@@ -1 +1 @@
-[{"id":"69f402c5.4ffaec","type":"dgstart","name":"DGSTART","outputs":1,"x":158.3333282470703,"y":65,"z":"432e7ac4.a40554","wires":[["e26fa578.48fab8"]]},{"id":"e26fa578.48fab8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":233.61903381347656,"y":105.23811149597168,"z":"432e7ac4.a40554","wires":[["682aae1.218495"]]},{"id":"682aae1.218495","type":"method","name":"network-topology-operation-deactivate","xml":"<method rpc='network-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":275.011962890625,"y":148.7499942779541,"z":"432e7ac4.a40554","wires":[["5fc5c371.08d5ac"]]},{"id":"5fc5c371.08d5ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":274.33335876464844,"y":243.4434814453125,"z":"432e7ac4.a40554","wires":[["c9dbaeef.d2b7f","e37a3f33.284a1","807c556a.69d798","e47607dd.0bd2c8","a435410a.7fa9b","211e0507.82ebaa","aaf73e80.537c","b2d1cdcb.f51cb"]]},{"id":"beafbfc9.85ba1","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":794.3333282470703,"y":239,"z":"432e7ac4.a40554","wires":[["bfb7faa.23a5b08"]]},{"id":"bfb7faa.23a5b08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"network-id not found in AAI\" />","comments":"","x":957.5277252197266,"y":239.11122131347656,"z":"432e7ac4.a40554","wires":[]},{"id":"c9dbaeef.d2b7f","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":559.0554351806641,"y":243.48460388183594,"z":"432e7ac4.a40554","wires":[["beafbfc9.85ba1","98643732.417478"]]},{"id":"98643732.417478","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":787.0554351806641,"y":277.48460388183594,"z":"432e7ac4.a40554","wires":[["11e10f89.d2fcc"]]},{"id":"11e10f89.d2fcc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'\" />","comments":"","x":939.1665191650391,"y":277.7068328857422,"z":"432e7ac4.a40554","wires":[]},{"id":"4acd3ea8.47a81","type":"set","name":"set entity-id and plan-name","xml":"<set>\n\t<parameter name=\"eipam-ip-block.entity-id\" value=\"`$aai.l3-network.subnets.subnet[$sidx].subnet-id`\"/>\n\t<parameter name=\"eipam-ip-block.plans[0].plan-name\" value=\"$tmp.eipam-subnet-row.plan-name\"/>\n","comments":"","x":1405.4127349853516,"y":578.0794448852539,"z":"432e7ac4.a40554","wires":[]},{"id":"2d59a7f6.f14488","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":603.6984405517578,"y":433.2223205566406,"z":"432e7ac4.a40554","wires":[["1d464653.da7e5a"]]},{"id":"1d464653.da7e5a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":809.6984405517578,"y":433.36515045166016,"z":"432e7ac4.a40554","wires":[["7047b8ac.d02de8","fa64d7ef.074b98"]]},{"id":"fa64d7ef.074b98","type":"get-resource","name":"get eipam-ip-subnet by subnet-id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":762.8413238525391,"y":561.2222671508789,"z":"432e7ac4.a40554","wires":[["9e4e6381.a12b5","ea671a42.72df38","12b2b17a.2c624f"]]},{"id":"d52179ea.880588","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet.\" />\n\t","comments":"","x":1170.984115600586,"y":508.9365312755108,"z":"432e7ac4.a40554","wires":[]},{"id":"9e4e6381.a12b5","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1021.5557098388672,"y":576.936501711607,"z":"432e7ac4.a40554","wires":[["722407af.2ab048"]]},{"id":"ea671a42.72df38","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1021.8459930419922,"y":510.9365312755108,"z":"432e7ac4.a40554","wires":[["d52179ea.880588"]]},{"id":"12b2b17a.2c624f","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1022.7031021118164,"y":545.2222518920898,"z":"432e7ac4.a40554","wires":[["63b1b75.e304248"]]},{"id":"722407af.2ab048","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1174.2697982788086,"y":578.3651220500469,"z":"432e7ac4.a40554","wires":[["4acd3ea8.47a81"]]},{"id":"63b1b75.e304248","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Subnet not found in EIPAM_IP_SUBNETS - deactivate failed.\" />\n\t","comments":"","x":1171.650650024414,"y":544.5556163787842,"z":"432e7ac4.a40554","wires":[]},{"id":"7047b8ac.d02de8","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":715.9840240478516,"y":616.2380752563477,"z":"432e7ac4.a40554","wires":[["d5cee8ce.8467a8","a456dec9.801d3"]]},{"id":"b752a8a2.9451f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":1175.7301864624023,"y":620.0793077647686,"z":"432e7ac4.a40554","wires":[]},{"id":"d1b0ef11.e7fe1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1026.3017807006836,"y":688.0792782008648,"z":"432e7ac4.a40554","wires":[["70e3044e.599f2c"]]},{"id":"d5cee8ce.8467a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1015.1634273529053,"y":626.3650381267071,"z":"432e7ac4.a40554","wires":[["b752a8a2.9451f8"]]},{"id":"a456dec9.801d3","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1027.4491729736328,"y":656.3650283813477,"z":"432e7ac4.a40554","wires":[["40d65762.2df748"]]},{"id":"70e3044e.599f2c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1179.015869140625,"y":689.5078985393047,"z":"432e7ac4.a40554","wires":[[]]},{"id":"40d65762.2df748","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1174.7300262451172,"y":652.3650588989258,"z":"432e7ac4.a40554","wires":[]},{"id":"e47607dd.0bd2c8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":579.1270027160645,"y":1012.3650369644165,"z":"432e7ac4.a40554","wires":[]},{"id":"211e0507.82ebaa","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $networkId\n + '/network-data/network-topology/'` \" />\n \n","comments":"","x":579.1309471130371,"y":932.559079170227,"z":"432e7ac4.a40554","wires":[]},{"id":"e37a3f33.284a1","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n","comments":"","x":573.4165802001953,"y":895.416187286377,"z":"432e7ac4.a40554","wires":[]},{"id":"807c556a.69d798","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":621.4166412353516,"y":971.9875411987305,"z":"432e7ac4.a40554","wires":[]},{"id":"b2d1cdcb.f51cb","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n","comments":"","x":614.8451156616211,"y":858.7494688034058,"z":"432e7ac4.a40554","wires":[]},{"id":"a435410a.7fa9b","type":"switchNode","name":"switch $aai.l3-network.subnets.subnet_length","xml":"<switch test='`$aai.l3-network.subnets.subnet_length`'>\n","comments":"","outputs":1,"x":594.3333282470703,"y":339.0000343322754,"z":"432e7ac4.a40554","wires":[["e70ca1dd.ede2d","e9f5fa31.af0bd8"]]},{"id":"e70ca1dd.ede2d","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":890.3333282470703,"y":339.0000343322754,"z":"432e7ac4.a40554","wires":[["fe251278.16a15"]]},{"id":"fe251278.16a15","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"no networks found\" />\n","comments":"","x":1082.1109161376953,"y":338.88901138305664,"z":"432e7ac4.a40554","wires":[]},{"id":"e9f5fa31.af0bd8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":872.3333282470703,"y":373.0000343322754,"z":"432e7ac4.a40554","wires":[["2d59a7f6.f14488"]]},{"id":"aaf73e80.537c","type":"save","name":"update AnAI - network","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":620.3333282470703,"y":770.999870300293,"z":"432e7ac4.a40554","wires":[["3889bc7f.e0c1b4","9f2104a9.50f748"]]},{"id":"538a0124.f3f62","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network\" />\n\t","comments":"","x":1024.0794982910156,"y":760.8411569595337,"z":"432e7ac4.a40554","wires":[]},{"id":"4e255bd5.3a5b74","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":874.6510925292969,"y":828.8411273956299,"z":"432e7ac4.a40554","wires":[["4ff385ad.29927c"]]},{"id":"3889bc7f.e0c1b4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":863.5127391815186,"y":767.1268873214722,"z":"432e7ac4.a40554","wires":[["538a0124.f3f62"]]},{"id":"9f2104a9.50f748","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":875.7984848022461,"y":797.1268775761127,"z":"432e7ac4.a40554","wires":[["49adaed9.4e1b1"]]},{"id":"4ff385ad.29927c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1027.3651809692383,"y":830.2697477340698,"z":"432e7ac4.a40554","wires":[[]]},{"id":"49adaed9.4e1b1","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network.  Network not found.\" />\n\t","comments":"","x":1023.0793380737305,"y":793.1269080936909,"z":"432e7ac4.a40554","wires":[]}]
+[{"id":"14daaafb.cfb32d","type":"dgstart","name":"DGSTART","outputs":1,"x":173.75,"y":129,"z":"77025d4d.14b56c","wires":[["f4bbcde0.af09e"]]},{"id":"f4bbcde0.af09e","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":249.03570556640625,"y":169.23811149597168,"z":"77025d4d.14b56c","wires":[["5fbb453b.4759ec"]]},{"id":"5fbb453b.4759ec","type":"method","name":"network-topology-operation-deactivate","xml":"<method rpc='network-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":290.4286346435547,"y":212.7499942779541,"z":"77025d4d.14b56c","wires":[["7d0cac4e.a012bc"]]},{"id":"7d0cac4e.a012bc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":289.7500305175781,"y":307.4434814453125,"z":"77025d4d.14b56c","wires":[["56f1ffc8.cfe08","3307fea0.093582","1815769f.84fee9","70d42023.37ca2","ca5854c8.77f3e8","b18b10b3.ba84","fca0b4.8ea8575","52526c97.38f26c"]]},{"id":"892f2ad9.7eb3d","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":809.75,"y":303,"z":"77025d4d.14b56c","wires":[["f4ddd25b.a09008"]]},{"id":"f4ddd25b.a09008","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"network-id not found in AAI\" />","comments":"","x":972.9443969726562,"y":303.11122131347656,"z":"77025d4d.14b56c","wires":[]},{"id":"56f1ffc8.cfe08","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\n\t\tAND depth='all'\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":574.4721069335938,"y":307.48460388183594,"z":"77025d4d.14b56c","wires":[["892f2ad9.7eb3d","5598ef33.7bef78"]]},{"id":"5598ef33.7bef78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":802.4721069335938,"y":341.48460388183594,"z":"77025d4d.14b56c","wires":[["aa29118b.944c18"]]},{"id":"aa29118b.944c18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'\" />","comments":"","x":954.5831909179688,"y":341.7068328857422,"z":"77025d4d.14b56c","wires":[]},{"id":"c78c5de.c563b2","type":"set","name":"set entity-id and plan-name","xml":"<set>\n\t<parameter name=\"eipam-ip-block.entity-id\" value=\"`$aai.l3-network.subnets.subnet[$sidx].subnet-id`\"/>\n\t<parameter name=\"eipam-ip-block.plans[0].plan-name\" value=\"$tmp.eipam-subnet-row.plan-name\"/>\n","comments":"","x":1811.8294677734375,"y":1034.0794677734375,"z":"77025d4d.14b56c","wires":[]},{"id":"a643faf5.fe499","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":1010.1151733398438,"y":889.2223434448242,"z":"77025d4d.14b56c","wires":[["68c43f3c.00c098"]]},{"id":"68c43f3c.00c098","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1216.1151733398438,"y":889.3651733398438,"z":"77025d4d.14b56c","wires":[["f980e441.a4f0e8","4742308d.adb84"]]},{"id":"4742308d.adb84","type":"get-resource","name":"get eipam-ip-subnet by subnet-id","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1169.258056640625,"y":1017.2222900390625,"z":"77025d4d.14b56c","wires":[["ef2c2ad7.25d89","da139eef.0a22f8","4e6832fa.59be34"]]},{"id":"7e87eaef.56d814","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet.\" />\n\t","comments":"","x":1577.4008483886719,"y":964.9365541636944,"z":"77025d4d.14b56c","wires":[]},{"id":"ef2c2ad7.25d89","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1427.9724426269531,"y":1032.9365245997906,"z":"77025d4d.14b56c","wires":[["dde7fe1d.76f4e8"]]},{"id":"da139eef.0a22f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1428.2627258300781,"y":966.9365541636944,"z":"77025d4d.14b56c","wires":[["7e87eaef.56d814"]]},{"id":"4e6832fa.59be34","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1429.1198348999023,"y":1001.2222747802734,"z":"77025d4d.14b56c","wires":[["c1fa360.29f75c8"]]},{"id":"dde7fe1d.76f4e8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1580.6865310668945,"y":1034.3651449382305,"z":"77025d4d.14b56c","wires":[["c78c5de.c563b2"]]},{"id":"c1fa360.29f75c8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Subnet not found in EIPAM_IP_SUBNETS - deactivate failed.\" />\n\t","comments":"","x":1578.0673828125,"y":1000.5556392669678,"z":"77025d4d.14b56c","wires":[]},{"id":"f980e441.a4f0e8","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":1122.4007568359375,"y":1072.2380981445312,"z":"77025d4d.14b56c","wires":[["4a6d988.b322be8","840ca69.87f17d8"]]},{"id":"3e773e43.8c9882","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":1582.1469192504883,"y":1076.0793306529522,"z":"77025d4d.14b56c","wires":[]},{"id":"237731b2.80bc3e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1432.7185134887695,"y":1144.0793010890484,"z":"77025d4d.14b56c","wires":[["2dc84f58.c960e"]]},{"id":"4a6d988.b322be8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1421.5801601409912,"y":1082.3650610148907,"z":"77025d4d.14b56c","wires":[["3e773e43.8c9882"]]},{"id":"840ca69.87f17d8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1433.8659057617188,"y":1112.3650512695312,"z":"77025d4d.14b56c","wires":[["7462188c.17d9a"]]},{"id":"2dc84f58.c960e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1585.432601928711,"y":1145.5079214274883,"z":"77025d4d.14b56c","wires":[[]]},{"id":"7462188c.17d9a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1581.1467590332031,"y":1108.3650817871094,"z":"77025d4d.14b56c","wires":[]},{"id":"70d42023.37ca2","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":565.5436744689941,"y":1408.3650598526,"z":"77025d4d.14b56c","wires":[]},{"id":"b18b10b3.ba84","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $networkId\n + '/network-data/network-topology/'` \" />\n \n","comments":"","x":565.5476188659668,"y":1328.5591020584106,"z":"77025d4d.14b56c","wires":[]},{"id":"3307fea0.093582","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n","comments":"","x":559.833251953125,"y":1291.4162101745605,"z":"77025d4d.14b56c","wires":[]},{"id":"1815769f.84fee9","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":607.8333129882812,"y":1367.987564086914,"z":"77025d4d.14b56c","wires":[]},{"id":"52526c97.38f26c","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n","comments":"","x":601.2617874145508,"y":1254.7494916915894,"z":"77025d4d.14b56c","wires":[]},{"id":"ca5854c8.77f3e8","type":"switchNode","name":"switch $aai.l3-network.subnets.subnet_length","xml":"<switch test='`$aai.l3-network.subnets.subnet_length`'>\n","comments":"","outputs":1,"x":609.75,"y":403.0000343322754,"z":"77025d4d.14b56c","wires":[["232b1d63.e94362","6a5ead37.eada7c"]]},{"id":"232b1d63.e94362","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":905.75,"y":403.0000343322754,"z":"77025d4d.14b56c","wires":[["bc99db97.911"]]},{"id":"bc99db97.911","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"no networks found\" />\n","comments":"","x":1097.527587890625,"y":402.88901138305664,"z":"77025d4d.14b56c","wires":[]},{"id":"6a5ead37.eada7c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":891.75,"y":433.00006103515625,"z":"77025d4d.14b56c","wires":[["cdc25fad.e85d48"]]},{"id":"fca0b4.8ea8575","type":"save","name":"update AnAI - network","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":606.75,"y":1166.9998931884766,"z":"77025d4d.14b56c","wires":[["e31687c4.b37f78","c340787e.1371"]]},{"id":"fb75aff2.792f48","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network\" />\n\t","comments":"","x":1010.4961700439453,"y":1156.8411798477173,"z":"77025d4d.14b56c","wires":[]},{"id":"d509e915.753cd","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":861.0677642822266,"y":1224.8411502838135,"z":"77025d4d.14b56c","wires":[["fd8de859.5c0a58"]]},{"id":"e31687c4.b37f78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":849.9294109344482,"y":1163.1269102096558,"z":"77025d4d.14b56c","wires":[["fb75aff2.792f48"]]},{"id":"c340787e.1371","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":862.2151565551758,"y":1193.1269004642963,"z":"77025d4d.14b56c","wires":[["fc060a13.6445d"]]},{"id":"fd8de859.5c0a58","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1013.781852722168,"y":1226.2697706222534,"z":"77025d4d.14b56c","wires":[[]]},{"id":"fc060a13.6445d","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for l3-network.  Network not found.\" />\n\t","comments":"","x":1009.4960098266602,"y":1189.1269309818745,"z":"77025d4d.14b56c","wires":[]},{"id":"cdc25fad.e85d48","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\n","comments":"","outputs":1,"x":592.49609375,"y":497.74609375,"z":"77025d4d.14b56c","wires":[["18fc8322.dd2f4d","2194454c.3682ca"]]},{"id":"18fc8322.dd2f4d","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":885.49609375,"y":496.24609375,"z":"77025d4d.14b56c","wires":[["86679cd0.c293d8"]]},{"id":"2194454c.3682ca","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":876.49609375,"y":527.24609375,"z":"77025d4d.14b56c","wires":[["994f705c.0c442"]]},{"id":"994f705c.0c442","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1071.49609375,"y":526.24609375,"z":"77025d4d.14b56c","wires":[["acafc97.3adb1b8"]]},{"id":"acafc97.3adb1b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network collection activate failed\" />\n","comments":"","x":1272.49609375,"y":521.24609375,"z":"77025d4d.14b56c","wires":[]},{"id":"1e224df6.f166ba","type":"comment","name":"need to implement this","info":"","comments":"","x":1302.49609375,"y":489.74609375,"z":"77025d4d.14b56c","wires":[]},{"id":"86679cd0.c293d8","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\n","comments":"","outputs":1,"x":558.49609375,"y":591.74609375,"z":"77025d4d.14b56c","wires":[["6131428b.0d8d6c","b1a3cb6c.9a95f8"]]},{"id":"6131428b.0d8d6c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":546.49609375,"y":670.24609375,"z":"77025d4d.14b56c","wires":[["aa34043d.dac1c8"]]},{"id":"b1a3cb6c.9a95f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":568.4961547851562,"y":888.24609375,"z":"77025d4d.14b56c","wires":[["32048c62.298084"]]},{"id":"aa34043d.dac1c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":732.74609375,"y":671.24609375,"z":"77025d4d.14b56c","wires":[["aa5a777f.f5c22"]]},{"id":"32048c62.298084","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":780.7461547851562,"y":888.24609375,"z":"77025d4d.14b56c","wires":[["a643faf5.fe499"]]},{"id":"aa5a777f.f5c22","type":"for","name":"for 0..subnet_length","xml":"<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\n","comments":"","outputs":1,"x":939.49609375,"y":671.74609375,"z":"77025d4d.14b56c","wires":[["aa6f6d68.9a1f58"]]},{"id":"aa6f6d68.9a1f58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1145.49609375,"y":671.8889236450195,"z":"77025d4d.14b56c","wires":[["3f1cbdf1.3ab7ca"]]},{"id":"3f1cbdf1.3ab7ca","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $aai.l3-network.subnets.subnet[$sidx].subnet-id\" >\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n\t\t","comments":"","outputs":1,"x":1374.49609375,"y":670.74609375,"z":"77025d4d.14b56c","wires":[["566ebc6d.9edeac","39776162.ed9356"]]},{"id":"63d5a91e.32272","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":1759.242317199707,"y":664.5873872935772,"z":"77025d4d.14b56c","wires":[]},{"id":"2c140bc5.40cc2c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1609.8139114379883,"y":732.5873577296734,"z":"77025d4d.14b56c","wires":[["1a86f56d.e7b24b"]]},{"id":"566ebc6d.9edeac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1598.67555809021,"y":670.8731176555157,"z":"77025d4d.14b56c","wires":[["63d5a91e.32272"]]},{"id":"39776162.ed9356","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1610.9613037109375,"y":700.8731079101562,"z":"77025d4d.14b56c","wires":[["f099c00a.ba535"]]},{"id":"1a86f56d.e7b24b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1762.5279998779297,"y":734.0159780681133,"z":"77025d4d.14b56c","wires":[[]]},{"id":"f099c00a.ba535","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1758.2421569824219,"y":696.8731384277344,"z":"77025d4d.14b56c","wires":[]}]
\ No newline at end of file
index fc39f15..5e4576a 100644 (file)
@@ -1 +1 @@
-[{"id":"6fc27e63.df644","type":"dgstart","name":"DGSTART","outputs":1,"x":211.66665649414062,"y":119.99999237060547,"z":"e6d3ce58.fa2c8","wires":[["6a69dde5.372664"]]},{"id":"6a69dde5.372664","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":286.9523620605469,"y":160.23810386657715,"z":"e6d3ce58.fa2c8","wires":[["6774371f.c72918"]]},{"id":"6774371f.c72918","type":"method","name":"network-topology-operation-unassign","xml":"<method rpc='network-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":328.3452911376953,"y":203.74998664855957,"z":"e6d3ce58.fa2c8","wires":[["3b010977.d25f36"]]},{"id":"3b010977.d25f36","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":200.1667251586914,"y":450.94350242614746,"z":"e6d3ce58.fa2c8","wires":[["9367d2f0.ac7cd","dccbe93e.635408","5da52b9e.8ab724","8425d631.8915c8","1f202a24.17dfa6","31934beb.434534","2bf9b42d.37f73c","9f6002ee.2d44e","ea07e49d.c44d28","77c21435.c8c26c"]]},{"id":"9367d2f0.ac7cd","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":421.1746063232422,"y":1775.603003501892,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"dccbe93e.635408","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\">","comments":"","outputs":1,"x":429.7142791748047,"y":1671.23788356781,"z":"e6d3ce58.fa2c8","wires":[["1620a04e.1c095"]]},{"id":"5e0ac328.ccf85c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting network from AAI\" />\n\t","comments":"","x":824.0475883483887,"y":1673.23788356781,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"1620a04e.1c095","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":639.909481048584,"y":1673.571216583252,"z":"e6d3ce58.fa2c8","wires":[["5e0ac328.ccf85c"]]},{"id":"ff693a96.e53918","type":"for","name":"for snidx..service-data.networks.network[]","xml":"<for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1351.5040588378906,"y":1534.4204578399658,"z":"e6d3ce58.fa2c8","wires":[["b6af5793.a513d8"]]},{"id":"34a42575.3d745a","type":"comment","name":"Remove network from service data","info":"","comments":"","x":518.9008865356445,"y":1440.849277496338,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"1d9c15e4.8caeba","type":"set","name":"move network to remove one","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.newidx].\" value=\"$service-data.networks.network[$snidx].\" />\n\t\n","comments":"","x":1886.0950469970703,"y":1570.3015813827515,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"5da52b9e.8ab724","type":"switchNode","name":"switch $service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":525.666618347168,"y":1388.8573188781738,"z":"e6d3ce58.fa2c8","wires":[["af4a3c9c.17fad","f60f5a83.183488"]]},{"id":"af4a3c9c.17fad","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":828.7142181396484,"y":1385.5238056182861,"z":"e6d3ce58.fa2c8","wires":[["f455e258.ce2b2"]]},{"id":"620ae252.136c7c","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.\" value=\"\"/>\n\n","comments":"","x":1261.333122253418,"y":1389.190631866455,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"f60f5a83.183488","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":795.0951690673828,"y":1537.857123374939,"z":"e6d3ce58.fa2c8","wires":[["5673f37.74a050c"]]},{"id":"b6af5793.a513d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1621.0950317382812,"y":1536.85710811615,"z":"e6d3ce58.fa2c8","wires":[["1d9c15e4.8caeba","c424b3c4.b893"]]},{"id":"1527854.67b9a7b","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\n\t\n","comments":"","x":1290.962890625,"y":1571.1906881332397,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"1f202a24.17dfa6","type":"execute","name":"execute EIPAM deallocateAllSubnets","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateAllSubnets\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":526.6296844482422,"y":878.2963314056396,"z":"e6d3ce58.fa2c8","wires":[["cf30078e.ee1458"]]},{"id":"cf30078e.ee1458","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":758.6298065185547,"y":879.0198421478271,"z":"e6d3ce58.fa2c8","wires":[["5696f470.3c1d0c"]]},{"id":"5696f470.3c1d0c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deallocating subnets in EIPAM.\" />\n\t","comments":"","x":914.6298065185547,"y":879.0198421478271,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"8425d631.8915c8","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$network-topology-operation-input.network-information.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n\t<parameter name=\"eipam-ip-block.entity-id\" value='' />","comments":"","x":544.0581588745117,"y":842.955403804779,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"31934beb.434534","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":593.629638671875,"y":914.4815731048584,"z":"e6d3ce58.fa2c8","wires":[["ebe90e81.d5e8a"]]},{"id":"ebe90e81.d5e8a","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":893.2963409423828,"y":914.2049083709717,"z":"e6d3ce58.fa2c8","wires":[["8fc65822.231948"]]},{"id":"8fc65822.231948","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting level 2 plans in EIPAM.\" />\n\t","comments":"","x":1051.6297760009766,"y":914.5382900238037,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"b2717721.885438","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.new_length].\" value=\"\"/>\n\n","comments":"","x":1270.8093566894531,"y":1609.1586332321167,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"5673f37.74a050c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1017.0950469970703,"y":1537.857123374939,"z":"e6d3ce58.fa2c8","wires":[["ff693a96.e53918","b2717721.885438","1527854.67b9a7b","593f35c1.0cb4dc"]]},{"id":"e06cbad4.12aea8","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"0\"/>\n\n\t\n","comments":"","x":1277.6664962768555,"y":1423.894289970398,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"f455e258.ce2b2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1008.0475311279297,"y":1386.2276020050049,"z":"e6d3ce58.fa2c8","wires":[["620ae252.136c7c","e06cbad4.12aea8"]]},{"id":"ca1fe8d0.acb968","type":"comment","name":"deallocate level 2 subnet and pool","info":"","comments":"","x":510.7037048339844,"y":804.037260055542,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"2bf9b42d.37f73c","type":"get-resource","name":"get-resource - Get all subnet/subnet keys for networkid ","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.network_id = $network-topology-operation-input.network-information.network-id and s.entity_id = k.entity_id ; \"\n        pfx='tmp.eipam-subnet-row[]'>\n\n","comments":"","outputs":1,"x":600.9657363891602,"y":558.9896192550659,"z":"e6d3ce58.fa2c8","wires":[["4c03ccb1.83dfa4","51a9a0f7.ff71d","53e0949c.105acc"]]},{"id":"a0c6837c.97584","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1147.8705673217773,"y":562.0371742248535,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"4c03ccb1.83dfa4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":999.870719909668,"y":596.0371761322021,"z":"e6d3ce58.fa2c8","wires":[["14d18416.66a7ac"]]},{"id":"51a9a0f7.ff71d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":998.7325248718262,"y":561.7038660049438,"z":"e6d3ce58.fa2c8","wires":[["a0c6837c.97584"]]},{"id":"53e0949c.105acc","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1002.732551574707,"y":629.5372514724731,"z":"e6d3ce58.fa2c8","wires":[["f53c90ed.dd296"]]},{"id":"14d18416.66a7ac","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1147.492332458496,"y":596.1843366622925,"z":"e6d3ce58.fa2c8","wires":[["181b9ad1.935b45"]]},{"id":"cc99f629.56fc48","type":"comment","name":"Get all subnets for network","info":"","comments":"","x":515.9763031005859,"y":514.9048748016357,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"c424b3c4.b893","type":"set","name":"Set new index","xml":"<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n","comments":"","x":1835.7987670898438,"y":1532.1164503097534,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"a8da53.1ff3c5b","type":"comment","name":"If only one remove all networks","info":"","comments":"","x":900.0845794677734,"y":1350.1165790557861,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"593f35c1.0cb4dc","type":"set","name":"Set new network length","xml":"<set>\n\t<parameter name=\"tmp.new_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\t\n\t\n","comments":"","x":1293.7987670898438,"y":1504.1165075302124,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"769c8ef5.20813","type":"get-resource","name":"get-resource - Determine if level 1 in use in other level 2 subnets","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \n        WHERE p.level = 2 \n        and p.plan_name = $tmp.plan-name\n        and k.level = 1 \n        and p.pool_id = s.pool_id and s.entity_id = k.entity_id \n        and k.key_value = $tmp.level1-key-value  ; \"\n        pfx='tmp.level2pool[]'>\n\n\n\n","comments":"","outputs":1,"x":2889.1427154541016,"y":1316.1908049583435,"z":"e6d3ce58.fa2c8","wires":[["d19663a0.372ea","35b0a814.7ff6f8","cefed4e1.edee88"]]},{"id":"b6da7ef4.53354","type":"comment","name":"Determine if any other level 2 pool is using level 1 pool","info":"","comments":"","x":567.3809814453125,"y":1087.5239009857178,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"3055bb43.ba84e4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":3367.380699157715,"y":1313.6192660331726,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"35b0a814.7ff6f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3219.380790710449,"y":1347.6192660331726,"z":"e6d3ce58.fa2c8","wires":[["41518681.495688"]]},{"id":"d19663a0.372ea","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3218.2425956726074,"y":1313.2859559059143,"z":"e6d3ce58.fa2c8","wires":[["3055bb43.ba84e4"]]},{"id":"cefed4e1.edee88","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":3223.909267425537,"y":1380.285921573639,"z":"e6d3ce58.fa2c8","wires":[["c76a8907.a34918"]]},{"id":"41518681.495688","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3381.2883644104004,"y":1346.3380432128906,"z":"e6d3ce58.fa2c8","wires":[["72cfd522.7f4c2c"]]},{"id":"f53c90ed.dd296","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1151.500244140625,"y":630.1668291091919,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"563ca4c8.52338c","type":"switchNode","name":"switch level1poolkeyvalue","xml":"<switch test='`$tmp.level1-key-value`'>\n","comments":"","outputs":1,"x":913.0953674316406,"y":1159.3811874389648,"z":"e6d3ce58.fa2c8","wires":[["b37602d8.cd2a8","9a159b72.b21bf8"]]},{"id":"9a159b72.b21bf8","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1168.0000648498535,"y":1165.3335418701172,"z":"e6d3ce58.fa2c8","wires":[["990e2ddf.e26ba"]]},{"id":"b37602d8.cd2a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1171.3335456848145,"y":1208.4287815093994,"z":"e6d3ce58.fa2c8","wires":[["ea364a04.764748"]]},{"id":"9f6002ee.2d44e","type":"set","name":"set prerequisites","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value\" value=\"\"/>\n\t<parameter name=\"tmp.level1inuse\" value=\"false\" />\n\t<parameter name=\"pidx\" value=\"0\" />\n\t<parameter name=\"pidx-len\" value=\"0\" />\n\t\n","comments":"","x":476.83348846435547,"y":386.16670989990234,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"ea364a04.764748","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1334.0478223164878,"y":1208.8097178141277,"z":"e6d3ce58.fa2c8","wires":[["76e440dc.55429"]]},{"id":"c76a8907.a34918","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3377.047306060791,"y":1379.619264125824,"z":"e6d3ce58.fa2c8","wires":[["60c91be.c368ce4"]]},{"id":"72cfd522.7f4c2c","type":"set","name":"set level1inuse = true","xml":"<set>\n\t<parameter name=\"tmp.level1inuse\" value=\"true\" />\n\t\n","comments":"","x":3617.7615509033203,"y":1346.1906471252441,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"60c91be.c368ce4","type":"get-resource","name":"get-resource - Get level 1 pool and subnet","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \n        WHERE p.level = 1 \n        and p.plan_name = $tmp.plan-name\n        and k.level = 1 \n        and p.pool_id = s.pool_id and s.entity_id = k.entity_id \n        and k.key_value = $tmp.level1-key-value  ; \"\n        pfx='tmp.level1pool[]'>\n\n","comments":"","outputs":1,"x":3685.5022468566895,"y":1404.8572969436646,"z":"e6d3ce58.fa2c8","wires":[["625791ca.98209","fea9576b.0b8778","eed682f1.7be6"]]},{"id":"cbfd3973.515b08","type":"comment","name":"Try to clean up the level 1 pool","info":"","comments":"","x":3644.761417388916,"y":1375.8203229904175,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"82dc834a.951ef","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":4131.190410614014,"y":1370.582124710083,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"fea9576b.0b8778","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3983.190502166748,"y":1404.582124710083,"z":"e6d3ce58.fa2c8","wires":[["a6a5ea1b.29fbb8"]]},{"id":"625791ca.98209","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3979.0523071289062,"y":1373.2488145828247,"z":"e6d3ce58.fa2c8","wires":[["82dc834a.951ef"]]},{"id":"eed682f1.7be6","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":3986.052318572998,"y":1440.582124710083,"z":"e6d3ce58.fa2c8","wires":[["7b1dce7d.fb116"]]},{"id":"a6a5ea1b.29fbb8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4130.812114715576,"y":1404.7292852401733,"z":"e6d3ce58.fa2c8","wires":[["c09043c3.8f797"]]},{"id":"7b1dce7d.fb116","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4142.190372467041,"y":1439.9154510498047,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"ddface0d.c9495","type":"execute","name":"execute EIPAM deallocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4847.566329956055,"y":1437.222445487976,"z":"e6d3ce58.fa2c8","wires":[["e40c8d06.d4c8a"]]},{"id":"e40c8d06.d4c8a","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5081.566257476807,"y":1436.6128482818604,"z":"e6d3ce58.fa2c8","wires":[["32450237.7b326e"]]},{"id":"32450237.7b326e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deallocating subnet in EIPAM.\" />\n\t","comments":"","x":5250.566287994385,"y":1436.6128787994385,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"10424d8a.e25d82","type":"set","name":"set","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\n<parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\n<parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\n<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.level1pool[$lidx].network-id`\" />\n<parameter name=\"eipam-ip-block.pool-id\" value=\"`$tmp.level1pool[$lidx].pool-id`\" />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n\n","comments":"","x":4767.566165924072,"y":1407.2224645614624,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"c09043c3.8f797","type":"for","name":"for lidx .. level1pool_length","xml":"<for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\n","comments":"","outputs":1,"x":4340.581939697266,"y":1405.9365863800049,"z":"e6d3ce58.fa2c8","wires":[["9f0474be.521c98"]]},{"id":"8996414e.07646","type":"execute","name":"execute EIPAM deletePoolByNetworkLevel","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4876.0322265625,"y":1536.508228302002,"z":"e6d3ce58.fa2c8","wires":[["5edc86b0.053708"]]},{"id":"5edc86b0.053708","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5148.603260040283,"y":1526.2318725585938,"z":"e6d3ce58.fa2c8","wires":[["1987167a.d664ba"]]},{"id":"1987167a.d664ba","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting pool in EIPAM.\" />\n\t","comments":"","x":5291.413055419922,"y":1524.0414810180664,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"9f0474be.521c98","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4563.248825073242,"y":1406.0476474761963,"z":"e6d3ce58.fa2c8","wires":[["10424d8a.e25d82","ddface0d.c9495","6a4eeffe.8b70f"]]},{"id":"47658288.8bc70c","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":2165.529266357422,"y":1242.2754878997803,"z":"e6d3ce58.fa2c8","wires":[["10367136.0cd76f"]]},{"id":"10367136.0cd76f","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2372.243621826172,"y":1242.7039947509766,"z":"e6d3ce58.fa2c8","wires":[["465bb5a9.3433ac"]]},{"id":"99b561a2.7e8d5","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":2168.465835571289,"y":1281.5611591339111,"z":"e6d3ce58.fa2c8","wires":[["bc9e64a1.aec018"]]},{"id":"bc9e64a1.aec018","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2380.4182319641113,"y":1280.322937965393,"z":"e6d3ce58.fa2c8","wires":[["7bfdd186.4b7d"]]},{"id":"90b2471d.61bb28","type":"set","name":"set tmp.plan-name v4","xml":"<set>\n<parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />\n\n","comments":"","x":2758.0215377807617,"y":1245.0372776985168,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"92f5da7c.e52b38","type":"set","name":"set tmp.plan-name v6","xml":"<set>\n<parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />\n\n","comments":"","x":2756.9579849243164,"y":1281.3230781555176,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"465bb5a9.3433ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2533.624641418457,"y":1244.9738402366638,"z":"e6d3ce58.fa2c8","wires":[["90b2471d.61bb28","769c8ef5.20813"]]},{"id":"7bfdd186.4b7d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2541.0848693847656,"y":1286.4024066925049,"z":"e6d3ce58.fa2c8","wires":[["92f5da7c.e52b38","769c8ef5.20813"]]},{"id":"ea07e49d.c44d28","type":"get-resource","name":"get-resource NETWORK_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $service-data.networks.network[$nidx].network-data.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $service-data.networks.network[$nidx].network-data.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n","comments":"","outputs":1,"x":533.5000381469727,"y":356.49999618530273,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"31dbc2d1.6c75ce","type":"comment","name":"Pull in network model as it is needed for level 1 removal","info":"","comments":"","x":716.6666412353516,"y":104.9999942779541,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"76e440dc.55429","type":"switchNode","name":"switch network-model","xml":"<switch test='`$network-model`'>\n","comments":"","outputs":1,"x":1547.0370953877768,"y":1209.0954424540203,"z":"e6d3ce58.fa2c8","wires":[["baf3d319.da1aa","ea8854e.ae0bca8"]]},{"id":"baf3d319.da1aa","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1745.0373090108237,"y":1196.7621285120647,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"ea8854e.ae0bca8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1743.3704846700034,"y":1231.7620493570964,"z":"e6d3ce58.fa2c8","wires":[["b6b1ecbb.608a6"]]},{"id":"b6b1ecbb.608a6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1911.7037963867188,"y":1240.3335638046265,"z":"e6d3ce58.fa2c8","wires":[["47658288.8bc70c","99b561a2.7e8d5"]]},{"id":"990e2ddf.e26ba","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1342.629726409912,"y":1164.6668338775635,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"26c77134.bb304e","type":"comment","name":"Get tosca network data","info":"","comments":"","x":494.8000030517578,"y":320.00000953674316,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"3738319f.dac18e","type":"comment","name":"1707 - remove call to AAI for subnets","info":"","comments":"","x":539.6571578979492,"y":417.7142868041992,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"181b9ad1.935b45","type":"for","name":"for 0..subnet-row-length","xml":"<for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >\n","comments":"","outputs":1,"x":572.799919128418,"y":716.0001192092896,"z":"e6d3ce58.fa2c8","wires":[["5675ba2a.a19eb4"]]},{"id":"5675ba2a.a19eb4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":797.4666213989258,"y":716.142879486084,"z":"e6d3ce58.fa2c8","wires":[["933440ac.3bb5c"]]},{"id":"933440ac.3bb5c","type":"switchNode","name":"switch level","xml":"<switch test='`$tmp.eipam-subnet-row[$esidx].level`'>\n","comments":"","outputs":1,"x":991.4666290283203,"y":717.4815645217896,"z":"e6d3ce58.fa2c8","wires":[["2dd2061b.14feea","1dd6c81e.b58788"]]},{"id":"2dd2061b.14feea","type":"outcome","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1163.1332473754883,"y":715.4815626144409,"z":"e6d3ce58.fa2c8","wires":[["be2d994e.39d748"]]},{"id":"be2d994e.39d748","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1346.4667129516602,"y":713.8148784637451,"z":"e6d3ce58.fa2c8","wires":[["e6b6bab1.c5dc08","97386b74.6dc3d8","5b35da26.7674b4","1cf42296.65b5ad"]]},{"id":"e6b6bab1.c5dc08","type":"set","name":"set level 1 key value","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value[$pidx]\" value=\"`$tmp.eipam-subnet-row[$esidx].key-value`\"/>\n\n\t\n","comments":"","x":1562.3711738586426,"y":654.9577598571777,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"1dd6c81e.b58788","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1154.800033569336,"y":750.4815444946289,"z":"e6d3ce58.fa2c8","wires":[["7bbe227c.493acc"]]},{"id":"7bbe227c.493acc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1346.4667129516602,"y":748.8148784637451,"z":"e6d3ce58.fa2c8","wires":[[]]},{"id":"97386b74.6dc3d8","type":"set","name":"increment pidx_len","xml":"<set>\n\t<parameter name=\"pidx\" value=\"`$pidx + 1`\"/>\n\n\t\n","comments":"","x":1559.3715286254883,"y":712.8571500778198,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"77c21435.c8c26c","type":"for","name":"for 0 ... level 1 length","xml":"<for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >\n","comments":"","outputs":1,"x":472.8571319580078,"y":1129.999997138977,"z":"e6d3ce58.fa2c8","wires":[["d8f81bee.ac72d8"]]},{"id":"d8f81bee.ac72d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":690.8571376800537,"y":1130.999997138977,"z":"e6d3ce58.fa2c8","wires":[["563ca4c8.52338c","2ed54557.59eeca"]]},{"id":"2ed54557.59eeca","type":"set","name":"set level 1 key value/plan name","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value\" value=\"`$tmp.level1-key-value[$npidx]`\" />\n\t<parameter name=\"tmp.plan-name\" value=\"`$tmp.plan-name[$npidx]`\" />\n\t\n","comments":"","x":928.8571166992188,"y":1127.999963760376,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"5b35da26.7674b4","type":"set","name":"set level 1 plan_name","xml":"<set>\n\t<parameter name=\"tmp.plan-name[$pidx]\" value=\"`$tmp.eipam-subnet-row[$esidx].plan-name`\"/>\n\n\t\n","comments":"","x":1566.5714836120605,"y":681.4285335540771,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"6a4eeffe.8b70f","type":"execute","name":"execute EIPAM deletePoolByPoolId","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByPoolId\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4831.714248657227,"y":1471.4286003112793,"z":"e6d3ce58.fa2c8","wires":[["84b97cc7.29b2c"]]},{"id":"84b97cc7.29b2c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5077.142574310303,"y":1471.152198791504,"z":"e6d3ce58.fa2c8","wires":[["821a1504.8a0b48"]]},{"id":"821a1504.8a0b48","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting pool in EIPAM.\" />\n\t","comments":"","x":5272.809608459473,"y":1473.2474827766418,"z":"e6d3ce58.fa2c8","wires":[]},{"id":"1cf42296.65b5ad","type":"set","name":"set length","xml":"<set>\n\t<parameter name=\"pidx-len\" value=\"`$pidx`\"/>\n\n\t\n","comments":"","x":1530.0000457763672,"y":736.0000219345093,"z":"e6d3ce58.fa2c8","wires":[]}]
+[{"id":"dc1fd9f7.e545a","type":"dgstart","name":"DGSTART","outputs":1,"x":139.75,"y":101,"z":"43f4c62f.1fd828","wires":[["29d91179.d10066"]]},{"id":"29d91179.d10066","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":262.81348419189453,"y":170.1269941329956,"z":"43f4c62f.1fd828","wires":[["49549099.2e383"]]},{"id":"49549099.2e383","type":"method","name":"network-topology-operation-unassign","xml":"<method rpc='network-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":271.9841995239258,"y":240.30553722381592,"z":"43f4c62f.1fd828","wires":[["6e94f27d.431264"]]},{"id":"db751f4b.8bc6f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":692.3612060546875,"y":603.6102905273438,"z":"43f4c62f.1fd828","wires":[["b5959608.819dc","a9cd0431.02027","b831e5ee.39b4b","d4cc2b91.b17998","b49913b8.cc5d68","a0bc945f.3b13","159c2061.38289","fc63ae25.4fe498","20e1b7e2.ee7b28","d7820e90.66544","64ac2528.ce87c4"]]},{"id":"bb84b390.807d6","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":357.5635795593262,"y":2815.964029312134,"z":"43f4c62f.1fd828","wires":[]},{"id":"b5959608.819dc","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\">","comments":"","outputs":1,"x":918.9087104797363,"y":1814.4601831436157,"z":"43f4c62f.1fd828","wires":[["39138b.122efc76"]]},{"id":"c4c50a60.6fe508","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting network from AAI\" />\n\t","comments":"","x":1313.2420196533203,"y":1816.4601831436157,"z":"43f4c62f.1fd828","wires":[]},{"id":"39138b.122efc76","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1129.1039123535156,"y":1816.7935161590576,"z":"43f4c62f.1fd828","wires":[["c4c50a60.6fe508"]]},{"id":"c1b46a5.3ad0698","type":"for","name":"for snidx..service-data.networks.network[]","xml":"<for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1840.6984901428223,"y":1677.6427574157715,"z":"43f4c62f.1fd828","wires":[["f1368ca.0c41e7"]]},{"id":"52743f74.cd7f88","type":"comment","name":"Remove network from service data","info":"","comments":"","x":1008.0953178405762,"y":1584.0715770721436,"z":"43f4c62f.1fd828","wires":[]},{"id":"91f7b863.62686","type":"set","name":"move network to remove one","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.newidx].\" value=\"$service-data.networks.network[$snidx].\" />\n\t\n","comments":"","x":2375.289478302002,"y":1713.5238809585571,"z":"43f4c62f.1fd828","wires":[]},{"id":"64ac2528.ce87c4","type":"switchNode","name":"switch $service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1014.8610496520996,"y":1532.0796184539795,"z":"43f4c62f.1fd828","wires":[["877ea6c5.d00cc8","491f62c3.47b664"]]},{"id":"877ea6c5.d00cc8","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1317.90864944458,"y":1528.7461051940918,"z":"43f4c62f.1fd828","wires":[["77c99a31.b5dc74"]]},{"id":"b14d5cee.e40bf","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.\" value=\"\"/>\n\n","comments":"","x":1750.5275535583496,"y":1532.4129314422607,"z":"43f4c62f.1fd828","wires":[]},{"id":"491f62c3.47b664","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1284.2896003723145,"y":1681.0794229507446,"z":"43f4c62f.1fd828","wires":[["34b7d009.cae53"]]},{"id":"f1368ca.0c41e7","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2110.289463043213,"y":1680.0794076919556,"z":"43f4c62f.1fd828","wires":[["91f7b863.62686","4e5d0ca9.9cff1c"]]},{"id":"6287f892.a7d6e8","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\n\t\n","comments":"","x":1780.1573219299316,"y":1714.4129877090454,"z":"43f4c62f.1fd828","wires":[]},{"id":"b831e5ee.39b4b","type":"execute","name":"execute EIPAM deallocateAllSubnets","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateAllSubnets\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1015.8241157531738,"y":1021.5186309814453,"z":"43f4c62f.1fd828","wires":[["fe7dd50e.50b1b8"]]},{"id":"fe7dd50e.50b1b8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1247.8242378234863,"y":1022.2421417236328,"z":"43f4c62f.1fd828","wires":[["3dc54850.44d7e"]]},{"id":"3dc54850.44d7e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deallocating subnets in EIPAM.\" />\n\t","comments":"","x":1403.8242378234863,"y":1022.2421417236328,"z":"43f4c62f.1fd828","wires":[]},{"id":"a9cd0431.02027","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$network-topology-operation-input.network-information.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n\t<parameter name=\"eipam-ip-block.entity-id\" value='' />","comments":"","x":1033.2525901794434,"y":986.1777033805847,"z":"43f4c62f.1fd828","wires":[]},{"id":"d4cc2b91.b17998","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":1082.8240699768066,"y":1057.703872680664,"z":"43f4c62f.1fd828","wires":[["431c3027.950d4"]]},{"id":"431c3027.950d4","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1382.4907722473145,"y":1057.4272079467773,"z":"43f4c62f.1fd828","wires":[["7766f8e4.72bcf"]]},{"id":"7766f8e4.72bcf","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting level 2 plans in EIPAM.\" />\n\t","comments":"","x":1540.8242073059082,"y":1057.7605895996094,"z":"43f4c62f.1fd828","wires":[]},{"id":"202f4938.e9bb06","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.new_length].\" value=\"\"/>\n\n","comments":"","x":1760.0037879943848,"y":1752.3809328079224,"z":"43f4c62f.1fd828","wires":[]},{"id":"34b7d009.cae53","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1506.289478302002,"y":1681.0794229507446,"z":"43f4c62f.1fd828","wires":[["c1b46a5.3ad0698","202f4938.e9bb06","6287f892.a7d6e8","be2bd733.43ad18"]]},{"id":"b1c24f6a.90d3b8","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"0\"/>\n\n\t\n","comments":"","x":1766.860927581787,"y":1567.1165895462036,"z":"43f4c62f.1fd828","wires":[]},{"id":"77c99a31.b5dc74","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1497.2419624328613,"y":1529.4499015808105,"z":"43f4c62f.1fd828","wires":[["b14d5cee.e40bf","b1c24f6a.90d3b8"]]},{"id":"11c9fd9f.70f48a","type":"comment","name":"deallocate level 2 subnet and pool","info":"","comments":"","x":999.898136138916,"y":947.2595596313477,"z":"43f4c62f.1fd828","wires":[]},{"id":"b49913b8.cc5d68","type":"get-resource","name":"get-resource - Get all subnet/subnet keys for networkid ","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.network_id = $network-topology-operation-input.network-information.network-id and s.entity_id = k.entity_id ; \"\n        pfx='tmp.eipam-subnet-row[]'>\n\n","comments":"","outputs":1,"x":1093.4100799560547,"y":749.7119550704956,"z":"43f4c62f.1fd828","wires":[["609405ca.620c74","d8933947.ba4db8","63b4e541.5c11d4"]]},{"id":"4fddabef.34ea4c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1637.064998626709,"y":705.2594738006592,"z":"43f4c62f.1fd828","wires":[]},{"id":"609405ca.620c74","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1489.0651512145996,"y":739.2594757080078,"z":"43f4c62f.1fd828","wires":[["1f55d1ef.bd829e"]]},{"id":"d8933947.ba4db8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1487.9269561767578,"y":704.9261655807495,"z":"43f4c62f.1fd828","wires":[["4fddabef.34ea4c"]]},{"id":"63b4e541.5c11d4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1491.9269828796387,"y":772.7595510482788,"z":"43f4c62f.1fd828","wires":[["2bbe7112.620d8e"]]},{"id":"1f55d1ef.bd829e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1636.6867637634277,"y":739.4066362380981,"z":"43f4c62f.1fd828","wires":[["c65a88e5.41739"]]},{"id":"54f0e170.71356","type":"comment","name":"Get all subnets for network","info":"","comments":"","x":1007.1706466674805,"y":703.1271800994873,"z":"43f4c62f.1fd828","wires":[]},{"id":"4e5d0ca9.9cff1c","type":"set","name":"Set new index","xml":"<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n","comments":"","x":2324.9931983947754,"y":1675.338749885559,"z":"43f4c62f.1fd828","wires":[]},{"id":"a014a1fe.f199a","type":"comment","name":"If only one remove all networks","info":"","comments":"","x":1389.279010772705,"y":1493.3388786315918,"z":"43f4c62f.1fd828","wires":[]},{"id":"be2bd733.43ad18","type":"set","name":"Set new network length","xml":"<set>\n\t<parameter name=\"tmp.new_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\t\n\t\n","comments":"","x":1782.9931983947754,"y":1647.338807106018,"z":"43f4c62f.1fd828","wires":[]},{"id":"1ab45d14.8c0033","type":"get-resource","name":"get-resource - Determine if level 1 in use in other level 2 subnets","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \n        WHERE p.level = 2 \n        and p.plan_name = $tmp.plan-name\n        and k.level = 1 \n        and p.pool_id = s.pool_id and s.entity_id = k.entity_id \n        and k.key_value = $tmp.level1-key-value  ; \"\n        pfx='tmp.level2pool[]'>\n\n\n\n","comments":"","outputs":1,"x":3378.337146759033,"y":1459.4131045341492,"z":"43f4c62f.1fd828","wires":[["12bcde76.3cbb42","96958e60.5e2e","ae137af0.c6bed"]]},{"id":"7550ea17.f11994","type":"comment","name":"Determine if any other level 2 pool is using level 1 pool","info":"","comments":"","x":1056.5754127502441,"y":1230.7462005615234,"z":"43f4c62f.1fd828","wires":[]},{"id":"c4d31580.52b668","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":3856.5751304626465,"y":1456.8415656089783,"z":"43f4c62f.1fd828","wires":[]},{"id":"96958e60.5e2e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3708.575222015381,"y":1490.8415656089783,"z":"43f4c62f.1fd828","wires":[["521167e9.af1568"]]},{"id":"12bcde76.3cbb42","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3707.437026977539,"y":1456.50825548172,"z":"43f4c62f.1fd828","wires":[["c4d31580.52b668"]]},{"id":"ae137af0.c6bed","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":3713.1036987304688,"y":1523.5082211494446,"z":"43f4c62f.1fd828","wires":[["21d00080.5d0aa8"]]},{"id":"521167e9.af1568","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3870.482795715332,"y":1489.5603427886963,"z":"43f4c62f.1fd828","wires":[["f2b691d4.b440f"]]},{"id":"2bbe7112.620d8e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1640.6946754455566,"y":773.3891286849976,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"d14d4fa5.24ff3","type":"switchNode","name":"switch level1poolkeyvalue","xml":"<switch test='`$tmp.level1-key-value`'>\n","comments":"","outputs":1,"x":1402.2897987365723,"y":1302.6034870147705,"z":"43f4c62f.1fd828","wires":[["3f7110a3.27c0f","1ea7f701.55ede1"]]},{"id":"1ea7f701.55ede1","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1657.1944961547852,"y":1308.5558414459229,"z":"43f4c62f.1fd828","wires":[["440a027.2d0cffc"]]},{"id":"3f7110a3.27c0f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1660.527976989746,"y":1351.651081085205,"z":"43f4c62f.1fd828","wires":[["9213f8b5.3fb228"]]},{"id":"a0bc945f.3b13","type":"set","name":"set prerequisites","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value\" value=\"\"/>\n\t<parameter name=\"tmp.level1inuse\" value=\"false\" />\n\t<parameter name=\"pidx\" value=\"0\" />\n\t<parameter name=\"pidx-len\" value=\"0\" />\n\t\n","comments":"","x":973.02783203125,"y":629.3890380859375,"z":"43f4c62f.1fd828","wires":[]},{"id":"9213f8b5.3fb228","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1823.2422536214194,"y":1352.0320173899333,"z":"43f4c62f.1fd828","wires":[["ee89ef7d.859c6"]]},{"id":"21d00080.5d0aa8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3866.2417373657227,"y":1522.8415637016296,"z":"43f4c62f.1fd828","wires":[["92cb3670.2c1918"]]},{"id":"f2b691d4.b440f","type":"set","name":"set level1inuse = true","xml":"<set>\n\t<parameter name=\"tmp.level1inuse\" value=\"true\" />\n\t\n","comments":"","x":4106.955982208252,"y":1489.4129467010498,"z":"43f4c62f.1fd828","wires":[]},{"id":"92cb3670.2c1918","type":"get-resource","name":"get-resource - Get level 1 pool and subnet","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \n        WHERE p.level = 1 \n        and p.plan_name = $tmp.plan-name\n        and k.level = 1 \n        and p.pool_id = s.pool_id and s.entity_id = k.entity_id \n        and k.key_value = $tmp.level1-key-value  ; \"\n        pfx='tmp.level1pool[]'>\n\n","comments":"","outputs":1,"x":4174.696678161621,"y":1548.0795965194702,"z":"43f4c62f.1fd828","wires":[["211ddee7.6afc7a","2a705d08.95934a","b65babea.9af9e8"]]},{"id":"b7ebad3c.fdff58","type":"comment","name":"Try to clean up the level 1 pool","info":"","comments":"","x":4133.955848693848,"y":1519.0426225662231,"z":"43f4c62f.1fd828","wires":[]},{"id":"800c78ee.3f475","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":4620.384841918945,"y":1513.8044242858887,"z":"43f4c62f.1fd828","wires":[]},{"id":"2a705d08.95934a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":4472.38493347168,"y":1547.8044242858887,"z":"43f4c62f.1fd828","wires":[["194ffcf4.22c8cb"]]},{"id":"211ddee7.6afc7a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4468.246738433838,"y":1516.4711141586304,"z":"43f4c62f.1fd828","wires":[["800c78ee.3f475"]]},{"id":"b65babea.9af9e8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":4475.24674987793,"y":1583.8044242858887,"z":"43f4c62f.1fd828","wires":[["5aa36081.447ee"]]},{"id":"194ffcf4.22c8cb","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4620.006546020508,"y":1547.951584815979,"z":"43f4c62f.1fd828","wires":[["cb941085.f5e398"]]},{"id":"5aa36081.447ee","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":4631.384803771973,"y":1583.1377506256104,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"ce0bf737.56534","type":"execute","name":"execute EIPAM deallocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5336.760761260986,"y":1580.4447450637817,"z":"43f4c62f.1fd828","wires":[["3491152b.cc5692"]]},{"id":"3491152b.cc5692","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5570.760688781738,"y":1579.835147857666,"z":"43f4c62f.1fd828","wires":[["c1d0112a.1c407"]]},{"id":"c1d0112a.1c407","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deallocating subnet in EIPAM.\" />\n\t","comments":"","x":5739.760719299316,"y":1579.8351783752441,"z":"43f4c62f.1fd828","wires":[]},{"id":"f5f8ebf2.ab7f08","type":"set","name":"set","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\n<parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\n<parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\n<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.level1pool[$lidx].network-id`\" />\n<parameter name=\"eipam-ip-block.pool-id\" value=\"`$tmp.level1pool[$lidx].pool-id`\" />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n\n","comments":"","x":5256.760597229004,"y":1550.444764137268,"z":"43f4c62f.1fd828","wires":[]},{"id":"cb941085.f5e398","type":"for","name":"for lidx .. level1pool_length","xml":"<for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\n","comments":"","outputs":1,"x":4829.776371002197,"y":1549.1588859558105,"z":"43f4c62f.1fd828","wires":[["f16231fb.4b1f3"]]},{"id":"eebfb239.346a08","type":"execute","name":"execute EIPAM deletePoolByNetworkLevel","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5365.226657867432,"y":1679.7305278778076,"z":"43f4c62f.1fd828","wires":[["68f38914.d2e988"]]},{"id":"68f38914.d2e988","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5637.797691345215,"y":1669.4541721343994,"z":"43f4c62f.1fd828","wires":[["9f70667e.99cb78"]]},{"id":"9f70667e.99cb78","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting pool in EIPAM.\" />\n\t","comments":"","x":5780.6074867248535,"y":1667.263780593872,"z":"43f4c62f.1fd828","wires":[]},{"id":"f16231fb.4b1f3","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":5052.443256378174,"y":1549.269947052002,"z":"43f4c62f.1fd828","wires":[["f5f8ebf2.ab7f08","ce0bf737.56534","d3591315.886188"]]},{"id":"902b0baa.add328","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":2654.7236976623535,"y":1385.497787475586,"z":"43f4c62f.1fd828","wires":[["9ca2c4c3.60ee2"]]},{"id":"9ca2c4c3.60ee2","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2861.4380531311035,"y":1385.9262943267822,"z":"43f4c62f.1fd828","wires":[["65be9681.293558"]]},{"id":"fc3d633d.a705b8","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":2657.6602668762207,"y":1424.7834587097168,"z":"43f4c62f.1fd828","wires":[["feb0dea0.adbff"]]},{"id":"feb0dea0.adbff","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":2869.612663269043,"y":1423.5452375411987,"z":"43f4c62f.1fd828","wires":[["3c2a3e53.94df92"]]},{"id":"5f18e2e5.85f2bc","type":"set","name":"set tmp.plan-name v4","xml":"<set>\n<parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />\n\n","comments":"","x":3247.2159690856934,"y":1388.2595772743225,"z":"43f4c62f.1fd828","wires":[]},{"id":"52b1683d.fe8c8","type":"set","name":"set tmp.plan-name v6","xml":"<set>\n<parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />\n\n","comments":"","x":3246.152416229248,"y":1424.5453777313232,"z":"43f4c62f.1fd828","wires":[]},{"id":"65be9681.293558","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3022.8190727233887,"y":1388.1961398124695,"z":"43f4c62f.1fd828","wires":[["5f18e2e5.85f2bc","1ab45d14.8c0033"]]},{"id":"3c2a3e53.94df92","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3030.2793006896973,"y":1429.6247062683105,"z":"43f4c62f.1fd828","wires":[["52b1683d.fe8c8","1ab45d14.8c0033"]]},{"id":"159c2061.38289","type":"get-resource","name":"get-resource NETWORK_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $service-data.networks.network[$nidx].network-data.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $service-data.networks.network[$nidx].network-data.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n","comments":"","outputs":1,"x":1029.6943817138672,"y":599.7223243713379,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"ee89ef7d.859c6","type":"switchNode","name":"switch network-model","xml":"<switch test='`$network-model`'>\n","comments":"","outputs":1,"x":2036.2315266927085,"y":1352.317742029826,"z":"43f4c62f.1fd828","wires":[["c633bb67.5d953","88f3bac5.fb0368"]]},{"id":"c633bb67.5d953","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2234.2317403157554,"y":1339.9844280878704,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"88f3bac5.fb0368","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2232.564915974935,"y":1374.984348932902,"z":"43f4c62f.1fd828","wires":[["f4cbd9d5.7261f8"]]},{"id":"f4cbd9d5.7261f8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2400.8982276916504,"y":1383.5558633804321,"z":"43f4c62f.1fd828","wires":[["902b0baa.add328","fc3d633d.a705b8"]]},{"id":"440a027.2d0cffc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1831.8241577148438,"y":1307.8891334533691,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"f0bee7cd.c50298","type":"comment","name":"Get tosca network data","info":"","comments":"","x":996.5499458312988,"y":560.4444608688354,"z":"43f4c62f.1fd828","wires":[]},{"id":"e014c799.ccb71","type":"comment","name":"1707 - remove call to AAI for subnets","info":"","comments":"","x":1035.8515014648438,"y":660.9366149902344,"z":"43f4c62f.1fd828","wires":[]},{"id":"c65a88e5.41739","type":"for","name":"for 0..subnet-row-length","xml":"<for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >\n","comments":"","outputs":1,"x":1061.9943504333496,"y":859.2224187850952,"z":"43f4c62f.1fd828","wires":[["168f4319.51ff0d"]]},{"id":"168f4319.51ff0d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1286.6610527038574,"y":859.3651790618896,"z":"43f4c62f.1fd828","wires":[["c6d87522.f557d8"]]},{"id":"c6d87522.f557d8","type":"switchNode","name":"switch level","xml":"<switch test='`$tmp.eipam-subnet-row[$esidx].level`'>\n","comments":"","outputs":1,"x":1480.661060333252,"y":860.7038640975952,"z":"43f4c62f.1fd828","wires":[["2b8c5d52.7c0d12","d04a0c95.ae503"]]},{"id":"2b8c5d52.7c0d12","type":"outcome","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1652.32767868042,"y":858.7038621902466,"z":"43f4c62f.1fd828","wires":[["f50b81a6.8be318"]]},{"id":"f50b81a6.8be318","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1835.6611442565918,"y":857.0371780395508,"z":"43f4c62f.1fd828","wires":[["1490f72f.590771","9e34d962.11b0b","bb837925.a8523","427058e5.b0cc9"]]},{"id":"1490f72f.590771","type":"set","name":"set level 1 key value","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value[$pidx]\" value=\"`$tmp.eipam-subnet-row[$esidx].key-value`\"/>\n\n\t\n","comments":"","x":2051.565605163574,"y":798.1800594329834,"z":"43f4c62f.1fd828","wires":[]},{"id":"d04a0c95.ae503","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1643.9944648742676,"y":893.7038440704346,"z":"43f4c62f.1fd828","wires":[["42298e3b.bebd78"]]},{"id":"42298e3b.bebd78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1835.6611442565918,"y":892.0371780395508,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"9e34d962.11b0b","type":"set","name":"increment pidx_len","xml":"<set>\n\t<parameter name=\"pidx\" value=\"`$pidx + 1`\"/>\n\n\t\n","comments":"","x":2048.56595993042,"y":856.0794496536255,"z":"43f4c62f.1fd828","wires":[]},{"id":"fc63ae25.4fe498","type":"for","name":"for 0 ... level 1 length","xml":"<for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >\n","comments":"","outputs":1,"x":962.0515632629395,"y":1273.2222967147827,"z":"43f4c62f.1fd828","wires":[["b14859a5.c61ce8"]]},{"id":"b14859a5.c61ce8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1180.0515689849854,"y":1274.2222967147827,"z":"43f4c62f.1fd828","wires":[["d14d4fa5.24ff3","be1e294d.7bca7"]]},{"id":"be1e294d.7bca7","type":"set","name":"set level 1 key value/plan name","xml":"<set>\n\t<parameter name=\"tmp.level1-key-value\" value=\"`$tmp.level1-key-value[$npidx]`\" />\n\t<parameter name=\"tmp.plan-name\" value=\"`$tmp.plan-name[$npidx]`\" />\n\t\n","comments":"","x":1418.0515480041504,"y":1271.2222633361816,"z":"43f4c62f.1fd828","wires":[]},{"id":"bb837925.a8523","type":"set","name":"set level 1 plan_name","xml":"<set>\n\t<parameter name=\"tmp.plan-name[$pidx]\" value=\"`$tmp.eipam-subnet-row[$esidx].plan-name`\"/>\n\n\t\n","comments":"","x":2055.765914916992,"y":824.6508331298828,"z":"43f4c62f.1fd828","wires":[]},{"id":"d3591315.886188","type":"execute","name":"execute EIPAM deletePoolByPoolId","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByPoolId\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5320.908679962158,"y":1614.650899887085,"z":"43f4c62f.1fd828","wires":[["ea0e131c.2a0418"]]},{"id":"ea0e131c.2a0418","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5566.337005615234,"y":1614.3744983673096,"z":"43f4c62f.1fd828","wires":[["a2997071.0f0458"]]},{"id":"a2997071.0f0458","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting pool in EIPAM.\" />\n\t","comments":"","x":5762.004039764404,"y":1616.4697823524475,"z":"43f4c62f.1fd828","wires":[]},{"id":"427058e5.b0cc9","type":"set","name":"set length","xml":"<set>\n\t<parameter name=\"pidx-len\" value=\"`$pidx`\"/>\n\n\t\n","comments":"","x":2019.1944770812988,"y":879.2223215103149,"z":"43f4c62f.1fd828","wires":[]},{"id":"d7820e90.66544","type":"call","name":"call naming-policy-generate-name to rollback name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1021.8612060546875,"y":1917.7220458984375,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"20e1b7e2.ee7b28","type":"set","name":"set parameters for generate-unique-name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.context-id' value='`$network-topology-operation-input.network-information.network-id`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n\n\n","comments":"","x":999.8612022399902,"y":1874.2222995758057,"z":"43f4c62f.1fd828","wires":[]},{"id":"7ed7aafc.2d4d04","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\n","comments":"","outputs":1,"x":213.0833740234375,"y":493.1666555404663,"z":"43f4c62f.1fd828","wires":[["743d13a6.d23e0c","edfdb890.827c18"]]},{"id":"6e94f27d.431264","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":199.6127471923828,"y":355.72381114959717,"z":"43f4c62f.1fd828","wires":[["7ed7aafc.2d4d04","bb84b390.807d6","ad06e8e8.f15fe8"]]},{"id":"743d13a6.d23e0c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":438.49943923950195,"y":474.7217025756836,"z":"43f4c62f.1fd828","wires":[["776634c2.52d27c"]]},{"id":"c070a6d7.f5a95","type":"for","name":"for snidx..service-data.networks.network[]","xml":"<for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1301.6454162597656,"y":2659.5203886032104,"z":"43f4c62f.1fd828","wires":[["b05e875c.477a8"]]},{"id":"fb6c5bbf.641c8","type":"comment","name":"Remove network from service data","info":"","comments":"","x":469.04224395751953,"y":2565.9492082595825,"z":"43f4c62f.1fd828","wires":[]},{"id":"c8bec92c.539b98","type":"set","name":"move network to remove one","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.newidx].\" value=\"$service-data.networks.network[$snidx].\" />\n\t\n","comments":"","x":1836.2364044189453,"y":2695.401512145996,"z":"43f4c62f.1fd828","wires":[]},{"id":"ad06e8e8.f15fe8","type":"switchNode","name":"switch $service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":475.8079833984375,"y":2517.290771484375,"z":"43f4c62f.1fd828","wires":[["b81c15f1.52213","b6141ea3.f4683"]]},{"id":"b81c15f1.52213","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":778.8555755615234,"y":2510.6237363815308,"z":"43f4c62f.1fd828","wires":[["ec37c587.0d4f6"]]},{"id":"773c6cdf.b55564","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.\" value=\"\"/>\n\n","comments":"","x":1211.474479675293,"y":2514.2905626296997,"z":"43f4c62f.1fd828","wires":[]},{"id":"b6141ea3.f4683","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":745.2365264892578,"y":2662.9570541381836,"z":"43f4c62f.1fd828","wires":[["aafb7b4b.b69678"]]},{"id":"b05e875c.477a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1571.2363891601562,"y":2661.9570388793945,"z":"43f4c62f.1fd828","wires":[["c8bec92c.539b98","cd3d04c6.2597"]]},{"id":"588894e.b52e46c","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\n\t\n","comments":"","x":1241.104248046875,"y":2696.2906188964844,"z":"43f4c62f.1fd828","wires":[]},{"id":"68cbbbc.67fe2c4","type":"set","name":"Remove networks","xml":"<set>\n\t<parameter name=\"service-data.networks.network[$tmp.new_length].\" value=\"\"/>\n\n","comments":"","x":1220.9507141113281,"y":2734.2585639953613,"z":"43f4c62f.1fd828","wires":[]},{"id":"aafb7b4b.b69678","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":967.2364044189453,"y":2662.9570541381836,"z":"43f4c62f.1fd828","wires":[["c070a6d7.f5a95","68cbbbc.67fe2c4","588894e.b52e46c","32319d17.9bbc5a"]]},{"id":"38f99654.0d5802","type":"set","name":"set new network length","xml":"<set>\n\t<parameter name=\"service-data.networks.network_length\" value=\"0\"/>\n\n\t\n","comments":"","x":1227.8078536987305,"y":2548.9942207336426,"z":"43f4c62f.1fd828","wires":[]},{"id":"ec37c587.0d4f6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":958.1888885498047,"y":2511.3275327682495,"z":"43f4c62f.1fd828","wires":[["773c6cdf.b55564","38f99654.0d5802"]]},{"id":"cd3d04c6.2597","type":"set","name":"Set new index","xml":"<set>\n\t<parameter name=\"tmp.newidx\" value=\"`$snidx - 1`\"/>\n\t\n\t\n","comments":"","x":1785.9401245117188,"y":2657.216381072998,"z":"43f4c62f.1fd828","wires":[]},{"id":"a033816e.cf4cc","type":"comment","name":"If only one remove all networks","info":"","comments":"","x":850.2259368896484,"y":2475.2165098190308,"z":"43f4c62f.1fd828","wires":[]},{"id":"32319d17.9bbc5a","type":"set","name":"Set new network length","xml":"<set>\n\t<parameter name=\"tmp.new_length\" value=\"`$service-data.networks.network_length - 1`\"/>\n\t\n\t\n","comments":"","x":1243.9401245117188,"y":2629.216438293457,"z":"43f4c62f.1fd828","wires":[]},{"id":"776634c2.52d27c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":618.4994430541992,"y":473.27720069885254,"z":"43f4c62f.1fd828","wires":[["7782efc5.34f988"]]},{"id":"ceb870dc.083b6","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1121.4961547851562,"y":469.74610900878906,"z":"43f4c62f.1fd828","wires":[[]]},{"id":"7782efc5.34f988","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":886.21826171875,"y":474.230712890625,"z":"43f4c62f.1fd828","wires":[["ceb870dc.083b6","98125954.779138","7bfdf529.fba05c"]]},{"id":"98125954.779138","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1116.2181396484375,"y":505.230712890625,"z":"43f4c62f.1fd828","wires":[["3ef86cb1.56946c"]]},{"id":"3ef86cb1.56946c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'\" />","comments":"","x":1270.3292236328125,"y":504.45294189453125,"z":"43f4c62f.1fd828","wires":[]},{"id":"7bfdf529.fba05c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1118.4961547851562,"y":436.74610900878906,"z":"43f4c62f.1fd828","wires":[["d829c8ae.d057e8"]]},{"id":"e67658da.9f76c8","type":"delete","name":"delete l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\tkey=\"l3-network.network-id = $network-topology-operation-input.network-information.network-id\">","comments":"","outputs":1,"x":1553.4961547851562,"y":435.74610900878906,"z":"43f4c62f.1fd828","wires":[["ace37b9c.4aec"]]},{"id":"3e3025c.a0524da","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while deleting network from AAI\" />\n\t","comments":"","x":1947.8294639587402,"y":437.74610900878906,"z":"43f4c62f.1fd828","wires":[]},{"id":"ace37b9c.4aec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1763.6913566589355,"y":438.07944202423096,"z":"43f4c62f.1fd828","wires":[["3e3025c.a0524da"]]},{"id":"d829c8ae.d057e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1310.1627807617188,"y":436.7402296066284,"z":"43f4c62f.1fd828","wires":[["e67658da.9f76c8"]]},{"id":"1cd97ae8.5c530d","type":"comment","name":"18.06 - add logic for preload","info":"","comments":"","x":498.49609375,"y":436.74609375,"z":"43f4c62f.1fd828","wires":[]},{"id":"aceab2fb.526c8","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\n","comments":"","outputs":1,"x":253.49609375,"y":606.74609375,"z":"43f4c62f.1fd828","wires":[["f4412ab1.02ebf8","c7d61085.9ff83"]]},{"id":"f4412ab1.02ebf8","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":487.49609375,"y":605.24609375,"z":"43f4c62f.1fd828","wires":[["db751f4b.8bc6f"]]},{"id":"c7d61085.9ff83","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":387.49609375,"y":2035.24609375,"z":"43f4c62f.1fd828","wires":[["2778d41a.5e846c"]]},{"id":"2778d41a.5e846c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":577.49609375,"y":2033.24609375,"z":"43f4c62f.1fd828","wires":[["9ab09f4f.71df98"]]},{"id":"9ab09f4f.71df98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network collection activate failed\" />\n","comments":"","x":785.49609375,"y":2033.24609375,"z":"43f4c62f.1fd828","wires":[]},{"id":"6f0fe7b4.c62b08","type":"comment","name":"need to implement this","info":"","comments":"","x":812.49609375,"y":2000.24609375,"z":"43f4c62f.1fd828","wires":[]},{"id":"edfdb890.827c18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":438.49609375,"y":517.74609375,"z":"43f4c62f.1fd828","wires":[["aceab2fb.526c8"]]}]
\ No newline at end of file
index 4e2c7d5..f2b4699 100644 (file)
@@ -1,1306 +1 @@
-[
-  {
-    "id": "22447bb.ca1b884",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 152.00390625,
-    "y": 98.41365623474121,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "466f0033.35cb7"
-      ]
-    ]
-  },
-  {
-    "id": "466f0033.35cb7",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-    "outputs": 1,
-    "x": 233.95626831054688,
-    "y": 138.6517686843872,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "72c0d062.bcd76"
-      ]
-    ]
-  },
-  {
-    "id": "72c0d062.bcd76",
-    "type": "method",
-    "name": "network-topology-operation",
-    "xml": "<method rpc='network-topology-operation' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 230.43253326416016,
-    "y": 178.4136505126953,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "eb6b1875.0a05c8"
-      ]
-    ]
-  },
-  {
-    "id": "5bad23a2.6ab6cc",
-    "type": "comment",
-    "name": " NETWORK-TOPOLOGY-OPERATION ",
-    "info": "",
-    "comments": "",
-    "x": 546.348762512207,
-    "y": 46,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "eb6b1875.0a05c8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 266.0039367675781,
-    "y": 261.85713958740234,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "800f4458.13e0e8",
-        "69a90e48.698e4",
-        "5d15a28a.f8b28c",
-        "1c731b73.ad5485"
-      ]
-    ]
-  },
-  {
-    "id": "800f4458.13e0e8",
-    "type": "returnSuccess",
-    "name": "return success",
-    "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-    "comments": "",
-    "x": 496.08729553222656,
-    "y": 885.6997756958008,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "69a90e48.698e4",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 492.7181701660156,
-    "y": 492.2708339691162,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "7c51d92d.ac3558",
-        "c0f563da.45066",
-        "bcd7f689.e68068",
-        "a339fa13.cef888",
-        "f32b6746.ab2ac8",
-        "65bec383.089c6c",
-        "13d33f80.29ff51"
-      ]
-    ]
-  },
-  {
-    "id": "7c51d92d.ac3558",
-    "type": "other",
-    "name": "assign",
-    "xml": "<outcome value='assign'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 713.1943664550781,
-    "y": 268.5564842224121,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "9275b2f9.0f7e1"
-      ]
-    ]
-  },
-  {
-    "id": "9275b2f9.0f7e1",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 894.4325256347656,
-    "y": 269.5566062927246,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "325fdcb1.4a6014"
-      ]
-    ]
-  },
-  {
-    "id": "5d15a28a.f8b28c",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:validate-network-input",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 625.0039215087891,
-    "y": 204.41373252868652,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "325fdcb1.4a6014",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-assign",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1253.7816772460938,
-    "y": 189.7470084587112,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "c0f563da.45066",
-    "type": "other",
-    "name": "activate",
-    "xml": "<outcome value='activate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 715.00390625,
-    "y": 442.4136562347412,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "61d3baaf.004a44"
-      ]
-    ]
-  },
-  {
-    "id": "7e513616.123088",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1252.2420654296875,
-    "y": 439.4138927459717,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "ae258a82.33a2e8",
-        "8bbc4549.c2c348"
-      ]
-    ]
-  },
-  {
-    "id": "7dc76c81.46ae84",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-activate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2297.8134765625,
-    "y": 568.2708282470703,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "bcd7f689.e68068",
-    "type": "other",
-    "name": "deactivate",
-    "xml": "<outcome value='deactivate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 704.00390625,
-    "y": 602.4136810302734,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "a90bb735.783aa8"
-      ]
-    ]
-  },
-  {
-    "id": "a90bb735.783aa8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 892.2422637939453,
-    "y": 601.4140040278435,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "b5b1cc7d.0a9d8"
-      ]
-    ]
-  },
-  {
-    "id": "483724bf.a7dffc",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-deactivate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2465.8691635131836,
-    "y": 853.131984368898,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "a339fa13.cef888",
-    "type": "other",
-    "name": "unassign",
-    "xml": "<outcome value='unassign'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 712.00390625,
-    "y": 667.4136810302734,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "c4bb456b.36d518"
-      ]
-    ]
-  },
-  {
-    "id": "c4bb456b.36d518",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 893.2420654296875,
-    "y": 668.4138031005859,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "ae258a82.33a2e8",
-        "b9288b8f.f7a128"
-      ]
-    ]
-  },
-  {
-    "id": "545822dc.aecafc",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-unassign",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2040.618911743164,
-    "y": 890.4374882141128,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "f32b6746.ab2ac8",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 703.0039100646973,
-    "y": 727.4136714935303,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "43654f47.8db24"
-      ]
-    ]
-  },
-  {
-    "id": "43654f47.8db24",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
-    "comments": "",
-    "x": 885.00390625,
-    "y": 726.4136810302734,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "1c731b73.ad5485",
-    "type": "set",
-    "name": "Set final indicator to Y",
-    "xml": "<set>\n<parameter name=\"ack-final\" value=\"Y\"/>",
-    "comments": "",
-    "x": 515.114990234375,
-    "y": 844.8581142425537,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "5f07f64.621f908",
-    "type": "for",
-    "name": "for nidx..service-data.networks.network[]",
-    "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2251.7342681884766,
-    "y": 478.1755828857422,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "bcc0c33e.bd395"
-      ]
-    ]
-  },
-  {
-    "id": "ae258a82.33a2e8",
-    "type": "switchNode",
-    "name": "switch service-data.networks.network_length",
-    "xml": "<switch test='`$service-data.networks.network_length`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1558.4483642578125,
-    "y": 437.74696350097656,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "a9e39ffc.d6d6e",
-        "881da1f.33e4b6"
-      ]
-    ]
-  },
-  {
-    "id": "a9e39ffc.d6d6e",
-    "type": "other",
-    "name": "outcome Null",
-    "xml": "<outcome value=''>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1831.4484024047852,
-    "y": 436.7470283508301,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "77cc77c5.b2f928"
-      ]
-    ]
-  },
-  {
-    "id": "881da1f.33e4b6",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1811.4487266540527,
-    "y": 476.74703311920166,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "86bde218.2b981"
-      ]
-    ]
-  },
-  {
-    "id": "bcc0c33e.bd395",
-    "type": "switchNode",
-    "name": "switch networkid found",
-    "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2542.1628189086914,
-    "y": 477.42566680908203,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "7c46a173.c9d7a"
-      ]
-    ]
-  },
-  {
-    "id": "7c46a173.c9d7a",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2731.1151733398438,
-    "y": 478.3184051513672,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "82887486.a7b018"
-      ]
-    ]
-  },
-  {
-    "id": "82887486.a7b018",
-    "type": "set",
-    "name": "set tmp.nidx and ctx.network-data",
-    "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\n",
-    "comments": "",
-    "x": 2964.646942138672,
-    "y": 477.0684127807617,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "a24ee0c5.d21c5",
-    "type": "comment",
-    "name": "Find the index to service data for this network - save id in tmp.nidx, save service-data",
-    "info": "",
-    "comments": "",
-    "x": 1504.559700012207,
-    "y": 401.74702501296997,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "5e45bf.f8a18a4",
-    "type": "comment",
-    "name": "service-data  will not be stored until we have a network-id",
-    "info": "",
-    "comments": "",
-    "x": 1221.4483032226562,
-    "y": 157.96923746261746,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "77cc77c5.b2f928",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n",
-    "comments": "",
-    "x": 1993.2258605957031,
-    "y": 437.63597106933594,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "86bde218.2b981",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1949.7182998657227,
-    "y": 477.301570892334,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "5f07f64.621f908",
-        "385983c7.9f2b7c"
-      ]
-    ]
-  },
-  {
-    "id": "385983c7.9f2b7c",
-    "type": "switchNode",
-    "name": "switch tmp.nidx ",
-    "xml": "<switch test=\"`$tmp.nidx`\">\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2170.0356979370117,
-    "y": 520.1587896347046,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "f85ca643.8fb898"
-      ]
-    ]
-  },
-  {
-    "id": "cdb52735.90dc68",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n",
-    "comments": "",
-    "x": 2522.892681121826,
-    "y": 515.8730316162109,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "f85ca643.8fb898",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2341.4642333984375,
-    "y": 518.7301750183105,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "cdb52735.90dc68"
-      ]
-    ]
-  },
-  {
-    "id": "8bbc4549.c2c348",
-    "type": "switchNode",
-    "name": "switch network-level-oper-status",
-    "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1510.7817077636719,
-    "y": 568.2222290039062,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "6e122dc8.532934",
-        "22b32187.96be8e"
-      ]
-    ]
-  },
-  {
-    "id": "6e122dc8.532934",
-    "type": "outcome",
-    "name": "outcome PendingCreate",
-    "xml": "<outcome value='PendingCreate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1875.7816874186192,
-    "y": 568.2222137451171,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "7dc76c81.46ae84"
-      ]
-    ]
-  },
-  {
-    "id": "22b32187.96be8e",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1825.7817344665527,
-    "y": 608.2222442626953,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "c7f8345d.b6f678"
-      ]
-    ]
-  },
-  {
-    "id": "c7f8345d.b6f678",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
-    "comments": "",
-    "x": 1995.7817344665527,
-    "y": 608.2222442626953,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "634dd574.9447fc",
-    "type": "switchNode",
-    "name": "switch network-level-oper-status",
-    "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1243.7500381469727,
-    "y": 794.8403650242835,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "7b4cd5b5.65915c",
-        "e12f8291.e5f2d"
-      ]
-    ]
-  },
-  {
-    "id": "7b4cd5b5.65915c",
-    "type": "outcome",
-    "name": "outcome Created",
-    "xml": "<outcome value='Created'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1595.6388511657715,
-    "y": 789.2848469177261,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "8d2e1f53.0a094"
-      ]
-    ]
-  },
-  {
-    "id": "e12f8291.e5f2d",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1565.6388511657715,
-    "y": 829.2848469177261,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "5b7b9e1a.0f623"
-      ]
-    ]
-  },
-  {
-    "id": "5b7b9e1a.0f623",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
-    "comments": "",
-    "x": 1731.6388511657715,
-    "y": 831.2848469177261,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "b9288b8f.f7a128",
-    "type": "switchNode",
-    "name": "switch network-level-oper-status",
-    "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1247.4402923583984,
-    "y": 892.0416904846206,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "83977ad2.652058",
-        "4164bd1d.d21fe4",
-        "9708ceab.b495d"
-      ]
-    ]
-  },
-  {
-    "id": "83977ad2.652058",
-    "type": "outcome",
-    "name": "outcome PendingCreate",
-    "xml": "<outcome value='PendingCreate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1607.4402618408203,
-    "y": 892.0417210021988,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "545822dc.aecafc"
-      ]
-    ]
-  },
-  {
-    "id": "4164bd1d.d21fe4",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1564.440200805664,
-    "y": 976.0417362609878,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "73868aa3.1c8774"
-      ]
-    ]
-  },
-  {
-    "id": "73868aa3.1c8774",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
-    "comments": "",
-    "x": 1755.7736206054688,
-    "y": 974.7083650985733,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "9708ceab.b495d",
-    "type": "outcome",
-    "name": "outcome PendingDelete",
-    "xml": "<outcome value='PendingDelete'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1610.6704864501953,
-    "y": 929.8888889709488,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "545822dc.aecafc"
-      ]
-    ]
-  },
-  {
-    "id": "65bec383.089c6c",
-    "type": "other",
-    "name": "create",
-    "xml": "<outcome value='create'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 700.4562683105469,
-    "y": 787,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "854868fb.692c98"
-      ]
-    ]
-  },
-  {
-    "id": "13d33f80.29ff51",
-    "type": "other",
-    "name": "delete",
-    "xml": "<outcome value='delete'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 703.4562683105469,
-    "y": 840,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "eefbd503.989fd8"
-      ]
-    ]
-  },
-  {
-    "id": "509a1330.098dbc",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1340.567497253418,
-    "y": 1081.8888937393203,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "fc73b84f.5d78c8"
-      ]
-    ]
-  },
-  {
-    "id": "8263c76f.199698",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1314.0119552612305,
-    "y": 1236.4444319168106,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "bd3a896d.c04468"
-      ]
-    ]
-  },
-  {
-    "id": "fc73b84f.5d78c8",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-create",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1705.2339935302734,
-    "y": 1081.3335157791153,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "bd3a896d.c04468",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:network-topology-operation-delete",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1679.0118789672852,
-    "y": 1235.4443603912368,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "61d3baaf.004a44",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 899.6551361083984,
-    "y": 422.7314224243164,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "a1424008.31d3d",
-        "9be2b7c3.9aa0b8",
-        "9d7d6a23.ac4a28"
-      ]
-    ]
-  },
-  {
-    "id": "a1424008.31d3d",
-    "type": "outcome",
-    "name": "ActivateDCINetworkInstance",
-    "xml": "<outcome value='ActivateDCINetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1141.9884033203125,
-    "y": 344.7312355041504,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "3098b58e.59145a"
-      ]
-    ]
-  },
-  {
-    "id": "9be2b7c3.9aa0b8",
-    "type": "outcome",
-    "name": "other",
-    "xml": "<outcome value='other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1071.988395690918,
-    "y": 470.3979320526123,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "7e513616.123088"
-      ]
-    ]
-  },
-  {
-    "id": "3098b58e.59145a",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:dci-connects-network-topology-operation-activate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1565.9884185791016,
-    "y": 342.3981046676636,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "8d2e1f53.0a094",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1870.2261199951172,
-    "y": 787.4444404998794,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "aaaa0d61.3eb52",
-        "65bd4c29.44c284"
-      ]
-    ]
-  },
-  {
-    "id": "aaaa0d61.3eb52",
-    "type": "outcome",
-    "name": "DeActivateDCINetworkInstance",
-    "xml": "<outcome value='DeActivateDCINetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2140.559371948242,
-    "y": 797.4443317810073,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "db97de83.50799"
-      ]
-    ]
-  },
-  {
-    "id": "db97de83.50799",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:dci-connects-network-topology-operation-deactivate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2615.5595932006836,
-    "y": 796.1111499229446,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "65bd4c29.44c284",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2063.2262115478516,
-    "y": 855.4444824615493,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "483724bf.a7dffc"
-      ]
-    ]
-  },
-  {
-    "id": "9d7d6a23.ac4a28",
-    "type": "outcome",
-    "name": "ActivateSOTNConnectivityInstance",
-    "xml": "<outcome value='ActivateSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1141.2261047363281,
-    "y": 276.3202238082886,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "a046f39e.31874"
-      ]
-    ]
-  },
-  {
-    "id": "a046f39e.31874",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-network-topology-operation-activate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1566.4482612609863,
-    "y": 272.5547663131729,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "854868fb.692c98",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 899.7700729370117,
-    "y": 793.7777611175552,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "52fa6311.1fcbbc",
-        "873a6681.0ace38"
-      ]
-    ]
-  },
-  {
-    "id": "52fa6311.1fcbbc",
-    "type": "outcome",
-    "name": "other",
-    "xml": "<outcome value='other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1158.7700309753418,
-    "y": 1083.6665073791519,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "509a1330.098dbc"
-      ]
-    ]
-  },
-  {
-    "id": "873a6681.0ace38",
-    "type": "outcome",
-    "name": "CreateSOTNConnectivityInstance",
-    "xml": "<outcome value='CreateSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1226.4368057250977,
-    "y": 1020.4444471755996,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "2beb5ff2.5f47"
-      ]
-    ]
-  },
-  {
-    "id": "2beb5ff2.5f47",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-network-topology-operation-create",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1705.3256225585938,
-    "y": 1022.6666294494644,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "99f01de7.cef63",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1136.1036529541016,
-    "y": 680.913647309877,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "d8572f1b.9bba2"
-      ]
-    ]
-  },
-  {
-    "id": "eefbd503.989fd8",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 902.7446212768555,
-    "y": 1002.060903207399,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "939da72d.b0ff98",
-        "bda71ad3.e6fc18"
-      ]
-    ]
-  },
-  {
-    "id": "bda71ad3.e6fc18",
-    "type": "outcome",
-    "name": "DeleteSOTNConnectivityInstance",
-    "xml": "<outcome value='DeleteSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1223.855857849121,
-    "y": 1177.6164580741897,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "b6f5f0d5.a2a9f"
-      ]
-    ]
-  },
-  {
-    "id": "b6f5f0d5.a2a9f",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-network-topology-operation-delete",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1702.7446746826172,
-    "y": 1179.8386403480545,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "939da72d.b0ff98",
-    "type": "outcome",
-    "name": "other",
-    "xml": "<outcome value='other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1156.1890830993652,
-    "y": 1240.838518277742,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "8263c76f.199698"
-      ]
-    ]
-  },
-  {
-    "id": "3a846b42.3e5f44",
-    "type": "comment",
-    "name": "SOTN: Activate VPN Instance",
-    "info": "",
-    "comments": "",
-    "x": 1137.1890716552734,
-    "y": 239.22145618591458,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "8bda633.fc2eba",
-    "type": "comment",
-    "name": "SOTN: DeActivate VPN Instance",
-    "info": "",
-    "comments": "",
-    "x": 1676.0778427124023,
-    "y": 653.6658955970779,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "249eb98b.1011c6",
-    "type": "comment",
-    "name": "SOTN: Create VPN Instance",
-    "info": "",
-    "comments": "",
-    "x": 1234.9667892456055,
-    "y": 985.7645775238052,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "1f1ad24f.997f4e",
-    "type": "comment",
-    "name": "SOTN: Delete VPN Instance",
-    "info": "",
-    "comments": "",
-    "x": 1226.0778732299805,
-    "y": 1142.1843162933365,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "b5b1cc7d.0a9d8",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1110.8812065124512,
-    "y": 605.9999634185806,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "a4048448.f587c8",
-        "99f01de7.cef63"
-      ]
-    ]
-  },
-  {
-    "id": "f7556427.fd2d08",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-network-topology-operation-deactivate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1811.0160217285156,
-    "y": 686.5053612152115,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "a4048448.f587c8",
-    "type": "outcome",
-    "name": "DeactivateSOTNConnectivityInstance",
-    "xml": "<outcome value='DeactivateSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1385.6588706970215,
-    "y": 608.2220562854782,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "f7556427.fd2d08"
-      ]
-    ]
-  },
-  {
-    "id": "d8572f1b.9bba2",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1300.8811264038086,
-    "y": 682.6666122833267,
-    "z": "9e6cde1a.0ef11",
-    "wires": [
-      [
-        "634dd574.9447fc",
-        "ae258a82.33a2e8"
-      ]
-    ]
-  }
-]
+[{"id":"80860971.7a2d98","type":"dgstart","name":"DGSTART","outputs":1,"x":260.00390625,"y":120.00390625,"z":"9e04e9a4.f67a48","wires":[["35321753.65a598"]]},{"id":"35321753.65a598","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":341.9562683105469,"y":160.242018699646,"z":"9e04e9a4.f67a48","wires":[["21839cd6.ba0e34"]]},{"id":"21839cd6.ba0e34","type":"method","name":"network-topology-operation","xml":"<method rpc='network-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":321.4325408935547,"y":211.0039119720459,"z":"9e04e9a4.f67a48","wires":[["af3458e2.edff98"]]},{"id":"3b04215d.2645ae","type":"comment","name":" NETWORK-TOPOLOGY-OPERATION ","info":"","comments":"","x":654.348762512207,"y":67.59025001525879,"z":"9e04e9a4.f67a48","wires":[]},{"id":"af3458e2.edff98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":374.0039367675781,"y":283.44738960266113,"z":"9e04e9a4.f67a48","wires":[["785c802c.065ba","1d399d6e.1c4783","13771147.44e61f","1e0000f5.f479bf"]]},{"id":"785c802c.065ba","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":604.0873107910156,"y":998.5400505065918,"z":"9e04e9a4.f67a48","wires":[]},{"id":"1d399d6e.1c4783","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":600.7181701660156,"y":513.861083984375,"z":"9e04e9a4.f67a48","wires":[["1793dad0.8ae325","4ff33a14.aa46b4","8b320f87.323ed","c7c6e669.4c0ea8","82971b8d.ec65e8","e560f1d4.fee42"]]},{"id":"1793dad0.8ae325","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":821.1943664550781,"y":376.1467342376709,"z":"9e04e9a4.f67a48","wires":[["f45218dc.949518"]]},{"id":"f45218dc.949518","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1002.4325256347656,"y":377.1468563079834,"z":"9e04e9a4.f67a48","wires":[["a8240529.3feab8"]]},{"id":"13771147.44e61f","type":"call","name":"call GENERIC-RESOURCE-API:validate-network-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-network-input' mode='sync' >\n","comments":"","outputs":1,"x":732.00390625,"y":284.00390625,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"4ff33a14.aa46b4","type":"other","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":823.00390625,"y":464.00390625,"z":"9e04e9a4.f67a48","wires":[["7c3e19c4.ef5188"]]},{"id":"7c3e19c4.ef5188","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1007.2420654296875,"y":465.0040283203125,"z":"9e04e9a4.f67a48","wires":[["6e412045.72665","a75318f4.373a38","f9bd493e.491498"]]},{"id":"f1bdf407.7a7098","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":2171.0636978149414,"y":920.6111240386963,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"8b320f87.323ed","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":812.00390625,"y":624.0039310455322,"z":"9e04e9a4.f67a48","wires":[["7b681dba.6ee5b4"]]},{"id":"7b681dba.6ee5b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":993.2420654296875,"y":625.0040531158447,"z":"9e04e9a4.f67a48","wires":[["6e412045.72665","785b82f7.c95c3c","f9bd493e.491498"]]},{"id":"785b82f7.c95c3c","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1499.2303009033203,"y":1008.8611717224121,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"c7c6e669.4c0ea8","type":"other","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":820.00390625,"y":689.0039310455322,"z":"9e04e9a4.f67a48","wires":[["6ddc5a42.cfe224"]]},{"id":"6ddc5a42.cfe224","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1001.2420654296875,"y":690.0040531158447,"z":"9e04e9a4.f67a48","wires":[["6e412045.72665","462ccc94.6beb64","f9bd493e.491498"]]},{"id":"48de2ebb.c0365","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":2166.81356048584,"y":1114.1110935211182,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"82971b8d.ec65e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":811.0039100646973,"y":749.0039215087891,"z":"9e04e9a4.f67a48","wires":[["148d6e51.ec1a92"]]},{"id":"148d6e51.ec1a92","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":993.00390625,"y":748.0039310455322,"z":"9e04e9a4.f67a48","wires":[]},{"id":"1e0000f5.f479bf","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":623.1150054931641,"y":957.6983890533447,"z":"9e04e9a4.f67a48","wires":[]},{"id":"4eefcd8e.4dcfc4","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":2041.7342681884766,"y":520.765832901001,"z":"9e04e9a4.f67a48","wires":[["1628ac3e.d64384"]]},{"id":"6e412045.72665","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1319.1984252929688,"y":489.08722496032715,"z":"9e04e9a4.f67a48","wires":[["ad0b44f0.57c218","c8bc796a.7462d8"]]},{"id":"ad0b44f0.57c218","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1618.4483032226562,"y":487.3372230529785,"z":"9e04e9a4.f67a48","wires":[["4cf192f7.6ad02c"]]},{"id":"c8bc796a.7462d8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1572.4483337402344,"y":520.3372440338135,"z":"9e04e9a4.f67a48","wires":[["f7a3bf51.65627"]]},{"id":"1628ac3e.d64384","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n","comments":"","outputs":1,"x":2332.1628189086914,"y":520.0159168243408,"z":"9e04e9a4.f67a48","wires":[["8dbd4d82.f084c"]]},{"id":"8dbd4d82.f084c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2521.1151733398438,"y":520.908655166626,"z":"9e04e9a4.f67a48","wires":[["9cf530e.b6158d"]]},{"id":"9cf530e.b6158d","type":"set","name":"set tmp.nidx and network-data","xml":"<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\n","comments":"","x":2754.646942138672,"y":519.6586627960205,"z":"9e04e9a4.f67a48","wires":[]},{"id":"371caf2.937dc5","type":"comment","name":"Find the index to service data for this network - save id in tmp.nidx, save service-data","info":"","comments":"","x":1498.5594482421875,"y":454.33723640441895,"z":"9e04e9a4.f67a48","wires":[]},{"id":"ccc1a22f.17742","type":"comment","name":"service-data  will not be stored until we have a network-id","info":"","comments":"","x":1325.6707000732422,"y":65.22616004943848,"z":"9e04e9a4.f67a48","wires":[]},{"id":"4cf192f7.6ad02c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n","comments":"","x":1810.2258605957031,"y":485.2262210845947,"z":"9e04e9a4.f67a48","wires":[]},{"id":"f7a3bf51.65627","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1739.7182998657227,"y":519.8918209075928,"z":"9e04e9a4.f67a48","wires":[["4eefcd8e.4dcfc4","d4dba645.f19fb8"]]},{"id":"d4dba645.f19fb8","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":1968.7858123779297,"y":570.2490320205688,"z":"9e04e9a4.f67a48","wires":[["d8ff3217.6edda","87d798a7.78ab9"]]},{"id":"c07f7024.caab9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n","comments":"","x":2321.642795562744,"y":565.9632740020752,"z":"9e04e9a4.f67a48","wires":[]},{"id":"d8ff3217.6edda","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2140.2143478393555,"y":568.8204174041748,"z":"9e04e9a4.f67a48","wires":[["c07f7024.caab9"]]},{"id":"a75318f4.373a38","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1384.0319290161133,"y":920.5625247955322,"z":"9e04e9a4.f67a48","wires":[["2e5752c8.ad50fe","bbfd426a.a73de"]]},{"id":"2e5752c8.ad50fe","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1749.0319086710606,"y":920.5625095367432,"z":"9e04e9a4.f67a48","wires":[["f1bdf407.7a7098"]]},{"id":"bbfd426a.a73de","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1699.0319557189941,"y":960.5625400543213,"z":"9e04e9a4.f67a48","wires":[["aebde0b1.1a71b"]]},{"id":"aebde0b1.1a71b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":1869.0319557189941,"y":960.5625400543213,"z":"9e04e9a4.f67a48","wires":[]},{"id":"462ccc94.6beb64","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1373.6349411010742,"y":1115.715295791626,"z":"9e04e9a4.f67a48","wires":[["291e18de.cf7f18","c96c41cb.84c93","851864a5.fcbbb8"]]},{"id":"291e18de.cf7f18","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1733.634910583496,"y":1115.715326309204,"z":"9e04e9a4.f67a48","wires":[["48de2ebb.c0365"]]},{"id":"c96c41cb.84c93","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1689.3848342895508,"y":1187.215389251709,"z":"9e04e9a4.f67a48","wires":[["79b40969.543ca8"]]},{"id":"79b40969.543ca8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":1880.7182540893555,"y":1185.8820180892944,"z":"9e04e9a4.f67a48","wires":[]},{"id":"851864a5.fcbbb8","type":"outcome","name":"outcome PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1736.865135192871,"y":1153.562494277954,"z":"9e04e9a4.f67a48","wires":[["48de2ebb.c0365"]]},{"id":"e560f1d4.fee42","type":"other","name":"changeassign","xml":"<outcome value='changeassign'>","comments":"","outputs":1,"x":837.0039463043213,"y":550.0039367675781,"z":"9e04e9a4.f67a48","wires":[["ce44237c.5be2d"]]},{"id":"ce44237c.5be2d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1016.25390625,"y":550.00390625,"z":"9e04e9a4.f67a48","wires":[["6e412045.72665","7ac1b98d.08b398"]]},{"id":"4f7c4ca5.5a39c4","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":2050.004066467285,"y":334.0039176940918,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"a8240529.3feab8","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1364.9721374511719,"y":293.95530700683594,"z":"9e04e9a4.f67a48","wires":[["7517ea2b.0da5b4","db31cd1e.e0cfa","93d594a7.6eeac8","9e432f80.85537"]]},{"id":"7517ea2b.0da5b4","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1731.97216796875,"y":291.95529079437256,"z":"9e04e9a4.f67a48","wires":[["b3c7f566.404088"]]},{"id":"db31cd1e.e0cfa","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1679.9721641540527,"y":333.955322265625,"z":"9e04e9a4.f67a48","wires":[["4f7c4ca5.5a39c4"]]},{"id":"b3c7f566.404088","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":2006.9723892211914,"y":287.9553394317627,"z":"9e04e9a4.f67a48","wires":[]},{"id":"9e432f80.85537","type":"outcome","name":"outcome PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1730.00390625,"y":257.00390625,"z":"9e04e9a4.f67a48","wires":[["b3c7f566.404088"]]},{"id":"93d594a7.6eeac8","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":1710.0039443969727,"y":222.00390815734863,"z":"9e04e9a4.f67a48","wires":[["b3c7f566.404088"]]},{"id":"7ac1b98d.08b398","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1476.2501754760742,"y":852.5000152587891,"z":"9e04e9a4.f67a48","wires":[[]]},{"id":"7e310ca2.ddc884","type":"set","name":"set object-path","xml":"<set>\n<parameter name='network-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $network-topology-operation-input.service-information.service-instance-id\n + '/service-data/networks/network/'\n + $networkId\n + '/network-data/network-topology/'` \" />\n \n","comments":"","x":632.5048828125,"y":863.7548828125,"z":"9e04e9a4.f67a48","wires":[]},{"id":"e15e95da.0c5038","type":"set","name":"set networkId","xml":"<set>\n<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\n","comments":"","x":626.7905158996582,"y":826.6119909286499,"z":"9e04e9a4.f67a48","wires":[]},{"id":"27b6f380.c84aac","type":"set","name":"set network-level-oper-status","xml":"<set>\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-rpc-action' value='`$network-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\n","comments":"","x":674.7905769348145,"y":909.1833562850952,"z":"9e04e9a4.f67a48","wires":[]},{"id":"f9bd493e.491498","type":"switchNode","name":"switch network-information.network-instance-group-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\n\n","comments":"","outputs":1,"x":1388.4423828125,"y":642.5048828125,"z":"9e04e9a4.f67a48","wires":[["9633a29a.a507e","9354dc6d.8f6cb"]]},{"id":"9633a29a.a507e","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1678.1922721862793,"y":672.6715660095215,"z":"9e04e9a4.f67a48","wires":[["f073821e.dc605"]]},{"id":"9354dc6d.8f6cb","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1675.8591690063477,"y":639.6714401245117,"z":"9e04e9a4.f67a48","wires":[["96d8f132.2319d"]]},{"id":"96d8f132.2319d","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":1836.192398071289,"y":636.6714973449707,"z":"9e04e9a4.f67a48","wires":[]},{"id":"869d510a.11315","type":"switchNode","name":"service-data.network-instance-groups.network-instance-group_length","xml":"<switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\n","comments":"","outputs":1,"x":2162.267951965332,"y":670.9373474121094,"z":"9e04e9a4.f67a48","wires":[["6c9060fd.81509","523bb131.81c94"]]},{"id":"6c9060fd.81509","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2527.5177307128906,"y":672.9373207092285,"z":"9e04e9a4.f67a48","wires":[["2843030f.4bc7ec"]]},{"id":"523bb131.81c94","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2507.5177307128906,"y":707.9373207092285,"z":"9e04e9a4.f67a48","wires":[["7ff73a97.aa0634"]]},{"id":"f073821e.dc605","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1812.3035278320312,"y":673.1159706115723,"z":"9e04e9a4.f67a48","wires":[["869d510a.11315"]]},{"id":"f3155af3.fb2478","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3937.511589050293,"y":713.1479244232178,"z":"9e04e9a4.f67a48","wires":[["1b137fef.7ea88"]]},{"id":"bf03131d.937eb","type":"set","name":"set tmp.ngidx and ctx.network-instance-group-data","xml":"<set>\n<parameter name='tmp.ngidx' value='`$ngidx`' />\n<parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\n","comments":"","x":4380.043556213379,"y":712.89794921875,"z":"9e04e9a4.f67a48","wires":[]},{"id":"1b137fef.7ea88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4086.130027770996,"y":713.0051097869873,"z":"9e04e9a4.f67a48","wires":[["bf03131d.937eb"]]},{"id":"4ff03708.0c0798","type":"for","name":"for ngidx..service-data.network-instance-groups.network-instance-group[]","xml":"<for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\n","comments":"","outputs":1,"x":3114.379951477051,"y":711.2548971176147,"z":"9e04e9a4.f67a48","wires":[["c86f06ee.494348"]]},{"id":"c86f06ee.494348","type":"switchNode","name":"switch network-instance-group-id found","xml":"<switch test=\"`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`\">\n\n","comments":"","outputs":1,"x":3559.808547973633,"y":711.0050659179688,"z":"9e04e9a4.f67a48","wires":[["f3155af3.fb2478"]]},{"id":"7ff73a97.aa0634","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2726.3638305664062,"y":709.1308221817017,"z":"9e04e9a4.f67a48","wires":[["4ff03708.0c0798"]]},{"id":"2843030f.4bc7ec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data\" />\n","comments":"","x":2719.0673828125,"y":672.5048875808716,"z":"9e04e9a4.f67a48","wires":[]},{"id":"87d798a7.78ab9","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2139.75,"y":599.75,"z":"9e04e9a4.f67a48","wires":[["489f12a9.f43554"]]},{"id":"489f12a9.f43554","type":"set","name":"set nidx","xml":"<set>\n<parameter name='nidx' value='`$tmp.nidx`' />\n","comments":"","x":2296.75,"y":600.75,"z":"9e04e9a4.f67a48","wires":[]}]
\ No newline at end of file
index 528eb1b..06127c8 100755 (executable)
@@ -1 +1,242 @@
-[{"id":"5ea66244.2043ac","type":"dgstart","name":"DGSTART","outputs":1,"x":101.42857360839844,"y":82.85714721679688,"z":"2f4e466a.a72c1a","wires":[["1488d42d.2b4bec"]]},{"id":"1488d42d.2b4bec","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.04759979248047,"y":123.09526062011719,"z":"2f4e466a.a72c1a","wires":[["accb6834.19e2e8"]]},{"id":"accb6834.19e2e8","type":"method","name":"method policy-manager-create-policy","xml":"<method rpc='policy-manager-create-policy' mode='sync'>\n","comments":"","outputs":1,"x":186.8572006225586,"y":162.85714721679688,"z":"2f4e466a.a72c1a","wires":[["4c2a088b.3e0ba8"]]},{"id":"dfa928b6.5c06b8","type":"comment","name":"policy-manager-create-policy","info":"","comments":"","x":495.77342987060547,"y":30.443490982055664,"z":"2f4e466a.a72c1a","wires":[]},{"id":"4c2a088b.3e0ba8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":217.1428680419922,"y":324.28570556640625,"z":"2f4e466a.a72c1a","wires":[["189efe08.1f8952","e0ad431.613cbc"]]},{"id":"189efe08.1f8952","type":"execute","name":"RestapiCallnode createPolicy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.createpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/createPolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n","comments":"","outputs":1,"x":472.8571548461914,"y":284.2857074737549,"z":"2f4e466a.a72c1a","wires":[["1edc5a5e.259046","ac8ecfcb.7d84c"]]},{"id":"1edc5a5e.259046","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":685.7142562866211,"y":258.5714349746704,"z":"2f4e466a.a72c1a","wires":[["c0e63f5a.e0d5e"]]},{"id":"c0e63f5a.e0d5e","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":849.428581237793,"y":258.4999108314514,"z":"2f4e466a.a72c1a","wires":[["8a75b361.99d53"]]},{"id":"ac8ecfcb.7d84c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":681.8517951965332,"y":306.4946479797363,"z":"2f4e466a.a72c1a","wires":[["3c3c68db.b16138"]]},{"id":"8a75b361.99d53","type":"execute","name":"RestapiCallnode pushPolicy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.pushpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/pushPolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n","comments":"","outputs":1,"x":1084.2857666015625,"y":222.85716438293457,"z":"2f4e466a.a72c1a","wires":[["dd3bc8bc.e85af8","5808b3a9.1ba37c"]]},{"id":"dd3bc8bc.e85af8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1290,"y":195.71431159973145,"z":"2f4e466a.a72c1a","wires":[["fe10eb1e.6c23a8"]]},{"id":"fe10eb1e.6c23a8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1453.7143249511719,"y":195.64278745651245,"z":"2f4e466a.a72c1a","wires":[[]]},{"id":"5808b3a9.1ba37c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1286.137538909912,"y":243.63752460479736,"z":"2f4e466a.a72c1a","wires":[["731c4238.4b27ac"]]},{"id":"3c3c68db.b16138","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to create policy in Policy Manager' />\n","comments":"","x":847.1428680419922,"y":306.5714521408081,"z":"2f4e466a.a72c1a","wires":[]},{"id":"731c4238.4b27ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to push policy in Policy Manager' />\n","comments":"","x":1450.5714225769043,"y":243.28573417663574,"z":"2f4e466a.a72c1a","wires":[]},{"id":"e0ad431.613cbc","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":425.71429443359375,"y":362.857138633728,"z":"2f4e466a.a72c1a","wires":[]}]
+[
+    {
+        "id": "5ea66244.2043ac",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 101.42857360839844,
+        "y": 82.85714721679688,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "1488d42d.2b4bec"
+            ]
+        ]
+    },
+    {
+        "id": "1488d42d.2b4bec",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 215.04759979248047,
+        "y": 123.09526062011719,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "accb6834.19e2e8"
+            ]
+        ]
+    },
+    {
+        "id": "accb6834.19e2e8",
+        "type": "method",
+        "name": "method policy-manager-create-policy",
+        "xml": "<method rpc='policy-manager-create-policy' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 186.8572006225586,
+        "y": 162.85714721679688,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "4c2a088b.3e0ba8"
+            ]
+        ]
+    },
+    {
+        "id": "dfa928b6.5c06b8",
+        "type": "comment",
+        "name": "policy-manager-create-policy",
+        "info": "",
+        "comments": "",
+        "x": 495.77342987060547,
+        "y": 30.443490982055664,
+        "z": "2f4e466a.a72c1a",
+        "wires": []
+    },
+    {
+        "id": "4c2a088b.3e0ba8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 217.1428680419922,
+        "y": 324.28570556640625,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "189efe08.1f8952",
+                "e0ad431.613cbc"
+            ]
+        ]
+    },
+    {
+        "id": "189efe08.1f8952",
+        "type": "execute",
+        "name": "RestapiCallnode createPolicy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.createpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/createPolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 472.8571548461914,
+        "y": 284.2857074737549,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "1edc5a5e.259046",
+                "ac8ecfcb.7d84c"
+            ]
+        ]
+    },
+    {
+        "id": "1edc5a5e.259046",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 685.7142562866211,
+        "y": 258.5714349746704,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "c0e63f5a.e0d5e"
+            ]
+        ]
+    },
+    {
+        "id": "c0e63f5a.e0d5e",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 849.428581237793,
+        "y": 258.4999108314514,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "8a75b361.99d53"
+            ]
+        ]
+    },
+    {
+        "id": "ac8ecfcb.7d84c",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 681.8517951965332,
+        "y": 306.4946479797363,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "3c3c68db.b16138"
+            ]
+        ]
+    },
+    {
+        "id": "8a75b361.99d53",
+        "type": "execute",
+        "name": "RestapiCallnode pushPolicy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.pushpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/pushPolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1084.2857666015625,
+        "y": 222.85716438293457,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "dd3bc8bc.e85af8",
+                "5808b3a9.1ba37c"
+            ]
+        ]
+    },
+    {
+        "id": "dd3bc8bc.e85af8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1290,
+        "y": 195.71431159973145,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "fe10eb1e.6c23a8"
+            ]
+        ]
+    },
+    {
+        "id": "fe10eb1e.6c23a8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1453.7143249511719,
+        "y": 195.64278745651245,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5808b3a9.1ba37c",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1286.137538909912,
+        "y": 243.63752460479736,
+        "z": "2f4e466a.a72c1a",
+        "wires": [
+            [
+                "731c4238.4b27ac"
+            ]
+        ]
+    },
+    {
+        "id": "3c3c68db.b16138",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to create policy in Policy Manager' />\n",
+        "comments": "",
+        "x": 847.1428680419922,
+        "y": 306.5714521408081,
+        "z": "2f4e466a.a72c1a",
+        "wires": []
+    },
+    {
+        "id": "731c4238.4b27ac",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to push policy in Policy Manager' />\n",
+        "comments": "",
+        "x": 1450.5714225769043,
+        "y": 243.28573417663574,
+        "z": "2f4e466a.a72c1a",
+        "wires": []
+    },
+    {
+        "id": "e0ad431.613cbc",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n",
+        "comments": "",
+        "x": 425.71429443359375,
+        "y": 362.857138633728,
+        "z": "2f4e466a.a72c1a",
+        "wires": []
+    }
+]
\ No newline at end of file
index 3bb45e4..974dd10 100755 (executable)
@@ -1 +1,242 @@
-[{"id":"d581c562.c43188","type":"dgstart","name":"DGSTART","outputs":1,"x":105.71428680419922,"y":82.85714721679688,"z":"3db8bf99.514be","wires":[["fe2cb5ef.9a8118"]]},{"id":"fe2cb5ef.9a8118","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":219.33331298828125,"y":123.09526062011719,"z":"3db8bf99.514be","wires":[["afb77106.81ec6"]]},{"id":"afb77106.81ec6","type":"method","name":"method policy-manager-delete-policy","xml":"<method rpc='policy-manager-delete-policy' mode='sync'>\n","comments":"","outputs":1,"x":191.14291381835938,"y":162.85714721679688,"z":"3db8bf99.514be","wires":[["fac4023.3e872"]]},{"id":"7456b083.f5c67","type":"comment","name":"policy-manager-delete-policy","info":"","comments":"","x":500.05914306640625,"y":30.443490982055664,"z":"3db8bf99.514be","wires":[]},{"id":"fac4023.3e872","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":221.42858123779297,"y":324.28570556640625,"z":"3db8bf99.514be","wires":[["e7322979.b0b9c8","fbc41199.2cc44"]]},{"id":"e7322979.b0b9c8","type":"execute","name":"RestapiCallnode deletePolicy PDP","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypdp.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/deletePolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n","comments":"","outputs":1,"x":499.99998474121094,"y":284.28571224212646,"z":"3db8bf99.514be","wires":[["47d31b8a.83ea94","fef211f6.ec11e"]]},{"id":"47d31b8a.83ea94","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":728.5714263916016,"y":260.0000009536743,"z":"3db8bf99.514be","wires":[["3d158249.ff10fe"]]},{"id":"3d158249.ff10fe","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":892.2857513427734,"y":259.9284768104553,"z":"3db8bf99.514be","wires":[["56e0237b.2129ac"]]},{"id":"fef211f6.ec11e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":724.7089653015137,"y":307.92321395874023,"z":"3db8bf99.514be","wires":[["2cb54eeb.c893e2"]]},{"id":"f1cdea53.99d408","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1370.0000076293945,"y":233.5714454650879,"z":"3db8bf99.514be","wires":[["37d77ceb.7b75b4"]]},{"id":"37d77ceb.7b75b4","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1533.7143325805664,"y":233.4999213218689,"z":"3db8bf99.514be","wires":[[]]},{"id":"e6cf96c3.b55948","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1366.1375465393066,"y":281.4946584701538,"z":"3db8bf99.514be","wires":[["898e79aa.dcca08"]]},{"id":"2cb54eeb.c893e2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to delete policy from Policy Manager (PDP)' />\n","comments":"","x":890.0000381469727,"y":308.000018119812,"z":"3db8bf99.514be","wires":[]},{"id":"fbc41199.2cc44","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":438.5714111328125,"y":362.85710525512695,"z":"3db8bf99.514be","wires":[]},{"id":"56e0237b.2129ac","type":"execute","name":"RestapiCallnode deletePolicy PAP","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypap.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/deletePolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n","comments":"","outputs":1,"x":1131.4286193847656,"y":259.14286613464355,"z":"3db8bf99.514be","wires":[["f1cdea53.99d408","e6cf96c3.b55948"]]},{"id":"898e79aa.dcca08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to delete policy from Policy Manager (PAP)' />\n","comments":"","x":1529.1429328918457,"y":282.2857246398926,"z":"3db8bf99.514be","wires":[]}]
+[
+    {
+        "id": "d581c562.c43188",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 105.71428680419922,
+        "y": 82.85714721679688,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "fe2cb5ef.9a8118"
+            ]
+        ]
+    },
+    {
+        "id": "fe2cb5ef.9a8118",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 219.33331298828125,
+        "y": 123.09526062011719,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "afb77106.81ec6"
+            ]
+        ]
+    },
+    {
+        "id": "afb77106.81ec6",
+        "type": "method",
+        "name": "method policy-manager-delete-policy",
+        "xml": "<method rpc='policy-manager-delete-policy' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 191.14291381835938,
+        "y": 162.85714721679688,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "fac4023.3e872"
+            ]
+        ]
+    },
+    {
+        "id": "7456b083.f5c67",
+        "type": "comment",
+        "name": "policy-manager-delete-policy",
+        "info": "",
+        "comments": "",
+        "x": 500.05914306640625,
+        "y": 30.443490982055664,
+        "z": "3db8bf99.514be",
+        "wires": []
+    },
+    {
+        "id": "fac4023.3e872",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 221.42858123779297,
+        "y": 324.28570556640625,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "e7322979.b0b9c8",
+                "fbc41199.2cc44"
+            ]
+        ]
+    },
+    {
+        "id": "e7322979.b0b9c8",
+        "type": "execute",
+        "name": "RestapiCallnode deletePolicy PDP",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypdp.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/deletePolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 499.99998474121094,
+        "y": 284.28571224212646,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "47d31b8a.83ea94",
+                "fef211f6.ec11e"
+            ]
+        ]
+    },
+    {
+        "id": "47d31b8a.83ea94",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 728.5714263916016,
+        "y": 260.0000009536743,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "3d158249.ff10fe"
+            ]
+        ]
+    },
+    {
+        "id": "3d158249.ff10fe",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 892.2857513427734,
+        "y": 259.9284768104553,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "56e0237b.2129ac"
+            ]
+        ]
+    },
+    {
+        "id": "fef211f6.ec11e",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 724.7089653015137,
+        "y": 307.92321395874023,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "2cb54eeb.c893e2"
+            ]
+        ]
+    },
+    {
+        "id": "f1cdea53.99d408",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1370.0000076293945,
+        "y": 233.5714454650879,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "37d77ceb.7b75b4"
+            ]
+        ]
+    },
+    {
+        "id": "37d77ceb.7b75b4",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1533.7143325805664,
+        "y": 233.4999213218689,
+        "z": "3db8bf99.514be",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e6cf96c3.b55948",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1366.1375465393066,
+        "y": 281.4946584701538,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "898e79aa.dcca08"
+            ]
+        ]
+    },
+    {
+        "id": "2cb54eeb.c893e2",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to delete policy from Policy Manager (PDP)' />\n",
+        "comments": "",
+        "x": 890.0000381469727,
+        "y": 308.000018119812,
+        "z": "3db8bf99.514be",
+        "wires": []
+    },
+    {
+        "id": "fbc41199.2cc44",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n",
+        "comments": "",
+        "x": 438.5714111328125,
+        "y": 362.85710525512695,
+        "z": "3db8bf99.514be",
+        "wires": []
+    },
+    {
+        "id": "56e0237b.2129ac",
+        "type": "execute",
+        "name": "RestapiCallnode deletePolicy PAP",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypap.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/deletePolicy'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name='convertResponse' value=\"false\" />\n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1131.4286193847656,
+        "y": 259.14286613464355,
+        "z": "3db8bf99.514be",
+        "wires": [
+            [
+                "f1cdea53.99d408",
+                "e6cf96c3.b55948"
+            ]
+        ]
+    },
+    {
+        "id": "898e79aa.dcca08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to delete policy from Policy Manager (PAP)' />\n",
+        "comments": "",
+        "x": 1529.1429328918457,
+        "y": 282.2857246398926,
+        "z": "3db8bf99.514be",
+        "wires": []
+    }
+]
\ No newline at end of file
index 9c22c1f..318584d 100755 (executable)
@@ -1 +1,445 @@
-[{"id":"2b8f0645.8e4dda","type":"comment","name":"POLICY-UPDATE-NOTIFY-OPERATION","info":"","comments":"","x":538.3928527832031,"y":34.28571319580078,"z":"c4ddb531.504de8","wires":[]},{"id":"640c5bf2.e2b254","type":"dgstart","name":"DGSTART","outputs":1,"x":110.14285278320312,"y":85.03571319580078,"z":"c4ddb531.504de8","wires":[["6371d353.9eabbc"]]},{"id":"6371d353.9eabbc","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":224.46426391601562,"y":124.7023868560791,"z":"c4ddb531.504de8","wires":[["af806a5c.37c7f8"]]},{"id":"af806a5c.37c7f8","type":"method","name":"method policy-update-notify-operation","xml":"<method rpc='policy-update-notify-operation' mode='sync'>\n","comments":"","outputs":1,"x":201,"y":165.0357151031494,"z":"c4ddb531.504de8","wires":[["59ff8d7a.32d3d4"]]},{"id":"d17a989.54e5868","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n","comments":"","x":338.3810272216797,"y":578.9882106781006,"z":"c4ddb531.504de8","wires":[]},{"id":"3cfb5438.adb59c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":680.2977676391602,"y":313.80953311920166,"z":"c4ddb531.504de8","wires":[["4c9eba0e.d56fd4","bbad0a81.e6a3e8","5bf6f09a.aa2a","dadfe54.591ea18","5210aeb1.e5ac2"]]},{"id":"4c9eba0e.d56fd4","type":"execute","name":"RestapiCallnode getConfig","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/getConfig'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='responsePrefix' value=\"policy\" />    \n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n","comments":"","outputs":1,"x":938.5714569091797,"y":365.7142572402954,"z":"c4ddb531.504de8","wires":[["371b8aa7.b584d6","eb8e6d2.61e729"]]},{"id":"bbad0a81.e6a3e8","type":"execute","name":"readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":904.285774230957,"y":198.57144355773926,"z":"c4ddb531.504de8","wires":[[]]},{"id":"371b8aa7.b584d6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1145.7143020629883,"y":342.85714054107666,"z":"c4ddb531.504de8","wires":[["bc023fa9.fe4ae"]]},{"id":"bc023fa9.fe4ae","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1309.4286270141602,"y":342.78561639785767,"z":"c4ddb531.504de8","wires":[[]]},{"id":"eb8e6d2.61e729","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1141.8518409729004,"y":390.7803535461426,"z":"c4ddb531.504de8","wires":[["c447c4e0.dd61f8"]]},{"id":"c447c4e0.dd61f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to get policy from Policy Manager' />\n","comments":"","x":1306.2857246398926,"y":390.42856311798096,"z":"c4ddb531.504de8","wires":[]},{"id":"5bf6f09a.aa2a","type":"execute","name":"execute Contrail API update network policy","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='update' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$cloud-region-id`' />\n<parameter name='update-network-policy-json' value='`$policy.config`' />","comments":"","outputs":1,"x":987.1428680419922,"y":467.14284801483154,"z":"c4ddb531.504de8","wires":[["fca9fae0.1cd838","cadf6d1d.e304e"]]},{"id":"fca9fae0.1cd838","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1240.0000457763672,"y":444.2856969833374,"z":"c4ddb531.504de8","wires":[["9b561741.693e18"]]},{"id":"9b561741.693e18","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1403.714370727539,"y":444.2141728401184,"z":"c4ddb531.504de8","wires":[[]]},{"id":"cadf6d1d.e304e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1236.1375846862793,"y":492.2089099884033,"z":"c4ddb531.504de8","wires":[["bc7e3f77.a2464"]]},{"id":"bc7e3f77.a2464","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to get policy from Policy Manager' />\n","comments":"","x":1400.5714683532715,"y":491.8571195602417,"z":"c4ddb531.504de8","wires":[]},{"id":"50b08b49.336914","type":"switchNode","name":"switch update-type","xml":"<switch test='`$policy-update-notify-operation-input.update-type`'>\n","comments":"","outputs":1,"x":349.9999771118164,"y":314.2857093811035,"z":"c4ddb531.504de8","wires":[["8100e6ab.3c2318"]]},{"id":"59ff8d7a.32d3d4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":140,"y":445.714298248291,"z":"c4ddb531.504de8","wires":[["50b08b49.336914","d17a989.54e5868"]]},{"id":"8100e6ab.3c2318","type":"outcome","name":"Update","xml":"<outcome value='Update'>\n","comments":"","outputs":1,"x":523.5714454650879,"y":313.85714530944824,"z":"c4ddb531.504de8","wires":[["3cfb5438.adb59c"]]},{"id":"dadfe54.591ea18","type":"save","name":"insert to POLICY_UPDATE_NOTIFICATION","xml":"<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.sql`\" pfx='pfx'>\n","comments":"","outputs":1,"x":992.8572158813477,"y":294.28569889068604,"z":"c4ddb531.504de8","wires":[[]]},{"id":"5210aeb1.e5ac2","type":"set","name":"set sql statement","xml":"<set>\n<parameter name='tmp.sql' value=\"`'insert into POLICY_UPDATE_NOTIFICATION (policy_name,version_id,update_type) values ( '\n+ ' $policy-update-notify-operation-input.policy-name , $policy-update-notify-operation-input.version-id , $policy-update-notify-operation-input.update-type )'`\" />\n\n","comments":"","x":909.9999465942383,"y":245.71427249908447,"z":"c4ddb531.504de8","wires":[]}]
+[
+    {
+        "id": "2b8f0645.8e4dda",
+        "type": "comment",
+        "name": "POLICY-UPDATE-NOTIFY-OPERATION",
+        "info": "",
+        "comments": "",
+        "x": 538.3928527832031,
+        "y": 34.28571319580078,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "640c5bf2.e2b254",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 110.14285278320312,
+        "y": 85.03571319580078,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "6371d353.9eabbc"
+            ]
+        ]
+    },
+    {
+        "id": "6371d353.9eabbc",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 224.46426391601562,
+        "y": 124.7023868560791,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "af806a5c.37c7f8"
+            ]
+        ]
+    },
+    {
+        "id": "af806a5c.37c7f8",
+        "type": "method",
+        "name": "method policy-update-notify-operation",
+        "xml": "<method rpc='policy-update-notify-operation' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 201,
+        "y": 165.0357151031494,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "59ff8d7a.32d3d4"
+            ]
+        ]
+    },
+    {
+        "id": "d17a989.54e5868",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n",
+        "comments": "",
+        "x": 325.04773712158203,
+        "y": 783.9882183074951,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "3cfb5438.adb59c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 665.2977752685547,
+        "y": 443.8095178604126,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "bbad0a81.e6a3e8",
+                "dadfe54.591ea18",
+                "5210aeb1.e5ac2",
+                "7d21e501.763d7c",
+                "4ca8d575.f2c99c",
+                "5d81f8f2.13ee78",
+                "9cb05511.ecfcc8",
+                "5bf6f09a.aa2a",
+                "4c9eba0e.d56fd4"
+            ]
+        ]
+    },
+    {
+        "id": "4c9eba0e.d56fd4",
+        "type": "execute",
+        "name": "RestapiCallnode getConfig",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/getConfig'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='responsePrefix' value=\"policy\" />    \n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 936.9048233032227,
+        "y": 420.7142581939697,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "371b8aa7.b584d6",
+                "eb8e6d2.61e729"
+            ]
+        ]
+    },
+    {
+        "id": "bbad0a81.e6a3e8",
+        "type": "execute",
+        "name": "readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 904.285774230957,
+        "y": 198.57144355773926,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "371b8aa7.b584d6",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1144.0476684570312,
+        "y": 397.857141494751,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "bc023fa9.fe4ae"
+            ]
+        ]
+    },
+    {
+        "id": "bc023fa9.fe4ae",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1307.7619934082031,
+        "y": 397.785617351532,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "eb8e6d2.61e729",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1140.1852073669434,
+        "y": 445.7803544998169,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "c447c4e0.dd61f8"
+            ]
+        ]
+    },
+    {
+        "id": "c447c4e0.dd61f8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to get policy from Policy Manager' />\n",
+        "comments": "",
+        "x": 1304.6190910339355,
+        "y": 445.4285640716553,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "5bf6f09a.aa2a",
+        "type": "execute",
+        "name": "execute Contrail API update network policy",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='network-policy' />\n<parameter name='api-action' value='update' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='cloud-region-id' value='`$policy-splits[1]`' />\n<parameter name='update-network-policy-json' value='`$policy.config`' />",
+        "comments": "",
+        "outputs": 1,
+        "x": 973.8094635009766,
+        "y": 725.4761505126953,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "fca9fae0.1cd838",
+                "cadf6d1d.e304e"
+            ]
+        ]
+    },
+    {
+        "id": "fca9fae0.1cd838",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1226.6666412353516,
+        "y": 702.6189994812012,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "9b561741.693e18"
+            ]
+        ]
+    },
+    {
+        "id": "9b561741.693e18",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1390.3809661865234,
+        "y": 702.5474753379822,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "cadf6d1d.e304e",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1222.8041801452637,
+        "y": 750.5422124862671,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "bc7e3f77.a2464"
+            ]
+        ]
+    },
+    {
+        "id": "bc7e3f77.a2464",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Error updating Contrail: ' + $contrailResp.resp-message`\" />\n",
+        "comments": "",
+        "x": 1385.809440612793,
+        "y": 751.6189785003662,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "50b08b49.336914",
+        "type": "switchNode",
+        "name": "switch update-type",
+        "xml": "<switch test='`$policy-update-notify-operation-input.update-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 334.99998474121094,
+        "y": 444.28569412231445,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "8100e6ab.3c2318"
+            ]
+        ]
+    },
+    {
+        "id": "59ff8d7a.32d3d4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 123.33332824707031,
+        "y": 614.0476264953613,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "50b08b49.336914",
+                "d17a989.54e5868"
+            ]
+        ]
+    },
+    {
+        "id": "8100e6ab.3c2318",
+        "type": "outcome",
+        "name": "Update",
+        "xml": "<outcome value='Update'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 508.5714530944824,
+        "y": 443.8571300506592,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "3cfb5438.adb59c"
+            ]
+        ]
+    },
+    {
+        "id": "dadfe54.591ea18",
+        "type": "save",
+        "name": "insert to POLICY_UPDATE_NOTIFICATION",
+        "xml": "<save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.sql`\" pfx='pfx'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 992.8572158813477,
+        "y": 294.28569889068604,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5210aeb1.e5ac2",
+        "type": "set",
+        "name": "set sql statement",
+        "xml": "<set>\n<parameter name='tmp.sql' value=\"`'insert into POLICY_UPDATE_NOTIFICATION (policy_name,version_id,update_type) values ( '\n+ ' $policy-update-notify-operation-input.policy-name , $policy-update-notify-operation-input.version-id , $policy-update-notify-operation-input.update-type )'`\" />\n\n",
+        "comments": "",
+        "x": 909.9999465942383,
+        "y": 245.71427249908447,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "7d21e501.763d7c",
+        "type": "set",
+        "name": "set tmp.policy-name",
+        "xml": "<set>\n<parameter name='tmp.policy-name' value='`$policy-update-notify-operation-input.policy-name`' />\n",
+        "comments": "",
+        "x": 916.6665954589844,
+        "y": 343.33336639404297,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "4ca8d575.f2c99c",
+        "type": "execute",
+        "name": "convert json config to variables",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx' >\n    <parameter name='source' value=\"policy.config\" />\n    <parameter name='outputPath' value=\"tmp.config-ctx\" />\n    <parameter name='isEscaped' value='false' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 938.3333129882812,
+        "y": 520,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "215a8f00.3a1142",
+                "bf040853.679c08"
+            ]
+        ]
+    },
+    {
+        "id": "215a8f00.3a1142",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1145.4761581420898,
+        "y": 497.14288330078125,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "dc65e70.190b018"
+            ]
+        ]
+    },
+    {
+        "id": "dc65e70.190b018",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1309.1904830932617,
+        "y": 497.07135915756226,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bf040853.679c08",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1141.613697052002,
+        "y": 545.0660963058472,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            [
+                "c3c3e9d5.9be4c8"
+            ]
+        ]
+    },
+    {
+        "id": "c3c3e9d5.9be4c8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to convert config variable from PolicyManager' />\n",
+        "comments": "",
+        "x": 1306.0475807189941,
+        "y": 544.7143058776855,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "5d81f8f2.13ee78",
+        "type": "set",
+        "name": "set policy-name",
+        "xml": "<set>\n<parameter name='policy-name' value='`$tmp.config-ctx.content.fq_name[2]`' />\n",
+        "comments": "",
+        "x": 888.3333282470703,
+        "y": 608.3333606719971,
+        "z": "c4ddb531.504de8",
+        "wires": []
+    },
+    {
+        "id": "9cb05511.ecfcc8",
+        "type": "execute",
+        "name": "execute split",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$policy-name`\" />\n    <parameter name=\"regex\" value=\"_\"/>\n    <parameter name=\"limit\" value=\"3\" />\n    <parameter name=\"ctx_memory_result_key\" value=\"policy-splits\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 876.9047546386719,
+        "y": 657.6190423965454,
+        "z": "c4ddb531.504de8",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-get-policy.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-get-policy.json
new file mode 100644 (file)
index 0000000..486f0a9
--- /dev/null
@@ -0,0 +1,623 @@
+[
+    {
+        "id": "7c240df1.6781c4",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 110,
+        "y": 91.42857360839844,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "dedc83da.c4349"
+            ]
+        ]
+    },
+    {
+        "id": "dedc83da.c4349",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 223.85713577270508,
+        "y": 131.23811149597168,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "dfb24d0c.2db3f"
+            ]
+        ]
+    },
+    {
+        "id": "dfb24d0c.2db3f",
+        "type": "method",
+        "name": "method port-mirror-get-policy",
+        "xml": "<method rpc='port-mirror-get-policy' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 172.42862701416016,
+        "y": 172.42857360839844,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "4883d77b.032d28"
+            ]
+        ]
+    },
+    {
+        "id": "684506ac.6795f8",
+        "type": "comment",
+        "name": "port-mirror-get-policy",
+        "info": "",
+        "comments": "",
+        "x": 515.3210983276367,
+        "y": 34.40427303314209,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "4883d77b.032d28",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 153.3333511352539,
+        "y": 478.09523010253906,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "f7d9a896.cf5de8",
+                "fb8923b4.bd56c",
+                "7801d204.937cbc",
+                "8913e0a1.253a",
+                "47b76e8a.2929c",
+                "2c07a59d.60025a",
+                "aa12e112.2f8bd"
+            ]
+        ]
+    },
+    {
+        "id": "fb8923b4.bd56c",
+        "type": "execute",
+        "name": "RestapiCallnode getConfig",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`\" />\n    <parameter name='restapiUrl' value=\"`$prop.policy-manager.url + '/pdp/api/getConfig'`\" />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='POST' />\n    <parameter name='responsePrefix' value=\"policy\" />    \n    <parameter name='customHttpHeaders'\n      value=\"`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 446.66664123535156,
+        "y": 298.09522438049316,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "827dce65.48224",
+                "9effab4f.242cd8"
+            ]
+        ]
+    },
+    {
+        "id": "827dce65.48224",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 653.8094863891602,
+        "y": 275.2381076812744,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "fb7ccb16.ee0298"
+            ]
+        ]
+    },
+    {
+        "id": "fb7ccb16.ee0298",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 817.523811340332,
+        "y": 275.1665835380554,
+        "z": "aabede20.89a51",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9effab4f.242cd8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 649.9470252990723,
+        "y": 323.16132068634033,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "17302ca7.ec4b13"
+            ]
+        ]
+    },
+    {
+        "id": "17302ca7.ec4b13",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to get policy from Policy Manager' />\n",
+        "comments": "",
+        "x": 814.3809089660645,
+        "y": 322.8095302581787,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "7801d204.937cbc",
+        "type": "execute",
+        "name": "convert json config to variables",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx' >\n    <parameter name='source' value=\"policy.config\" />\n    <parameter name='outputPath' value=\"tmp.config-ctx\" />\n    <parameter name='isEscaped' value='false' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 453.0951156616211,
+        "y": 397.38094329833984,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "849bff9a.446d3",
+                "c6ca48ae.e5cc58"
+            ]
+        ]
+    },
+    {
+        "id": "849bff9a.446d3",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 660.2379608154297,
+        "y": 374.5238265991211,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "a0c3cf22.714c7"
+            ]
+        ]
+    },
+    {
+        "id": "a0c3cf22.714c7",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 823.9522857666016,
+        "y": 374.4523024559021,
+        "z": "aabede20.89a51",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c6ca48ae.e5cc58",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 656.3754997253418,
+        "y": 422.447039604187,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "e9ddad6b.d165b"
+            ]
+        ]
+    },
+    {
+        "id": "e9ddad6b.d165b",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Failed to convert config variable from PolicyManager' />\n",
+        "comments": "",
+        "x": 820.809383392334,
+        "y": 422.0952491760254,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "f7d9a896.cf5de8",
+        "type": "set",
+        "name": "set tmp.policy-name",
+        "xml": "<set>\n<parameter name='tmp.policy-name' value='`$db.cap[0].policy-name`' />\n",
+        "comments": "",
+        "x": 426.66667429606105,
+        "y": 223.09524281819654,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "f823c40b.99b648",
+        "type": "set",
+        "name": "set tmp.dest-p-interface from productionContext",
+        "xml": "<set>\n<parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.productionContext`' />\n",
+        "comments": "",
+        "x": 1268.750015258789,
+        "y": 578.4285373687744,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "2c07a59d.60025a",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n",
+        "comments": "",
+        "x": 407.5000991821289,
+        "y": 850.1786298751831,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "8913e0a1.253a",
+        "type": "switchNode",
+        "name": "switch lc-tenant-context",
+        "xml": "<switch test='`$tmp.lc-tenant-context`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 434.166690826416,
+        "y": 574.7618494033813,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "883f5bc7.851688",
+                "89d18dfc.fe3f9"
+            ]
+        ]
+    },
+    {
+        "id": "c7d91e4f.cd2b2",
+        "type": "set",
+        "name": "set tmp.dest-p-interface from testContext",
+        "xml": "<set>\n<parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.testContext`' />\n",
+        "comments": "",
+        "x": 1605.833396911621,
+        "y": 622.4285373687744,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "6f1dcecb.0bf3e",
+        "type": "set",
+        "name": "set tmp.dest-p-interface from developmentContext",
+        "xml": "<set>\n<parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.developmentContext`' />\n",
+        "comments": "",
+        "x": 1999.1666564941406,
+        "y": 663.9285373687744,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "d0335872.4a8e58",
+        "type": "set",
+        "name": "set tmp.dest-p-interface",
+        "xml": "<set>\n<parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.defaultContext`' />\n",
+        "comments": "",
+        "x": 2283.333282470703,
+        "y": 703.9286003112793,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "e3391f9f.5f004",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unexpected tenant-context value of ' + $tmp.tenant-context`\" />\n",
+        "comments": "",
+        "x": 2252.0834007263184,
+        "y": 768.9285402297974,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "47b76e8a.2929c",
+        "type": "switchNode",
+        "name": "switch tmp.dest-p-interface",
+        "xml": "<switch test='`$tmp.dest-p-interface`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 447.50000762939453,
+        "y": 791.8453493118286,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "fe95b2b0.257d8"
+            ]
+        ]
+    },
+    {
+        "id": "fe95b2b0.257d8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 647.5000228881836,
+        "y": 791.8452577590942,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "a6b2a82a.01ec88"
+            ]
+        ]
+    },
+    {
+        "id": "a6b2a82a.01ec88",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find p-interface in policy ' + tmp.policy-name`\" />\n",
+        "comments": "",
+        "x": 807.4999542236328,
+        "y": 791.8452672958374,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "883f5bc7.851688",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 638.7500076293945,
+        "y": 533.9286003112793,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "5b6d06f7.787ce8"
+            ]
+        ]
+    },
+    {
+        "id": "5b6d06f7.787ce8",
+        "type": "set",
+        "name": "set tmp.dest-p-interface from defaultContext",
+        "xml": "<set>\n<parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.defaultContext`' />\n",
+        "comments": "",
+        "x": 881.25,
+        "y": 533.9285869598389,
+        "z": "aabede20.89a51",
+        "wires": []
+    },
+    {
+        "id": "aa12e112.2f8bd",
+        "type": "execute",
+        "name": "convert tenant-context to lower case",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"toLower\">\n\t<parameter name=\"source\" value=\"`$tmp.tenant-context`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.lc-tenant-context\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 470.00000762939453,
+        "y": 475.00000762939453,
+        "z": "aabede20.89a51",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "89d18dfc.fe3f9",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 640.0000076293945,
+        "y": 617.5000095367432,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "d320e4c3.2e4e58"
+            ]
+        ]
+    },
+    {
+        "id": "d320e4c3.2e4e58",
+        "type": "execute",
+        "name": "lc-tenant-contains 'prod'",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"contains\" emitsOutcome='true'>\n\t<parameter name=\"source\" value=\"`$tmp.lc-tenant-context`\" />\n\t<parameter name=\"target\" value=\"prod\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 818.75,
+        "y": 617.5,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "92d9b5db.979da8",
+                "a5418501.6535b8"
+            ]
+        ]
+    },
+    {
+        "id": "92d9b5db.979da8",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1012.5,
+        "y": 578.75,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "f823c40b.99b648"
+            ]
+        ]
+    },
+    {
+        "id": "a5418501.6535b8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1012.5000152587891,
+        "y": 657.5000095367432,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "21ec97e6.1cc748"
+            ]
+        ]
+    },
+    {
+        "id": "21ec97e6.1cc748",
+        "type": "execute",
+        "name": "lc-tenant-contains 'test'",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"contains\" emitsOutcome='true'>\n\t<parameter name=\"source\" value=\"`$tmp.lc-tenant-context`\" />\n\t<parameter name=\"target\" value=\"test\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1192.750015258789,
+        "y": 657.5000095367432,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "b12ce223.87118",
+                "17e1a4f2.79a74b"
+            ]
+        ]
+    },
+    {
+        "id": "b12ce223.87118",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1373.75,
+        "y": 622.5,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "c7d91e4f.cd2b2"
+            ]
+        ]
+    },
+    {
+        "id": "17e1a4f2.79a74b",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1375.0000190734863,
+        "y": 701.2500095367432,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "db100bb2.6b8818"
+            ]
+        ]
+    },
+    {
+        "id": "db100bb2.6b8818",
+        "type": "execute",
+        "name": "lc-tenant-contains 'dev'",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"contains\" emitsOutcome='true'>\n\t<parameter name=\"source\" value=\"`$tmp.lc-tenant-context`\" />\n\t<parameter name=\"target\" value=\"dev\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1550.666618347168,
+        "y": 701.3214712142944,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "6c48c803.9e2048",
+                "b666f52e.6438e8"
+            ]
+        ]
+    },
+    {
+        "id": "6c48c803.9e2048",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1731.666603088379,
+        "y": 665.0714626312256,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "6f1dcecb.0bf3e"
+            ]
+        ]
+    },
+    {
+        "id": "b666f52e.6438e8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1732.9166526794434,
+        "y": 740.0714836120605,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "b7ae12df.bfc5b"
+            ]
+        ]
+    },
+    {
+        "id": "b7ae12df.bfc5b",
+        "type": "execute",
+        "name": "lc-tenant-contains 'default'",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"contains\" emitsOutcome='true'>\n\t<parameter name=\"source\" value=\"`$tmp.lc-tenant-context`\" />\n\t<parameter name=\"target\" value=\"default\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1915,
+        "y": 737.5,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "d449adab.fe626",
+                "e9137b95.e207f8"
+            ]
+        ]
+    },
+    {
+        "id": "d449adab.fe626",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2104.7499809265137,
+        "y": 706.2499914169312,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "d0335872.4a8e58"
+            ]
+        ]
+    },
+    {
+        "id": "e9137b95.e207f8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2103.4999961853027,
+        "y": 771.2500009536743,
+        "z": "aabede20.89a51",
+        "wires": [
+            [
+                "e3391f9f.5f004"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.json
new file mode 100644 (file)
index 0000000..bccbc55
--- /dev/null
@@ -0,0 +1,279 @@
+[
+    {
+        "id": "3b7d475e.717be8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 102.85714721679688,
+        "y": 92.85714721679688,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "d74e703a.20613"
+            ]
+        ]
+    },
+    {
+        "id": "d74e703a.20613",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 216.71428298950195,
+        "y": 132.66668510437012,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "cb52845f.272378"
+            ]
+        ]
+    },
+    {
+        "id": "cb52845f.272378",
+        "type": "method",
+        "name": "method port-mirror-rollback-capacity-db",
+        "xml": "<method rpc='port-mirror-rollback-capacity-db' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 196.28577423095703,
+        "y": 173.85714721679688,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "f6902b28.e39428"
+            ]
+        ]
+    },
+    {
+        "id": "4ca6c070.6907e",
+        "type": "comment",
+        "name": "port-mirror-rollback-capacity-db",
+        "info": "",
+        "comments": "",
+        "x": 508.1782455444336,
+        "y": 35.83284664154053,
+        "z": "41e68dff.7b4254",
+        "wires": []
+    },
+    {
+        "id": "f6902b28.e39428",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 203.9523696899414,
+        "y": 338.4761772155762,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "923db1f2.d4148",
+                "3ee9cda9.644ed2",
+                "19e81c3c.942fa4"
+            ]
+        ]
+    },
+    {
+        "id": "9f4506c7.640918",
+        "type": "update",
+        "name": "update VNICS_CAPACITY",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"update VNICS_CAPACITY\n     set available_capacity = $tmp.avail-capacity\n     where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id\n     and vnic_port_name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name\n\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 1524.6665267944336,
+        "y": 286.3333053588867,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f24a7712.96c968",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CAPACITY",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select available_capacity\n    from VNICS_CAPACITY\n    where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id\n    and vnic_port_name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name'\n  pfx='db.vnics-capacity'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 909.6664810180664,
+        "y": 263.000093460083,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "b048d9ab.c070f8"
+            ]
+        ]
+    },
+    {
+        "id": "cf81b663.384118",
+        "type": "set",
+        "name": "add source capacity back",
+        "xml": "<set>\n<parameter name='tmp.avail-capacity' value='`$db.vnics-capacity.available-capacity + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity`' />\n",
+        "comments": "",
+        "x": 1522.9998588562012,
+        "y": 234.6667184829712,
+        "z": "41e68dff.7b4254",
+        "wires": []
+    },
+    {
+        "id": "b048d9ab.c070f8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1157.999885559082,
+        "y": 261.333345413208,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "cd281a51.6ede38"
+            ]
+        ]
+    },
+    {
+        "id": "cd281a51.6ede38",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1318.0000457763672,
+        "y": 261.333327293396,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "cf81b663.384118",
+                "9f4506c7.640918"
+            ]
+        ]
+    },
+    {
+        "id": "923db1f2.d4148",
+        "type": "delete",
+        "name": "delete VNICS_CONFIGURATION_ID record",
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='delete from VNICS_CONFIGURATION_ID\n  \twhere configuration_id = $tmp.configuration-id\n    and vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' >",
+        "comments": "",
+        "outputs": 1,
+        "x": 482.9999694824219,
+        "y": 341.33331298828125,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3ee9cda9.644ed2",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CONFIGURATION_ID for vnics-group-id",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select configuration_id\n    from VNICS_CONFIGURATION_ID\n    where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id'\n  pfx='db.vnics-confid'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 540.666618347168,
+        "y": 427.9999084472656,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "374e0adc.26a606"
+            ]
+        ]
+    },
+    {
+        "id": "374e0adc.26a606",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 855.6666030883789,
+        "y": 426.33338356018066,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "8af09ab.de69f68"
+            ]
+        ]
+    },
+    {
+        "id": "35222c7a.050654",
+        "type": "delete",
+        "name": "delete VNICS_CAPACITY records",
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='delete from VNICS_CAPACITY\n  \twhere vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' >",
+        "comments": "",
+        "outputs": 1,
+        "x": 1222.3333854675293,
+        "y": 392.99996757507324,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8af09ab.de69f68",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1000.6665878295898,
+        "y": 424.6666736602783,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "35222c7a.050654",
+                "338f14c9.07a05c"
+            ]
+        ]
+    },
+    {
+        "id": "338f14c9.07a05c",
+        "type": "delete",
+        "name": "delete VNICS_CAPACITY_GROUP record",
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='delete from VNICS_CAPACITY_GROUP\n  \twhere vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' >",
+        "comments": "",
+        "outputs": 1,
+        "x": 1247.3332633972168,
+        "y": 452.9999294281006,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "19e81c3c.942fa4",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 437.3333053588867,
+        "y": 263.6666564941406,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "547c6970.9036e8"
+            ]
+        ]
+    },
+    {
+        "id": "547c6970.9036e8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 660.666633605957,
+        "y": 263.33308029174805,
+        "z": "41e68dff.7b4254",
+        "wires": [
+            [
+                "f24a7712.96c968"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.json
new file mode 100644 (file)
index 0000000..350234d
--- /dev/null
@@ -0,0 +1,1487 @@
+[
+    {
+        "id": "5b66f619.481ca8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 102.5,
+        "y": 87.41365623474121,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "9093334f.03cc8"
+            ]
+        ]
+    },
+    {
+        "id": "9093334f.03cc8",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 216.11902618408203,
+        "y": 127.65176963806152,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "46eaf795.4ef9e8"
+            ]
+        ]
+    },
+    {
+        "id": "46eaf795.4ef9e8",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-activate-async",
+        "xml": "<method rpc='port-mirror-topology-operation-activate-async' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 237.78578186035156,
+        "y": 168.84222412109375,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "4baa79f1.773a78"
+            ]
+        ]
+    },
+    {
+        "id": "5ade5695.4e98b8",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-activate-async",
+        "info": "",
+        "comments": "",
+        "x": 496.84485626220703,
+        "y": 35,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "9dfceaea.eb6098",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n",
+        "comments": "",
+        "x": 426.19053649902344,
+        "y": 1876.2829875946045,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "4baa79f1.773a78",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 130.11906051635742,
+        "y": 919.7945442199707,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "9dfceaea.eb6098",
+                "9d7c2f24.883c3",
+                "c318a2df.7e96a",
+                "20309f96.3358a",
+                "1c40385c.325dd8",
+                "cf922003.19ed6",
+                "42b72587.aeabfc",
+                "cc56f026.30c05",
+                "2720d8dd.1d2888",
+                "1a03c81f.4db2c8",
+                "2301271e.b9e618",
+                "76f4edeb.848074",
+                "4a2861ff.8c4dd",
+                "66b97c5c.100cc4"
+            ]
+        ]
+    },
+    {
+        "id": "9d7c2f24.883c3",
+        "type": "set",
+        "name": "set tmp variables",
+        "xml": "<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n\n",
+        "comments": "",
+        "x": 438.4523506164551,
+        "y": 258.12796211242676,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "c318a2df.7e96a",
+        "type": "set",
+        "name": "set port-mirror-configuration data from input",
+        "xml": "<set>\n<parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />\n",
+        "comments": "",
+        "x": 517.2619323730469,
+        "y": 593.3659725189209,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "1a03c81f.4db2c8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 559.9405288696289,
+        "y": 1737.2946586608887,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "20d19532.83d93a",
+                "46b3d868.4e0598",
+                "c179bec7.58ec"
+            ]
+        ]
+    },
+    {
+        "id": "20309f96.3358a",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 457.7381057739258,
+        "y": 306.2231864929199,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1c40385c.325dd8",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 499.40484619140625,
+        "y": 354.37803649902344,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "669414b9.13962c",
+        "type": "comment",
+        "name": "rpc-port-mirror 1070",
+        "info": "",
+        "comments": "",
+        "x": 427.0238342285156,
+        "y": 690.508918762207,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "518cb61a.5d7d28",
+        "type": "comment",
+        "name": "step 4 - for each source port:",
+        "info": "",
+        "comments": "",
+        "x": 477.0238800048828,
+        "y": 845.2708034515381,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "36ffd2a4.3fef6e",
+        "type": "comment",
+        "name": "1. turn on packet mirroring in contrail (see input parameters spreadsheet)",
+        "info": "",
+        "comments": "",
+        "x": 822.7381591796875,
+        "y": 938.127875328064,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "3743c99d.19d286",
+        "type": "comment",
+        "name": "2. set is-port-mirrored in A&AI (aai-port-mirror-1040) ",
+        "info": "",
+        "comments": "",
+        "x": 625.8334121704102,
+        "y": 1294.0804176330566,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "84422f16.c64f1",
+        "type": "comment",
+        "name": "step 5 - update configuration object (aai-port-mirror-1070)",
+        "info": "",
+        "comments": "",
+        "x": 560.3573226928711,
+        "y": 1421.4613437652588,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "1e115862.718808",
+        "type": "comment",
+        "name": "step 6 - update oper status",
+        "info": "",
+        "comments": "",
+        "x": 554.642936706543,
+        "y": 1591.4613199234009,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "cf922003.19ed6",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='pm.configuration-data.configuration-oper-status.order-status'\n  value='Active' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-action'\n  value='`$port-mirror-topology-operation-input.request-information.request-action`' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />\n",
+        "comments": "",
+        "x": 431.07147216796875,
+        "y": 1635.747018814087,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "b5f3f5f0.9a29c8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'$error-message'`\" />\n",
+        "comments": "",
+        "x": 1636.3096771240234,
+        "y": 2031.9372997283936,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "a94cb68e.ce8ec8",
+        "type": "configure",
+        "name": "send error to MSO",
+        "xml": "<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"500\" />\n<parameter name=\"input.response-message\" value=\"`$error-message`\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1654.001766204834,
+        "y": 1985.4032258987427,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "cb2b8a7c.9946e8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1446.3096771240234,
+        "y": 2004.7944774627686,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "a94cb68e.ce8ec8",
+                "b5f3f5f0.9a29c8"
+            ]
+        ]
+    },
+    {
+        "id": "c179bec7.58ec",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 867.2618789672852,
+        "y": 1776.6993389129639,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "46404dc.0055ab4"
+            ]
+        ]
+    },
+    {
+        "id": "46b3d868.4e0598",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 859.6905136108398,
+        "y": 1735.1993589401245,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "46404dc.0055ab4"
+            ]
+        ]
+    },
+    {
+        "id": "20d19532.83d93a",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 863.4405059814453,
+        "y": 1695.556456565857,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "43655533.51c43c"
+            ]
+        ]
+    },
+    {
+        "id": "43655533.51c43c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1000.8107757568359,
+        "y": 1694.6057996749878,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "52a144a4.16f3bc",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Error updating md-sal for port-mirror-configuration\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1226.6801223754883,
+        "y": 1743.2721109390259,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "46404dc.0055ab4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1022.6800231933594,
+        "y": 1749.2721853256226,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "52a144a4.16f3bc",
+                "17d97b45.54b115"
+            ]
+        ]
+    },
+    {
+        "id": "2301271e.b9e618",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"pm-mdsal\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 552.5,
+        "y": 442.17554473876953,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "87629ab5.d3e158",
+                "b1aab94e.c85a18",
+                "62a4327.1f6e7cc"
+            ]
+        ]
+    },
+    {
+        "id": "87629ab5.d3e158",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 857.7959594726562,
+        "y": 398.4595613479614,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "25dfdff8.aaf1a"
+            ]
+        ]
+    },
+    {
+        "id": "b1aab94e.c85a18",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 853.9285430908203,
+        "y": 440.5088119506836,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "907e66e7.8ae6a8"
+            ]
+        ]
+    },
+    {
+        "id": "25dfdff8.aaf1a",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1009.6427993774414,
+        "y": 398.8420944213867,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "62a4327.1f6e7cc",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 860.8333129882812,
+        "y": 483.8422203063965,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "83c77205.8a342"
+            ]
+        ]
+    },
+    {
+        "id": "907e66e7.8ae6a8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1032.5,
+        "y": 440.5088863372803,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "af67f274.d2307",
+                "cb2b8a7c.9946e8"
+            ]
+        ]
+    },
+    {
+        "id": "83c77205.8a342",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1030.833251953125,
+        "y": 482.1755428314209,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "36634427.23548c",
+                "cb2b8a7c.9946e8"
+            ]
+        ]
+    },
+    {
+        "id": "af67f274.d2307",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to read port-mirror-configuration from MD-SAL\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1237.5,
+        "y": 438.8421993255615,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "36634427.23548c",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Cannot find port-mirror-configuration in MD-SAL\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1234.1666259765625,
+        "y": 483.8421993255615,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "42b72587.aeabfc",
+        "type": "set",
+        "name": "set pm",
+        "xml": "<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />\n",
+        "comments": "",
+        "x": 404.16667556762695,
+        "y": 545.5088768005371,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "5f135d1f.6da3d4",
+        "type": "comment",
+        "name": "step 3 - call DG to apply route policy",
+        "info": "",
+        "comments": "",
+        "x": 497.50000762939453,
+        "y": 737.1755886077881,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "33f08c48.ac39c4",
+        "type": "call",
+        "name": "call api-contrail-route-topology-operation-activate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-activate' mode='sync' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1112.0236740112305,
+        "y": 802.8891315460205,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "409f455d.7e97cc"
+            ]
+        ]
+    },
+    {
+        "id": "409f455d.7e97cc",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1403.2142181396484,
+        "y": 801.4604616165161,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "cb2b8a7c.9946e8"
+            ]
+        ]
+    },
+    {
+        "id": "1f339ae1.7e9945",
+        "type": "set",
+        "name": "set parameters",
+        "xml": "<set>\n<parameter name='cto-api.default-domain' value='default-domain' />\n<parameter name='cto-api.default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='cto-api.cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cto-api.contrail-route-allotted-resource-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />\n<parameter name='cto-api.src-contrail-network-fqdn'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn`' />\n<parameter name='cto-api.collector-contrail-network-fqdn'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='cto-api.owning-entity'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />\n",
+        "comments": "",
+        "x": 1007.0236892700195,
+        "y": 759.555980682373,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "cc56f026.30c05",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 466.0712890625,
+        "y": 893.1271686553955,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "d2de6b9.c85cf98"
+            ]
+        ]
+    },
+    {
+        "id": "d2de6b9.c85cf98",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 454.1664810180664,
+        "y": 1166.221978187561,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "156f04a3.ab4e6b",
+                "8c26df81.34a5a",
+                "f887cdd.0a0d33"
+            ]
+        ]
+    },
+    {
+        "id": "2c2fabce.b42c34",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to enable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='enable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='traffic-direction' value='both' />\n<parameter name='analyzer-ip-address'\n  value='`$tmp.analyzer.ip-address`' />\n<parameter name='udp-port' value='8099' />\n<parameter name='routing-instance'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='local-preference' value='1' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1174.6428909301758,
+        "y": 1194.5563316345215,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "8e6a90d8.54e6d",
+                "9bb8036f.2b542"
+            ]
+        ]
+    },
+    {
+        "id": "8e6a90d8.54e6d",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1463.9284362792969,
+        "y": 1245.2707290649414,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "ecf4f173.580a"
+            ]
+        ]
+    },
+    {
+        "id": "b9f3fac3.bb5568",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n    <parameter name=\"error-message\" value=\"`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1796.7857818603516,
+        "y": 1245.270746231079,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ecf4f173.580a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1609.6427917480469,
+        "y": 1245.2707290649414,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "b9f3fac3.bb5568",
+                "cb2b8a7c.9946e8"
+            ]
+        ]
+    },
+    {
+        "id": "156f04a3.ab4e6b",
+        "type": "switchNode",
+        "name": "switch ipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 685.1190872192383,
+        "y": 982.4136581420898,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "9ca91e45.69dae",
+                "d44612d6.5899b"
+            ]
+        ]
+    },
+    {
+        "id": "d44612d6.5899b",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 850.8332824707031,
+        "y": 1023.8422298431396,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "c8d71660.7cd7f8"
+            ]
+        ]
+    },
+    {
+        "id": "9ca91e45.69dae",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 853.6904296875,
+        "y": 980.9851217269897,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "166a986c.b15718"
+            ]
+        ]
+    },
+    {
+        "id": "166a986c.b15718",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />\n",
+        "comments": "",
+        "x": 1045.1191177368164,
+        "y": 979.5565509796143,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "c8d71660.7cd7f8",
+        "type": "switchNode",
+        "name": "switch ipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1022.2619476318359,
+        "y": 1023.8421955108643,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2e56fc40.6f6d44",
+                "d6835a48.98f2c8"
+            ]
+        ]
+    },
+    {
+        "id": "d6835a48.98f2c8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1183.6905364990234,
+        "y": 1066.6993732452393,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "672a9034.4db54"
+            ]
+        ]
+    },
+    {
+        "id": "2e56fc40.6f6d44",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1186.5476837158203,
+        "y": 1023.8422651290894,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "934fa49b.ab4b48"
+            ]
+        ]
+    },
+    {
+        "id": "934fa49b.ab4b48",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />\n",
+        "comments": "",
+        "x": 1377.9763717651367,
+        "y": 1022.4136943817139,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "672a9034.4db54",
+        "type": "switchNode",
+        "name": "switch vipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1355.1192016601562,
+        "y": 1066.6993389129639,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "71ee4607.c8dec8",
+                "d7e38600.c720f8"
+            ]
+        ]
+    },
+    {
+        "id": "d7e38600.c720f8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1517.9761810302734,
+        "y": 1106.6993732452393,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "5d222c5f.7e8574"
+            ]
+        ]
+    },
+    {
+        "id": "71ee4607.c8dec8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1519.40474319458,
+        "y": 1065.2709398269653,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "5973e388.4447dc"
+            ]
+        ]
+    },
+    {
+        "id": "5973e388.4447dc",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />\n",
+        "comments": "",
+        "x": 1712.2620162963867,
+        "y": 1062.4136943817139,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "5d222c5f.7e8574",
+        "type": "switchNode",
+        "name": "switch vipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1689.4048461914062,
+        "y": 1106.6993389129639,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "37537bc8.5de5c4",
+                "141ebb8.809aa45"
+            ]
+        ]
+    },
+    {
+        "id": "141ebb8.809aa45",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1859.8810005187988,
+        "y": 1149.7947750091553,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "ff1880e.8c26e8"
+            ]
+        ]
+    },
+    {
+        "id": "37537bc8.5de5c4",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1857.976276397705,
+        "y": 1106.6995286941528,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2b3161dd.2d635e"
+            ]
+        ]
+    },
+    {
+        "id": "2b3161dd.2d635e",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />\n",
+        "comments": "",
+        "x": 2050.8335494995117,
+        "y": 1103.8422832489014,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "c1b0625d.b0c22",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n    <parameter name=\"error-message\" value=\"`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2193.6905364990234,
+        "y": 1148.1279621124268,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ff1880e.8c26e8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2006.5475463867188,
+        "y": 1148.127944946289,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "c1b0625d.b0c22",
+                "17d97b45.54b115"
+            ]
+        ]
+    },
+    {
+        "id": "8c26df81.34a5a",
+        "type": "save",
+        "name": "update l-interface object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l-interface\"\n   key=\"cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id\n     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner\n     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id\n     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"is-port-mirrored\" value=\"true\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 688.9286422729492,
+        "y": 1335.50901222229,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2ac43ee8.92b012",
+                "423c6134.c60e6",
+                "e4b0b593.a44888"
+            ]
+        ]
+    },
+    {
+        "id": "2ac43ee8.92b012",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 909.9525451660156,
+        "y": 1336.2710342407227,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "642dae65.a043d"
+            ]
+        ]
+    },
+    {
+        "id": "423c6134.c60e6",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 918.5239944458008,
+        "y": 1291.2712287902832,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "642dae65.a043d"
+            ]
+        ]
+    },
+    {
+        "id": "642dae65.a043d",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1087.976173400879,
+        "y": 1311.6993608474731,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "a5024b1c.62a428",
+                "17d97b45.54b115"
+            ]
+        ]
+    },
+    {
+        "id": "a5024b1c.62a428",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1284.642707824707,
+        "y": 1310.0325956344604,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2720d8dd.1d2888",
+        "type": "save",
+        "name": "update configuration object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"operational-status\" value=\"in-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 468.4524154663086,
+        "y": 1491.4614448547363,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "4a933093.ed2b5",
+                "baf9eee7.66408"
+            ]
+        ]
+    },
+    {
+        "id": "4a933093.ed2b5",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 672.8097343444824,
+        "y": 1515.0807542800903,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "d1df8438.f8a798"
+            ]
+        ]
+    },
+    {
+        "id": "baf9eee7.66408",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 681.3811492919922,
+        "y": 1464.3665571212769,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "a3982d20.86c2c"
+            ]
+        ]
+    },
+    {
+        "id": "d1df8438.f8a798",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 855.1190795898438,
+        "y": 1516.4610977172852,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "f7fc2fc5.e0c0e",
+                "17d97b45.54b115"
+            ]
+        ]
+    },
+    {
+        "id": "a3982d20.86c2c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 855.1190567016602,
+        "y": 1464.7947645187378,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "f1da12be.e4fe3",
+                "17d97b45.54b115"
+            ]
+        ]
+    },
+    {
+        "id": "f7fc2fc5.e0c0e",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failure updating configuration object in AAI\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1041.7857055664062,
+        "y": 1516.4610977172852,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f1da12be.e4fe3",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Unable to find configuration object in AAI\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1051.7856674194336,
+        "y": 1463.1280298233032,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9bb8036f.2b542",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1466.7856521606445,
+        "y": 1193.1278247833252,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "b6bccbf6.e923e8"
+            ]
+        ]
+    },
+    {
+        "id": "b6bccbf6.e923e8",
+        "type": "set",
+        "name": "set contrail-set[]",
+        "xml": "<set>\n<parameter name='contrail-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 1622.4998588562012,
+        "y": 1191.6993570327759,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "e4b0b593.a44888",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 914.1666717529297,
+        "y": 1378.3661165237427,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "9d1cdd1b.d4fd9"
+            ]
+        ]
+    },
+    {
+        "id": "9d1cdd1b.d4fd9",
+        "type": "set",
+        "name": "set l-interface-set[]",
+        "xml": "<set>\n<parameter name='l-interface-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 1077.0237274169922,
+        "y": 1379.7948369979858,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "44a2f705.4029d8",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1694.1667556762695,
+        "y": 1875.746953010559,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2ef18cf0.f0c604"
+            ]
+        ]
+    },
+    {
+        "id": "2ef18cf0.f0c604",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1927.0239334106445,
+        "y": 1874.318242073059,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "6fb5c952.c67498",
+                "f71edbf2.13f818"
+            ]
+        ]
+    },
+    {
+        "id": "f71edbf2.13f818",
+        "type": "switchNode",
+        "name": "switch contrail-set[] == 'true'",
+        "xml": "<switch test=\"`$contrail-set[$src-idx] == 'true'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2154.166961669922,
+        "y": 1831.4612035751343,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2e40dd2d.cbff82"
+            ]
+        ]
+    },
+    {
+        "id": "6fb5c952.c67498",
+        "type": "switchNode",
+        "name": "switch l-interface-set[] == 'true'",
+        "xml": "<switch test=\"`$l-interface-set[$src-idx] == 'true'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2155.5954666137695,
+        "y": 1904.318242073059,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "d5a055d6.de8358"
+            ]
+        ]
+    },
+    {
+        "id": "17d97b45.54b115",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1461.309700012207,
+        "y": 1878.604130744934,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "cb2b8a7c.9946e8",
+                "44a2f705.4029d8"
+            ]
+        ]
+    },
+    {
+        "id": "89fa86c4.b77bd8",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to disable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='disable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2612.500228881836,
+        "y": 1830.1275453567505,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7096d601.0c9028",
+        "type": "save",
+        "name": "update l-interface object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l-interface\"\n   key=\"cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id\n     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner\n     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id\n     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"is-port-mirrored\" value=\"false\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2533.6907081604004,
+        "y": 1903.556529045105,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2e40dd2d.cbff82",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2349.1668586730957,
+        "y": 1830.5089178085327,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "89fa86c4.b77bd8"
+            ]
+        ]
+    },
+    {
+        "id": "d5a055d6.de8358",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2350.8332595825195,
+        "y": 1903.841923713684,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "7096d601.0c9028"
+            ]
+        ]
+    },
+    {
+        "id": "76f4edeb.848074",
+        "type": "configure",
+        "name": "send success to MSO",
+        "xml": "<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"200\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 449.16666412353516,
+        "y": 1825.5088558197021,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "66b97c5c.100cc4",
+        "type": "switchNode",
+        "name": "switch configuration-sub-type",
+        "xml": "<switch test='`$tmp.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 472.49999237060547,
+        "y": 781.6666774749756,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "80efab22.bce288"
+            ]
+        ]
+    },
+    {
+        "id": "80efab22.bce288",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 670.4999923706055,
+        "y": 781.6666774749756,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "c8f11099.9fc8f"
+            ]
+        ]
+    },
+    {
+        "id": "c8f11099.9fc8f",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 829.166618347168,
+        "y": 781.6667079925537,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "1f339ae1.7e9945",
+                "33f08c48.ac39c4"
+            ]
+        ]
+    },
+    {
+        "id": "4a2861ff.8c4dd",
+        "type": "set",
+        "name": "set tmp.configuration-sub-type",
+        "xml": "<set>\n<parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />\n",
+        "comments": "",
+        "x": 475.83333587646484,
+        "y": 643.3333606719971,
+        "z": "a7f7f582.4f3378",
+        "wires": []
+    },
+    {
+        "id": "f887cdd.0a0d33",
+        "type": "switchNode",
+        "name": "switch configuration-sub-type",
+        "xml": "<switch test='`$tmp.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 710.8333358764648,
+        "y": 1221.6666021347046,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "67100eb7.3ecce",
+                "d0476eef.c40b5"
+            ]
+        ]
+    },
+    {
+        "id": "67100eb7.3ecce",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 912.1666450500488,
+        "y": 1194.9999055862427,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "2c2fabce.b42c34"
+            ]
+        ]
+    },
+    {
+        "id": "d0476eef.c40b5",
+        "type": "outcome",
+        "name": "pprobe",
+        "xml": "<outcome value='pprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 912.5000228881836,
+        "y": 1244.9998540878296,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "4c074c9.6a81eb4"
+            ]
+        ]
+    },
+    {
+        "id": "4c074c9.6a81eb4",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to enable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='enable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='traffic-direction' value='both' />\n<parameter name='analyzer-ip-address'\n  value='`$tmp.analyzer.ip-address`' />\n<parameter name='vni' value='1000' />\n<parameter name='udp-port' value='8099' />\n<parameter name='routing-instance'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='local-preference' value='1' />\n<parameter name='juniper-header' value='false' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1174.1666946411133,
+        "y": 1244.9999256134033,
+        "z": "a7f7f582.4f3378",
+        "wires": [
+            [
+                "9bb8036f.2b542",
+                "8e6a90d8.54e6d"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.json
new file mode 100644 (file)
index 0000000..272d376
--- /dev/null
@@ -0,0 +1,267 @@
+[
+    {
+        "id": "b1a78d2.95bac7",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 104.28571319580078,
+        "y": 78.57142639160156,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "2d041c0a.32a7e4"
+            ]
+        ]
+    },
+    {
+        "id": "2d041c0a.32a7e4",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 217.9047393798828,
+        "y": 118.80953979492188,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "f48fa1da.b76f"
+            ]
+        ]
+    },
+    {
+        "id": "f48fa1da.b76f",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-activate-sync",
+        "xml": "<method rpc='port-mirror-topology-operation-activate-sync' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 235.71434020996094,
+        "y": 158.57142639160156,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "55d92ce4.69af94"
+            ]
+        ]
+    },
+    {
+        "id": "b87df25d.ff00a",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-activate-sync",
+        "info": "",
+        "comments": "",
+        "x": 498.6305694580078,
+        "y": 26.15777015686035,
+        "z": "21d5a75b.fa4438",
+        "wires": []
+    },
+    {
+        "id": "55d92ce4.69af94",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 164.28571319580078,
+        "y": 522.8571376800537,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "e29417e9.9cde38",
+                "cb9d11d0.bb9c2",
+                "5b3c2fe0.47a87",
+                "ea14f2c2.9d79",
+                "a488fc13.57e4a",
+                "a7d56d93.aa1e"
+            ]
+        ]
+    },
+    {
+        "id": "e29417e9.9cde38",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='N' />",
+        "comments": "",
+        "x": 438.28570556640625,
+        "y": 624.2856521606445,
+        "z": "21d5a75b.fa4438",
+        "wires": []
+    },
+    {
+        "id": "cb9d11d0.bb9c2",
+        "type": "set",
+        "name": "set tmp.pm.configuration-id",
+        "xml": "<set>\n<parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n",
+        "comments": "",
+        "x": 479.00000762939453,
+        "y": 335.71427154541016,
+        "z": "21d5a75b.fa4438",
+        "wires": []
+    },
+    {
+        "id": "5b3c2fe0.47a87",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 467.1428527832031,
+        "y": 384.28569984436035,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ea14f2c2.9d79",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.pm.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 510.00001525878906,
+        "y": 431.4285469055176,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a488fc13.57e4a",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 570,
+        "y": 478.5714817047119,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "cceb4831.7bdd98",
+                "d2976e97.2a3bc"
+            ]
+        ]
+    },
+    {
+        "id": "cceb4831.7bdd98",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 868.1531219482422,
+        "y": 449.3793306350708,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "62e52870.2bf728"
+            ]
+        ]
+    },
+    {
+        "id": "d2976e97.2a3bc",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 865.7142601013184,
+        "y": 498.571424484253,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "eb26a4d1.4a8278"
+            ]
+        ]
+    },
+    {
+        "id": "eb26a4d1.4a8278",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`\" />\n",
+        "comments": "",
+        "x": 1379.9999389648438,
+        "y": 495.7142868041992,
+        "z": "21d5a75b.fa4438",
+        "wires": []
+    },
+    {
+        "id": "a7d56d93.aa1e",
+        "type": "switchNode",
+        "name": "switch order-status == 'Created'",
+        "xml": "<switch test=\"`$mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Created'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 492.857177734375,
+        "y": 552.8570899963379,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "eaf2afe9.4f1b8"
+            ]
+        ]
+    },
+    {
+        "id": "62e52870.2bf728",
+        "type": "switchNode",
+        "name": "switch length == 1",
+        "xml": "<switch test='`$mdsal-pmc.port-mirror-configuration_length == 1`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1047.142822265625,
+        "y": 448.5714387893677,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "6938e65d.459fb8"
+            ]
+        ]
+    },
+    {
+        "id": "6938e65d.459fb8",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1217.1428527832031,
+        "y": 448.5714302062988,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "eb26a4d1.4a8278"
+            ]
+        ]
+    },
+    {
+        "id": "eaf2afe9.4f1b8",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 721.4285888671875,
+        "y": 552.857177734375,
+        "z": "21d5a75b.fa4438",
+        "wires": [
+            [
+                "4d8be81c.2b6ce8"
+            ]
+        ]
+    },
+    {
+        "id": "4d8be81c.2b6ce8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Created'`\" />\n",
+        "comments": "",
+        "x": 882.857177734375,
+        "y": 551.4285888671875,
+        "z": "21d5a75b.fa4438",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.json
new file mode 100755 (executable)
index 0000000..f7f79b1
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"bb268559.fd3938","type":"dgstart","name":"DGSTART","outputs":1,"x":101.66666412353516,"y":87.41365623474121,"z":"ad46ffb1.59044","wires":[["a124bed3.35031"]]},{"id":"a124bed3.35031","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.6190414428711,"y":127.65177726745605,"z":"ad46ffb1.59044","wires":[["db524fe9.5dfcc"]]},{"id":"db524fe9.5dfcc","type":"method","name":"method port-mirror-topology-operation-assign-async","xml":"<method rpc='port-mirror-topology-operation-assign-async' mode='sync'>\n","comments":"","outputs":1,"x":232.95244598388672,"y":168.84222412109375,"z":"ad46ffb1.59044","wires":[["ac3d53ca.aefc2"]]},{"id":"19977dc1.9b6832","type":"comment","name":"port-mirror-topology-operation-assign-async","info":"","comments":"","x":496.0115203857422,"y":35,"z":"ad46ffb1.59044","wires":[]},{"id":"e5fd1f58.74f01","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='error-code' value='200' />\n","comments":"","x":410.2144241333008,"y":5452.700392484665,"z":"ad46ffb1.59044","wires":[]},{"id":"ac3d53ca.aefc2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":156.15477752685547,"y":2545.485157728195,"z":"ad46ffb1.59044","wires":[["e5fd1f58.74f01","ced2d211.53467","f9889d49.6fbf5","ce052c1a.cbe7c","8b585d79.bc124","4847ddc2.32a804","94761f86.c5ad2","bae20099.07b1f","17bc986f.814148","ac2e3332.29b9f","b4b42190.25a09","94e068c9.523098","b7f41d13.6fd4c","1b63f2c6.c9c3cd","3278f6bc.28dd4a","b0683757.70acd8","fc4ca4c9.69e018","59373ca.423e2c4","c1689047.89198","d3bec9cf.937968","39eab347.ba000c","b40e2769.9b66e8","8854e0fa.60ed8","e53b0107.99046","53a52a6c.d1cd64","1bbc7787.e7f1b8","a92de2b4.d0018","6aa6e65.77d1a18","72ac5c76.c8ab14","6e6309e.a9b13f8","ba91d904.ffefc8","7ee1327.81d79cc","b4aa58d9.1a6638","7c523201.d63ddc","6c94d29e.c7544c","f3bec0f8.38123","569bdf72.3da37","43966c.cbf36994","b26e3f0d.1d7c8","fb861ac2.aeb8b8","497d568b.0f1998","1bc76bf3.eeff44","34f89d01.613262","a44e08eb.db9948","fa51468e.921388"]]},{"id":"ced2d211.53467","type":"set","name":"set tmp variables","xml":"<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n<parameter name='tmp.src-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`' />\n<parameter name='tmp.dest-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`' />\n<parameter name='tmp.dest-pnf-name' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`' />\n<parameter name='tmp.service-instance-id' value='`$port-mirror-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='tmp.configuration-sub-type' value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\n","comments":"","x":434.23812103271484,"y":219.31843376159668,"z":"ad46ffb1.59044","wires":[]},{"id":"f9889d49.6fbf5","type":"set","name":"set port-mirror-configuration data","xml":"<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />\n<parameter name='pm.configuration-data.configuration-operation-information.request-information.'\n  value='`$port-mirror-topology-operation-input.request-information.`' />\n<parameter name='pm.configuration-data.configuration-operation-information.service-information.'\n  value='`$port-mirror-topology-operation-input.service-information.`' />\n<parameter name='pm.configuration-data.configuration-operation-information.configuration-information.'\n  value='`$port-mirror-topology-operation-input.configuration-information.`' />\n<parameter name='pm.configuration-data.configuration-operation-information.port-mirror-configuration-request-input.'\n  value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.`' />\n","comments":"","x":483.38097381591797,"y":265.8898448944092,"z":"ad46ffb1.59044","wires":[]},{"id":"4847ddc2.32a804","type":"execute","name":"execute RestApiCallNode - PUT port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n","comments":"","outputs":1,"x":541.8215942382812,"y":5323.652531385422,"z":"ad46ffb1.59044","wires":[["a3f19e94.a6218","a7b211de.53d8b","a4821754.dac1f8"]]},{"id":"a3f19e94.a6218","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":943.5581283569336,"y":5366.650751829147,"z":"ad46ffb1.59044","wires":[["df3069ed.4ad628"]]},{"id":"a7b211de.53d8b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":935.9867630004883,"y":5325.150771856308,"z":"ad46ffb1.59044","wires":[["df3069ed.4ad628"]]},{"id":"a4821754.dac1f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":939.7367553710938,"y":5285.50786948204,"z":"ad46ffb1.59044","wires":[["803a5100.a0eb2"]]},{"id":"803a5100.a0eb2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1077.1070251464844,"y":5284.557212591171,"z":"ad46ffb1.59044","wires":[[]]},{"id":"ce052c1a.cbe7c","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":454.5238723754883,"y":312.41370940208435,"z":"ad46ffb1.59044","wires":[[]]},{"id":"8b585d79.bc124","type":"execute","name":"generate port-mirror-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n","comments":"","outputs":1,"x":478.07159423828125,"y":5273.652478933334,"z":"ad46ffb1.59044","wires":[[]]},{"id":"ab26b1cb.6c458","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":773.642858505249,"y":350.2230501174927,"z":"ad46ffb1.59044","wires":[["c1e2010f.8bc8a"]]},{"id":"853dd343.7ef44","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":782.2142944335938,"y":393.50876331329346,"z":"ad46ffb1.59044","wires":[["c1e2010f.8bc8a"]]},{"id":"54196f0f.b7bed","type":"set","name":"set src TOSCA data","xml":"<set>\n<parameter name='tmp.src-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\n<parameter name='tmp.src-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\n<parameter name='tmp.src-network-role' value='`$db.cap[$cap-idx].network-role`' />\n","comments":"","x":1080.3809967041016,"y":428.8422772884369,"z":"ad46ffb1.59044","wires":[]},{"id":"94761f86.c5ad2","type":"for","name":"for each capability row","xml":"<for index='cap-idx' start='0' end='`$db.cap_length`' >\n","comments":"","outputs":1,"x":453.23809814453125,"y":455.9851453304291,"z":"ad46ffb1.59044","wires":[["5484d230.220e0c"]]},{"id":"5484d230.220e0c","type":"switchNode","name":"switch role","xml":"<switch test='`$db.cap[$cap-idx].role`'>\n","comments":"","outputs":1,"x":678.9523124694824,"y":455.9851453304291,"z":"ad46ffb1.59044","wires":[["d2c1922a.92cad","43255d7c.a2b224"]]},{"id":"d2c1922a.92cad","type":"outcome","name":"source","xml":"<outcome value='source'>\n","comments":"","outputs":1,"x":883.2380627223424,"y":428.84227674347994,"z":"ad46ffb1.59044","wires":[["54196f0f.b7bed"]]},{"id":"43255d7c.a2b224","type":"outcome","name":"collector","xml":"<outcome value='collector'>\n","comments":"","outputs":1,"x":886.5714073181152,"y":474.55655813217163,"z":"ad46ffb1.59044","wires":[["1912da.1a473d27"]]},{"id":"1912da.1a473d27","type":"set","name":"set dest TOSCA data","xml":"<set>\n<parameter name='tmp.dest-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\n<parameter name='tmp.dest-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\n<parameter name='tmp.dest-network-role' value='`$db.cap[$cap-idx].network-role`' />\n","comments":"","x":1086.5714569091797,"y":473.1279969215393,"z":"ad46ffb1.59044","wires":[]},{"id":"465844f2.75eb6c","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Error reading PORT_MIRROR_CONFIGURATION table\" />\n","comments":"","outputs":1,"x":1106.9777603149414,"y":343.73672008514404,"z":"ad46ffb1.59044","wires":[[]]},{"id":"48ebd9fd.1aa898","type":"comment","name":"Save data in port-mirror-configurations","info":"","comments":"","x":530.9287261962891,"y":5226.50967001915,"z":"ad46ffb1.59044","wires":[]},{"id":"b08e4195.35b89","type":"for","name":"for each vnfc-instance-group","xml":"<for index='vnfc-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' >\n","comments":"","outputs":1,"x":1086.1905822753906,"y":764.8422791957855,"z":"ad46ffb1.59044","wires":[["cfce73db.444a"]]},{"id":"bae20099.07b1f","type":"switchNode","name":"switch vnfc-instance-group length","xml":"<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`'>\n","comments":"","outputs":1,"x":484.19061279296875,"y":727.1279656887054,"z":"ad46ffb1.59044","wires":[["83784130.f9a6d","3bc49b20.bc69d4"]]},{"id":"83784130.f9a6d","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":715.4762191772461,"y":626.6994416713715,"z":"ad46ffb1.59044","wires":[["ef26b095.af478"]]},{"id":"3bc49b20.bc69d4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":715.0476684570312,"y":831.9853875637054,"z":"ad46ffb1.59044","wires":[["c196ee7a.ca01e"]]},{"id":"4e1f1d25.97bcc4","type":"set","name":"set src and dest vnfc-instance-group indexes to 0 and 1","xml":"<set>\n<parameter name='tmp.src-vnfc-idx' value='0' />\n<parameter name='tmp.dest-vnfc-idx' value='1' />\n","comments":"","x":1426.666763305664,"y":596.937522649765,"z":"ad46ffb1.59044","wires":[]},{"id":"85ad272a.3311b8","type":"switchNode","name":"switch nfc-naming-code== src-nfc-naming-code","xml":"<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.src-nfc-naming-code`'>\n","comments":"","outputs":1,"x":2114.9048080444336,"y":711.0326793193817,"z":"ad46ffb1.59044","wires":[["904cff55.541c6"]]},{"id":"904cff55.541c6","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2365.952476501465,"y":709.3660762310028,"z":"ad46ffb1.59044","wires":[["d3793fdc.0a2ff"]]},{"id":"826084d1.080b38","type":"switchNode","name":"switch nfc-naming-code== dest-nfc-naming-code","xml":"<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.dest-nfc-naming-code`'>\n","comments":"","outputs":1,"x":2079.4290466308594,"y":810.0803000926971,"z":"ad46ffb1.59044","wires":[["76df0afb.11e574"]]},{"id":"76df0afb.11e574","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2363.8099822998047,"y":810.0803306102753,"z":"ad46ffb1.59044","wires":[["c21bf8.eab03408"]]},{"id":"f9f6a40c.995e38","type":"set","name":"set src and dest vnfc-instance-group indexes","xml":"<set>\n<parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\n<parameter name='tmp.dest-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 2`'/>\n","comments":"","x":1557.33349609375,"y":869.1279656887054,"z":"ad46ffb1.59044","wires":[]},{"id":"5497462d.218008","type":"switchNode","name":"switch instance-group-role == source network role","xml":"<switch test=\"`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.src-network-role`\">\n","comments":"","outputs":1,"x":1599.76220703125,"y":713.1755731105804,"z":"ad46ffb1.59044","wires":[["25d48494.893ccc"]]},{"id":"25d48494.893ccc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1858.5714683532715,"y":711.7470281124115,"z":"ad46ffb1.59044","wires":[["85ad272a.3311b8"]]},{"id":"7b66815b.00988","type":"set","name":"set vnfc-instance-group data","xml":"<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\n  value='`$tmp.src-network-role`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\n  value='`$tmp.src-nfc-naming-code`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\n  value='port-mirror-source'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\n  value='`$tmp.configuration-id`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].instance-group-role'\n  value='`$tmp.dest-network-role`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].nfc-naming-code'\n  value='`$tmp.dest-nfc-naming-code`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].group-type'\n  value='port-mirror-dest'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].configuration-id'\n  value='`$tmp.configuration-id`'/>\n","comments":"","x":884.9523620605469,"y":2888.985690832138,"z":"ad46ffb1.59044","wires":[]},{"id":"a92de2b4.d0018","type":"save","name":"custom query: get owning entity","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.oe\">\n<parameter name=\"start[0]\" value=\"`'nodes/service-instances/service-instance?service-instance-id=' + $tmp.service-instance-id `\" />\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"/query/owning-entity-fromService-instance\" /> \n","comments":"","outputs":1,"x":481.7143249511719,"y":1060.0568101406097,"z":"ad46ffb1.59044","wires":[["6b2910fe.e6dcc","d5b1a37.27eef6","2b7916ba.345d0a"]]},{"id":"cf8b1744.047588","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":749.6190490722656,"y":1272.1042115688324,"z":"ad46ffb1.59044","wires":[["49093ad5.e171a4"]]},{"id":"59373ca.423e2c4","type":"save","name":"custom query: get source network data","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.src-network\">\n      <parameter name=\"start[0]\" value=\"`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/'  + $tmp.cloud-region-id`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/network-name-fromNetwork-role?networkRole='  + $tmp.src-network-role`\" /> \n","comments":"","outputs":1,"x":510.4286651611328,"y":2466.6520936489105,"z":"ad46ffb1.59044","wires":[["12ac31cc.1492fe","7f7fb5ed.db5a5c"]]},{"id":"12ac31cc.1492fe","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":782.5715141296387,"y":2436.652218580246,"z":"ad46ffb1.59044","wires":[["b2ddda36.d1a248"]]},{"id":"8854e0fa.60ed8","type":"set","name":"copy A&AI data to topology","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner'\n  value='`$tmp.cloud-owner`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id'\n  value='`$tmp.cloud-region-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant'\n  value='`$tmp.tenant`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id'\n  value='`$tmp.tenant-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant'\n  value='`$tmp.dest-tenant`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant-id'\n  value='`$tmp.dest-tenant-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-context'\n  value='`$tmp.tenant-context`' />\n","comments":"","x":476.90464782714844,"y":2320.6756768226624,"z":"ad46ffb1.59044","wires":[]},{"id":"ad263b73.9e1128","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3049.762275695801,"y":707.699319601059,"z":"ad46ffb1.59044","wires":[["e719dfbc.122c1","63c03f51.fc305"]]},{"id":"a08aecf8.1164d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3050.4767150878906,"y":806.9849908351898,"z":"ad46ffb1.59044","wires":[["ddbbed4c.69b25","63c03f51.fc305"]]},{"id":"c196ee7a.ca01e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":864.476318359375,"y":829.9851434230804,"z":"ad46ffb1.59044","wires":[["b08e4195.35b89","3f2e31c8.06f08e"]]},{"id":"c1e2010f.8bc8a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":927.8571548461914,"y":368.8422498703003,"z":"ad46ffb1.59044","wires":[["465844f2.75eb6c","63c03f51.fc305"]]},{"id":"cf05af60.13994","type":"comment","name":"rpc-port-mirror-1040","info":"","comments":"","x":414.0476379394531,"y":613.8422734737396,"z":"ad46ffb1.59044","wires":[]},{"id":"df46f124.b18a4","type":"comment","name":"step 2 - create vnfc-instance-group (done)","info":"","comments":"","x":484.0476531982422,"y":653.8422296047211,"z":"ad46ffb1.59044","wires":[]},{"id":"569cc477.0c727c","type":"comment","name":"step 3 - get owning entity (aai-port-mirror-1140)","info":"","comments":"","x":494.9524230957031,"y":973.7233216762543,"z":"ad46ffb1.59044","wires":[]},{"id":"4c7a8bad.448c34","type":"comment","name":"step 4 - get cloud-owner, cloud-region-id, and tenant (aai-port-mirror-1150)","info":"","comments":"","x":576.7618713378906,"y":1231.53280043602,"z":"ad46ffb1.59044","wires":[]},{"id":"a38b575c.8e5978","type":"comment","name":"step 5 - get network data (aai-port-mirror-1120)","info":"","comments":"","x":540.4286079406738,"y":2419.5092465877533,"z":"ad46ffb1.59044","wires":[]},{"id":"ec7724b4.2efb38","type":"comment","name":"step 6/7 - get vservers, l-interfaces, etc (aai-port-mirror-1130)","info":"","comments":"","x":577.1905212402344,"y":2627.937910795212,"z":"ad46ffb1.59044","wires":[]},{"id":"93550f20.12036","type":"comment","name":"step 8 - write data to vnfc-instance-groups","info":"","comments":"","x":511.6190185546875,"y":2848.6046578884125,"z":"ad46ffb1.59044","wires":[]},{"id":"730bd1a2.6e1bc","type":"comment","name":"step 9/10 - write instance group variables and vnf-ids to assignments","info":"","comments":"","x":591.5238265991211,"y":2987.9374301433563,"z":"ad46ffb1.59044","wires":[]},{"id":"7c9558cd.b82ff8","type":"comment","name":"rpc-port-mirror-1030","info":"","comments":"","x":431.5476760864258,"y":3526.819870710373,"z":"ad46ffb1.59044","wires":[]},{"id":"c0a00a8e.d159f8","type":"comment","name":"step 4 - write configuration identifiers to topology (done)","info":"","comments":"","x":536.5239105224609,"y":4850.438508749008,"z":"ad46ffb1.59044","wires":[]},{"id":"2578aa22.458d06","type":"comment","name":"step 5 - map source to dest (rpc-port-mirror-1050)","info":"","comments":"","x":563.6191253662109,"y":3573.604864835739,"z":"ad46ffb1.59044","wires":[]},{"id":"5307699d.4d8ca8","type":"comment","name":"step 6 - call DG to create network policy","info":"","comments":"","x":497.5001411437988,"y":3768.4856355190277,"z":"ad46ffb1.59044","wires":[]},{"id":"ddc35f62.7f936","type":"comment","name":"step 7 - create logical links (aai-port-mirror-1030)","info":"","comments":"","x":543.690616607666,"y":4180.390530347824,"z":"ad46ffb1.59044","wires":[]},{"id":"9382bde2.bd7ce","type":"comment","name":"step 8 - update configuration object (aai-port-mirror-1020) (done)","info":"","comments":"","x":564.4286499023438,"y":4651.151960134506,"z":"ad46ffb1.59044","wires":[]},{"id":"3f064715.dd5548","type":"comment","name":"step 9 - update references to configuration object (done)","info":"","comments":"","x":539.6668701171875,"y":4934.818518400192,"z":"ad46ffb1.59044","wires":[]},{"id":"5a1791a8.eaa3c","type":"comment","name":"step 10  - update oper status (done)","info":"","comments":"","x":471.6192321777344,"y":5138.676261663437,"z":"ad46ffb1.59044","wires":[]},{"id":"dda98e98.66fdf","type":"set","name":"set assignments high-level data","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\n  value='`$tmp.src-nfc-naming-code`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\n  value='`$tmp.src-network-role`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\n  value='`$tmp.service-instance-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\n  value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\n  value='`$tmp.src-vnf-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\n  value='`$tmp.src-pps`' />\n  \n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.nfc-naming-code'\n  value='`$tmp.dest-nfc-naming-code`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.instance-group-role'\n  value='`$tmp.dest-network-role`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.service-instance-id'\n  value='`$tmp.service-instance-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.configuration-id'\n  value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnf-id'\n  value='`$tmp.dest-vnf-id`' />\n  \n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\n  value='vprobe' />\n  \n","comments":"","x":884.0475997924805,"y":3027.5565707683563,"z":"ad46ffb1.59044","wires":[]},{"id":"ac2e3332.29b9f","type":"set","name":"write configuration identifiers to topology","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-id'\n  value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-type'\n  value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-sub-type'\n  value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.parent-service-instance-id'\n  value='`$tmp.service-instance-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-name'\n  value='`$tmp.configuration-name`' />\n","comments":"","x":497.4762268066406,"y":4894.724291563034,"z":"ad46ffb1.59044","wires":[]},{"id":"17bc986f.814148","type":"set","name":"copy A&AI data to topology","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity' value='`$tmp.owning-entity`' />","comments":"","x":466.90484873453806,"y":1191.294898112615,"z":"ad46ffb1.59044","wires":[]},{"id":"b4b42190.25a09","type":"get-resource","name":"get-resource PORT_MIRROR_CAPABILITY","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select role,nfc_naming_code,pps_capacity,network_role,policy_name\n    from PORT_MIRROR_CAPABILITY cap, PORT_MIRROR_CONFIGURATION conf, SERVICE_PROXY sp\n    where cap.port_mirror_capability_name=conf.port_mirror_capability_name\n     and cap.port_mirror_service_uuid=conf.port_mirror_service_uuid\n     and cap.service_proxy_name=conf.service_proxy_name\n     and cap.service_proxy_name=sp.service_proxy_name\n     and cap.port_mirror_service_uuid=sp.parent_service_uuid\n     and conf.customization_uuid = $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid\n     and conf.port_mirror_service_uuid = $service-data.service-information.onap-model-information.model-uuid\n    order by role'\n  pfx='db.cap[]'>\n","comments":"","outputs":1,"x":520.7143173217773,"y":375.98510932922363,"z":"ad46ffb1.59044","wires":[["ab26b1cb.6c458","853dd343.7ef44"]]},{"id":"fc4ca4c9.69e018","type":"save","name":"custom query: get source interface data","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.src-li\">\n\t<parameter value=\"`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id`\" name=\"start[0]\"/>\n\t<parameter value=\"1\" name=\"start_length\"/>\n\t<parameter value=\"`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-src-nfc-naming-code`\" name=\"query\"/>\n","comments":"","outputs":1,"x":512.2381591796875,"y":2681.937666654587,"z":"ad46ffb1.59044","wires":[["c71cf508.fbd108","bd71f446.ad9978"]]},{"id":"c71cf508.fbd108","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":783.4285697937012,"y":2662.4139783382416,"z":"ad46ffb1.59044","wires":[["864b2f27.10409"]]},{"id":"3673b9cb.5e0016","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":1953.5473327636719,"y":6067.818812131882,"z":"ad46ffb1.59044","wires":[]},{"id":"96200486.022548","type":"configure","name":"send error to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"500\" />\n<parameter name=\"input.response-message\" value=\"`$error-message`\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":1972.906379699707,"y":6019.618288755417,"z":"ad46ffb1.59044","wires":[[]]},{"id":"63c03f51.fc305","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1800.2141189575195,"y":6040.676154851913,"z":"ad46ffb1.59044","wires":[["96200486.022548","3673b9cb.5e0016"]]},{"id":"e719dfbc.122c1","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Source nfc-naming-code of ' + $tmp.src-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`\" />\n","comments":"","outputs":1,"x":3274.0480422973633,"y":679.1278855800629,"z":"ad46ffb1.59044","wires":[[]]},{"id":"ddbbed4c.69b25","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Dest nfc-naming-code of ' + $tmp.dest-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`\" />\n","comments":"","outputs":1,"x":3271.0480346679688,"y":776.127916097641,"z":"ad46ffb1.59044","wires":[[]]},{"id":"49093ad5.e171a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":922.1904983520508,"y":1273.056488752365,"z":"ad46ffb1.59044","wires":[["4b208346.335cec","63c03f51.fc305"]]},{"id":"4b208346.335cec","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: cloud-region-fromVnf\" />\n","comments":"","outputs":1,"x":1135.190528869629,"y":1273.0565965175629,"z":"ad46ffb1.59044","wires":[[]]},{"id":"539e08.2cbc11f8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: network-name-fromNetwork-role\" />\n","comments":"","outputs":1,"x":1156.1429634094238,"y":2429.7950398921967,"z":"ad46ffb1.59044","wires":[[]]},{"id":"3cbceaf3.21fa26","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query vserver-fromVnf for source vnf\" />\n","comments":"","outputs":1,"x":1172.6190490722656,"y":2662.794835805893,"z":"ad46ffb1.59044","wires":[[]]},{"id":"b2ddda36.d1a248","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":951.8096046447754,"y":2430.4615848064423,"z":"ad46ffb1.59044","wires":[["539e08.2cbc11f8","63c03f51.fc305"]]},{"id":"864b2f27.10409","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":942.9524192810059,"y":2662.128130197525,"z":"ad46ffb1.59044","wires":[["3cbceaf3.21fa26","63c03f51.fc305"]]},{"id":"39eab347.ba000c","type":"save","name":"custom query: get cloud region from vnf","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource&amp;nodesOnly=true'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.vnf\">\n<parameter name=\"start[0]\" value=\"`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id `\" />\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"query/cloud-region-fromVnf\" /> \n","comments":"","outputs":1,"x":505.0476379394531,"y":1294.10408949852,"z":"ad46ffb1.59044","wires":[["cf8b1744.047588","d0e9d16b.5ac0d"]]},{"id":"6b2910fe.e6dcc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":731.9524116516113,"y":1013.7232768535614,"z":"ad46ffb1.59044","wires":[["3d2afe64.53a9e2"]]},{"id":"3d2afe64.53a9e2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":899.6667404174805,"y":1013.4374158382416,"z":"ad46ffb1.59044","wires":[["6b3fecc6.167694","63c03f51.fc305"]]},{"id":"6b3fecc6.167694","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: owning-entity-fromService-instance\" />\n","comments":"","outputs":1,"x":1100.2382011413574,"y":1013.1517369747162,"z":"ad46ffb1.59044","wires":[[]]},{"id":"d5b1a37.27eef6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":739.0953063964844,"y":1059.43750166893,"z":"ad46ffb1.59044","wires":[["498bf269.3bee4c"]]},{"id":"498bf269.3bee4c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":903.3810157775879,"y":1058.008983373642,"z":"ad46ffb1.59044","wires":[["ee857f71.e7279","63c03f51.fc305"]]},{"id":"ee857f71.e7279","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No owning entity returned from AAI: owning-entity-fromService-instance\" />\n","comments":"","outputs":1,"x":1103.9524765014648,"y":1057.7233045101166,"z":"ad46ffb1.59044","wires":[[]]},{"id":"d0e9d16b.5ac0d","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":763.3333435058594,"y":1322.961267232895,"z":"ad46ffb1.59044","wires":[["7f9ea47.0a4d75c"]]},{"id":"7f9ea47.0a4d75c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":927.6190528869629,"y":1321.5327489376068,"z":"ad46ffb1.59044","wires":[["84c17964.af8038","63c03f51.fc305"]]},{"id":"84c17964.af8038","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No cloud region returned from AAI: cloud-region-fromVnf\" />\n","comments":"","outputs":1,"x":1128.1905136108398,"y":1321.2470700740814,"z":"ad46ffb1.59044","wires":[[]]},{"id":"7f7fb5ed.db5a5c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":791.8571510314941,"y":2485.4616515636444,"z":"ad46ffb1.59044","wires":[["5d211eb.2a894e"]]},{"id":"5d211eb.2a894e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":956.1428604125977,"y":2484.0331332683563,"z":"ad46ffb1.59044","wires":[["a2e4d3b6.99b26","63c03f51.fc305"]]},{"id":"a2e4d3b6.99b26","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No network information returned from AAI: network-name-fromNetwork-role\" />\n","comments":"","outputs":1,"x":1155.0475883483887,"y":2482.0807683467865,"z":"ad46ffb1.59044","wires":[[]]},{"id":"bd71f446.ad9978","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":791.9999694824219,"y":2716.461442708969,"z":"ad46ffb1.59044","wires":[["3ea31ed7.03df92"]]},{"id":"3ea31ed7.03df92","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":956.2856788635254,"y":2715.032924413681,"z":"ad46ffb1.59044","wires":[["7dbff819.5bfbe8","63c03f51.fc305"]]},{"id":"7dbff819.5bfbe8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No interface data returned from AAI vserver-fromVnf for source vnf\" />\n","comments":"","outputs":1,"x":1155.1904067993164,"y":2713.080559492111,"z":"ad46ffb1.59044","wires":[[]]},{"id":"b7f41d13.6fd4c","type":"set","name":"set provided-configuration references","xml":"<set>\n<parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-id'\n  value='`$tmp.configuration-id`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-type'\n  value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-sub-type'\n  value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\n<parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-topology-link'\n  value=\"`'restconf/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/' + $tmp.configuration-id + '/configuration-data/port-mirror-configuration-topology'`\" />\n","comments":"","x":485.0953826904297,"y":5088.533381223679,"z":"ad46ffb1.59044","wires":[]},{"id":"6e0f32b2.2cbbfc","type":"set","name":"set tmp.provided-conf-idx to 0","xml":"<set>\n<parameter name='tmp.provided-conf-idx' value='0' />\n","comments":"","x":935.0953140258789,"y":4983.533135175705,"z":"ad46ffb1.59044","wires":[]},{"id":"94e068c9.523098","type":"switchNode","name":"switch provided-configuration_length","xml":"<switch test='`$service-data.provided-configurations.provided-configuration_length`'>\n","comments":"","outputs":1,"x":485.0954284667969,"y":5016.866305112839,"z":"ad46ffb1.59044","wires":[["9b5988f1.682ef8","fd407f90.6b97d"]]},{"id":"9b5988f1.682ef8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":720.0953674316406,"y":4985.199560880661,"z":"ad46ffb1.59044","wires":[["6e0f32b2.2cbbfc"]]},{"id":"fd407f90.6b97d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":720.3334655761719,"y":5042.818625211716,"z":"ad46ffb1.59044","wires":[["b5bce153.d8e4b"]]},{"id":"b5bce153.d8e4b","type":"set","name":"set tmp.provided-conf-idx to current length","xml":"<set>\n<parameter name='tmp.provided-conf-idx' value='`$service-data.provided-configurations.provided-configuration_length`' />\n<parameter name='service-data.provided-configurations.provided-configuration_length' value='`$tmp.provided-conf-idx + 1`' />\n","comments":"","x":973.4286880493164,"y":5043.532810926437,"z":"ad46ffb1.59044","wires":[]},{"id":"1b63f2c6.c9c3cd","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='pm.configuration-data.configuration-oper-status.order-status'\n  value='Created' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-action'\n  value='`$port-mirror-topology-operation-input.request-information.request-action`' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />\n","comments":"","x":413.0954284667969,"y":5183.199943304062,"z":"ad46ffb1.59044","wires":[]},{"id":"7c21534.f0151ac","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Error updating md-sal for port-mirror-configuration\" />\n","comments":"","outputs":1,"x":1292.9762725830078,"y":5313.223598241806,"z":"ad46ffb1.59044","wires":[[]]},{"id":"df3069ed.4ad628","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1098.9762725830078,"y":5339.223598241806,"z":"ad46ffb1.59044","wires":[["7c21534.f0151ac","b9471f80.beb4f"]]},{"id":"3278f6bc.28dd4a","type":"save","name":"update configuration object","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"configuration-name\" value=\"`$tmp.configuration-name`\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n<parameter name=\"configuration-selflink\" value=\"`'/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/'\n  + $port-mirror-topology-operation-input.configuration-information.configuration-id + '/configuration-data/port-mirror-configuration-topology'`\" />\n","comments":"","outputs":1,"x":458.2381057739258,"y":4726.151884794235,"z":"ad46ffb1.59044","wires":[["5afb000a.4d7de","5869bf9c.0fe5a"]]},{"id":"5afb000a.4d7de","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":662.5954246520996,"y":4749.771194219589,"z":"ad46ffb1.59044","wires":[["69096410.56db8c"]]},{"id":"5869bf9c.0fe5a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":671.1668395996094,"y":4699.056997060776,"z":"ad46ffb1.59044","wires":[["db67428e.c1fa4"]]},{"id":"69096410.56db8c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":844.9047698974609,"y":4751.151537656784,"z":"ad46ffb1.59044","wires":[["f4035afd.1eff48","b9471f80.beb4f"]]},{"id":"db67428e.c1fa4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":844.9047470092773,"y":4699.485204458237,"z":"ad46ffb1.59044","wires":[["37f18fcb.abe9a","b9471f80.beb4f"]]},{"id":"f4035afd.1eff48","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failure updating configuration object in AAI\" />\n","comments":"","outputs":1,"x":1031.5713958740234,"y":4751.151537656784,"z":"ad46ffb1.59044","wires":[[]]},{"id":"37f18fcb.abe9a","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Unable to find configuration object in AAI\" />\n","comments":"","outputs":1,"x":1041.5713577270508,"y":4697.818469762802,"z":"ad46ffb1.59044","wires":[[]]},{"id":"b0683757.70acd8","type":"switchNode","name":"switch input configuration-name","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-name`'>\n","comments":"","outputs":1,"x":478.0001220703125,"y":3948.6045615673065,"z":"ad46ffb1.59044","wires":[["9aad7446.82ff88","7fbcc8b1.312ee8"]]},{"id":"9aad7446.82ff88","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":716.3334503173828,"y":3926.9377343654633,"z":"ad46ffb1.59044","wires":[["f4b25a9.9b490a8"]]},{"id":"7fbcc8b1.312ee8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":716.5715103149414,"y":3971.223790884018,"z":"ad46ffb1.59044","wires":[["1cfb2e4.fae17d2"]]},{"id":"f4b25a9.9b490a8","type":"set","name":"generate name","xml":"<set>\n<parameter name='tmp.configuration-name' value=\"`'PMC_' + $tmp.tenant + '_' + $tmp.cloud-region-id + '_' + $port-mirror-topology-operation-input.configuration-information.configuration-type + '_' + $tmp.configuration-id`\" />\n","comments":"","x":894.6667861938477,"y":3926.937853574753,"z":"ad46ffb1.59044","wires":[]},{"id":"1cfb2e4.fae17d2","type":"set","name":"copy name to tmp.configuration-name","xml":"<set>\n<parameter name='tmp.configuration-name' value='`$port-mirror-topology-operation-input.configuration-information.configuration-name`' />\n","comments":"","x":963.0000610351562,"y":3970.2711083889008,"z":"ad46ffb1.59044","wires":[]},{"id":"3f4d2f6e.a6f3f","type":"save","name":"custom query: get dest interface data","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.dest-li\">\n\t<parameter value=\"`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id`\" name=\"start[0]\"/>\n\t<parameter value=\"1\" name=\"start_length\"/>\n\t<parameter value=\"`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-dest-nfc-naming-code`\" name=\"query\"/>\n","comments":"","outputs":1,"x":900.0000152587891,"y":2779.794685125351,"z":"ad46ffb1.59044","wires":[["eabfaba8.1a1b58","e8fa0fb9.d067f"]]},{"id":"eabfaba8.1a1b58","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1171.1904258728027,"y":2760.2709968090057,"z":"ad46ffb1.59044","wires":[["645c5606.f95b48"]]},{"id":"5934b8dd.233468","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query vserver-fromVnf for dest vnf\" />\n","comments":"","outputs":1,"x":1560.3809051513672,"y":2760.651854276657,"z":"ad46ffb1.59044","wires":[[]]},{"id":"645c5606.f95b48","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1330.7142753601074,"y":2759.985148668289,"z":"ad46ffb1.59044","wires":[["5934b8dd.233468","63c03f51.fc305"]]},{"id":"e8fa0fb9.d067f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1179.7618255615234,"y":2814.3184611797333,"z":"ad46ffb1.59044","wires":[["bfca4c81.3f76"]]},{"id":"bfca4c81.3f76","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1344.047534942627,"y":2812.889942884445,"z":"ad46ffb1.59044","wires":[["f19b293.d210ed8","63c03f51.fc305"]]},{"id":"f19b293.d210ed8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No interface data returned from AAI vserver-fromVnf for dest vnf\" />\n","comments":"","outputs":1,"x":1542.952262878418,"y":2810.9375779628754,"z":"ad46ffb1.59044","wires":[[]]},{"id":"bccb28e8.16a9b8","type":"save","name":"custom query: get dest network data","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.dest-network\">\n      <parameter name=\"start[0]\" value=\"`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/'  + $tmp.cloud-region-id`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/network-name-fromNetwork-role?networkRole='  + $tmp.dest-network-role`\" /> \n","comments":"","outputs":1,"x":905.0000457763672,"y":2559.794838666916,"z":"ad46ffb1.59044","wires":[["ee6bb08a.94728","53108b40.4bfeb4"]]},{"id":"ee6bb08a.94728","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1177.142894744873,"y":2529.7949635982513,"z":"ad46ffb1.59044","wires":[["17c66940.45d1c7"]]},{"id":"65f00856.6009c8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: network-name-fromNetwork-role\" />\n","comments":"","outputs":1,"x":1550.7143440246582,"y":2522.937784910202,"z":"ad46ffb1.59044","wires":[[]]},{"id":"17c66940.45d1c7","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1346.3809852600098,"y":2523.6043298244476,"z":"ad46ffb1.59044","wires":[["65f00856.6009c8","63c03f51.fc305"]]},{"id":"53108b40.4bfeb4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1186.4285316467285,"y":2578.60439658165,"z":"ad46ffb1.59044","wires":[["60989e30.be117"]]},{"id":"60989e30.be117","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1350.714241027832,"y":2577.1758782863617,"z":"ad46ffb1.59044","wires":[["92a79ef5.fa3e","63c03f51.fc305"]]},{"id":"92a79ef5.fa3e","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No network information returned from AAI: network-name-fromNetwork-role\" />\n","comments":"","outputs":1,"x":1549.618968963623,"y":2575.223513364792,"z":"ad46ffb1.59044","wires":[[]]},{"id":"30c54a00.afa5d6","type":"comment","name":"walk through the data returned from A&AI","info":"","comments":"","x":212.3333854675293,"y":3317.4135043621063,"z":"ad46ffb1.59044","wires":[]},{"id":"c1689047.89198","type":"for","name":"for each src network","xml":"<for index='src-nw-idx' start='0' end='`$tmp.AnAI-data.src-network.results_length`' >\n","comments":"","outputs":1,"x":443.0000648498535,"y":3169.4611241817474,"z":"ad46ffb1.59044","wires":[["2cd007ca.1929a8"]]},{"id":"2cd007ca.1929a8","type":"switchNode","name":"switch network-name","xml":"<switch test='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`'>\n","comments":"","outputs":1,"x":671.3334274291992,"y":3166.12770819664,"z":"ad46ffb1.59044","wires":[["d7919be.53eda68","c29693c7.fb429"]]},{"id":"d7919be.53eda68","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":856.3333625793457,"y":3139.461038351059,"z":"ad46ffb1.59044","wires":[["362c8304.4cbdfc"]]},{"id":"c29693c7.fb429","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":856.3332939147949,"y":3190.8897111415863,"z":"ad46ffb1.59044","wires":[["a4a87364.b0d06"]]},{"id":"362c8304.4cbdfc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1018.0000267028809,"y":3140.1753146648407,"z":"ad46ffb1.59044","wires":[[]]},{"id":"a4a87364.b0d06","type":"switchNode","name":"switch tmp.src-network-name","xml":"<switch test='`$tmp.src-network-name`'>\n","comments":"","outputs":1,"x":1061.3334617614746,"y":3189.46128821373,"z":"ad46ffb1.59044","wires":[["605de0a1.ea25b","1fd130aa.f375ff"]]},{"id":"605de0a1.ea25b","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1267.9999885559082,"y":3162.794290304184,"z":"ad46ffb1.59044","wires":[["9fdf6659.2008e8"]]},{"id":"1fd130aa.f375ff","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1267.9999198913574,"y":3214.2229630947113,"z":"ad46ffb1.59044","wires":[["ae6d4e1c.b688b"]]},{"id":"ae6d4e1c.b688b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1426.3333625793457,"y":3212.794290304184,"z":"ad46ffb1.59044","wires":[["8adf8a07.c692b8","63c03f51.fc305"]]},{"id":"8adf8a07.c692b8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'More than one l3-network returned from AAI for network-role ' + $tmp.src-network-role`\" />\n","comments":"","outputs":1,"x":1628.5715026855469,"y":3210.841985464096,"z":"ad46ffb1.59044","wires":[[]]},{"id":"625b85e.683ee7c","type":"for","name":"for each dest network","xml":"<for index='dest-nw-idx' start='0' end='`$tmp.AnAI-data.dest-network.results_length`' >\n","comments":"","outputs":1,"x":1014.3333587646484,"y":3317.461047887802,"z":"ad46ffb1.59044","wires":[["f3dfbef3.6ed35"]]},{"id":"f3dfbef3.6ed35","type":"switchNode","name":"switch network-name","xml":"<switch test='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`'>\n","comments":"","outputs":1,"x":1242.6667213439941,"y":3314.1276319026947,"z":"ad46ffb1.59044","wires":[["678c96f2.cc4388","ec3b96ff.47f7a8"]]},{"id":"678c96f2.cc4388","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1427.6666564941406,"y":3287.4609620571136,"z":"ad46ffb1.59044","wires":[["587cf5c6.ba63ec"]]},{"id":"ec3b96ff.47f7a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1427.6665878295898,"y":3338.889634847641,"z":"ad46ffb1.59044","wires":[["9c35b414.e31698"]]},{"id":"587cf5c6.ba63ec","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1589.3333206176758,"y":3288.1752383708954,"z":"ad46ffb1.59044","wires":[[]]},{"id":"9c35b414.e31698","type":"switchNode","name":"switch tmp.dest-network-name","xml":"<switch test='`$tmp.dest-network-name`'>\n","comments":"","outputs":1,"x":1632.6667556762695,"y":3337.4612119197845,"z":"ad46ffb1.59044","wires":[["aba201a4.051ba","7a095d13.048ae4"]]},{"id":"aba201a4.051ba","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1839.3332824707031,"y":3310.7942140102386,"z":"ad46ffb1.59044","wires":[["9d76aa87.81e4e8"]]},{"id":"7a095d13.048ae4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1839.3332138061523,"y":3362.222886800766,"z":"ad46ffb1.59044","wires":[["2a5e35ab.cdec4a"]]},{"id":"2a5e35ab.cdec4a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1997.6666564941406,"y":3360.7942140102386,"z":"ad46ffb1.59044","wires":[["8bfc73ed.fc9f","63c03f51.fc305"]]},{"id":"8bfc73ed.fc9f","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'More than one l3-network returned from AAI for network-role ' + $tmp.dest-network-role`\" />\n","comments":"","outputs":1,"x":2199.904796600342,"y":3358.8419091701508,"z":"ad46ffb1.59044","wires":[[]]},{"id":"43220e3c.7f04b","type":"comment","name":"determine src and dest network names","info":"","comments":"","x":536.3333778381348,"y":3122.794374227524,"z":"ad46ffb1.59044","wires":[]},{"id":"d3bec9cf.937968","type":"switchNode","name":"switch tmp.src-network-name","xml":"<switch test='`$tmp.src-network-name`'>\n","comments":"","outputs":1,"x":468.6666717529297,"y":3249.461126089096,"z":"ad46ffb1.59044","wires":[["abaf7b95.e9d2a8"]]},{"id":"abaf7b95.e9d2a8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":677.0000190734863,"y":3248.7944705486298,"z":"ad46ffb1.59044","wires":[["6e9098e0.3b0088"]]},{"id":"6e9098e0.3b0088","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":830.3333282470703,"y":3248.127874135971,"z":"ad46ffb1.59044","wires":[["4f6fc74.a7c5038","63c03f51.fc305"]]},{"id":"4f6fc74.a7c5038","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Cannot determine source network name from AAI data\" />\n","comments":"","outputs":1,"x":1021.9999542236328,"y":3247.794378042221,"z":"ad46ffb1.59044","wires":[[]]},{"id":"6e2daa52.cd5594","type":"switchNode","name":"switch tmp.dest-network-name","xml":"<switch test='`$tmp.dest-network-name`'>\n","comments":"","outputs":1,"x":1038.0000381469727,"y":3423.1277639865875,"z":"ad46ffb1.59044","wires":[["4c56824a.8a235c"]]},{"id":"4c56824a.8a235c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1246.3333854675293,"y":3421.461108446121,"z":"ad46ffb1.59044","wires":[["8d7d1967.e0a578"]]},{"id":"8d7d1967.e0a578","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1399.6666946411133,"y":3419.7945120334625,"z":"ad46ffb1.59044","wires":[["fde3a27f.3918f","63c03f51.fc305"]]},{"id":"fde3a27f.3918f","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Cannot determine dest network name from AAI data\" />\n","comments":"","outputs":1,"x":1591.3333206176758,"y":3416.4610159397125,"z":"ad46ffb1.59044","wires":[[]]},{"id":"b40e2769.9b66e8","type":"for","name":"for each returned result","xml":"<for index='result-idx' start='0' end='`$tmp.AnAI-data.vnf.results_length`' >\n","comments":"","outputs":1,"x":452.0000457763672,"y":1553.294564962387,"z":"ad46ffb1.59044","wires":[["ccbe45ed.d09b58"]]},{"id":"ccbe45ed.d09b58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":660.3333435058594,"y":1553.294564962387,"z":"ad46ffb1.59044","wires":[["a5ce191e.435038","78aa9e8c.548e","524fa73b.dde868","4dee36e.58e6bc8","7f533d3d.edc374"]]},{"id":"a5ce191e.435038","type":"switchNode","name":"switch tenant-name","xml":"<switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`'>\n","comments":"","outputs":1,"x":893.6667098999023,"y":1383.294781446457,"z":"ad46ffb1.59044","wires":[["98836081.83ee2","49da7d2e.a5da44"]]},{"id":"98836081.83ee2","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1093.6666145324707,"y":1364.961406469345,"z":"ad46ffb1.59044","wires":[["c542e7ec.b41f78"]]},{"id":"49da7d2e.a5da44","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1091.999885559082,"y":1404.72345328331,"z":"ad46ffb1.59044","wires":[["7963162e.49a188"]]},{"id":"c542e7ec.b41f78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1235.333288192749,"y":1364.9614474773407,"z":"ad46ffb1.59044","wires":[[]]},{"id":"7963162e.49a188","type":"set","name":"set tmp.tenant from tenant-name","xml":"<set>\n<parameter name='tmp.tenant' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`' />\n","comments":"","x":1315.333366394043,"y":1404.961490392685,"z":"ad46ffb1.59044","wires":[]},{"id":"78aa9e8c.548e","type":"switchNode","name":"switch cloud-owner","xml":"<switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`'>\n","comments":"","outputs":1,"x":887.0002746582031,"y":1628.2948701381683,"z":"ad46ffb1.59044","wires":[["71f1efb2.58789","a0f74502.c40b78"]]},{"id":"71f1efb2.58789","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1087.0001792907715,"y":1609.9614951610565,"z":"ad46ffb1.59044","wires":[["51b8c84b.a15a58"]]},{"id":"a0f74502.c40b78","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1085.3334503173828,"y":1649.7235419750214,"z":"ad46ffb1.59044","wires":[["c5078c32.1a81b"]]},{"id":"51b8c84b.a15a58","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1228.6668529510498,"y":1609.9615361690521,"z":"ad46ffb1.59044","wires":[[]]},{"id":"c5078c32.1a81b","type":"set","name":"set tmp.cloud-owner","xml":"<set>\n<parameter name='tmp.cloud-owner' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`' />\n","comments":"","x":1265.3336791992188,"y":1653.2949311733246,"z":"ad46ffb1.59044","wires":[]},{"id":"524fa73b.dde868","type":"switchNode","name":"switch cloud-region-id","xml":"<switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\n","comments":"","outputs":1,"x":895.3336181640625,"y":1716.6279618740082,"z":"ad46ffb1.59044","wires":[["4cd41d77.62d1d4","fd25effc.e7aca"]]},{"id":"4cd41d77.62d1d4","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1087.000186920166,"y":1696.6279199123383,"z":"ad46ffb1.59044","wires":[["99f0220c.25b96"]]},{"id":"fd25effc.e7aca","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1085.3334579467773,"y":1736.389966726303,"z":"ad46ffb1.59044","wires":[["fa8958ae.e93378"]]},{"id":"99f0220c.25b96","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1228.6668605804443,"y":1696.6279609203339,"z":"ad46ffb1.59044","wires":[[]]},{"id":"fa8958ae.e93378","type":"set","name":"set tmp.cloud-region-id","xml":"<set>\n<parameter name='tmp.cloud-region-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\n","comments":"","x":1275.3335418701172,"y":1736.627985715866,"z":"ad46ffb1.59044","wires":[]},{"id":"e53b0107.99046","type":"switchNode","name":"switch tmp.tenant","xml":"<switch test='`$tmp.tenant`'>\n","comments":"","outputs":1,"x":440.0000686645508,"y":1781.9614572525024,"z":"ad46ffb1.59044","wires":[["871be54d.651f78"]]},{"id":"871be54d.651f78","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":675.0000330607099,"y":1778.627943356832,"z":"ad46ffb1.59044","wires":[["9e59cffc.17c17"]]},{"id":"9e59cffc.17c17","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":833.3333460489912,"y":1778.627943356832,"z":"ad46ffb1.59044","wires":[["2fae4fcd.563b7","63c03f51.fc305"]]},{"id":"2fae4fcd.563b7","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve source tenant from AAI\" />\n","comments":"","outputs":1,"x":1033.9048067728681,"y":1778.3422644933066,"z":"ad46ffb1.59044","wires":[[]]},{"id":"53a52a6c.d1cd64","type":"switchNode","name":"switch tmp.cloud-region-id","xml":"<switch test='`$tmp.cloud-region-id`'>\n","comments":"","outputs":1,"x":466.00001525878906,"y":1876.9612882137299,"z":"ad46ffb1.59044","wires":[["7e86423b.eb811c"]]},{"id":"7e86423b.eb811c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":672.6666361490888,"y":1876.961163600286,"z":"ad46ffb1.59044","wires":[["82a1ad5f.91c0a"]]},{"id":"82a1ad5f.91c0a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":830.9999491373701,"y":1876.961163600286,"z":"ad46ffb1.59044","wires":[["da9fb459.35a968","63c03f51.fc305"]]},{"id":"da9fb459.35a968","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve tenant from AAI\" />\n","comments":"","outputs":1,"x":1031.571409861247,"y":1876.6754847367606,"z":"ad46ffb1.59044","wires":[[]]},{"id":"1bbc7787.e7f1b8","type":"switchNode","name":"switch tmp.cloud-owner","xml":"<switch test='`$tmp.cloud-owner`'>\n","comments":"","outputs":1,"x":458,"y":1921.9612500667572,"z":"ad46ffb1.59044","wires":[["6d6681d5.c0eda"]]},{"id":"6d6681d5.c0eda","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":674.6666361490888,"y":1923.6277895768485,"z":"ad46ffb1.59044","wires":[["752bd23f.167a0c"]]},{"id":"752bd23f.167a0c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":832.9999491373701,"y":1923.6277895768485,"z":"ad46ffb1.59044","wires":[["9eae290b.710ba8","63c03f51.fc305"]]},{"id":"9eae290b.710ba8","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve tenant from AAI\" />\n","comments":"","outputs":1,"x":1033.571409861247,"y":1923.342110713323,"z":"ad46ffb1.59044","wires":[[]]},{"id":"6aa8217a.be7a8","type":"call","name":"call api-contrail-route-topology-operation-create","xml":"<call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-create' mode='sync' >\n\n","comments":"","outputs":1,"x":1091.3572235107422,"y":3827.5327785015106,"z":"ad46ffb1.59044","wires":[["45726510.62287c"]]},{"id":"45726510.62287c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1362.5477600097656,"y":3826.103891134262,"z":"ad46ffb1.59044","wires":[["db838c10.6d034"]]},{"id":"cf530372.3cdf2","type":"set","name":"set parameters","xml":"<set>\n<parameter name='cto-api.parent-service-instance-id' value='`$tmp.service-instance-id`' />\n<parameter name='cto-api.port-mirror-configuration-instance-id' value='`$tmp.configuration-id`' />\n<parameter name='cto-api.source-network-role' value='`$tmp.src-network-role`' />\n<parameter name='cto-api.collector-network-role' value='`$tmp.dest-network-role`' />\n<parameter name='cto-api.default-domain' value='default-domain' />\n<parameter name='cto-api.default-project' value='`$tmp.tenant`' />\n<parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\n<parameter name='cto-api.cloud-owner' value='`$tmp.cloud-owner`' />\n<parameter name='cto-api.service-type' value='`$port-mirror-topology-operation-input.service-information.subscription-service-type`' />\n<parameter name='cto-api.owning-entity' value='`$tmp.owning-entity`' />\n","comments":"","x":993.6905212402344,"y":3780.866028547287,"z":"ad46ffb1.59044","wires":[]},{"id":"2b7916ba.345d0a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":734.3333841959634,"y":1103.9613708655038,"z":"ad46ffb1.59044","wires":[["e03fa6c8.93c8e8"]]},{"id":"e03fa6c8.93c8e8","type":"set","name":"set tmp.owning-entity","xml":"<set>\n<parameter name='tmp.owning-entity' value='`$tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id`' />\n","comments":"","x":922.6666717529297,"y":1102.2947480678558,"z":"ad46ffb1.59044","wires":[]},{"id":"6aa6e65.77d1a18","type":"switchNode","name":"switch tmp.owning-entity","xml":"<switch test='`$tmp.owning-entity`'>\n","comments":"","outputs":1,"x":460.66676330566406,"y":1143.9613778591156,"z":"ad46ffb1.59044","wires":[["a1f43b.6baa9bc8"]]},{"id":"a1f43b.6baa9bc8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":697.3334376017256,"y":1150.627945025762,"z":"ad46ffb1.59044","wires":[["89c6a8e0.6ffd88"]]},{"id":"89c6a8e0.6ffd88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":862.3333803812666,"y":1150.6278639634452,"z":"ad46ffb1.59044","wires":[["6cf20a3f.e1e824","63c03f51.fc305"]]},{"id":"6cf20a3f.e1e824","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve owning-entity from AAI\" />\n","comments":"","outputs":1,"x":1059.5715071360273,"y":1148.6754713853202,"z":"ad46ffb1.59044","wires":[[]]},{"id":"333d39df.29c386","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1049.0000305175781,"y":4139.832871198654,"z":"ad46ffb1.59044","wires":[["92eadb34.b09bc8"]]},{"id":"2899e13d.c0f5ae","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1057.571460723877,"y":4184.118584394455,"z":"ad46ffb1.59044","wires":[["92eadb34.b09bc8"]]},{"id":"6e6309e.a9b13f8","type":"for","name":"for each mapped source port","xml":"<for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n","comments":"","outputs":1,"x":464.16675186157227,"y":4325.86591219902,"z":"ad46ffb1.59044","wires":[["d1f3d5d3.3b9cf8"]]},{"id":"d1f3d5d3.3b9cf8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":687.5000801086426,"y":4327.532335996628,"z":"ad46ffb1.59044","wires":[["a717ffcc.3b10e","9f479696.018ee8","c0c9e1a0.c1dd8","a249b3c4.30176","dbd95e4a.02811"]]},{"id":"a249b3c4.30176","type":"save","name":"save logical-link","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"logical-link\" \n\tkey=\"logical-link.link-name = $tmp.link-name\" >\n<parameter name=\"link-name\" value=\"`$tmp.link-name`\" />\n<parameter name=\"in-maint\" value=\"false\" />\n<parameter name=\"link-type\" value=\"port-mirror-configuration\" />\n","comments":"","outputs":1,"x":884.1666946411133,"y":4158.961284399033,"z":"ad46ffb1.59044","wires":[["333d39df.29c386","2899e13d.c0f5ae"]]},{"id":"a717ffcc.3b10e","type":"set","name":"set tmp.link-name","xml":"<set>\n<parameter name='tmp.link-name' value=\"`'PMC_' + $tmp.configuration-id\n  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\n  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`\" />\n","comments":"","x":887.5001068115234,"y":4047.293805837631,"z":"ad46ffb1.59044","wires":[]},{"id":"a5acd743.ffb818","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Failed to create logical link ' + $tmp.link-name\n  + ' in AAI'`\" />\n","comments":"","outputs":1,"x":1405.8334426879883,"y":4153.961203336716,"z":"ad46ffb1.59044","wires":[[]]},{"id":"92eadb34.b09bc8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1217.5000534057617,"y":4153.96112704277,"z":"ad46ffb1.59044","wires":[["a5acd743.ffb818","ade54b7b.1c2f78"]]},{"id":"ade54b7b.1c2f78","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1886.952075958252,"y":5729.55632185936,"z":"ad46ffb1.59044","wires":[["4014d89b.66e348","8ab7174a.76f6c8","4877f4d7.9e8e3c","db838c10.6d034"]]},{"id":"f5553e43.be0e4","type":"comment","name":"rollback network policy","info":"","comments":"","x":2192.666328430176,"y":5643.365671873093,"z":"ad46ffb1.59044","wires":[]},{"id":"8753137e.a72be","type":"save","name":"save vprobe logical-link relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"logical-link:relationship-list\"\n   key=\"logical-link.link-name = $tmp.link-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l-interface\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-label\" value=\"org.onap.relationships.inventory.Source\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\n        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\n        + $tmp.tenant-id + '/vservers/vserver/' \n        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n        + '/l-interfaces/l-interface/'\n        + $tmp.encoded-source-port-name`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"l-interface\" />\n    <parameter name=\"relationship-list.relationship[1].relationship-label\" value=\"org.onap.relationships.inventory.Destination\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\n        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\n        + $tmp.dest-tenant-id + '/vservers/vserver/' \n        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-vserver-id\n        + '/l-interfaces/l-interface/'\n        + $tmp.encoded-dest-port-name`\" />\n","comments":"","outputs":1,"x":1626.3094787597656,"y":4375.86571764946,"z":"ad46ffb1.59044","wires":[["aca151d2.78cad","dbe217c5.2519a8"]]},{"id":"aca151d2.78cad","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1905.5952415466309,"y":4375.627018690109,"z":"ad46ffb1.59044","wires":[["81fec963.f0c378"]]},{"id":"60444368.d2d1cc","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Failed creating relationships for logical link ' + $tmp.link-name\n  + ' in AAI'`\" />\n","comments":"","outputs":1,"x":2267.4285621643066,"y":4396.422187566757,"z":"ad46ffb1.59044","wires":[[]]},{"id":"81fec963.f0c378","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2070.761848449707,"y":4396.421943426132,"z":"ad46ffb1.59044","wires":[["60444368.d2d1cc","b9471f80.beb4f"]]},{"id":"60456976.e6ca48","type":"comment","name":"delete logical links","info":"","comments":"","x":2184.3328399658203,"y":5493.365961790085,"z":"ad46ffb1.59044","wires":[]},{"id":"302fb759.f86fc8","type":"for","name":"for each mapped source port","xml":"<for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n","comments":"","outputs":1,"x":2173.856689453125,"y":5537.88894534111,"z":"ad46ffb1.59044","wires":[["cdbe21d2.0c705"]]},{"id":"cdbe21d2.0c705","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":2397.1900177001953,"y":5539.555369138718,"z":"ad46ffb1.59044","wires":[["89353571.082fa8","fff62f5.45f62d"]]},{"id":"fff62f5.45f62d","type":"save","name":"delete logical-link","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"logical-link\" \n\tkey=\"logical-link.link-name = $tmp.link-name\" >\n","comments":"","outputs":1,"x":2578.6187286376953,"y":5566.222370862961,"z":"ad46ffb1.59044","wires":[[]]},{"id":"89353571.082fa8","type":"set","name":"set tmp.link-name","xml":"<set>\n<parameter name='tmp.link-name' value=\"`'PMC_' + $tmp.configuration-id\n  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\n  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`\" />\n","comments":"","x":2582.1901092529297,"y":5514.555414915085,"z":"ad46ffb1.59044","wires":[]},{"id":"b9471f80.beb4f","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1945.9996948242188,"y":5540.032742261887,"z":"ad46ffb1.59044","wires":[["302fb759.f86fc8","ade54b7b.1c2f78"]]},{"id":"72ac5c76.c8ab14","type":"configure","name":"send success to MSO","xml":"<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"200\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n","comments":"","outputs":1,"x":433.3095016479492,"y":5402.223337888718,"z":"ad46ffb1.59044","wires":[[]]},{"id":"4dee36e.58e6bc8","type":"switchNode","name":"switch tenant-id","xml":"<switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`'>\n","comments":"","outputs":1,"x":886.9999923706055,"y":1466.6281173229218,"z":"ad46ffb1.59044","wires":[["cf05309.dfe44d","9c4d114c.68b9b"]]},{"id":"cf05309.dfe44d","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1086.9998970031738,"y":1448.29474234581,"z":"ad46ffb1.59044","wires":[["b95b05a3.f39c58"]]},{"id":"9c4d114c.68b9b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1085.3331680297852,"y":1488.0567891597748,"z":"ad46ffb1.59044","wires":[["b197215.06e19e"]]},{"id":"b95b05a3.f39c58","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1228.6665706634521,"y":1448.2947833538055,"z":"ad46ffb1.59044","wires":[[]]},{"id":"b197215.06e19e","type":"set","name":"set tmp.tenant-id from tenant-id","xml":"<set>\n<parameter name='tmp.tenant-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`' />\n","comments":"","x":1308.666648864746,"y":1488.2948262691498,"z":"ad46ffb1.59044","wires":[]},{"id":"9f479696.018ee8","type":"save","name":"save configuration relationship to logical-link","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration:relationship-list\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"logical-link\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/logical-links/logical-link/' + $tmp.encoded-link-name`\" />\n","comments":"","outputs":1,"x":962.9286804199219,"y":4532.532779455185,"z":"ad46ffb1.59044","wires":[["790263b6.af947c","47af693f.8cd828"]]},{"id":"790263b6.af947c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1225.8333625793457,"y":4509.675470352173,"z":"ad46ffb1.59044","wires":[["bbdabb63.782468"]]},{"id":"e22d9d06.89265","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\n  + ' in AAI'`\" />\n","comments":"","outputs":1,"x":1598.6191215515137,"y":4530.23245215416,"z":"ad46ffb1.59044","wires":[[]]},{"id":"bbdabb63.782468","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1401.952407836914,"y":4530.232208013535,"z":"ad46ffb1.59044","wires":[["e22d9d06.89265","b9471f80.beb4f"]]},{"id":"76baa0fa.2967c","type":"save","name":"save configuration relationship to allotted-resource","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration:relationship-list\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"allotted-resource\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/business/customers/customer/' + $service-data.service-information.global-customer-id\n      + '/service-subscriptions/service-subscription/' + $port-mirror-topology-operation-input.service-information.subscription-service-type\n      + '/service-instances/service-instance/' + $tmp.service-instance-id\n\t  + '/allotted-resources/allotted-resource/' + $cto-api.contrail-route-allotted-instance-id`\" />\n","comments":"","outputs":1,"x":957.8332977294922,"y":4801.508413076401,"z":"ad46ffb1.59044","wires":[["fbb7f484.ef58f8"]]},{"id":"fbb7f484.ef58f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1217.595142364502,"y":4801.508203268051,"z":"ad46ffb1.59044","wires":[["d530397.7d127c8"]]},{"id":"fa746551.40b958","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\n  + ' in AAI'`\" />\n","comments":"","outputs":1,"x":1586.0951538085938,"y":4800.63653922081,"z":"ad46ffb1.59044","wires":[[]]},{"id":"d530397.7d127c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1389.4284400939941,"y":4800.636295080185,"z":"ad46ffb1.59044","wires":[["fa746551.40b958","b9471f80.beb4f"]]},{"id":"c31b80a8.b4288","type":"set","name":"set allotted-resource-id","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id'\n  value='`$cto-api.contrail-route-allotted-instance-id`' />\n","comments":"","x":1017.0238265991211,"y":3879.199120283127,"z":"ad46ffb1.59044","wires":[]},{"id":"d3793fdc.0a2ff","type":"switchNode","name":"switch configuration-id = input configuration-id","xml":"<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\n","comments":"","outputs":1,"x":2627.3808822631836,"y":709.1279284954071,"z":"ad46ffb1.59044","wires":[["f850adb4.3d4cc"]]},{"id":"f850adb4.3d4cc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2894.047882080078,"y":709.1279418468475,"z":"ad46ffb1.59044","wires":[["ad263b73.9e1128"]]},{"id":"e1f68e84.fcd0a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2891.905387878418,"y":809.84219622612,"z":"ad46ffb1.59044","wires":[["a08aecf8.1164d"]]},{"id":"8ab7174a.76f6c8","type":"call","name":"call api-contrail-route-topology-operation-delete","xml":"<call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' >\n\n","comments":"","outputs":1,"x":2158.49991607666,"y":5728.604483366013,"z":"ad46ffb1.59044","wires":[[]]},{"id":"4014d89b.66e348","type":"set","name":"set parameters","xml":"<set>\n<parameter name='cto-api.default-domain' value='default-domain' />\n<parameter name='cto-api.default-project' value='`$tmp.tenant`' />\n<parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\n<parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='cto-api.rollback-flag' value='true' />\n<parameter name='tmp.saved-error-message' value='`$error-message`' />\n","comments":"","x":2061.3569564819336,"y":5682.17448592186,"z":"ad46ffb1.59044","wires":[]},{"id":"4877f4d7.9e8e3c","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value='`$tmp.saved-error-message`' />\n","comments":"","x":2069.3329849243164,"y":5776.223969221115,"z":"ad46ffb1.59044","wires":[]},{"id":"c21bf8.eab03408","type":"switchNode","name":"switch configuration-id = input configuration-id","xml":"<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\n","comments":"","outputs":1,"x":2619.0476837158203,"y":809.1279685497284,"z":"ad46ffb1.59044","wires":[["e1f68e84.fcd0a"]]},{"id":"cfce73db.444a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1305.0000610351562,"y":764.1279561519623,"z":"ad46ffb1.59044","wires":[["5497462d.218008","d391bbf3.6fb278"]]},{"id":"d391bbf3.6fb278","type":"switchNode","name":"switch instance-group-role == dest network role","xml":"<switch test=\"`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.dest-network-role`\">\n","comments":"","outputs":1,"x":1585.000144958496,"y":812.4613530635834,"z":"ad46ffb1.59044","wires":[["ae1da850.aa5c38"]]},{"id":"ae1da850.aa5c38","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1845.0000839233398,"y":810.7946927547455,"z":"ad46ffb1.59044","wires":[["826084d1.080b38"]]},{"id":"ef26b095.af478","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":926.6667404174805,"y":625.7469708919525,"z":"ad46ffb1.59044","wires":[["366c2bd1.d0f054","e2a4a4ac.7745d8"]]},{"id":"366c2bd1.d0f054","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":1133.3333358764648,"y":597.4137017726898,"z":"ad46ffb1.59044","wires":[["4e1f1d25.97bcc4"]]},{"id":"e2a4a4ac.7745d8","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":1131.6665077209473,"y":650.7469975948334,"z":"ad46ffb1.59044","wires":[["fdd5e4da.854ea8"]]},{"id":"fdd5e4da.854ea8","type":"set","name":"set src vnfc-instance-group indexes to 0","xml":"<set>\n<parameter name='tmp.src-vnfc-idx' value='0' />\n","comments":"","x":1380.000015258789,"y":650.7469937801361,"z":"ad46ffb1.59044","wires":[]},{"id":"3f2e31c8.06f08e","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":1090.3333740234375,"y":898.0803582668304,"z":"ad46ffb1.59044","wires":[["46551bfb.574f74","3d428c98.dd8054"]]},{"id":"46551bfb.574f74","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":1296.9999694824219,"y":869.7470891475677,"z":"ad46ffb1.59044","wires":[["f9f6a40c.995e38"]]},{"id":"3d428c98.dd8054","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":1295.333137512207,"y":928.0803475379944,"z":"ad46ffb1.59044","wires":[["74f9ecf9.aaa254"]]},{"id":"74f9ecf9.aaa254","type":"set","name":"set src vnfc-instance-group index","xml":"<set>\n<parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`'/>\n","comments":"","x":1520.3333740234375,"y":922.0803582668304,"z":"ad46ffb1.59044","wires":[]},{"id":"ba91d904.ffefc8","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":481.33335876464844,"y":2562.080483198166,"z":"ad46ffb1.59044","wires":[["a7a79641.236e88"]]},{"id":"a7a79641.236e88","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":679.3333587646484,"y":2562.080483198166,"z":"ad46ffb1.59044","wires":[["bccb28e8.16a9b8"]]},{"id":"7ee1327.81d79cc","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":480.3333282470703,"y":2781.413825750351,"z":"ad46ffb1.59044","wires":[["c029ac7.4e95f5"]]},{"id":"c029ac7.4e95f5","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":678.3333282470703,"y":2781.413825750351,"z":"ad46ffb1.59044","wires":[["3f4d2f6e.a6f3f"]]},{"id":"b4aa58d9.1a6638","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":475.3333435058594,"y":2917.747165441513,"z":"ad46ffb1.59044","wires":[["779de296.e05f0c","1c0d42a5.c3ea0d"]]},{"id":"779de296.e05f0c","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":681.9999389648438,"y":2889.4138963222504,"z":"ad46ffb1.59044","wires":[["7b66815b.00988"]]},{"id":"1c0d42a5.c3ea0d","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":680.3331108093262,"y":2942.747192144394,"z":"ad46ffb1.59044","wires":[["9a90328a.f8f3f"]]},{"id":"9a90328a.f8f3f","type":"set","name":"set vnfc-instance-group data","xml":"<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\n  value='`$tmp.src-network-role`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\n  value='`$tmp.src-nfc-naming-code`'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\n  value='port-mirror-source'/>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\n  value='`$tmp.configuration-id`'/>\n","comments":"","x":887.3333435058594,"y":2941.747165441513,"z":"ad46ffb1.59044","wires":[]},{"id":"7c523201.d63ddc","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":470.3333053588867,"y":3056.7470004558563,"z":"ad46ffb1.59044","wires":[["c96eb82f.f93d98","2c14fac4.bb6a36"]]},{"id":"c96eb82f.f93d98","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":676.9999008178711,"y":3028.4137313365936,"z":"ad46ffb1.59044","wires":[["dda98e98.66fdf"]]},{"id":"2c14fac4.bb6a36","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":675.3330726623535,"y":3081.747027158737,"z":"ad46ffb1.59044","wires":[["4c1abfdf.199e8"]]},{"id":"4c1abfdf.199e8","type":"set","name":"set assignments high-level data","xml":"<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\n  value='`$tmp.src-nfc-naming-code`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\n  value='`$tmp.src-network-role`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\n  value='`$tmp.service-instance-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\n  value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\n  value='`$tmp.src-vnf-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\n  value='`$tmp.src-pps`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-name'\n  value='`$tmp.dest-pnf-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-p-interface'\n  value='`$tmp.dest-p-interface`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-port-policy-name'\n  value='`$db.cap[0].policy-name`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\n  value='pprobe' />\n","comments":"","x":886.3332901000977,"y":3080.746999502182,"z":"ad46ffb1.59044","wires":[]},{"id":"6c94d29e.c7544c","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":469.33334732055664,"y":3370.7470166683197,"z":"ad46ffb1.59044","wires":[["1c67b9f0.492966"]]},{"id":"1c67b9f0.492966","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":667.3333473205566,"y":3370.7470166683197,"z":"ad46ffb1.59044","wires":[["ae6055fe.670a38"]]},{"id":"ae6055fe.670a38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":811.3333473205566,"y":3370.7470166683197,"z":"ad46ffb1.59044","wires":[["625b85e.683ee7c","6e2daa52.cd5594"]]},{"id":"eef77adb.8474d8","type":"call","name":"call port-mirror-topology-operation-mapping-vprobe","xml":"<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-vprobe' mode='sync' >\n","comments":"","outputs":1,"x":953.9999542236328,"y":3615.0802524089813,"z":"ad46ffb1.59044","wires":[["627e8543.3e36bc"]]},{"id":"627e8543.3e36bc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1222.333236694336,"y":3635.0804545879364,"z":"ad46ffb1.59044","wires":[["63c03f51.fc305"]]},{"id":"f3bec0f8.38123","type":"call","name":"call port-mirror-topology-operation-create-vnfcs","xml":"<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-create-vnfcs' mode='sync' >\n","comments":"","outputs":1,"x":523.6666641235352,"y":3477.4136922359467,"z":"ad46ffb1.59044","wires":[["dfead08.322943"]]},{"id":"dfead08.322943","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":781.6666641235352,"y":3477.4136922359467,"z":"ad46ffb1.59044","wires":[["63c03f51.fc305"]]},{"id":"569bdf72.3da37","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":469.9999237060547,"y":3642.413380384445,"z":"ad46ffb1.59044","wires":[["7741ec73.021014","368bf59f.c05efa"]]},{"id":"7741ec73.021014","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":682.9999389648438,"y":3615.7467544078827,"z":"ad46ffb1.59044","wires":[["eef77adb.8474d8"]]},{"id":"368bf59f.c05efa","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":683.6665802001953,"y":3664.079884290695,"z":"ad46ffb1.59044","wires":[["2a760035.fd29a"]]},{"id":"2a760035.fd29a","type":"call","name":"call port-mirror-topology-operation-mapping-pprobe","xml":"<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-pprobe' mode='sync' >\n","comments":"","outputs":1,"x":952.9999389648438,"y":3664.0798423290253,"z":"ad46ffb1.59044","wires":[["627e8543.3e36bc"]]},{"id":"db838c10.6d034","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1851.1187477111816,"y":5889.080706357956,"z":"ad46ffb1.59044","wires":[["63c03f51.fc305","fc45d5c3.cb8368"]]},{"id":"a420df.c0984f2","type":"call","name":"call port-mirror-rollback-capacity-db","xml":"<call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' >\n\n","comments":"","outputs":1,"x":2485.16609954834,"y":5887.413600683212,"z":"ad46ffb1.59044","wires":[[]]},{"id":"36218a22.f604d6","type":"call","name":"call port-mirror-get-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='port-mirror-get-policy' mode='sync' >\n","comments":"","outputs":1,"x":1113.6902923583984,"y":2369.91375041008,"z":"ad46ffb1.59044","wires":[["8ebef83f.b47318"]]},{"id":"8ebef83f.b47318","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1306.690315246582,"y":2369.91375041008,"z":"ad46ffb1.59044","wires":[["63c03f51.fc305"]]},{"id":"43966c.cbf36994","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":482.0237731933594,"y":2371.5804069042206,"z":"ad46ffb1.59044","wires":[["e3d46d1c.4449f"]]},{"id":"e3d46d1c.4449f","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":681.6904029846191,"y":2370.913699865341,"z":"ad46ffb1.59044","wires":[["3b89a5ce.4bc88a"]]},{"id":"7f533d3d.edc374","type":"switchNode","name":"switch tenant-context","xml":"<switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`'>\n","comments":"","outputs":1,"x":886.6666030883789,"y":1548.2469975948334,"z":"ad46ffb1.59044","wires":[["87286e2c.30f99","d66314a3.a8eb78"]]},{"id":"87286e2c.30f99","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1086.6665077209473,"y":1529.9136226177216,"z":"ad46ffb1.59044","wires":[["ecc298c.8fc9b68"]]},{"id":"d66314a3.a8eb78","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1084.9997787475586,"y":1569.6756694316864,"z":"ad46ffb1.59044","wires":[["4cf523d9.55ff7c"]]},{"id":"ecc298c.8fc9b68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1228.3331813812256,"y":1529.9136636257172,"z":"ad46ffb1.59044","wires":[[]]},{"id":"4cf523d9.55ff7c","type":"set","name":"set tmp.tenant-context from tenant-context","xml":"<set>\n<parameter name='tmp.tenant-context' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`' />\n","comments":"","x":1338.3332595825195,"y":1569.913804769516,"z":"ad46ffb1.59044","wires":[]},{"id":"b26e3f0d.1d7c8","type":"switchNode","name":"switch tmp.tenant-id","xml":"<switch test='`$tmp.tenant-id`'>\n","comments":"","outputs":1,"x":448.3333206176758,"y":1828.2468166351318,"z":"ad46ffb1.59044","wires":[["f0ddd506.47fa28"]]},{"id":"f0ddd506.47fa28","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":674.9999415079756,"y":1826.5800231297812,"z":"ad46ffb1.59044","wires":[["fceefe81.bdc8e"]]},{"id":"fceefe81.bdc8e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":833.3332544962568,"y":1826.5800231297812,"z":"ad46ffb1.59044","wires":[["df6b4834.202878","63c03f51.fc305"]]},{"id":"df6b4834.202878","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve source tenant-id from AAI\" />\n","comments":"","outputs":1,"x":1033.9047152201338,"y":1826.2943442662558,"z":"ad46ffb1.59044","wires":[[]]},{"id":"3b89a5ce.4bc88a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":831.1904144287109,"y":2370.7468860149384,"z":"ad46ffb1.59044","wires":[["36218a22.f604d6"]]},{"id":"fc45d5c3.cb8368","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":2063.4996643066406,"y":5888.7467267513275,"z":"ad46ffb1.59044","wires":[["4b208ae1.40adb4"]]},{"id":"4b208ae1.40adb4","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":2261.4996643066406,"y":5888.7467267513275,"z":"ad46ffb1.59044","wires":[["a420df.c0984f2"]]},{"id":"c0c9e1a0.c1dd8","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":918.5715026855469,"y":4324.318286657333,"z":"ad46ffb1.59044","wires":[["336ce22b.42a1ae","ee09a4eb.1fe158"]]},{"id":"336ce22b.42a1ae","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":1134.4285507202148,"y":4243.365930318832,"z":"ad46ffb1.59044","wires":[["18535f5.1200da1"]]},{"id":"ee09a4eb.1fe158","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":1135.0952835083008,"y":4395.984510183334,"z":"ad46ffb1.59044","wires":[["6c233b94.0bcdc4"]]},{"id":"c3f6701a.7032f","type":"save","name":"save pprobe logical-link relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"logical-link:relationship-list\"\n   key=\"logical-link.link-name = $tmp.link-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l-interface\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-label\" value=\"org.onap.relationships.inventory.Source\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\n        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\n        + $tmp.tenant-id + '/vservers/vserver/' \n        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n        + '/l-interfaces/l-interface/'\n        + $tmp.encoded-source-port-name`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"l-interface\" />\n    <parameter name=\"relationship-list.relationship[1].relationship-label\" value=\"org.onap.relationships.inventory.Destination\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/pnfs/pnf/'\n        + $tmp.dest-pnf-name + '/p-interfaces/p-interface/'\n        + $tmp.encoded-dest-p-interface + '/l-interfaces/l-interface/' \n        + $tmp.encoded-dest-port-name`\" />\n","comments":"","outputs":1,"x":1626.9047546386719,"y":4424.556483030319,"z":"ad46ffb1.59044","wires":[["aca151d2.78cad","dbe217c5.2519a8"]]},{"id":"fb861ac2.aeb8b8","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":471.6667175292969,"y":3834.0801408290863,"z":"ad46ffb1.59044","wires":[["ea2b6c9c.21d7f"]]},{"id":"ea2b6c9c.21d7f","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":669.6667175292969,"y":3834.0801408290863,"z":"ad46ffb1.59044","wires":[["6c7aeb00.1010d4"]]},{"id":"6c7aeb00.1010d4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":816.6666412353516,"y":3834.080167531967,"z":"ad46ffb1.59044","wires":[["6aa8217a.be7a8","c31b80a8.b4288","cf530372.3cdf2"]]},{"id":"497d568b.0f1998","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":463.1903839111328,"y":4800.794217824936,"z":"ad46ffb1.59044","wires":[["650f3d05.c7b2c4"]]},{"id":"650f3d05.c7b2c4","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":661.1903839111328,"y":4800.794217824936,"z":"ad46ffb1.59044","wires":[["76baa0fa.2967c"]]},{"id":"1bc76bf3.eeff44","type":"execute","name":"encode spaces in src-nfc-naming-code","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"replace\">\n\t<parameter name=\"source\" value=\"`$tmp.src-nfc-naming-code`\" />\n\t<parameter name=\"target\" value=\" \" />\n\t<parameter name=\"replacement\" value=\"%20\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-src-nfc-naming-code\" />\n","comments":"","outputs":1,"x":502.85723876953125,"y":515.9523913860321,"z":"ad46ffb1.59044","wires":[[]]},{"id":"34f89d01.613262","type":"execute","name":"encode spaces in dest-nfc-naming-code","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"replace\">\n\t<parameter name=\"source\" value=\"`$tmp.dest-nfc-naming-code`\" />\n\t<parameter name=\"target\" value=\" \" />\n\t<parameter name=\"replacement\" value=\"%20\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-dest-nfc-naming-code\" />\n","comments":"","outputs":1,"x":507.85709381103516,"y":564.2857167720795,"z":"ad46ffb1.59044","wires":[[]]},{"id":"a44e08eb.db9948","type":"switchNode","name":"switch source-to-dest-map_length","xml":"<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`'>\n","comments":"","outputs":1,"x":482.8571319580078,"y":3722.6186966896057,"z":"ad46ffb1.59044","wires":[["f7202318.a956f","868aa975.671c78"]]},{"id":"f7202318.a956f","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":707.8571395874023,"y":3699.285307407379,"z":"ad46ffb1.59044","wires":[["e98cc52b.20adf8"]]},{"id":"868aa975.671c78","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":706.1904525756836,"y":3739.285307407379,"z":"ad46ffb1.59044","wires":[["e98cc52b.20adf8"]]},{"id":"e98cc52b.20adf8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":859.5237655639648,"y":3720.952055454254,"z":"ad46ffb1.59044","wires":[["51295bdc.47f6c4","63c03f51.fc305"]]},{"id":"51295bdc.47f6c4","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No usable source l-interfaces found in AAI data\" />\n","comments":"","outputs":1,"x":1056.1903915405273,"y":3719.285307407379,"z":"ad46ffb1.59044","wires":[[]]},{"id":"47af693f.8cd828","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1234.2856826782227,"y":4553.571910619736,"z":"ad46ffb1.59044","wires":[["bbdabb63.782468"]]},{"id":"4573744a.834e0c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1392.999870300293,"y":1951.2380549907684,"z":"ad46ffb1.59044","wires":[["b375f194.02676"]]},{"id":"b375f194.02676","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1565.5713195800781,"y":1952.1903321743011,"z":"ad46ffb1.59044","wires":[["437bd1a1.f2c9d","63c03f51.fc305"]]},{"id":"437bd1a1.f2c9d","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: cloud-region-fromVnf, for destination vnf\" />\n","comments":"","outputs":1,"x":1778.5713500976562,"y":1952.190439939499,"z":"ad46ffb1.59044","wires":[[]]},{"id":"e6609e5f.34d39","type":"save","name":"custom query: get cloud region from dest vnf","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource&amp;nodesOnly=true'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.AnAI-data.dest-vnf\">\n<parameter name=\"start[0]\" value=\"`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id `\" />\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"query/cloud-region-fromVnf\" /> \n","comments":"","outputs":1,"x":1138.428466796875,"y":1977.523785352707,"z":"ad46ffb1.59044","wires":[["4573744a.834e0c","154faeaa.368d41"]]},{"id":"154faeaa.368d41","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1406.7141647338867,"y":2002.095110654831,"z":"ad46ffb1.59044","wires":[["a89eaf11.7e0b1"]]},{"id":"a89eaf11.7e0b1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1570.9998741149902,"y":2000.6665923595428,"z":"ad46ffb1.59044","wires":[["eb95e0ab.146cb","63c03f51.fc305"]]},{"id":"eb95e0ab.146cb","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No cloud region returned from AAI: cloud-region-fromVnf, for destination vnf\" />\n","comments":"","outputs":1,"x":1771.5713348388672,"y":2000.3809134960175,"z":"ad46ffb1.59044","wires":[[]]},{"id":"fa51468e.921388","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$tmp.configuration-sub-type`'>\n","comments":"","outputs":1,"x":477.28565979003906,"y":2119.809517621994,"z":"ad46ffb1.59044","wires":[["ed9d1841.db2a08"]]},{"id":"ed9d1841.db2a08","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":676.9522895812988,"y":2119.1428105831146,"z":"ad46ffb1.59044","wires":[["ff18461b.76ee58"]]},{"id":"ff18461b.76ee58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":828.7142486572266,"y":2118.3809287548065,"z":"ad46ffb1.59044","wires":[["e6609e5f.34d39","faf4a613.ee5ff8","f6377325.42056","cc1ea987.81d3e8"]]},{"id":"faf4a613.ee5ff8","type":"for","name":"for each returned result","xml":"<for index='result-idx' start='0' end='`$tmp.AnAI-data.dest-vnf.results_length`' >\n","comments":"","outputs":1,"x":1065.8570861816406,"y":2109.8095004558563,"z":"ad46ffb1.59044","wires":[["a9bff298.d99cf","38457a45.bbc4b6"]]},{"id":"a9bff298.d99cf","type":"switchNode","name":"switch tenant-name","xml":"<switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`'>\n","comments":"","outputs":1,"x":1299.1903610229492,"y":2062.6665506362915,"z":"ad46ffb1.59044","wires":[["4ad4e6b8.e0e368","e71b1e71.f9183"]]},{"id":"4ad4e6b8.e0e368","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1485.8569679260254,"y":2044.3332135677338,"z":"ad46ffb1.59044","wires":[["9f17745d.6422c8"]]},{"id":"e71b1e71.f9183","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1484.1902389526367,"y":2084.0952603816986,"z":"ad46ffb1.59044","wires":[["e0c49a34.d24088"]]},{"id":"9f17745d.6422c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1627.5236415863037,"y":2044.3332545757294,"z":"ad46ffb1.59044","wires":[[]]},{"id":"e0c49a34.d24088","type":"set","name":"set tmp.dest-tenant from tenant-name","xml":"<set>\n<parameter name='tmp.dest-tenant' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`' />\n","comments":"","x":1723.3808517456055,"y":2082.66651058197,"z":"ad46ffb1.59044","wires":[]},{"id":"f6377325.42056","type":"switchNode","name":"switch tmp.dest-tenant","xml":"<switch test='`$tmp.dest-tenant`'>\n","comments":"","outputs":1,"x":1059.8571166992188,"y":2221.238068342209,"z":"ad46ffb1.59044","wires":[["18391ea.86616e1"]]},{"id":"18391ea.86616e1","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1259.4284744262695,"y":2220.3329684734344,"z":"ad46ffb1.59044","wires":[["76e5f52c.7c1e9c"]]},{"id":"76e5f52c.7c1e9c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1412.0475234985352,"y":2219.904328107834,"z":"ad46ffb1.59044","wires":[["3f92a68b.6bc4fa","63c03f51.fc305"]]},{"id":"3f92a68b.6bc4fa","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve destination tenant from AAI\" />\n","comments":"","outputs":1,"x":1599.7618713378906,"y":2219.0472552776337,"z":"ad46ffb1.59044","wires":[[]]},{"id":"9fdf6659.2008e8","type":"set","name":"set tmp.src-network-name and contrail fqdn","xml":"<set>\n<parameter name='tmp.src-network-name' value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn'\n  value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.contrail-network-fqdn`' />\n","comments":"","x":1516.1903686523438,"y":3162.6187646389008,"z":"ad46ffb1.59044","wires":[]},{"id":"9d76aa87.81e4e8","type":"set","name":"set tmp.dest-network-name and contrail fqdn","xml":"<set>\n<parameter name='tmp.dest-network-name' value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn'\n  value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.contrail-network-fqdn`' />\n","comments":"","x":2094.5237197875977,"y":3309.6187703609467,"z":"ad46ffb1.59044","wires":[]},{"id":"dbe217c5.2519a8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1909.047695159912,"y":4424.523663282394,"z":"ad46ffb1.59044","wires":[["81fec963.f0c378"]]},{"id":"dbd95e4a.02811","type":"execute","name":"urlEncode tmp.encoded-link-name","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"urlEncode\">\n\t<parameter name=\"source\" value=\"`$tmp.link-name`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-link-name\" />\n","comments":"","outputs":1,"x":940.2381286621094,"y":4094.9998967647552,"z":"ad46ffb1.59044","wires":[[]]},{"id":"18535f5.1200da1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1284.5238037109375,"y":4243.571359395981,"z":"ad46ffb1.59044","wires":[["c7ea99b1.29bf58","1ad1135d.a56a9d","8753137e.a72be"]]},{"id":"6c233b94.0bcdc4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1284.523754119873,"y":4396.428431272507,"z":"ad46ffb1.59044","wires":[["c7ea99b1.29bf58","dc67e39d.28897","c3f6701a.7032f","1ad1135d.a56a9d"]]},{"id":"1ad1135d.a56a9d","type":"execute","name":"urlEncode tmp.encoded-dest-port-name","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"urlEncode\">\n\t<parameter name=\"source\" value=\"`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-dest-port-name\" />\n","comments":"","outputs":1,"x":1633.0952606201172,"y":4276.428080320358,"z":"ad46ffb1.59044","wires":[[]]},{"id":"c7ea99b1.29bf58","type":"execute","name":"urlEncode tmp.encoded-source-port-name","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"urlEncode\">\n\t<parameter name=\"source\" value=\"`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-source-port-name\" />\n","comments":"","outputs":1,"x":1638.8096389770508,"y":4226.428150892258,"z":"ad46ffb1.59044","wires":[[]]},{"id":"dc67e39d.28897","type":"execute","name":"urlEncode tmp.encoded-dest-p-interface","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"urlEncode\">\n\t<parameter name=\"source\" value=\"`$tmp.dest-p-interface`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.encoded-dest-p-interface\" />\n","comments":"","outputs":1,"x":1633.0952377319336,"y":4324.999651670456,"z":"ad46ffb1.59044","wires":[[]]},{"id":"38457a45.bbc4b6","type":"switchNode","name":"switch tenant-id","xml":"<switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`'>\n","comments":"","outputs":1,"x":1287.3809661865234,"y":2140.7142856121063,"z":"ad46ffb1.59044","wires":[["8241f9f.db88c08","b6dabfd4.14d6f"]]},{"id":"8241f9f.db88c08","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1487.3808708190918,"y":2122.3809106349945,"z":"ad46ffb1.59044","wires":[["3d4e5fe7.561ce"]]},{"id":"b6dabfd4.14d6f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1485.7141418457031,"y":2162.1429574489594,"z":"ad46ffb1.59044","wires":[["d1261b6b.8c1048"]]},{"id":"3d4e5fe7.561ce","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1629.0475444793701,"y":2122.38095164299,"z":"ad46ffb1.59044","wires":[[]]},{"id":"d1261b6b.8c1048","type":"set","name":"set tmp.dest-tenant-id from tenant-id","xml":"<set>\n<parameter name='tmp.dest-tenant-id' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`' />\n","comments":"","x":1721.9047088623047,"y":2162.3809468746185,"z":"ad46ffb1.59044","wires":[]},{"id":"cc1ea987.81d3e8","type":"switchNode","name":"switch tmp.dest-tenant-id","xml":"<switch test='`$tmp.dest-tenant-id`'>\n","comments":"","outputs":1,"x":1065.952377319336,"y":2267.8571078777313,"z":"ad46ffb1.59044","wires":[["8bb3d822.e12b08"]]},{"id":"8bb3d822.e12b08","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1259.5237350463867,"y":2266.952008008957,"z":"ad46ffb1.59044","wires":[["1a002ab2.dc1e45"]]},{"id":"1a002ab2.dc1e45","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1412.1427841186523,"y":2266.5233676433563,"z":"ad46ffb1.59044","wires":[["f1e988bd.457508"]]},{"id":"f1e988bd.457508","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to retrieve destination tenant-id from AAI\" />\n","comments":"","outputs":1,"x":1599.8571319580078,"y":2265.666294813156,"z":"ad46ffb1.59044","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.json
new file mode 100755 (executable)
index 0000000..905f33d
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"d4981d0d.a6054","type":"dgstart","name":"DGSTART","outputs":1,"x":99.99999237060547,"y":89.080322265625,"z":"28d78a5d.e3aa46","wires":[["c6e9bc29.d4914"]]},{"id":"c6e9bc29.d4914","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":213.6190185546875,"y":129.3184356689453,"z":"28d78a5d.e3aa46","wires":[["4a5a9c6b.fcbe14"]]},{"id":"4a5a9c6b.fcbe14","type":"method","name":"method port-mirror-topology-operation-assign-sync","xml":"<method rpc='port-mirror-topology-operation-assign-sync' mode='sync'>\n","comments":"","outputs":1,"x":227.42861938476562,"y":169.080322265625,"z":"28d78a5d.e3aa46","wires":[["2b414eef.f2d3e2"]]},{"id":"f0e95717.55e158","type":"comment","name":"port-mirror-topology-operation-assign-sync","info":"","comments":"","x":494.3448486328125,"y":36.66666603088379,"z":"28d78a5d.e3aa46","wires":[]},{"id":"2b414eef.f2d3e2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":156.6666488647461,"y":590.0326976776123,"z":"28d78a5d.e3aa46","wires":[["e97a4616.1a2ef8","8e922c1f.6598e","b93a573d.91e578","c18afb65.324068","6eddde34.9dcbb","22301bc.8523de4","712d0a9f.ac38b4"]]},{"id":"8e922c1f.6598e","type":"get-resource","name":"get-resource PORT_MIRROR_CAPABILITY","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select role,nfc_naming_code,pps_capacity\n    from PORT_MIRROR_CAPABILITY cap, PORT_MIRROR_CONFIGURATION conf, SERVICE_PROXY sp\n    where cap.port_mirror_capability_name=conf.port_mirror_capability_name\n     and cap.port_mirror_service_uuid=conf.port_mirror_service_uuid\n     and cap.service_proxy_name=conf.service_proxy_name\n     and cap.service_proxy_name=sp.service_proxy_name\n     and cap.port_mirror_service_uuid=sp.parent_service_uuid\n     and conf.customization_uuid = $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid\n     and conf.port_mirror_service_uuid = $service-data.service-information.onap-model-information.model-uuid\n    order by role'\n  pfx='db.cap[]'>\n\n","comments":"","outputs":1,"x":512.6190032958984,"y":321.69937896728516,"z":"28d78a5d.e3aa46","wires":[["faec1832.428eb8","86f1b9bb.986ec8"]]},{"id":"97d0df89.5c5ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find PORT_MIRROR_CONFIGURATION entry for ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":936.1904029846191,"y":340.84213638305664,"z":"28d78a5d.e3aa46","wires":[]},{"id":"faec1832.428eb8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":766.9761638641357,"y":297.3659191131592,"z":"28d78a5d.e3aa46","wires":[["675d5840.c6f238"]]},{"id":"86f1b9bb.986ec8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":775.5475997924805,"y":340.65163230895996,"z":"28d78a5d.e3aa46","wires":[["97d0df89.5c5ac"]]},{"id":"675d5840.c6f238","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading PORT_MIRROR_CONFIGURATION and PORT_MIRROR_CAPABILITY tables\" />\n","comments":"","x":938.4047431945801,"y":297.36595344543457,"z":"28d78a5d.e3aa46","wires":[]},{"id":"e97a4616.1a2ef8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='N' />","comments":"","x":407.09517669677734,"y":926.222993850708,"z":"28d78a5d.e3aa46","wires":[]},{"id":"c3686485.05b8a8","type":"switchNode","name":"switch db.cap_length == 2","xml":"<switch test='`$db.cap_length == 2`'>\n","comments":"","outputs":1,"x":1117.618911743164,"y":394.080379486084,"z":"28d78a5d.e3aa46","wires":[["b55ad9a0.811a08"]]},{"id":"4169e23c.9e0dbc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'PORT_MIRROR_CONFIGURATION does not contain exactly 2 entries for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1527.618902206421,"y":393.41372871398926,"z":"28d78a5d.e3aa46","wires":[]},{"id":"b55ad9a0.811a08","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1356.1903400421143,"y":393.84223556518555,"z":"28d78a5d.e3aa46","wires":[["4169e23c.9e0dbc"]]},{"id":"2077d65b.fd2b8a","type":"switchNode","name":"switch db.cap[0].role == collector","xml":"<switch test=\"`$db.cap[0].role == 'collector'`\">\n","comments":"","outputs":1,"x":1136.1903381347656,"y":442.65181159973145,"z":"28d78a5d.e3aa46","wires":[["4f6a0ac5.2a7bd4"]]},{"id":"4f6a0ac5.2a7bd4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1354.7618255615234,"y":440.9851703643799,"z":"28d78a5d.e3aa46","wires":[["e9504b90.1d6868"]]},{"id":"e9504b90.1d6868","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No collector capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1527.618902206421,"y":440.98517417907715,"z":"28d78a5d.e3aa46","wires":[]},{"id":"3fcce2c4.a741de","type":"switchNode","name":"switch db.cap[1].role == source","xml":"<switch test=\"`$db.cap[1].role == 'source'`\">\n","comments":"","outputs":1,"x":1127.6189498901367,"y":491.2232313156128,"z":"28d78a5d.e3aa46","wires":[["25db0d53.1bf8b2"]]},{"id":"25db0d53.1bf8b2","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1354.761754989624,"y":489.55668449401855,"z":"28d78a5d.e3aa46","wires":[["24be1582.7b80ea"]]},{"id":"24be1582.7b80ea","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No source capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1526.1903324127197,"y":489.55660247802734,"z":"28d78a5d.e3aa46","wires":[]},{"id":"b93a573d.91e578","type":"set","name":"set tmp.pm.configuration-id","xml":"<set>\n<parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n","comments":"","x":445.1904754638672,"y":681.4612274169922,"z":"28d78a5d.e3aa46","wires":[]},{"id":"c18afb65.324068","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":433.3333206176758,"y":730.0326557159424,"z":"28d78a5d.e3aa46","wires":[[]]},{"id":"6eddde34.9dcbb","type":"execute","name":"generate port-mirror-configuration url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.pm.configuration-id`\"/>\n","comments":"","outputs":1,"x":476.1904830932617,"y":777.1755027770996,"z":"28d78a5d.e3aa46","wires":[[]]},{"id":"22301bc.8523de4","type":"execute","name":"execute RestApiCallNode - get port-mirror-configuration","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n","comments":"","outputs":1,"x":534.7619247436523,"y":845.7470531463623,"z":"28d78a5d.e3aa46","wires":[["94cba7d6.3f7d18","49892716.4419a8"]]},{"id":"94cba7d6.3f7d18","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":840.0578842163086,"y":823.697735786438,"z":"28d78a5d.e3aa46","wires":[["77af0812.11c6a8"]]},{"id":"77af0812.11c6a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Port mirror configuration ' + $tmp.pm.configuration-id + ' already exists'`\" />\n","comments":"","x":999.0475578308105,"y":822.8898220062256,"z":"28d78a5d.e3aa46","wires":[]},{"id":"49892716.4419a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":836.1904678344727,"y":865.7469863891602,"z":"28d78a5d.e3aa46","wires":[["2df08cc1.2a79c4"]]},{"id":"2df08cc1.2a79c4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":981.9047431945801,"y":865.7469387054443,"z":"28d78a5d.e3aa46","wires":[[]]},{"id":"712d0a9f.ac38b4","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\n","comments":"","outputs":1,"x":458.09519958496094,"y":504.3184242248535,"z":"28d78a5d.e3aa46","wires":[["ac124ecb.f843c","1484ba45.65af16"]]},{"id":"ac124ecb.f843c","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":699.7618789672852,"y":442.651704788208,"z":"28d78a5d.e3aa46","wires":[["f8f05771.ef2d68"]]},{"id":"1484ba45.65af16","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":694.761791229248,"y":574.3183403015137,"z":"28d78a5d.e3aa46","wires":[["c6d75ff9.ed799"]]},{"id":"f8f05771.ef2d68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":884.7618255615234,"y":442.6517143249512,"z":"28d78a5d.e3aa46","wires":[["c3686485.05b8a8","2077d65b.fd2b8a","3fcce2c4.a741de"]]},{"id":"693d48ed.60ed18","type":"switchNode","name":"switch db.cap_length == 1","xml":"<switch test='`$db.cap_length == 1`'>\n","comments":"","outputs":1,"x":1114.7618103027344,"y":545.9850616455078,"z":"28d78a5d.e3aa46","wires":[["e6747547.7c68a8"]]},{"id":"fb6bfd1e.507c7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'PORT_MIRROR_CONFIGURATION does not contain exactly 1 entry for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1524.7618007659912,"y":545.3184108734131,"z":"28d78a5d.e3aa46","wires":[]},{"id":"e6747547.7c68a8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1353.3332386016846,"y":545.7469177246094,"z":"28d78a5d.e3aa46","wires":[["fb6bfd1e.507c7"]]},{"id":"47f223e.0467cdc","type":"switchNode","name":"switch db.cap[0].role == source","xml":"<switch test=\"`$db.cap[0].role == 'source'`\">\n","comments":"","outputs":1,"x":1128.09521484375,"y":599.7945365905762,"z":"28d78a5d.e3aa46","wires":[["26b4180c.cd13a8"]]},{"id":"26b4180c.cd13a8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1355.2380199432373,"y":598.1279897689819,"z":"28d78a5d.e3aa46","wires":[["f2d50dd4.2e465"]]},{"id":"f2d50dd4.2e465","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No source capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1526.666597366333,"y":598.1279077529907,"z":"28d78a5d.e3aa46","wires":[]},{"id":"c6d75ff9.ed799","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":884.7618865966797,"y":572.6517314910889,"z":"28d78a5d.e3aa46","wires":[["693d48ed.60ed18","47f223e.0467cdc"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.json
new file mode 100644 (file)
index 0000000..7baac07
--- /dev/null
@@ -0,0 +1,540 @@
+[
+    {
+        "id": "a92b87d1.18ec78",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 101.66666412353516,
+        "y": 86.66666412353516,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "b4d6454f.2dd218"
+            ]
+        ]
+    },
+    {
+        "id": "b4d6454f.2dd218",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 215.2856903076172,
+        "y": 126.90477752685547,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "ae4c47c5.756b08"
+            ]
+        ]
+    },
+    {
+        "id": "ae4c47c5.756b08",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-async",
+        "xml": "<method rpc='port-mirror-topology-operation-async' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 210.0952911376953,
+        "y": 166.66666412353516,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "9ce29364.07fb2"
+            ]
+        ]
+    },
+    {
+        "id": "4790a30.c63705c",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-async",
+        "info": "",
+        "comments": "",
+        "x": 496.0115203857422,
+        "y": 34.253007888793945,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "ebececd6.1026b",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='ack-final' value='Y' />\n",
+        "comments": "",
+        "x": 437.14292907714844,
+        "y": 719.7619762420654,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "9ce29364.07fb2",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 210.4761962890625,
+        "y": 460.47620010375977,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "ebececd6.1026b",
+                "54acb947.6d1b38",
+                "bfee9804.6c0148"
+            ]
+        ]
+    },
+    {
+        "id": "54acb947.6d1b38",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 441.6072006225586,
+        "y": 554.1666126251221,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "9f0b8dfc.816dd",
+                "82c23d93.b7d7",
+                "e505f3f7.aa204"
+            ]
+        ]
+    },
+    {
+        "id": "9f0b8dfc.816dd",
+        "type": "outcome",
+        "name": "assign",
+        "xml": "<outcome value='assign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 668.5120277404785,
+        "y": 458.27380752563477,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "2ad1988f.1143d8"
+            ]
+        ]
+    },
+    {
+        "id": "82c23d93.b7d7",
+        "type": "outcome",
+        "name": "activate",
+        "xml": "<outcome value='activate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 670.8929710388184,
+        "y": 554.1071853637695,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "466d0a0d.e04164"
+            ]
+        ]
+    },
+    {
+        "id": "e505f3f7.aa204",
+        "type": "outcome",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 681.0119705200195,
+        "y": 662.38099193573,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "96380117.be36b"
+            ]
+        ]
+    },
+    {
+        "id": "2ad1988f.1143d8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 830.5952682495117,
+        "y": 456.60713958740234,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "177e7ab7.0ce115"
+            ]
+        ]
+    },
+    {
+        "id": "466d0a0d.e04164",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 832.1429786682129,
+        "y": 554.1071720123291,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "7f516513.455d1c"
+            ]
+        ]
+    },
+    {
+        "id": "96380117.be36b",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 831.8452835083008,
+        "y": 661.1309719085693,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "13957fa3.88e25"
+            ]
+        ]
+    },
+    {
+        "id": "177e7ab7.0ce115",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-assign-async",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-assign-async' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1120.464241027832,
+        "y": 457.59524154663086,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "1a4cc975.1b2247",
+                "b35c3cc9.bb03f"
+            ]
+        ]
+    },
+    {
+        "id": "1a4cc975.1b2247",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1399.464298248291,
+        "y": 431.16667556762695,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "16832c61.62f464"
+            ]
+        ]
+    },
+    {
+        "id": "16832c61.62f464",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\n",
+        "comments": "",
+        "x": 1569.4642753601074,
+        "y": 430.2738227844238,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "7f516513.455d1c",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-activate-async",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-activate-async' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1123.0356483459473,
+        "y": 552.4999494552612,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "7f417dcf.734f54",
+                "fca0cc7f.bd36a"
+            ]
+        ]
+    },
+    {
+        "id": "7f417dcf.734f54",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1398.0357055664062,
+        "y": 532.7380599975586,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "a3e8a6c3.07ff68"
+            ]
+        ]
+    },
+    {
+        "id": "a3e8a6c3.07ff68",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\n",
+        "comments": "",
+        "x": 1571.3688049316406,
+        "y": 533.5118827819824,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "13957fa3.88e25",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-deactivate-async",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-deactivate-async' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1118.2737312316895,
+        "y": 659.8809108734131,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "7add57e7.9fb0f8",
+                "4139181f.e48488"
+            ]
+        ]
+    },
+    {
+        "id": "7add57e7.9fb0f8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1396.6070365905762,
+        "y": 633.4523601531982,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "8660da39.e0eb58"
+            ]
+        ]
+    },
+    {
+        "id": "8660da39.e0eb58",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\n",
+        "comments": "",
+        "x": 1566.6070137023926,
+        "y": 632.5595073699951,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "b35c3cc9.bb03f",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1407.0833587646484,
+        "y": 482.4999809265137,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "f1dd6375.9f61a"
+            ]
+        ]
+    },
+    {
+        "id": "f1dd6375.9f61a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Cannot find assign async DG\" />\n<parameter name='ack-final' value='Y' />\n",
+        "comments": "",
+        "x": 1568.749885559082,
+        "y": 480.8333110809326,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "fca0cc7f.bd36a",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1403.7499809265137,
+        "y": 582.4999647140503,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "27ae87c4.a7ddf8"
+            ]
+        ]
+    },
+    {
+        "id": "27ae87c4.a7ddf8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Cannot find activate async DG\" />\n<parameter name='ack-final' value='Y' />\n",
+        "comments": "",
+        "x": 1565.4165077209473,
+        "y": 580.8332948684692,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "4139181f.e48488",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1407.0833206176758,
+        "y": 682.4999656677246,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "e88f3c47.44e4a"
+            ]
+        ]
+    },
+    {
+        "id": "e88f3c47.44e4a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Cannot find deactivate async DG\" />\n<parameter name='ack-final' value='Y' />\n",
+        "comments": "",
+        "x": 1568.7498474121094,
+        "y": 680.8332958221436,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "128027e6.192c18",
+        "type": "outcome",
+        "name": "VPROBE",
+        "xml": "<outcome value='VPROBE'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 698.6666946411133,
+        "y": 322.6190576553345,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "cd4c0b74.504af8"
+            ]
+        ]
+    },
+    {
+        "id": "1eb71011.f8c4a",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 691.9999847412109,
+        "y": 275.95241832733154,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "cd4c0b74.504af8"
+            ]
+        ]
+    },
+    {
+        "id": "a5cbc01.2308c4",
+        "type": "outcome",
+        "name": "PPROBE",
+        "xml": "<outcome value='PPROBE'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 698.3333168029785,
+        "y": 227.61908435821533,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "a2746b29.559da8"
+            ]
+        ]
+    },
+    {
+        "id": "2aa25b78.6a9eb4",
+        "type": "outcome",
+        "name": "pprobe",
+        "xml": "<outcome value='pprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 691.6666488647461,
+        "y": 182.61909198760986,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "a2746b29.559da8"
+            ]
+        ]
+    },
+    {
+        "id": "a2746b29.559da8",
+        "type": "set",
+        "name": "set to pprobe",
+        "xml": "<set>\n<parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\n",
+        "comments": "",
+        "x": 884.9999542236328,
+        "y": 197.6190938949585,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "d46212f.e1543f",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 692.0000038146973,
+        "y": 369.28574657440186,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "cd4c0b74.504af8"
+            ]
+        ]
+    },
+    {
+        "id": "cd4c0b74.504af8",
+        "type": "set",
+        "name": "set to vprobe",
+        "xml": "<set>\n<parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\n",
+        "comments": "",
+        "x": 884.9999313354492,
+        "y": 310.952431678772,
+        "z": "998e256c.383a68",
+        "wires": []
+    },
+    {
+        "id": "bfee9804.6c0148",
+        "type": "switchNode",
+        "name": "switch configuration-sub-type",
+        "xml": "<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 478.3333206176758,
+        "y": 275.95237731933594,
+        "z": "998e256c.383a68",
+        "wires": [
+            [
+                "2aa25b78.6a9eb4",
+                "a5cbc01.2308c4",
+                "1eb71011.f8c4a",
+                "128027e6.192c18",
+                "d46212f.e1543f"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.json
new file mode 100644 (file)
index 0000000..5947286
--- /dev/null
@@ -0,0 +1,1807 @@
+[
+    {
+        "id": "5824ca69.20e9b4",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 147.14285278320312,
+        "y": 91.42857360839844,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "2cdc778b.c440a8"
+            ]
+        ]
+    },
+    {
+        "id": "2cdc778b.c440a8",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 261.09523010253906,
+        "y": 131.66669464111328,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "46a31529.575a3c"
+            ]
+        ]
+    },
+    {
+        "id": "46a31529.575a3c",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-create-vnfc",
+        "xml": "<method rpc='port-mirror-topology-operation-create-vnfcs' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 271.4286346435547,
+        "y": 172.85714149475098,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "8349530a.566aa"
+            ]
+        ]
+    },
+    {
+        "id": "43c833c6.cbafdc",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-create-vnfcs",
+        "info": "",
+        "comments": "",
+        "x": 541.4877090454102,
+        "y": 39.01491737365723,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "3348c9a8.a257a6",
+        "type": "set",
+        "name": "set vnfc data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-key'\n  value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-name'\n  value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnf-id'\n  value='`$tmp.src-vnf-id`' />\n",
+        "comments": "",
+        "x": 1304.6427917480469,
+        "y": 147.76191902160645,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "82331627.da0c38",
+        "type": "comment",
+        "name": "look through relationships looking for the related vserver",
+        "info": "",
+        "comments": "",
+        "x": 1433.2144088745117,
+        "y": 192.04788208007812,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "606fe9e4.7d4348",
+        "type": "for",
+        "name": "for each relationship",
+        "xml": "<for index='rel-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1324.642807006836,
+        "y": 276.3334903717041,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "9e428281.f398e"
+            ]
+        ]
+    },
+    {
+        "id": "9e428281.f398e",
+        "type": "switchNode",
+        "name": "switch related-to == vserver",
+        "xml": "<switch test=\"`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].related-to == 'vserver'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1576.0715980529785,
+        "y": 276.3334560394287,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "5e09ce32.afc1a"
+            ]
+        ]
+    },
+    {
+        "id": "5e09ce32.afc1a",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1780.3572387695312,
+        "y": 274.9052333831787,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "dd66f351.b4287"
+            ]
+        ]
+    },
+    {
+        "id": "e0bfd49.2991328",
+        "type": "set",
+        "name": "set tmp.vserver-id = 0",
+        "xml": "<set>\n<parameter name='tmp.vserver-id' value='0' />\n",
+        "comments": "",
+        "x": 1331.785789489746,
+        "y": 233.47638320922852,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "dd66f351.b4287",
+        "type": "for",
+        "name": "for each relationship-data",
+        "xml": "<for index='reldata-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1977.4999923706055,
+        "y": 273.4764881134033,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "b5847bc5.de5478"
+            ]
+        ]
+    },
+    {
+        "id": "b5847bc5.de5478",
+        "type": "switchNode",
+        "name": "switch relationship-key == 'vserver.vserver-id'",
+        "xml": "<switch test=\"`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-key == 'vserver.vserver-id'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2297.499885559082,
+        "y": 273.4763126373291,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "a19eabb8.56abc8"
+            ]
+        ]
+    },
+    {
+        "id": "a19eabb8.56abc8",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2546.0715713500977,
+        "y": 272.0476760864258,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "d675e632.b382f8"
+            ]
+        ]
+    },
+    {
+        "id": "d675e632.b382f8",
+        "type": "set",
+        "name": "set tmp.vserver-id",
+        "xml": "<set>\n<parameter name='tmp.vserver-id' value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-value`' />\n",
+        "comments": "",
+        "x": 2734.6432876586914,
+        "y": 270.6192045211792,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "54051de.b4315e4",
+        "type": "switchNode",
+        "name": "switch tmp.vserver-id == 0",
+        "xml": "<switch test='`$tmp.vserver-id == 0`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1346.0716094970703,
+        "y": 322.0478801727295,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "e73429c1.6d4a38"
+            ]
+        ]
+    },
+    {
+        "id": "e73429c1.6d4a38",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1546.0715713500977,
+        "y": 322.0476760864258,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "eb7b19a6.882228"
+            ]
+        ]
+    },
+    {
+        "id": "eb7b19a6.882228",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1693.2143936157227,
+        "y": 320.6192092895508,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "1c2292f9.558f2d"
+            ]
+        ]
+    },
+    {
+        "id": "987182b5.70dc7",
+        "type": "set",
+        "name": "set vserver data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-name'\n  value='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-id'\n  value='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-id`' />\n<parameter name='tmp.vs-idx' value='`$src-vs-idx`' />\n",
+        "comments": "",
+        "x": 2027.023666381836,
+        "y": 414.90478897094727,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "f30054d5.526208",
+        "type": "comment",
+        "name": "loop through the results array for this vserver",
+        "info": "",
+        "comments": "",
+        "x": 1395.3572463989258,
+        "y": 374.90478706359863,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "6ca675d9.0abacc",
+        "type": "for",
+        "name": "for each src result",
+        "xml": "<for index='src-vs-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1317.0238418579102,
+        "y": 416.5713577270508,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "6e5a5a11.67dc84"
+            ]
+        ]
+    },
+    {
+        "id": "6e5a5a11.67dc84",
+        "type": "switchNode",
+        "name": "is this our vserver?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-id == $tmp.vserver-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1513.6904678344727,
+        "y": 414.9048538208008,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "8c36a0ad.63b1a"
+            ]
+        ]
+    },
+    {
+        "id": "8c36a0ad.63b1a",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1683.690315246582,
+        "y": 414.90478801727295,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "4a784e6b.1a374"
+            ]
+        ]
+    },
+    {
+        "id": "4a784e6b.1a374",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1835.3572158813477,
+        "y": 414.9048538208008,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "987182b5.70dc7"
+            ]
+        ]
+    },
+    {
+        "id": "8ac121a2.f054f",
+        "type": "set",
+        "name": "increment tmp.vnfc-objects-idx",
+        "xml": "<set>\n<parameter name='tmp.vnfc-objects-idx' value='`$tmp.vnfc-objects-idx + 1`' />\n",
+        "comments": "",
+        "x": 1345.3574295043945,
+        "y": 833.9048900604248,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "d7d96f12.ed2bc",
+        "type": "comment",
+        "name": "now process l-interfaces for this vserver",
+        "info": "",
+        "comments": "",
+        "x": 1373.690486907959,
+        "y": 518.238260269165,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "41c41df3.5764a4",
+        "type": "for",
+        "name": "for each l-interface in this vserver",
+        "xml": "<for silentFailure='true' index='src-vli-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1355.357105255127,
+        "y": 563.2381811141968,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "a318be8d.ca848"
+            ]
+        ]
+    },
+    {
+        "id": "a318be8d.ca848",
+        "type": "switchNode",
+        "name": "does network-name match?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$src-vli-idx].network-name == $tmp.src-network-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1650.3572807312012,
+        "y": 563.2381000518799,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "5f6d71fd.e48f9"
+            ]
+        ]
+    },
+    {
+        "id": "5f6d71fd.e48f9",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1860.3571891784668,
+        "y": 561.5714912414551,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "1d86856b.8c8b0b"
+            ]
+        ]
+    },
+    {
+        "id": "c8b08bf3.2a97f8",
+        "type": "set",
+        "name": "set tmp.interface-ids_length to 0",
+        "xml": "<set>\n<parameter name='tmp.interface-ids_length' value='0' />\n",
+        "comments": "",
+        "x": 1368.6905250549316,
+        "y": 469.90484523773193,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "1d86856b.8c8b0b",
+        "type": "set",
+        "name": "save interface-id",
+        "xml": "<set>\n<parameter name='tmp.interface-ids[$tmp.interface-ids_length].interface-id' value='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$src-vli-idx].interface-id`' />\n<parameter name='tmp.interface-ids_length' value='`$tmp.interface-ids_length + 1`' />\n",
+        "comments": "",
+        "x": 2037.0235176086426,
+        "y": 561.5718421936035,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e8c47337.194cc",
+        "type": "for",
+        "name": "for each src result",
+        "xml": "<for silentFailure='true' index='src-rs-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1310.357265472412,
+        "y": 704.9046611785889,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "2add2962.c47056"
+            ]
+        ]
+    },
+    {
+        "id": "a0fd84a6.22f688",
+        "type": "comment",
+        "name": "loop through the results array for these l-interfaces",
+        "info": "",
+        "comments": "",
+        "x": 1400.357349395752,
+        "y": 663.2381839752197,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "ec2249aa.7fa5a8",
+        "type": "for",
+        "name": "for each saved interface-id",
+        "xml": "<for index='in-idx' start='0' end='`$tmp.interface-ids_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1907.024326324463,
+        "y": 734.9050178527832,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "eb709142.f8f52"
+            ]
+        ]
+    },
+    {
+        "id": "eb709142.f8f52",
+        "type": "switchNode",
+        "name": "interface-ids match?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-id == $tmp.interface-ids[$in-idx].interface-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2183.690845489502,
+        "y": 734.9047737121582,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "222ad245.d91fbe"
+            ]
+        ]
+    },
+    {
+        "id": "222ad245.d91fbe",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2372.024158477783,
+        "y": 733.2382411956787,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "d9617935.c2d7f8"
+            ]
+        ]
+    },
+    {
+        "id": "5c58f241.abac8c",
+        "type": "set",
+        "name": "set tmp.vnic-idx to 0",
+        "xml": "<set>\n<parameter name='tmp.vnic-idx' value='0' />\n",
+        "comments": "",
+        "x": 1315.3572273254395,
+        "y": 614.9049320220947,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "d9617935.c2d7f8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2535.3572959899902,
+        "y": 733.2382411956787,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "13a3172d.4d7459",
+                "1f0a54c0.094a5b",
+                "3cf0366f.7afeaa",
+                "f2c3d29e.c6f01"
+            ]
+        ]
+    },
+    {
+        "id": "13a3172d.4d7459",
+        "type": "set",
+        "name": "set vnic-data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-id'\n  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-id`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-name'\n  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.vnic-capacity'\n  value='`$tmp.src-pps`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.used-capacity'\n  value='0' />\n",
+        "comments": "",
+        "x": 2727.023914337158,
+        "y": 618.2382650375366,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "1f0a54c0.094a5b",
+        "type": "switchNode",
+        "name": "is there an ipv4 address?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2757.02388381958,
+        "y": 688.2382698059082,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "1f50864b.beb8da",
+                "3c7d317d.fb47fe"
+            ]
+        ]
+    },
+    {
+        "id": "1f50864b.beb8da",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2947.0236778259277,
+        "y": 663.2379951477051,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "2dbc1fdd.4e4df"
+            ]
+        ]
+    },
+    {
+        "id": "3c7d317d.fb47fe",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2947.023609161377,
+        "y": 714.6666679382324,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "aaeab78b.c2f038"
+            ]
+        ]
+    },
+    {
+        "id": "2dbc1fdd.4e4df",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 3077.0238151550293,
+        "y": 659.9048557281494,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "aaeab78b.c2f038",
+        "type": "set",
+        "name": "set ipv4-address",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv4-address'\n  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />\n",
+        "comments": "",
+        "x": 3108.690399169922,
+        "y": 713.2381896972656,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "2add2962.c47056",
+        "type": "switchNode",
+        "name": "is this an l-interface?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1517.0239067077637,
+        "y": 704.9048557281494,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "46e0a50b.cf81bc",
+                "4585ec47.df3ff4"
+            ]
+        ]
+    },
+    {
+        "id": "46e0a50b.cf81bc",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1688.6904029846191,
+        "y": 681.5714092254639,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "3af66484.84461c"
+            ]
+        ]
+    },
+    {
+        "id": "4585ec47.df3ff4",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1688.6903343200684,
+        "y": 733.0000820159912,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "ec2249aa.7fa5a8"
+            ]
+        ]
+    },
+    {
+        "id": "3af66484.84461c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1825.357250213623,
+        "y": 679.9051780700684,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3cf0366f.7afeaa",
+        "type": "switchNode",
+        "name": "is there an ipv6 address?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2765.3567848205566,
+        "y": 783.2379112243652,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "be4e4b7c.467a88",
+                "804b95fe.663f68"
+            ]
+        ]
+    },
+    {
+        "id": "be4e4b7c.467a88",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2955.3565788269043,
+        "y": 758.2376365661621,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "631ba8b4.ea1db8"
+            ]
+        ]
+    },
+    {
+        "id": "804b95fe.663f68",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2955.3565101623535,
+        "y": 809.6663093566895,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "a7e10969.2b8498"
+            ]
+        ]
+    },
+    {
+        "id": "631ba8b4.ea1db8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 3085.356716156006,
+        "y": 754.9044971466064,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a7e10969.2b8498",
+        "type": "set",
+        "name": "set ipv6-address",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv6-address'\n  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />\n",
+        "comments": "",
+        "x": 3117.0233001708984,
+        "y": 808.2378311157227,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "f2c3d29e.c6f01",
+        "type": "set",
+        "name": "increment tmp.vnic-idx",
+        "xml": "<set>\n<parameter name='tmp.vnic-idx' value='`$tmp.vnic-idx + 1`' />\n",
+        "comments": "",
+        "x": 2757.023723602295,
+        "y": 851.5715255737305,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "91cc5b8b.aca088",
+        "type": "set",
+        "name": "set vnic_length",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic_length' value='`$tmp.vnic-idx`' />\n",
+        "comments": "",
+        "x": 1299.0240173339844,
+        "y": 782.5716171264648,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "123870ef.b3952f",
+        "type": "set",
+        "name": "set vnfc data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-key'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-name'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnf-id'\n  value='`$tmp.dest-vnf-id`' />\n",
+        "comments": "",
+        "x": 1310.0238456726074,
+        "y": 1004.9048719406128,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e4346cd6.97483",
+        "type": "comment",
+        "name": "look through relationships looking for the related vserver",
+        "info": "",
+        "comments": "",
+        "x": 1438.5953941345215,
+        "y": 1049.190830230713,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "83d150b1.f8db",
+        "type": "for",
+        "name": "for each relationship",
+        "xml": "<for index='rel-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1330.0237922668457,
+        "y": 1133.4764385223389,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "209db54.cb09b4a"
+            ]
+        ]
+    },
+    {
+        "id": "209db54.cb09b4a",
+        "type": "switchNode",
+        "name": "switch related-to == vserver",
+        "xml": "<switch test=\"`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].related-to == 'vserver'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1581.4525833129883,
+        "y": 1133.4764041900635,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "7c552a03.fc7b14"
+            ]
+        ]
+    },
+    {
+        "id": "7c552a03.fc7b14",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1785.738224029541,
+        "y": 1132.0481815338135,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "a8fd7c1c.969c7"
+            ]
+        ]
+    },
+    {
+        "id": "235462a5.9f39ae",
+        "type": "set",
+        "name": "set tmp.vserver-id = 0",
+        "xml": "<set>\n<parameter name='tmp.vserver-id' value='0' />\n",
+        "comments": "",
+        "x": 1337.1667747497559,
+        "y": 1090.6193313598633,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "a8fd7c1c.969c7",
+        "type": "for",
+        "name": "for each relationship-data",
+        "xml": "<for index='reldata-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1982.8809776306152,
+        "y": 1130.619436264038,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "43d73b86.214fd4"
+            ]
+        ]
+    },
+    {
+        "id": "43d73b86.214fd4",
+        "type": "switchNode",
+        "name": "switch relationship-key == 'vserver.vserver-id'",
+        "xml": "<switch test=\"`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-key == 'vserver.vserver-id'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2302.880870819092,
+        "y": 1130.6192607879639,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "231a2bce.bcbb84"
+            ]
+        ]
+    },
+    {
+        "id": "231a2bce.bcbb84",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2551.4525566101074,
+        "y": 1129.1906242370605,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "9fe17967.f5b968"
+            ]
+        ]
+    },
+    {
+        "id": "9fe17967.f5b968",
+        "type": "set",
+        "name": "set tmp.vserver-id",
+        "xml": "<set>\n<parameter name='tmp.vserver-id' value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-value`' />\n",
+        "comments": "",
+        "x": 2740.024272918701,
+        "y": 1127.762152671814,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "76d4ab8c.770d64",
+        "type": "switchNode",
+        "name": "switch tmp.vserver-id == 0",
+        "xml": "<switch test='`$tmp.vserver-id == 0`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1351.45259475708,
+        "y": 1179.1908283233643,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "9c3b827c.e3eb"
+            ]
+        ]
+    },
+    {
+        "id": "9c3b827c.e3eb",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1551.4525566101074,
+        "y": 1179.1906242370605,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "8034f537.34d3d8"
+            ]
+        ]
+    },
+    {
+        "id": "8034f537.34d3d8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1698.5953788757324,
+        "y": 1177.7621574401855,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "cad58465.15d0d8"
+            ]
+        ]
+    },
+    {
+        "id": "ac94da67.d26988",
+        "type": "set",
+        "name": "set vserver data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-name'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-id'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-id`' />\n<parameter name='tmp.vs-idx' value='`$dest-vs-idx`' />\n",
+        "comments": "",
+        "x": 2032.4046516418457,
+        "y": 1272.047737121582,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e4b70ec5.8f2a9",
+        "type": "comment",
+        "name": "loop through the results array for this vserver",
+        "info": "",
+        "comments": "",
+        "x": 1400.7382316589355,
+        "y": 1232.0477352142334,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e2a88998.378818",
+        "type": "for",
+        "name": "for each dest result",
+        "xml": "<for index='dest-vs-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1322.40482711792,
+        "y": 1273.7143058776855,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "df314dbf.690b8"
+            ]
+        ]
+    },
+    {
+        "id": "df314dbf.690b8",
+        "type": "switchNode",
+        "name": "is this our vserver?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-id == $tmp.vserver-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1519.0714530944824,
+        "y": 1272.0478019714355,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "86a1a4ed.2cf098"
+            ]
+        ]
+    },
+    {
+        "id": "86a1a4ed.2cf098",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1689.0713005065918,
+        "y": 1272.0477361679077,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "8b6fc22f.3dcc3"
+            ]
+        ]
+    },
+    {
+        "id": "8b6fc22f.3dcc3",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1840.7382011413574,
+        "y": 1272.0478019714355,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "ac94da67.d26988"
+            ]
+        ]
+    },
+    {
+        "id": "90d21ad7.30c428",
+        "type": "set",
+        "name": "increment tmp.vnfc-objects-idx",
+        "xml": "<set>\n<parameter name='tmp.vnfc-objects-idx' value='`$tmp.vnfc-objects-idx + 1`' />\n",
+        "comments": "",
+        "x": 1346.4526303609218,
+        "y": 1707.0479326248173,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "3e132354.6c030c",
+        "type": "comment",
+        "name": "now process l-interfaces for this vserver",
+        "info": "",
+        "comments": "",
+        "x": 1379.0714721679688,
+        "y": 1375.3812084197998,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "c6a1bfd5.14d78",
+        "type": "for",
+        "name": "for each l-interface in this vserver",
+        "xml": "<for silentFailure='true' index='dest-vli-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1360.7380905151367,
+        "y": 1420.3811292648315,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "4c51257f.df2efc"
+            ]
+        ]
+    },
+    {
+        "id": "4c51257f.df2efc",
+        "type": "switchNode",
+        "name": "does network-name match?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$dest-vli-idx].network-name == $tmp.dest-network-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1655.738265991211,
+        "y": 1420.3810482025146,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "5abbe265.18948c"
+            ]
+        ]
+    },
+    {
+        "id": "5abbe265.18948c",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1865.7381744384766,
+        "y": 1418.7144393920898,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "e4f63421.b0c1a8"
+            ]
+        ]
+    },
+    {
+        "id": "2d541d29.d0a102",
+        "type": "set",
+        "name": "set tmp.interface-ids_length to 0",
+        "xml": "<set>\n<parameter name='tmp.interface-ids_length' value='0' />\n",
+        "comments": "",
+        "x": 1374.0715103149414,
+        "y": 1327.0477933883667,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e4f63421.b0c1a8",
+        "type": "set",
+        "name": "save interface-id",
+        "xml": "<set>\n<parameter name='tmp.interface-ids[$tmp.interface-ids_length].interface-id' value='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$dest-vli-idx].interface-id`' />\n<parameter name='tmp.interface-ids_length' value='`$tmp.interface-ids_length + 1`' />\n",
+        "comments": "",
+        "x": 2042.4045028686523,
+        "y": 1418.7147903442383,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "e9f4a063.9d98c",
+        "type": "for",
+        "name": "for each dest result",
+        "xml": "<for silentFailure='true' index='dest-rs-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1315.7382507324219,
+        "y": 1562.0476093292236,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "fed6b918.7cd968"
+            ]
+        ]
+    },
+    {
+        "id": "610cc2be.f926dc",
+        "type": "comment",
+        "name": "loop through the results array for these l-interfaces",
+        "info": "",
+        "comments": "",
+        "x": 1405.7383346557617,
+        "y": 1520.3811321258545,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "48a3cd64.041674",
+        "type": "for",
+        "name": "for each saved interface-id",
+        "xml": "<for index='in-idx' start='0' end='`$tmp.interface-ids_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1912.4053115844727,
+        "y": 1592.047966003418,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "92f98492.7ed328"
+            ]
+        ]
+    },
+    {
+        "id": "92f98492.7ed328",
+        "type": "switchNode",
+        "name": "interface-ids match?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-id == $tmp.interface-ids[$in-idx].interface-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2189.0718307495117,
+        "y": 1592.047721862793,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "517f85ec.ab91fc"
+            ]
+        ]
+    },
+    {
+        "id": "517f85ec.ab91fc",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2377.405143737793,
+        "y": 1590.3811893463135,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "39165758.03b178"
+            ]
+        ]
+    },
+    {
+        "id": "39165758.03b178",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2540.73828125,
+        "y": 1590.3811893463135,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "842c074b.07ce18",
+                "2c325a45.833636",
+                "5fbe9dd2.e72d64",
+                "793b650b.9d653c"
+            ]
+        ]
+    },
+    {
+        "id": "842c074b.07ce18",
+        "type": "set",
+        "name": "set vnic-data",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-id'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-id`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-name'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-name`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.vnic-capacity'\n  value='`$tmp.dest-pps`' />\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.used-capacity'\n  value='0' />\n",
+        "comments": "",
+        "x": 2732.404899597168,
+        "y": 1475.3812131881714,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "2c325a45.833636",
+        "type": "switchNode",
+        "name": "is there an ipv4 address?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2762.40486907959,
+        "y": 1545.381217956543,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "bdca0e16.8e21d",
+                "8c69d401.782458"
+            ]
+        ]
+    },
+    {
+        "id": "bdca0e16.8e21d",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2952.4046630859375,
+        "y": 1520.3809432983398,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "5426f8f.a078708"
+            ]
+        ]
+    },
+    {
+        "id": "8c69d401.782458",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2952.4045944213867,
+        "y": 1571.8096160888672,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "8fc8ec37.c8388"
+            ]
+        ]
+    },
+    {
+        "id": "5426f8f.a078708",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 3082.404800415039,
+        "y": 1517.0478038787842,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8fc8ec37.c8388",
+        "type": "set",
+        "name": "set ipv4-address",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv4-address'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />\n",
+        "comments": "",
+        "x": 3114.0713844299316,
+        "y": 1570.3811378479004,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "fed6b918.7cd968",
+        "type": "switchNode",
+        "name": "is this an l-interface?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1522.4048919677734,
+        "y": 1562.0478038787842,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "152788ba.9abfd7",
+                "3e5cc15c.dfb35e"
+            ]
+        ]
+    },
+    {
+        "id": "152788ba.9abfd7",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1694.071388244629,
+        "y": 1538.7143573760986,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "76c2fc68.9b0ac4"
+            ]
+        ]
+    },
+    {
+        "id": "3e5cc15c.dfb35e",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1694.0713195800781,
+        "y": 1590.143030166626,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "48a3cd64.041674"
+            ]
+        ]
+    },
+    {
+        "id": "76c2fc68.9b0ac4",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1830.7382354736328,
+        "y": 1537.0481262207031,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5fbe9dd2.e72d64",
+        "type": "switchNode",
+        "name": "is there an ipv6 address?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2770.7377700805664,
+        "y": 1640.380859375,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "325f4269.cf67ce",
+                "73b0bf40.e62ed"
+            ]
+        ]
+    },
+    {
+        "id": "325f4269.cf67ce",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2960.737564086914,
+        "y": 1615.3805847167969,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "c084c706.7c4328"
+            ]
+        ]
+    },
+    {
+        "id": "73b0bf40.e62ed",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2960.7374954223633,
+        "y": 1666.8092575073242,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "c275e616.f80bb8"
+            ]
+        ]
+    },
+    {
+        "id": "c084c706.7c4328",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 3090.7377014160156,
+        "y": 1612.0474452972412,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c275e616.f80bb8",
+        "type": "set",
+        "name": "set ipv6-address",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv6-address'\n  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />\n",
+        "comments": "",
+        "x": 3122.404285430908,
+        "y": 1665.3807792663574,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "793b650b.9d653c",
+        "type": "set",
+        "name": "increment tmp.vnic-idx",
+        "xml": "<set>\n<parameter name='tmp.vnic-idx' value='`$tmp.vnic-idx + 1`' />\n",
+        "comments": "",
+        "x": 2762.4047088623047,
+        "y": 1708.7144737243652,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "5c44dcd5.f007e4",
+        "type": "set",
+        "name": "set vnic_length",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic_length' value='`$tmp.vnic-idx`' />\n",
+        "comments": "",
+        "x": 1299.7858390808105,
+        "y": 1652.0479745864868,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "20ef598e.0d7d96",
+        "type": "set",
+        "name": "set tmp.vnic-idx to 0",
+        "xml": "<set>\n<parameter name='tmp.vnic-idx' value='0' />\n",
+        "comments": "",
+        "x": 1319.1903495788574,
+        "y": 1470.7381238937378,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "7b6db590.0533bc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1094.6428413391113,
+        "y": 422.7619466781616,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "3348c9a8.a257a6",
+                "e0bfd49.2991328",
+                "606fe9e4.7d4348",
+                "54051de.b4315e4",
+                "6ca675d9.0abacc",
+                "c8b08bf3.2a97f8",
+                "41c41df3.5764a4",
+                "5c58f241.abac8c",
+                "e8c47337.194cc",
+                "91cc5b8b.aca088",
+                "8ac121a2.f054f"
+            ]
+        ]
+    },
+    {
+        "id": "58a52a03.d31b64",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1114.6429290771484,
+        "y": 1339.2619905471802,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "123870ef.b3952f",
+                "235462a5.9f39ae",
+                "83d150b1.f8db",
+                "76d4ab8c.770d64",
+                "e2a88998.378818",
+                "2d541d29.d0a102",
+                "c6a1bfd5.14d78",
+                "20ef598e.0d7d96",
+                "e9f4a063.9d98c",
+                "5c44dcd5.f007e4",
+                "90d21ad7.30c428"
+            ]
+        ]
+    },
+    {
+        "id": "2f5a40e3.2a003",
+        "type": "for",
+        "name": "for each src result",
+        "xml": "<for silentFailure='true' index='src-li-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 367.14287240164595,
+        "y": 399.7619879586355,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "c366477a.0cdbb8"
+            ]
+        ]
+    },
+    {
+        "id": "c366477a.0cdbb8",
+        "type": "switchNode",
+        "name": "is this a vnfc?",
+        "xml": "<switch test='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 564.2857295445033,
+        "y": 399.7619879586355,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "ddc5007b.1b588",
+                "a608af5f.6fd5"
+            ]
+        ]
+    },
+    {
+        "id": "ddc5007b.1b588",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 721.4286155700684,
+        "y": 374.04780673980713,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "7c63c4a2.9d900c"
+            ]
+        ]
+    },
+    {
+        "id": "a608af5f.6fd5",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 721.4285469055176,
+        "y": 425.4764795303345,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "7b6db590.0533bc"
+            ]
+        ]
+    },
+    {
+        "id": "4f639cf7.58b774",
+        "type": "set",
+        "name": "set tmp.vnfc-objects-idx to 0",
+        "xml": "<set>\n<parameter name='tmp.vnfc-objects-idx' value='0' />\n",
+        "comments": "",
+        "x": 398.1904830932617,
+        "y": 333.1906509399414,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "7c63c4a2.9d900c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 881.4285888671875,
+        "y": 373.76209259033203,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "efc92c11.ec21f",
+        "type": "set",
+        "name": "set vnfc-object length",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length' value='`$tmp.vnfc-objects-idx`' />\n",
+        "comments": "",
+        "x": 374.04761505126953,
+        "y": 462.1432113647461,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "34852a80.944a56",
+        "type": "for",
+        "name": "for each dest result",
+        "xml": "<for silentFailure='true' index='dest-li-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 372.38092041015625,
+        "y": 608.8096408843994,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "a2bdd99.cd4bc28"
+            ]
+        ]
+    },
+    {
+        "id": "a2bdd99.cd4bc28",
+        "type": "switchNode",
+        "name": "is this a vnfc?",
+        "xml": "<switch test='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 569.5237775530131,
+        "y": 608.8096408843994,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "419dcae6.90f094",
+                "5e261990.4e7538"
+            ]
+        ]
+    },
+    {
+        "id": "419dcae6.90f094",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 726.6666635785787,
+        "y": 583.0954596655711,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "ced72b08.7bdc78"
+            ]
+        ]
+    },
+    {
+        "id": "5e261990.4e7538",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 726.6665949140279,
+        "y": 634.5241324560984,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "58a52a03.d31b64"
+            ]
+        ]
+    },
+    {
+        "id": "ced72b08.7bdc78",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 886.6666368756978,
+        "y": 582.809745516096,
+        "z": "f19c7219.1794b",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "304aeb73.a329f4",
+        "type": "set",
+        "name": "set tmp.vnfc-objects-idx to 0",
+        "xml": "<set>\n<parameter name='tmp.vnfc-objects-idx' value='0' />\n",
+        "comments": "",
+        "x": 399.04759216308594,
+        "y": 548.809534072876,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "38365fcd.6fd41",
+        "type": "set",
+        "name": "set vnfc-object length",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length' value='`$tmp.vnfc-objects-idx`' />\n",
+        "comments": "",
+        "x": 379.04759979248047,
+        "y": 680.4761505126953,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "8349530a.566aa",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 149.6428680419922,
+        "y": 517.2620086669922,
+        "z": "f19c7219.1794b",
+        "wires": [
+            [
+                "4f639cf7.58b774",
+                "2f5a40e3.2a003",
+                "efc92c11.ec21f",
+                "304aeb73.a329f4",
+                "34852a80.944a56",
+                "38365fcd.6fd41",
+                "5befb22a.30546c"
+            ]
+        ]
+    },
+    {
+        "id": "5befb22a.30546c",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n",
+        "comments": "",
+        "x": 357.1428680419922,
+        "y": 742.2619209289551,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "1c2292f9.558f2d",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find vserver related to vnfc ' + $tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`\" />\n",
+        "comments": "",
+        "x": 1864.1428604125977,
+        "y": 319.7619094848633,
+        "z": "f19c7219.1794b",
+        "wires": []
+    },
+    {
+        "id": "cad58465.15d0d8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find vserver related to vnfc ' + $tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`\" />\n",
+        "comments": "",
+        "x": 1871.1428909301758,
+        "y": 1177.761926651001,
+        "z": "f19c7219.1794b",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.json
new file mode 100644 (file)
index 0000000..3b9f393
--- /dev/null
@@ -0,0 +1,1007 @@
+[
+    {
+        "id": "acf1df7b.c0642",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 136.25,
+        "y": 92.5,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "d107ddee.41386"
+            ]
+        ]
+    },
+    {
+        "id": "d107ddee.41386",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 249.86902618408203,
+        "y": 132.7381134033203,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "7daffa47.44d444"
+            ]
+        ]
+    },
+    {
+        "id": "7daffa47.44d444",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-deactivate-async",
+        "xml": "<method rpc='port-mirror-topology-operation-deactivate-async' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 277.53578186035156,
+        "y": 173.92856788635254,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "da29a24f.7f3f2"
+            ]
+        ]
+    },
+    {
+        "id": "d6997faa.63095",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-deactivate-async",
+        "info": "",
+        "comments": "",
+        "x": 530.594856262207,
+        "y": 40.08634376525879,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "9ef6714.8e61a9",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n",
+        "comments": "",
+        "x": 480.4882011413574,
+        "y": 1612.8809957504272,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "da29a24f.7f3f2",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 183.86904907226562,
+        "y": 871.5475997924805,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "9ef6714.8e61a9",
+                "ae8a46bd.17c5a8",
+                "ed8e386e.d66588",
+                "33edf927.ccd256",
+                "88b52684.3c1198",
+                "b602cd37.9d966",
+                "51ec1a7c.c67334",
+                "e2a5b4bd.e39bb8",
+                "54a5dead.83a5",
+                "c553e730.5e7f68",
+                "423946eb.24ca18",
+                "914f3421.b83cc8",
+                "3cc26a33.d0cde6",
+                "5b4713f1.7dfb5c"
+            ]
+        ]
+    },
+    {
+        "id": "23544362.1928ac",
+        "type": "comment",
+        "name": "rpc-port-mirror-1090",
+        "info": "",
+        "comments": "",
+        "x": 483.86902618408203,
+        "y": 642.9761972427368,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "2d55bfb8.84d25",
+        "type": "comment",
+        "name": "step 3 - for each source port:",
+        "info": "",
+        "comments": "",
+        "x": 545.8690490722656,
+        "y": 684.1189880371094,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "9221cb49.d93a28",
+        "type": "comment",
+        "name": "1. turn off packet mirroring in contrail (see input parameters spreadsheet)",
+        "info": "",
+        "comments": "",
+        "x": 1131.0594940185547,
+        "y": 719.1189775466919,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "20a97346.cfa9dc",
+        "type": "comment",
+        "name": "2. set is-port-mirrored in A&AI (aai-port-mirror-1040)",
+        "info": "",
+        "comments": "",
+        "x": 1073.1547470092773,
+        "y": 855.4999237060547,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "c4a61894.c3e478",
+        "type": "comment",
+        "name": "step 4 - call DG to deactivate route policy",
+        "info": "",
+        "comments": "",
+        "x": 570.4405059814453,
+        "y": 1034.738042831421,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "4f611f9c.f3b72",
+        "type": "comment",
+        "name": "step 5 - update configuration object (aai-port-mirror-1070)",
+        "info": "",
+        "comments": "",
+        "x": 621.4881134033203,
+        "y": 1183.0236949920654,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "23dd8717.0e3808",
+        "type": "comment",
+        "name": "step 6 - update oper status",
+        "info": "",
+        "comments": "",
+        "x": 521.7737579345703,
+        "y": 1343.7856578826904,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "ae8a46bd.17c5a8",
+        "type": "set",
+        "name": "set tmp variables",
+        "xml": "<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n\n",
+        "comments": "",
+        "x": 496.2500228881836,
+        "y": 241.30948638916016,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "51ec1a7c.c67334",
+        "type": "set",
+        "name": "set port-mirror-configuration data from input",
+        "xml": "<set>\n<parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />\n",
+        "comments": "",
+        "x": 574.8215141296387,
+        "y": 600.3570823669434,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "ed8e386e.d66588",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 515.5357818603516,
+        "y": 287.7380418777466,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "33edf927.ccd256",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 555.5358505249023,
+        "y": 334.22620391845703,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "88b52684.3c1198",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"pm-mdsal\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 610.2976531982422,
+        "y": 420.3570556640625,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "441543d6.71cf8c",
+                "e792a4af.424e18",
+                "27e5f04e.c2091"
+            ]
+        ]
+    },
+    {
+        "id": "441543d6.71cf8c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 915.5936126708984,
+        "y": 376.6410722732544,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "637ff647.06cdb8"
+            ]
+        ]
+    },
+    {
+        "id": "e792a4af.424e18",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 911.7261962890625,
+        "y": 418.69032287597656,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "9f402faa.52bcb"
+            ]
+        ]
+    },
+    {
+        "id": "637ff647.06cdb8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1067.4404525756836,
+        "y": 377.0236053466797,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "27e5f04e.c2091",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 918.6309661865234,
+        "y": 462.02373123168945,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "3bc0bb76.118314"
+            ]
+        ]
+    },
+    {
+        "id": "9f402faa.52bcb",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1090.2976531982422,
+        "y": 418.69039726257324,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "a1ca8a01.0e3cf8",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "3bc0bb76.118314",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1088.6309051513672,
+        "y": 460.35705375671387,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "fc24245d.cf0bc8",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "a1ca8a01.0e3cf8",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failed to read port-mirror-configuration from MD-SAL\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1295.2976531982422,
+        "y": 417.0237102508545,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fc24245d.cf0bc8",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Cannot find port-mirror-configuration in MD-SAL\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1291.9642791748047,
+        "y": 462.0237102508545,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b602cd37.9d966",
+        "type": "set",
+        "name": "set pm",
+        "xml": "<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />\n",
+        "comments": "",
+        "x": 460.29769134521484,
+        "y": 503.6903820037842,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "d10e2194.104e6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'$error-message'`\" />\n",
+        "comments": "",
+        "x": 1728.1070671081543,
+        "y": 1601.4285154342651,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "699eaa77.1cb434",
+        "type": "configure",
+        "name": "send error to MSO",
+        "xml": "<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"500\" />\n<parameter name=\"input.response-message\" value=\"`$error-message`\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1745.7991561889648,
+        "y": 1554.8944416046143,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1489c2f8.2f085d",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1559.5355911254883,
+        "y": 1578.5714435577393,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "699eaa77.1cb434",
+                "d10e2194.104e6"
+            ]
+        ]
+    },
+    {
+        "id": "54a5dead.83a5",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 617.2738494873047,
+        "y": 1468.833387374878,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "1ab1ec64.c45d84",
+                "2b0c94ba.0fbf0c",
+                "1f4272e7.b9a5bd"
+            ]
+        ]
+    },
+    {
+        "id": "e2a5b4bd.e39bb8",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='pm.configuration-data.configuration-oper-status.order-status'\n  value='Created' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-action'\n  value='`$port-mirror-topology-operation-input.request-information.request-action`' />\n<parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'\n  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />\n",
+        "comments": "",
+        "x": 488.59523010253906,
+        "y": 1389.5713024139404,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "1f4272e7.b9a5bd",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 924.5951995849609,
+        "y": 1508.2380676269531,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "b00ed1fd.f89da"
+            ]
+        ]
+    },
+    {
+        "id": "2b0c94ba.0fbf0c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 917.0238342285156,
+        "y": 1466.7380876541138,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "b00ed1fd.f89da"
+            ]
+        ]
+    },
+    {
+        "id": "1ab1ec64.c45d84",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 920.7738265991211,
+        "y": 1427.0951852798462,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "97768d46.52f58"
+            ]
+        ]
+    },
+    {
+        "id": "97768d46.52f58",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1058.1440963745117,
+        "y": 1426.144528388977,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3f39b480.961f1c",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Error updating md-sal for port-mirror-configuration\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1277.3468208312988,
+        "y": 1479.810827255249,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b00ed1fd.f89da",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1080.0133438110352,
+        "y": 1480.8109140396118,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "3f39b480.961f1c",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "3810a57d.14236a",
+        "type": "call",
+        "name": "call api-contrail-route-topology-operation-deactivate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-deactivate' mode='sync' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1181.940444946289,
+        "y": 1122.285041809082,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "cb28e685.257d38"
+            ]
+        ]
+    },
+    {
+        "id": "cb28e685.257d38",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1449.797664642334,
+        "y": 1122.5230445861816,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "e62ab65d.b91da8",
+        "type": "set",
+        "name": "set parameters",
+        "xml": "<set>\n<parameter name='cto-api.default-domain' value='default-domain' />\n<parameter name='cto-api.default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='cto-api.cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cto-api.contrail-route-allotted-resource-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />\n<parameter name='cto-api.src-contrail-network-fqdn'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn`' />\n<parameter name='cto-api.collector-contrail-network-fqdn'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='cto-api.rollback-flag' value='false' />\n<parameter name='cto-api.owning-entity'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />\n",
+        "comments": "",
+        "x": 1069.0833206176758,
+        "y": 1069.4281883239746,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "c553e730.5e7f68",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 522.7973785400391,
+        "y": 862.6658306121826,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "c54ab73a.ae8e68"
+            ]
+        ]
+    },
+    {
+        "id": "c54ab73a.ae8e68",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 761.5592880249023,
+        "y": 862.7607879638672,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "ce7381ff.88548",
+                "3fbcac7e.c1a1a4"
+            ]
+        ]
+    },
+    {
+        "id": "3fbcac7e.c1a1a4",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to disable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='disable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='policy-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1067.1785430908203,
+        "y": 782.0000114440918,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "82848df0.947b5",
+                "8c26f93.26d3a08"
+            ]
+        ]
+    },
+    {
+        "id": "82848df0.947b5",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1341.4641380310059,
+        "y": 807.7143030166626,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "8e1dcd4b.eddea"
+            ]
+        ]
+    },
+    {
+        "id": "ba3b50e4.8fcda",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n    <parameter name=\"error-message\" value=\"`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1674.3214836120605,
+        "y": 807.7143201828003,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8e1dcd4b.eddea",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1487.1784934997559,
+        "y": 807.7143030166626,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "ba3b50e4.8fcda",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "ce7381ff.88548",
+        "type": "save",
+        "name": "update l-interface object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l-interface\"\n   key=\"cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id\n     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner\n     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id\n     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"is-port-mirrored\" value=\"false\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 992.130973815918,
+        "y": 940.9523162841797,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "49f37918.005438",
+                "38be4e8.a16eab2",
+                "b68b2de2.f0136"
+            ]
+        ]
+    },
+    {
+        "id": "49f37918.005438",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1196.4882431030273,
+        "y": 941.7144365310669,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "1c203915.556647"
+            ]
+        ]
+    },
+    {
+        "id": "38be4e8.a16eab2",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1205.0596923828125,
+        "y": 896.7146310806274,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "1c203915.556647"
+            ]
+        ]
+    },
+    {
+        "id": "1c203915.556647",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1374.5118713378906,
+        "y": 917.1427631378174,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "a3cef666.7d5688",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "a3cef666.7d5688",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1571.1784057617188,
+        "y": 915.4759979248047,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "423946eb.24ca18",
+        "type": "save",
+        "name": "update configuration object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 523.0357208251953,
+        "y": 1252.1904430389404,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "8eeeba15.39dbd8",
+                "eea0877.1531578"
+            ]
+        ]
+    },
+    {
+        "id": "8eeeba15.39dbd8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 727.3930397033691,
+        "y": 1275.8097524642944,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "d4efc164.c970a"
+            ]
+        ]
+    },
+    {
+        "id": "eea0877.1531578",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 735.9644546508789,
+        "y": 1225.095555305481,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "1ba8ef22.aa7851"
+            ]
+        ]
+    },
+    {
+        "id": "d4efc164.c970a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 909.7023849487305,
+        "y": 1277.1900959014893,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "ce2dc4f8.8f4c78",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "1ba8ef22.aa7851",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 908.2738151550293,
+        "y": 1226.9523420333862,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "b12f8aa.29d1678",
+                "1489c2f8.2f085d"
+            ]
+        ]
+    },
+    {
+        "id": "ce2dc4f8.8f4c78",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Failure updating configuration object in AAI\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1096.369010925293,
+        "y": 1277.1900959014893,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b12f8aa.29d1678",
+        "type": "configure",
+        "name": "set error-message",
+        "xml": "<set>\n<parameter name=\"error-message\" value=\"Unable to find configuration object in AAI\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1106.3689727783203,
+        "y": 1223.8570280075073,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8c26f93.26d3a08",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1344.3213157653809,
+        "y": 760.5713777542114,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "cdd281aa.3c357"
+            ]
+        ]
+    },
+    {
+        "id": "cdd281aa.3c357",
+        "type": "set",
+        "name": "set contrail-set[]",
+        "xml": "<set>\n<parameter name='contrail-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 1500.0355224609375,
+        "y": 759.1429100036621,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "b68b2de2.f0136",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1200.7023696899414,
+        "y": 983.8095188140869,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "7abe579c.fe99a8"
+            ]
+        ]
+    },
+    {
+        "id": "7abe579c.fe99a8",
+        "type": "set",
+        "name": "set l-interface-set[]",
+        "xml": "<set>\n<parameter name='l-interface-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 1363.559425354004,
+        "y": 985.2382392883301,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "914f3421.b83cc8",
+        "type": "configure",
+        "name": "send success to MSO",
+        "xml": "<configure activate=\"true\" adaptor=\"com.att.sdnctl.sli.adaptor.mso.MSOAdaptor\" key=\"__READ_FROM_PARAMETERS__\">\n<parameter name=\"notification-url\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`\" />\n<parameter name=\"input.ack-final-indicator\" value=\"Y\" />\n<parameter name=\"input.response-code\" value=\"200\" />\n<parameter name=\"input.svc-request-id\" value=\"`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`\" />\n<parameter name=\"input.service-information.service-type\" value=\"`$port-mirror-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"input.service-information.service-instance-id\" value=\"`$port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 506.25000381469727,
+        "y": 1552.976061820984,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3cc26a33.d0cde6",
+        "type": "set",
+        "name": "set tmp.configuration-sub-type",
+        "xml": "<set>\n<parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />\n",
+        "comments": "",
+        "x": 531.2499847412109,
+        "y": 550.8333358764648,
+        "z": "e45b58ea.d3c7a8",
+        "wires": []
+    },
+    {
+        "id": "af216003.25212",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 889.5833358764648,
+        "y": 1097.4999256134033,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "e62ab65d.b91da8",
+                "3810a57d.14236a"
+            ]
+        ]
+    },
+    {
+        "id": "5b4713f1.7dfb5c",
+        "type": "switchNode",
+        "name": "switch configuration-sub-type",
+        "xml": "<switch test='`$tmp.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 531.2499847412109,
+        "y": 1097.4999618530273,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "81bae171.b37e6"
+            ]
+        ]
+    },
+    {
+        "id": "81bae171.b37e6",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 729.2499847412109,
+        "y": 1097.4999618530273,
+        "z": "e45b58ea.d3c7a8",
+        "wires": [
+            [
+                "af216003.25212"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.json
new file mode 100644 (file)
index 0000000..000fe43
--- /dev/null
@@ -0,0 +1,267 @@
+[
+    {
+        "id": "da0f0eae.d6e6",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 101.42857360839844,
+        "y": 80,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "bf3f1e52.b503c"
+            ]
+        ]
+    },
+    {
+        "id": "bf3f1e52.b503c",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 215.04759979248047,
+        "y": 120.23811340332031,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "113ca55d.9f806b"
+            ]
+        ]
+    },
+    {
+        "id": "113ca55d.9f806b",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-deactivate-sync",
+        "xml": "<method rpc='port-mirror-topology-operation-deactivate-sync' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 239.8572006225586,
+        "y": 160,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "291f858d.e8a8da"
+            ]
+        ]
+    },
+    {
+        "id": "f3e36ac1.5fde88",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-deactivate-sync",
+        "info": "",
+        "comments": "",
+        "x": 495.77342987060547,
+        "y": 27.58634376525879,
+        "z": "64e470a6.f1c2",
+        "wires": []
+    },
+    {
+        "id": "291f858d.e8a8da",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 161.42857360839844,
+        "y": 524.2857112884521,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "44bf4c29.2ac2b4",
+                "18f8a407.260c1c",
+                "b325942e.c008a8",
+                "e8420d4.e95eaf",
+                "dfd22f0a.d304b",
+                "58c32a6.c5959d4"
+            ]
+        ]
+    },
+    {
+        "id": "44bf4c29.2ac2b4",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='N' />",
+        "comments": "",
+        "x": 436.8571472167969,
+        "y": 624.2856426239014,
+        "z": "64e470a6.f1c2",
+        "wires": []
+    },
+    {
+        "id": "18f8a407.260c1c",
+        "type": "set",
+        "name": "set tmp.pm.configuration-id",
+        "xml": "<set>\n<parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n",
+        "comments": "",
+        "x": 476.1428680419922,
+        "y": 337.1428451538086,
+        "z": "64e470a6.f1c2",
+        "wires": []
+    },
+    {
+        "id": "b325942e.c008a8",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 464.2857131958008,
+        "y": 385.7142734527588,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e8420d4.e95eaf",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.pm.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 507.1428756713867,
+        "y": 432.857120513916,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "dfd22f0a.d304b",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 567.1428604125977,
+        "y": 480.00005531311035,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "c4ace799.8ee718",
+                "4908b83c.f73098"
+            ]
+        ]
+    },
+    {
+        "id": "c4ace799.8ee718",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 865.2959823608398,
+        "y": 450.80790424346924,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "fe1d6d18.fd8e7"
+            ]
+        ]
+    },
+    {
+        "id": "4908b83c.f73098",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 862.857120513916,
+        "y": 499.99999809265137,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "757e722e.e4749c"
+            ]
+        ]
+    },
+    {
+        "id": "757e722e.e4749c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`\" />\n",
+        "comments": "",
+        "x": 1377.1427993774414,
+        "y": 497.14286041259766,
+        "z": "64e470a6.f1c2",
+        "wires": []
+    },
+    {
+        "id": "58c32a6.c5959d4",
+        "type": "switchNode",
+        "name": "switch order-status == 'Active'",
+        "xml": "<switch test=\"`$mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 490.00003814697266,
+        "y": 554.2856636047363,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "d5ac79e0.1c9168"
+            ]
+        ]
+    },
+    {
+        "id": "fe1d6d18.fd8e7",
+        "type": "switchNode",
+        "name": "switch length == 1",
+        "xml": "<switch test='`$mdsal-pmc.port-mirror-configuration_length == 1`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1044.2856826782227,
+        "y": 450.0000123977661,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "a174e8a2.7a8d78"
+            ]
+        ]
+    },
+    {
+        "id": "a174e8a2.7a8d78",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1214.2857131958008,
+        "y": 450.00000381469727,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "757e722e.e4749c"
+            ]
+        ]
+    },
+    {
+        "id": "d5ac79e0.1c9168",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 718.5714492797852,
+        "y": 554.2857513427734,
+        "z": "64e470a6.f1c2",
+        "wires": [
+            [
+                "11d549bd.b63176"
+            ]
+        ]
+    },
+    {
+        "id": "11d549bd.b63176",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`\" />\n",
+        "comments": "",
+        "x": 880.0000381469727,
+        "y": 552.8571624755859,
+        "z": "64e470a6.f1c2",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.json
new file mode 100644 (file)
index 0000000..5684bc0
--- /dev/null
@@ -0,0 +1,840 @@
+[
+    {
+        "id": "afa5c42a.a2ebf8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 128.75,
+        "y": 86.25,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "cf1c9dc9.bb2d2"
+            ]
+        ]
+    },
+    {
+        "id": "cf1c9dc9.bb2d2",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 242.36902618408203,
+        "y": 126.48811340332031,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "6b44ec68.545204"
+            ]
+        ]
+    },
+    {
+        "id": "6b44ec68.545204",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-disable",
+        "xml": "<method rpc='port-mirror-topology-operation-disable' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 240.17862701416016,
+        "y": 166.25,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "7aa285f3.503f3c"
+            ]
+        ]
+    },
+    {
+        "id": "de981556.6c92f8",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-disable",
+        "info": "",
+        "comments": "",
+        "x": 523.094856262207,
+        "y": 33.83634376525879,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "7aa285f3.503f3c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 173.75,
+        "y": 765.5357189178467,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "5e62ea77.c8eff4",
+                "1f8e4075.61402",
+                "cc6aae5f.3a8c5",
+                "186fa0f2.58675f",
+                "81aa6fa5.1e0db",
+                "3bcc9f6e.a7792",
+                "c7696869.d71998",
+                "2ba101b7.37177e",
+                "303f390e.c7fa26",
+                "3cd84440.1100cc",
+                "8e3809f5.0badf8",
+                "327c0b68.fb42d4"
+            ]
+        ]
+    },
+    {
+        "id": "5e62ea77.c8eff4",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='Y' />",
+        "comments": "",
+        "x": 455.60711669921875,
+        "y": 1303.8689861297607,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "1f8e4075.61402",
+        "type": "set",
+        "name": "set tmp.configuration-id",
+        "xml": "<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n",
+        "comments": "",
+        "x": 481.5594940185547,
+        "y": 231.01191997528076,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "cc6aae5f.3a8c5",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 483.2738037109375,
+        "y": 273.86901473999023,
+        "z": "dca5409f.4b488",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "186fa0f2.58675f",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 523.273811340332,
+        "y": 315.2975902557373,
+        "z": "dca5409f.4b488",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "81aa6fa5.1e0db",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"pm-mdsal\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 581.8452758789062,
+        "y": 379.5833988189697,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "5160c826.6574f8",
+                "58ec2f2e.df96f"
+            ]
+        ]
+    },
+    {
+        "id": "5160c826.6574f8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 879.9983978271484,
+        "y": 350.3912477493286,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "e5e068e4.dd8428"
+            ]
+        ]
+    },
+    {
+        "id": "58ec2f2e.df96f",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 877.5595359802246,
+        "y": 399.58334159851074,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "41f30bac.7dc954"
+            ]
+        ]
+    },
+    {
+        "id": "41f30bac.7dc954",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`\" />\n",
+        "comments": "",
+        "x": 1391.84521484375,
+        "y": 396.72620391845703,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "3bcc9f6e.a7792",
+        "type": "switchNode",
+        "name": "switch order-status == 'Active'",
+        "xml": "<switch test=\"`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 505.8928909301758,
+        "y": 503.3928031921387,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "3fc32962.070946"
+            ]
+        ]
+    },
+    {
+        "id": "e5e068e4.dd8428",
+        "type": "switchNode",
+        "name": "switch length == 1",
+        "xml": "<switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1058.9880981445312,
+        "y": 349.5833559036255,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "f5f6996c.652fe8"
+            ]
+        ]
+    },
+    {
+        "id": "f5f6996c.652fe8",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1228.9881286621094,
+        "y": 349.58334732055664,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "41f30bac.7dc954"
+            ]
+        ]
+    },
+    {
+        "id": "3fc32962.070946",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 734.4643020629883,
+        "y": 503.3928909301758,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "db0e50e6.2c8ce"
+            ]
+        ]
+    },
+    {
+        "id": "db0e50e6.2c8ce",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`\" />\n",
+        "comments": "",
+        "x": 895.8928909301758,
+        "y": 501.9643020629883,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "49639130.bcbb1",
+        "type": "comment",
+        "name": "rpc-port-mirror-1130",
+        "info": "",
+        "comments": "",
+        "x": 443.75,
+        "y": 560.2976331710815,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "5bedfddc.e597c4",
+        "type": "comment",
+        "name": "step 1 - call contrail to turn off packet mirroring",
+        "info": "",
+        "comments": "",
+        "x": 551.3690643310547,
+        "y": 758.869083404541,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "640a7569.398d7c",
+        "type": "comment",
+        "name": "step 2 - set is-port-mirroring in A&AI ",
+        "info": "",
+        "comments": "",
+        "x": 502.79759216308594,
+        "y": 1148.5834102630615,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "219abf57.0c159",
+        "type": "comment",
+        "name": "Find the source port",
+        "info": "",
+        "comments": "",
+        "x": 459.9404231480189,
+        "y": 601.7262674059186,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "c7696869.d71998",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for index='idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 504.2261505126953,
+        "y": 641.7262935638428,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "d3eaa14b.aea04"
+            ]
+        ]
+    },
+    {
+        "id": "d3eaa14b.aea04",
+        "type": "switchNode",
+        "name": "switch mapped source port id == input source port id",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$idx].source-port-id\n  == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 857.0833282470703,
+        "y": 640.2976245880127,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "c2e13495.7d0978"
+            ]
+        ]
+    },
+    {
+        "id": "c2e13495.7d0978",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1132.797565460205,
+        "y": 638.8691053390503,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "e115b87b.36f0f8"
+            ]
+        ]
+    },
+    {
+        "id": "640f5b27.a577f4",
+        "type": "set",
+        "name": "set src-idx",
+        "xml": "<set>\n<parameter name='src-idx' value='`$idx`' />\n",
+        "comments": "",
+        "x": 1482.797492980957,
+        "y": 614.5833559036255,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "e115b87b.36f0f8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1285.6547088623047,
+        "y": 637.4405879974365,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "640f5b27.a577f4",
+                "a7ee3026.a6e8"
+            ]
+        ]
+    },
+    {
+        "id": "a7ee3026.a6e8",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 1455.6546821594238,
+        "y": 660.2977313995361,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "2ba101b7.37177e",
+        "type": "switchNode",
+        "name": "switch src-idx",
+        "xml": "<switch test='`$src-idx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 454.46424102783203,
+        "y": 708.8691101074219,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "58ac3aae.bc8044"
+            ]
+        ]
+    },
+    {
+        "id": "58ac3aae.bc8044",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 672.7975921630859,
+        "y": 707.4405879974365,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "d5822713.a71b88"
+            ]
+        ]
+    },
+    {
+        "id": "d5822713.a71b88",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find source port ' + $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id + ' in MD-SAL'`\" />\n",
+        "comments": "",
+        "x": 827.0832977294922,
+        "y": 706.011999130249,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "327c0b68.fb42d4",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to disable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='disable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='traffic-direction' value='both' />\n<parameter name='analyzer-ip-address'\n  value='`$tmp.analyzer.ip-address`' />\n<parameter name='udp-port' value='8099' />\n<parameter name='routing-instance'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='local-preference' value='1' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 564.7978134155273,
+        "y": 1069.9178819656372,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "eaf862d4.043dd",
+                "c50ee7c7.395c58"
+            ]
+        ]
+    },
+    {
+        "id": "eaf862d4.043dd",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 839.083438873291,
+        "y": 1095.6321649551392,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "b5b4127.7ba46f"
+            ]
+        ]
+    },
+    {
+        "id": "303f390e.c7fa26",
+        "type": "switchNode",
+        "name": "switch ipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 471.94065856933594,
+        "y": 812.7750616073608,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "8298b662.2d9938",
+                "87756d33.8ea47"
+            ]
+        ]
+    },
+    {
+        "id": "87756d33.8ea47",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 637.6548538208008,
+        "y": 854.2036333084106,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "1bac5e62.5c03a2"
+            ]
+        ]
+    },
+    {
+        "id": "8298b662.2d9938",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 640.5120010375977,
+        "y": 811.3465251922607,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "9156cd31.843db"
+            ]
+        ]
+    },
+    {
+        "id": "9156cd31.843db",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />\n",
+        "comments": "",
+        "x": 831.9406890869141,
+        "y": 809.9179544448853,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "1bac5e62.5c03a2",
+        "type": "switchNode",
+        "name": "switch ipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 809.0835189819336,
+        "y": 854.2035989761353,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "fa2aeb48.7c5db8",
+                "b61120a5.93b57"
+            ]
+        ]
+    },
+    {
+        "id": "b61120a5.93b57",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 970.5121078491211,
+        "y": 897.0607767105103,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "9b289fea.447ed"
+            ]
+        ]
+    },
+    {
+        "id": "fa2aeb48.7c5db8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 973.369255065918,
+        "y": 854.2036685943604,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "9a995b34.8ffdf8"
+            ]
+        ]
+    },
+    {
+        "id": "9a995b34.8ffdf8",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />\n",
+        "comments": "",
+        "x": 1164.7979431152344,
+        "y": 852.7750978469849,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "9b289fea.447ed",
+        "type": "switchNode",
+        "name": "switch vipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1141.940773010254,
+        "y": 897.0607423782349,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "b626a219.807f2",
+                "62515cbb.2125a4"
+            ]
+        ]
+    },
+    {
+        "id": "62515cbb.2125a4",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1304.797752380371,
+        "y": 937.0607767105103,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "2e6d6d0b.171e12"
+            ]
+        ]
+    },
+    {
+        "id": "b626a219.807f2",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1306.2263145446777,
+        "y": 895.6323432922363,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "71b7c0e4.601d3"
+            ]
+        ]
+    },
+    {
+        "id": "71b7c0e4.601d3",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />\n",
+        "comments": "",
+        "x": 1499.0835876464844,
+        "y": 892.7750978469849,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "2e6d6d0b.171e12",
+        "type": "switchNode",
+        "name": "switch vipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1476.226417541504,
+        "y": 937.0607423782349,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "c630f236.09afb",
+                "d62a09ce.06cd18"
+            ]
+        ]
+    },
+    {
+        "id": "d62a09ce.06cd18",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1643.369285583496,
+        "y": 978.4893655776978,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "cf52a216.7bcba"
+            ]
+        ]
+    },
+    {
+        "id": "c630f236.09afb",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1644.7978477478027,
+        "y": 937.0609321594238,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "a5b80d6a.ee8af"
+            ]
+        ]
+    },
+    {
+        "id": "a5b80d6a.ee8af",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />\n",
+        "comments": "",
+        "x": 1837.6551208496094,
+        "y": 934.2036867141724,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "c50ee7c7.395c58",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 841.940616607666,
+        "y": 1048.489239692688,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "e0872973.76a968"
+            ]
+        ]
+    },
+    {
+        "id": "e0872973.76a968",
+        "type": "set",
+        "name": "set contrail-set[]",
+        "xml": "<set>\n<parameter name='contrail-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 997.6548233032227,
+        "y": 1047.0607719421387,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "3cd84440.1100cc",
+        "type": "save",
+        "name": "update l-interface object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l-interface\"\n   key=\"cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id\n     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner\n     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id\n     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"is-port-mirrored\" value=\"false\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 489.3213806152344,
+        "y": 1215.5833673477173,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "8a4455b4.e26628",
+                "6a76abbb.425c24"
+            ]
+        ]
+    },
+    {
+        "id": "8a4455b4.e26628",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 692.0119781494141,
+        "y": 1241.3455305099487,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "ae976edd.7993e"
+            ]
+        ]
+    },
+    {
+        "id": "6a76abbb.425c24",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 700.5834274291992,
+        "y": 1196.3457250595093,
+        "z": "dca5409f.4b488",
+        "wires": [
+            [
+                "ae976edd.7993e"
+            ]
+        ]
+    },
+    {
+        "id": "cf52a216.7bcba",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "x": 1787.3213348388672,
+        "y": 981.250036239624,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "b5b4127.7ba46f",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 985.6546478271484,
+        "y": 1094.5834102630615,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "ae976edd.7993e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "x": 855.6546478271484,
+        "y": 1217.9166622161865,
+        "z": "dca5409f.4b488",
+        "wires": []
+    },
+    {
+        "id": "8e3809f5.0badf8",
+        "type": "set",
+        "name": "set pm",
+        "xml": "<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />\n",
+        "comments": "",
+        "x": 432.55950927734375,
+        "y": 439.1071090698242,
+        "z": "dca5409f.4b488",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.json
new file mode 100644 (file)
index 0000000..20e5801
--- /dev/null
@@ -0,0 +1,918 @@
+[
+    {
+        "id": "5adde416.25d82c",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 151.25,
+        "y": 82.5,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "f0d6c1e7.e9754"
+            ]
+        ]
+    },
+    {
+        "id": "f0d6c1e7.e9754",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 264.86902618408203,
+        "y": 122.73811340332031,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "1bb8c706.86cf19"
+            ]
+        ]
+    },
+    {
+        "id": "1bb8c706.86cf19",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-enable",
+        "xml": "<method rpc='port-mirror-topology-operation-enable' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 262.67862701416016,
+        "y": 162.5,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "3f0e699d.ee6b26"
+            ]
+        ]
+    },
+    {
+        "id": "ca18bf42.ec464",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-enable",
+        "info": "",
+        "comments": "",
+        "x": 545.594856262207,
+        "y": 30.08634376525879,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "3f0e699d.ee6b26",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 171.25,
+        "y": 838.7857360839844,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "619ea22e.2d4c6c",
+                "220efff8.59bd1",
+                "e9a1e227.a59d4",
+                "9e05525a.a9d25",
+                "ec899d65.1b6fe",
+                "1136c5cf.986f4a",
+                "15dfeaaf.517f25",
+                "2719e30.6219c1e",
+                "342ea105.23807e",
+                "804aef34.90cfa",
+                "baf0ce69.2f35f",
+                "32680418.d56afc",
+                "bfcb7fe0.37cd9"
+            ]
+        ]
+    },
+    {
+        "id": "619ea22e.2d4c6c",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='Y' />",
+        "comments": "",
+        "x": 473.44041442871094,
+        "y": 1300.4524230957031,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "220efff8.59bd1",
+        "type": "set",
+        "name": "set tmp.configuration-id",
+        "xml": "<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n\n",
+        "comments": "",
+        "x": 507.3928527832031,
+        "y": 247.26190280914307,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "e9a1e227.a59d4",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 507.44049072265625,
+        "y": 291.7856664657593,
+        "z": "58cb31c4.064af",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9e05525a.a9d25",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 547.4404983520508,
+        "y": 333.21424198150635,
+        "z": "58cb31c4.064af",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ec899d65.1b6fe",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"pm-mdsal\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 606.011962890625,
+        "y": 397.50005054473877,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "a3fb8257.281cc",
+                "1dbed5b9.b3c47a"
+            ]
+        ]
+    },
+    {
+        "id": "a3fb8257.281cc",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 904.1650848388672,
+        "y": 368.30789947509766,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "13e2119a.dafb2e"
+            ]
+        ]
+    },
+    {
+        "id": "1dbed5b9.b3c47a",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 901.7262229919434,
+        "y": 417.4999933242798,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "500538ee.2c9348"
+            ]
+        ]
+    },
+    {
+        "id": "500538ee.2c9348",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`\" />\n",
+        "comments": "",
+        "x": 1416.0119018554688,
+        "y": 414.6428556442261,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "1136c5cf.986f4a",
+        "type": "switchNode",
+        "name": "switch order-status == 'Active'",
+        "xml": "<switch test=\"`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 525.5357437133789,
+        "y": 566.7856979370117,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "9f9c8654.9f2f48"
+            ]
+        ]
+    },
+    {
+        "id": "13e2119a.dafb2e",
+        "type": "switchNode",
+        "name": "switch length == 1",
+        "xml": "<switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1083.15478515625,
+        "y": 367.50000762939453,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "aaef652d.b8a2b8"
+            ]
+        ]
+    },
+    {
+        "id": "aaef652d.b8a2b8",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1253.1548156738281,
+        "y": 367.4999990463257,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "500538ee.2c9348"
+            ]
+        ]
+    },
+    {
+        "id": "9f9c8654.9f2f48",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 754.1071548461914,
+        "y": 566.7857856750488,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "eeb6441b.99eeb8"
+            ]
+        ]
+    },
+    {
+        "id": "eeb6441b.99eeb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`\" />\n",
+        "comments": "",
+        "x": 915.5357437133789,
+        "y": 565.3571968078613,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "71c64fbf.2aa49",
+        "type": "comment",
+        "name": "rpc-port-mirror-1140",
+        "info": "",
+        "comments": "",
+        "x": 466.9642769949776,
+        "y": 618.2142756325857,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "3cb4a473.b4c24c",
+        "type": "comment",
+        "name": "step 1 - call contrail to turn on packet mirroring",
+        "info": "",
+        "comments": "",
+        "x": 569.8214721679688,
+        "y": 812.4998941421509,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "76580da3.d4bdd4",
+        "type": "comment",
+        "name": "step 2 - set is-port-mirroring in A&AI ",
+        "info": "",
+        "comments": "",
+        "x": 519.8214111328125,
+        "y": 1176.4999980926514,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "96ce9bb9.e4f948",
+        "type": "comment",
+        "name": "Find the source port",
+        "info": "",
+        "comments": "",
+        "x": 482.67856706891735,
+        "y": 663.9286046709333,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "15dfeaaf.517f25",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for index='idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 526.9642944335938,
+        "y": 703.9286308288574,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "6cf3769.0801388"
+            ]
+        ]
+    },
+    {
+        "id": "6cf3769.0801388",
+        "type": "switchNode",
+        "name": "switch mapped source port id == input source port id",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$idx].source-port-id\n  == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 879.8214721679688,
+        "y": 702.4999618530273,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "eb6b3019.5e8e4"
+            ]
+        ]
+    },
+    {
+        "id": "eb6b3019.5e8e4",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1155.5357093811035,
+        "y": 701.0714426040649,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "e307c639.39c108"
+            ]
+        ]
+    },
+    {
+        "id": "a285427e.78e49",
+        "type": "set",
+        "name": "set src-idx",
+        "xml": "<set>\n<parameter name='src-idx' value='`$idx`' />\n",
+        "comments": "",
+        "x": 1505.5356369018555,
+        "y": 676.7856931686401,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "e307c639.39c108",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1308.3928527832031,
+        "y": 699.6429252624512,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "a285427e.78e49",
+                "8c48a72.1c7bd58"
+            ]
+        ]
+    },
+    {
+        "id": "8c48a72.1c7bd58",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 1478.3928260803223,
+        "y": 722.5000686645508,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "2719e30.6219c1e",
+        "type": "switchNode",
+        "name": "switch src-idx",
+        "xml": "<switch test='`$src-idx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 508.3928680419922,
+        "y": 763.9285545349121,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "c3e50276.b25e1"
+            ]
+        ]
+    },
+    {
+        "id": "c3e50276.b25e1",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 698.3928985595703,
+        "y": 762.5000295639038,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "9124ab61.7a5818"
+            ]
+        ]
+    },
+    {
+        "id": "9124ab61.7a5818",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find source port ' + $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id + ' in MD-SAL'`\" />\n",
+        "comments": "",
+        "x": 852.6786041259766,
+        "y": 761.0714406967163,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "543e2aaa.e10284",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to enable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='enable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='traffic-direction' value='both' />\n<parameter name='analyzer-ip-address'\n  value='`$tmp.analyzer.ip-address`' />\n<parameter name='udp-port' value='8099' />\n<parameter name='routing-instance'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='local-preference' value='1' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1020.39306640625,
+        "y": 1089.2631912231445,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "b52df8e.2158508",
+                "37e68f52.b8c84"
+            ]
+        ]
+    },
+    {
+        "id": "b52df8e.2158508",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1306.107292175293,
+        "y": 1136.4061088562012,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "6f92bbb5.4e7174"
+            ]
+        ]
+    },
+    {
+        "id": "342ea105.23807e",
+        "type": "switchNode",
+        "name": "switch ipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 497.5359649658203,
+        "y": 867.8345031738281,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "709a0a15.610554",
+                "1919fbe0.da0d04"
+            ]
+        ]
+    },
+    {
+        "id": "1919fbe0.da0d04",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 663.2501602172852,
+        "y": 909.2630748748779,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "dc45b2dd.76525"
+            ]
+        ]
+    },
+    {
+        "id": "709a0a15.610554",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 666.107307434082,
+        "y": 866.405966758728,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "ce9f0ed3.39cb8"
+            ]
+        ]
+    },
+    {
+        "id": "ce9f0ed3.39cb8",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />\n",
+        "comments": "",
+        "x": 857.5359954833984,
+        "y": 864.9773960113525,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "dc45b2dd.76525",
+        "type": "switchNode",
+        "name": "switch ipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 834.678825378418,
+        "y": 909.2630405426025,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "6b47b7ee.d11718",
+                "6bac94c0.a1f64c"
+            ]
+        ]
+    },
+    {
+        "id": "6bac94c0.a1f64c",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 996.1074142456055,
+        "y": 952.1202182769775,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "34101e3d.38c422"
+            ]
+        ]
+    },
+    {
+        "id": "6b47b7ee.d11718",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 998.9645614624023,
+        "y": 909.2631101608276,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "bc0a7eb3.66ceb"
+            ]
+        ]
+    },
+    {
+        "id": "bc0a7eb3.66ceb",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />\n",
+        "comments": "",
+        "x": 1190.3932495117188,
+        "y": 907.8345394134521,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "34101e3d.38c422",
+        "type": "switchNode",
+        "name": "switch vipv4-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1167.5360794067383,
+        "y": 952.1201839447021,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "54296b64.cd6a24",
+                "b7e8467a.afd798"
+            ]
+        ]
+    },
+    {
+        "id": "b7e8467a.afd798",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1330.3930587768555,
+        "y": 992.1202182769775,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "22cb5011.f1c79"
+            ]
+        ]
+    },
+    {
+        "id": "54296b64.cd6a24",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1331.821620941162,
+        "y": 950.6917848587036,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "81a229c4.e7cc48"
+            ]
+        ]
+    },
+    {
+        "id": "81a229c4.e7cc48",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />\n",
+        "comments": "",
+        "x": 1524.6788940429688,
+        "y": 947.8345394134521,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "22cb5011.f1c79",
+        "type": "switchNode",
+        "name": "switch vipv6-address",
+        "xml": "<switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1501.8217239379883,
+        "y": 992.1201839447021,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "17fa6ffd.4aef",
+                "3594874e.b52a08"
+            ]
+        ]
+    },
+    {
+        "id": "3594874e.b52a08",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1668.9645919799805,
+        "y": 1033.548807144165,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "9f23c2c.e727c4"
+            ]
+        ]
+    },
+    {
+        "id": "17fa6ffd.4aef",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1670.393154144287,
+        "y": 992.1203737258911,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "e6dded52.b823a"
+            ]
+        ]
+    },
+    {
+        "id": "e6dded52.b823a",
+        "type": "set",
+        "name": "set tmp.analyzer.ip-address",
+        "xml": "<set>\n<parameter name='tmp.analyzer.ip-address'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />\n",
+        "comments": "",
+        "x": 1863.2504272460938,
+        "y": 989.2631282806396,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "37e68f52.b8c84",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1308.964469909668,
+        "y": 1089.26318359375,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "b43df042.63f3f"
+            ]
+        ]
+    },
+    {
+        "id": "b43df042.63f3f",
+        "type": "set",
+        "name": "set contrail-set[]",
+        "xml": "<set>\n<parameter name='contrail-set[$src-idx]' value='true' />\n",
+        "comments": "",
+        "x": 1464.6786766052246,
+        "y": 1087.8347158432007,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "804aef34.90cfa",
+        "type": "save",
+        "name": "update l-interface object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l-interface\"\n   key=\"cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id\n     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner\n     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id\n     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\n     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"is-port-mirrored\" value=\"true\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 504.9165954589844,
+        "y": 1232.0713911056519,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "31db754b.638e9a",
+                "73dc8185.75918"
+            ]
+        ]
+    },
+    {
+        "id": "31db754b.638e9a",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 707.6072006225586,
+        "y": 1257.8335437774658,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "73c149a8.37a3b8"
+            ]
+        ]
+    },
+    {
+        "id": "73dc8185.75918",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 716.1786499023438,
+        "y": 1212.8337383270264,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "73c149a8.37a3b8"
+            ]
+        ]
+    },
+    {
+        "id": "9f23c2c.e727c4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "x": 1812.9166412353516,
+        "y": 1036.3094778060913,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "6f92bbb5.4e7174",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1452.6785011291504,
+        "y": 1135.3573541641235,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "73c149a8.37a3b8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`\" />\n",
+        "comments": "",
+        "x": 871.249870300293,
+        "y": 1234.4046754837036,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "baf0ce69.2f35f",
+        "type": "set",
+        "name": "set pm",
+        "xml": "<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />\n",
+        "comments": "",
+        "x": 457.9166564941406,
+        "y": 447.9761657714844,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "32680418.d56afc",
+        "type": "switchNode",
+        "name": "switch tmp.configuration-sub-type",
+        "xml": "<switch test='`$tmp.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 539.8214263916016,
+        "y": 1115.3572463989258,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "8606aede.0e8d7",
+                "b942b8d4.db5818"
+            ]
+        ]
+    },
+    {
+        "id": "8606aede.0e8d7",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 755.6785888671875,
+        "y": 1091.0715599060059,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "543e2aaa.e10284"
+            ]
+        ]
+    },
+    {
+        "id": "b942b8d4.db5818",
+        "type": "outcome",
+        "name": "pprobe",
+        "xml": "<outcome value='pprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 756.9642791748047,
+        "y": 1138.2144260406494,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "f80f3420.bfae08"
+            ]
+        ]
+    },
+    {
+        "id": "bfcb7fe0.37cd9",
+        "type": "set",
+        "name": "set tmp.configuration-sub-type",
+        "xml": "<set>\n<parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />\n",
+        "comments": "",
+        "x": 529.8214416503906,
+        "y": 508.2143306732178,
+        "z": "58cb31c4.064af",
+        "wires": []
+    },
+    {
+        "id": "f80f3420.bfae08",
+        "type": "execute",
+        "name": "execute ContrailAdaptor to enable port mirroring",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='port-mirroring' />\n<parameter name='api-action' value='enable' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='display-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-name'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />\n<parameter name='contrail-virtual-machine-interface-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />\n<parameter name='default-domain' value='default-domain' />\n<parameter name='default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='traffic-direction' value='both' />\n<parameter name='analyzer-ip-address'\n  value='`$tmp.analyzer.ip-address`' />\n<parameter name='vni' value='1000' />\n<parameter name='udp-port' value='8099' />\n<parameter name='routing-instance'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />\n<parameter name='local-preference' value='1' />\n<parameter name='juniper-header' value='false' />\n<parameter name='cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cloud-owner'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1018.3928833007812,
+        "y": 1136.7857656478882,
+        "z": "58cb31c4.064af",
+        "wires": [
+            [
+                "37e68f52.b8c84",
+                "b52df8e.2158508"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.json
new file mode 100644 (file)
index 0000000..1d56f1b
--- /dev/null
@@ -0,0 +1,564 @@
+[
+    {
+        "id": "de11a95f.852ac8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 106.66664123535156,
+        "y": 84.99999523162842,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "a6b03503.57f968"
+            ]
+        ]
+    },
+    {
+        "id": "a6b03503.57f968",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 220.6190185546875,
+        "y": 125.23811626434326,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "e999d03f.3a56d"
+            ]
+        ]
+    },
+    {
+        "id": "e999d03f.3a56d",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-mapping-pprobe",
+        "xml": "<method rpc='port-mirror-topology-operation-mapping-pprobe' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 247.95243072509766,
+        "y": 166.42856884002686,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "d54a5c4.3df72a"
+            ]
+        ]
+    },
+    {
+        "id": "9baf7ef3.09748",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-mapping-pprobe",
+        "info": "",
+        "comments": "",
+        "x": 501.0114974975586,
+        "y": 32.58633899688721,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "d54a5c4.3df72a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 123.33333587646484,
+        "y": 659.9999465942383,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "c44a1b6c.6ee0e8",
+                "f3a203c9.954a3",
+                "e0b23aa2.a3c348",
+                "b278293c.4f9588",
+                "5b676e8b.e1385",
+                "9c57370e.4caf68",
+                "8cb804df.babd98",
+                "b04d986.600fc68",
+                "12cb160c.65893a"
+            ]
+        ]
+    },
+    {
+        "id": "c44a1b6c.6ee0e8",
+        "type": "get-resource",
+        "name": "get-resource l-interface",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"l-interfaces\" \n\t\tkey=\"pnf.pnf-name = $tmp.dest-pnf-name AND \n\t\t     p-interface.interface-name = $tmp.dest-p-interface AND depth='all'\"\n        pfx='aai.pnf.p-interface' local-only='false' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 423.3333206176758,
+        "y": 378.3333511352539,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "60c80e24.84bd3",
+                "b6d325fc.465448"
+            ]
+        ]
+    },
+    {
+        "id": "b6d325fc.465448",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 637.5795135498047,
+        "y": 396.4842071533203,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "224dbadd.8b3fd6"
+            ]
+        ]
+    },
+    {
+        "id": "224dbadd.8b3fd6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving l-interfaces from AAI\" />\n",
+        "comments": "",
+        "x": 812.5794868469238,
+        "y": 396.48424339294434,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "60c80e24.84bd3",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 646.5081100463867,
+        "y": 354.76994037628174,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "73dbd598.33544c"
+            ]
+        ]
+    },
+    {
+        "id": "73dbd598.33544c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Destination L-Interfaces are not set for the Destination PNF\" />\n",
+        "comments": "",
+        "x": 812.8573875427246,
+        "y": 354.07551765441895,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "f3a203c9.954a3",
+        "type": "switchNode",
+        "name": "switch l-interface_length > 0",
+        "xml": "<switch test='`$aai.pnf.p-interface.l-interface_length &gt; 0`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 436.6666793823242,
+        "y": 445.0000305175781,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "1a36b2b3.1d74ed"
+            ]
+        ]
+    },
+    {
+        "id": "1a36b2b3.1d74ed",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 648.3333702087402,
+        "y": 443.3333435058594,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "cb4e30bc.89d64"
+            ]
+        ]
+    },
+    {
+        "id": "cb4e30bc.89d64",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Destination L-Interface is not set for the Destination PNF\" />\n",
+        "comments": "",
+        "x": 811.666618347168,
+        "y": 441.66665744781494,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "e0b23aa2.a3c348",
+        "type": "for",
+        "name": "for each l-interface",
+        "xml": "<for index='idx' start='0' end='`$aai.pnf.p-interface.l-interface_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 403.3332977294922,
+        "y": 604.9999256134033,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "4f93bc13.888424"
+            ]
+        ]
+    },
+    {
+        "id": "4f93bc13.888424",
+        "type": "switchNode",
+        "name": "switch ipv4-address",
+        "xml": "<switch test='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 608.3333282470703,
+        "y": 605.0000076293945,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "e8c160d6.30e49",
+                "87df81a2.3bf67"
+            ]
+        ]
+    },
+    {
+        "id": "e8c160d6.30e49",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 786.6665878295898,
+        "y": 556.6665945053101,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "8ccdea1a.97e9d8"
+            ]
+        ]
+    },
+    {
+        "id": "87df81a2.3bf67",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 786.238037109375,
+        "y": 675.2859592437744,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "8affe25c.62539"
+            ]
+        ]
+    },
+    {
+        "id": "8ccdea1a.97e9d8",
+        "type": "switchNode",
+        "name": "switch ipv6-address",
+        "xml": "<switch test='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 979.9999237060547,
+        "y": 554.999942779541,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "85f2249f.93aab8",
+                "deb53a82.0016d8"
+            ]
+        ]
+    },
+    {
+        "id": "85f2249f.93aab8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1153.3333358764648,
+        "y": 529.9999618530273,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "50b58898.682778"
+            ]
+        ]
+    },
+    {
+        "id": "deb53a82.0016d8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1151.238151550293,
+        "y": 581.9526376724243,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "f1c94d40.8d93d"
+            ]
+        ]
+    },
+    {
+        "id": "ee128f1d.83c73",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Destination Port IP Address is not set for the Destination PNF' />\n",
+        "comments": "",
+        "x": 740.0000228881836,
+        "y": 756.6667022705078,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "68c4a0ec.b8bfe",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 1106.6666946411133,
+        "y": 699.9999504089355,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "50b58898.682778",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1306.6666450500488,
+        "y": 528.3333024978638,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b278293c.4f9588",
+        "type": "set",
+        "name": "set tmp.found-one to false",
+        "xml": "<set>\n<parameter name='tmp.found-one' value='false' />\n",
+        "comments": "",
+        "x": 428.3332977294922,
+        "y": 491.6666488647461,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "8affe25c.62539",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 953.333324432373,
+        "y": 676.666615486145,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "98c4128d.4f2a3",
+                "68c4a0ec.b8bfe"
+            ]
+        ]
+    },
+    {
+        "id": "98c4128d.4f2a3",
+        "type": "set",
+        "name": "set tmp.found-one to true",
+        "xml": "<set>\n<parameter name='tmp.found-one' value='true' />\n",
+        "comments": "",
+        "x": 1164.999927520752,
+        "y": 651.6666278839111,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "a9b64a4f.527c28",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 1463.3333473205566,
+        "y": 601.6666526794434,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "f1c94d40.8d93d",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1309.9999771118164,
+        "y": 578.3333177566528,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "a8e91133.3c04",
+                "a9b64a4f.527c28"
+            ]
+        ]
+    },
+    {
+        "id": "a8e91133.3c04",
+        "type": "set",
+        "name": "set tmp.found-one to true",
+        "xml": "<set>\n<parameter name='tmp.found-one' value='true' />\n",
+        "comments": "",
+        "x": 1521.6665802001953,
+        "y": 553.333330154419,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "5b676e8b.e1385",
+        "type": "switchNode",
+        "name": "switch tmp.found-one",
+        "xml": "<switch test='`$tmp.found-one`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 406.6666717529297,
+        "y": 758.333345413208,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "5a39c52e.e2842c"
+            ]
+        ]
+    },
+    {
+        "id": "5a39c52e.e2842c",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 585,
+        "y": 756.6666469573975,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "ee128f1d.83c73"
+            ]
+        ]
+    },
+    {
+        "id": "8cb804df.babd98",
+        "type": "for",
+        "name": "for each source vnfc-object",
+        "xml": "<for silentFailure='true' index='vnfc-so-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 423.33326721191406,
+        "y": 854.9999198913574,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "9172f540.14fc68"
+            ]
+        ]
+    },
+    {
+        "id": "9172f540.14fc68",
+        "type": "for",
+        "name": "for each source vnic",
+        "xml": "<for silentFailure='true' index='vnic-s-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 664.9999313354492,
+        "y": 854.4270343780518,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "453bf3e8.000eac"
+            ]
+        ]
+    },
+    {
+        "id": "9c57370e.4caf68",
+        "type": "set",
+        "name": "set map-idx to 0",
+        "xml": "<set>\n<parameter name='map-idx' value='0' />\n",
+        "comments": "",
+        "x": 390.4284973144531,
+        "y": 808.3320236206055,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "12cb160c.65893a",
+        "type": "set",
+        "name": "set source-to-dest-map_length",
+        "xml": "<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length'\n  value='`$map-idx`' />\n",
+        "comments": "",
+        "x": 433.3330726623535,
+        "y": 925,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "6c80f24a.f38ccc",
+        "type": "set",
+        "name": "set source-to-dest-map",
+        "xml": "<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-name'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-vserver-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vserver-id`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-id'\n  value='`$aai.pnf.p-interface.l-interface[$idx].interface-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-name'\n  value='`$aai.pnf.p-interface.l-interface[$idx].interface-name`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv4-address'\n  value='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv6-address'\n  value='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />\n",
+        "comments": "",
+        "x": 1074.9999542236328,
+        "y": 831.6666221618652,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "bcb038b9.b6a1a8",
+        "type": "set",
+        "name": "increment map-idx",
+        "xml": "<set>\n<parameter name='map-idx' value='`$map-idx + 1`' />\n",
+        "comments": "",
+        "x": 1058.999885559082,
+        "y": 877.6667728424072,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "b04d986.600fc68",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n",
+        "comments": "",
+        "x": 383.3333549499512,
+        "y": 973.3333053588867,
+        "z": "b6bc16fc.df4e08",
+        "wires": []
+    },
+    {
+        "id": "453bf3e8.000eac",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 863.3333129882812,
+        "y": 853.3333129882812,
+        "z": "b6bc16fc.df4e08",
+        "wires": [
+            [
+                "6c80f24a.f38ccc",
+                "bcb038b9.b6a1a8"
+            ]
+        ]
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.json
new file mode 100644 (file)
index 0000000..5a692a4
--- /dev/null
@@ -0,0 +1,1028 @@
+[
+    {
+        "id": "d865558f.8efaa8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 117.14286041259766,
+        "y": 84.28571319580078,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "846785d8.683638"
+            ]
+        ]
+    },
+    {
+        "id": "846785d8.683638",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 231.0952377319336,
+        "y": 124.52383422851562,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "d2d2a3b0.5e5cf"
+            ]
+        ]
+    },
+    {
+        "id": "d2d2a3b0.5e5cf",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-mapping-vprobe",
+        "xml": "<method rpc='port-mirror-topology-operation-mapping-vprobe' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 258.42864990234375,
+        "y": 165.71428680419922,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "67b4d64c.e399f8"
+            ]
+        ]
+    },
+    {
+        "id": "95f0422f.b3d2c",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-mapping-vprobe",
+        "info": "",
+        "comments": "",
+        "x": 511.4877166748047,
+        "y": 31.87205696105957,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "aa8038f.fd261c8",
+        "type": "for",
+        "name": "for each source vnfc-object",
+        "xml": "<for silentFailure='true' index='vnfc-so-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 412.14302825927734,
+        "y": 834.618974685669,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "3837ea89.85c4d6"
+            ]
+        ]
+    },
+    {
+        "id": "3837ea89.85c4d6",
+        "type": "for",
+        "name": "for each source vnic",
+        "xml": "<for silentFailure='true' index='vnic-s-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 653.8096923828125,
+        "y": 834.0460891723633,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "833c3032.ce493"
+            ]
+        ]
+    },
+    {
+        "id": "8cb72a4d.cda468",
+        "type": "for",
+        "name": "for each dest vnfc-object",
+        "xml": "<for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1092.33349609375,
+        "y": 733.9510021209717,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "5e36f7e6.7d7318"
+            ]
+        ]
+    },
+    {
+        "id": "5e36f7e6.7d7318",
+        "type": "for",
+        "name": "for each dest vnic",
+        "xml": "<for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1314.7146072387695,
+        "y": 733.3326072692871,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "13722054.5e929"
+            ]
+        ]
+    },
+    {
+        "id": "9c27bf76.2cc07",
+        "type": "switchNode",
+        "name": "enough capacity?",
+        "xml": "<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].capacity.vnic-capacity\n  &lt;= $tmp.rem-cap`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1693.048080444336,
+        "y": 758.2370805740356,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "50e739ed.9ece08"
+            ]
+        ]
+    },
+    {
+        "id": "13722054.5e929",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1504.0004272460938,
+        "y": 732.5232133865356,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "5ec61bd2.c386d4",
+                "9c27bf76.2cc07"
+            ]
+        ]
+    },
+    {
+        "id": "5ec61bd2.c386d4",
+        "type": "set",
+        "name": "set remaining capacity",
+        "xml": "<set>\n<parameter name='tmp.rem-cap' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity\n  - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />\n",
+        "comments": "",
+        "x": 1706.6194534301758,
+        "y": 705.8562164306641,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "50e739ed.9ece08",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1860.4287872314453,
+        "y": 757.6658725738525,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "ee37c9ea.374c38"
+            ]
+        ]
+    },
+    {
+        "id": "80910918.dbf9d8",
+        "type": "set",
+        "name": "add to used-capacity",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity'\n  value='`$tmp.src-pps + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity`' />\n",
+        "comments": "",
+        "x": 1082.3334579467773,
+        "y": 914.6179370880127,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "2a8d0015.ea3c6",
+        "type": "set",
+        "name": "set source-to-dest-map",
+        "xml": "<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-name'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-vserver-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vserver-id`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-id`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-name'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-name`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-vserver-id'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vserver-id`' />\n\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv4-address'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`' />\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv6-address'\n  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`' />\n",
+        "comments": "",
+        "x": 1089.0001525878906,
+        "y": 957.9512882232666,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "342ed31a.7fb37c",
+        "type": "set",
+        "name": "set tmp.found-capacity=N",
+        "xml": "<set>\n<parameter name='tmp.found-capacity' value='N' />\n<parameter name='tmp.save-rem-cap' value='0' />\n",
+        "comments": "",
+        "x": 1097.0956268310547,
+        "y": 684.903995513916,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "d265eabd.0ec438",
+        "type": "switchNode",
+        "name": "switch found-capacity == N?",
+        "xml": "<switch test=\"`$tmp.found-capacity == 'N'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1100.428955078125,
+        "y": 799.9037551879883,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "16e3151a.db68db"
+            ]
+        ]
+    },
+    {
+        "id": "16e3151a.db68db",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1297.5717010498047,
+        "y": 800.2611198425293,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "78769168.05467"
+            ]
+        ]
+    },
+    {
+        "id": "833c3032.ce493",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 854.476448059082,
+        "y": 834.1895208358765,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "342ed31a.7fb37c",
+                "8cb72a4d.cda468",
+                "d265eabd.0ec438",
+                "80910918.dbf9d8",
+                "2a8d0015.ea3c6",
+                "7030b73e.7416d8"
+            ]
+        ]
+    },
+    {
+        "id": "9021e5af.5cc618",
+        "type": "set",
+        "name": "set map-idx to 0",
+        "xml": "<set>\n<parameter name='map-idx' value='0' />\n",
+        "comments": "",
+        "x": 379.2382507324219,
+        "y": 620.6177444458008,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "7030b73e.7416d8",
+        "type": "set",
+        "name": "increment map-idx",
+        "xml": "<set>\n<parameter name='map-idx' value='`$map-idx + 1`' />\n",
+        "comments": "",
+        "x": 1073.0000839233398,
+        "y": 1003.9514389038086,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "ee37c9ea.374c38",
+        "type": "switchNode",
+        "name": "is there an ipv4-address?",
+        "xml": "<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2050.3812103271484,
+        "y": 758.2372093200684,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "42d3f046.6533e",
+                "3e7e4f38.7c3b3"
+            ]
+        ]
+    },
+    {
+        "id": "42d3f046.6533e",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2250.381191253662,
+        "y": 756.8089141845703,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "9898c47b.17dc68"
+            ]
+        ]
+    },
+    {
+        "id": "9898c47b.17dc68",
+        "type": "switchNode",
+        "name": "is there an ipv6-address?",
+        "xml": "<switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2444.6669692993164,
+        "y": 755.380163192749,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "7758eb3f.b453a4",
+                "bbcfc415.922a78"
+            ]
+        ]
+    },
+    {
+        "id": "7758eb3f.b453a4",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2637.524269104004,
+        "y": 753.951696395874,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "d7f88536.7fca88"
+            ]
+        ]
+    },
+    {
+        "id": "3e7e4f38.7c3b3",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2247.5240478515625,
+        "y": 803.9515285491943,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "2648638f.48dc3c"
+            ]
+        ]
+    },
+    {
+        "id": "bbcfc415.922a78",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2634.667018890381,
+        "y": 799.6659545898438,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "2648638f.48dc3c"
+            ]
+        ]
+    },
+    {
+        "id": "d7f88536.7fca88",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2794.667091369629,
+        "y": 751.094518661499,
+        "z": "660eb50b.12658c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "194fd5ff.1b122a",
+        "type": "comment",
+        "name": "Found a usable destination port",
+        "info": "",
+        "comments": "",
+        "x": 1118.4765014648438,
+        "y": 867.9990339279175,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "67b4d64c.e399f8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 137.14286041259766,
+        "y": 805.9523487091064,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "9021e5af.5cc618",
+                "aa8038f.fd261c8",
+                "3812658a.229d9a",
+                "d45ff25c.78723",
+                "aba11878.3d0528",
+                "7f4adf17.47b08",
+                "e3e68421.71a8b8",
+                "a97afc7d.c209b",
+                "3600f5af.f19cca"
+            ]
+        ]
+    },
+    {
+        "id": "78769168.05467",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'No capacity for source interface '\n  + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`\" />\n",
+        "comments": "",
+        "x": 1482.8097114562988,
+        "y": 801.4523735046387,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "3812658a.229d9a",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='' value='' />\n",
+        "comments": "",
+        "x": 373.1429748535156,
+        "y": 1290.6190147399902,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "60f2dbb9.ae8cd4",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 712.142822265625,
+        "y": 289.2857131958008,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "8cddc4c2.57a498"
+            ]
+        ]
+    },
+    {
+        "id": "639eed7b.da1bd4",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 720.7142581939697,
+        "y": 332.57142639160156,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "608970aa.edcc1"
+            ]
+        ]
+    },
+    {
+        "id": "d45ff25c.78723",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CAPACITY_GROUP",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select vnics_group_id\n    from VNICS_CAPACITY_GROUP\n    where service_instance_id = $tmp.service-instance-id\n    and nfc_naming_code = $tmp.dest-nfc-naming-code\n    and vnf_id = $tmp.dest-vnf-id'\n  pfx='db'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 459.21429443359375,
+        "y": 315.0477695465088,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "60f2dbb9.ae8cd4",
+                "639eed7b.da1bd4"
+            ]
+        ]
+    },
+    {
+        "id": "8cddc4c2.57a498",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure reading VNICS_CAPACITY_GROUP table\" />\n",
+        "comments": "",
+        "x": 880.4761505126953,
+        "y": 287.61901664733887,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "608970aa.edcc1",
+        "type": "save",
+        "name": "save VNICS_CAPACITY_GROUP",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\n\tkey=\"insert into VNICS_CAPACITY_GROUP \n\t  (service_instance_id, nfc_naming_code, vnf_id)\n\t  VALUES ( $tmp.service-instance-id , $tmp.dest-nfc-naming-code , $tmp.dest-vnf-id )\"\n\tpfx='pfx' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 938.8094787597656,
+        "y": 330.95237255096436,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "94fe9e7b.6e187",
+                "a7412aee.970778"
+            ]
+        ]
+    },
+    {
+        "id": "94fe9e7b.6e187",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1170.4759979248047,
+        "y": 309.28586769104004,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "dae1ca1a.80ef58"
+            ]
+        ]
+    },
+    {
+        "id": "7f8c369a.933558",
+        "type": "execute",
+        "name": "printContext",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vnics.log' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 364.4762268066406,
+        "y": 359.2857437133789,
+        "z": "660eb50b.12658c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "dae1ca1a.80ef58",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure to insert record into VNICS_CAPACITY_GROUP table\" />\n",
+        "comments": "",
+        "x": 1322.1427421569824,
+        "y": 308.61905574798584,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "a7412aee.970778",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1173.8094940185547,
+        "y": 355.95239448547363,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "746962c4.c67a7c"
+            ]
+        ]
+    },
+    {
+        "id": "746962c4.c67a7c",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CAPACITY_GROUP",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select vnics_group_id\n    from VNICS_CAPACITY_GROUP\n    where service_instance_id = $tmp.service-instance-id\n    and nfc_naming_code = $tmp.dest-nfc-naming-code\n    and vnf_id = $tmp.dest-vnf-id'\n  pfx='db'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1413.8095397949219,
+        "y": 354.2856864929199,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "5f3550c3.13f43"
+            ]
+        ]
+    },
+    {
+        "id": "5f3550c3.13f43",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1655.4761009216309,
+        "y": 352.6190195083618,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "c948a7c1.8a3228"
+            ]
+        ]
+    },
+    {
+        "id": "c948a7c1.8a3228",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure reading VNICS_CAPACITY_GROUP table\" />\n",
+        "comments": "",
+        "x": 1823.8094291687012,
+        "y": 350.9523229598999,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "aba11878.3d0528",
+        "type": "for",
+        "name": "for each dest vnfc-object",
+        "xml": "<for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 407.14293670654297,
+        "y": 520.6189937591553,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "ba61fc56.2bff3"
+            ]
+        ]
+    },
+    {
+        "id": "ba61fc56.2bff3",
+        "type": "for",
+        "name": "for each dest vnic",
+        "xml": "<for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 637.1430130004883,
+        "y": 520.6189823150635,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "3429f2b4.06a52e"
+            ]
+        ]
+    },
+    {
+        "id": "3429f2b4.06a52e",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CAPACITY",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select available_capacity, vnic_capacity\n    from VNICS_CAPACITY\n    where vnics_group_id = $db.vnics-group-id\n    and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'\n  pfx='db.vnics-capacity'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 883.8098297119141,
+        "y": 520.6189737319946,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "363cb986.7e0746",
+                "fda3755.4ca4688",
+                "6169bfbf.6fa9c"
+            ]
+        ]
+    },
+    {
+        "id": "363cb986.7e0746",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1107.1429595947266,
+        "y": 470.61901473999023,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "ce11a3a3.c1403"
+            ]
+        ]
+    },
+    {
+        "id": "ce11a3a3.c1403",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure reading VNICS_CAPACITY_GROUP table\" />\n",
+        "comments": "",
+        "x": 1275.4762878417969,
+        "y": 468.9523181915283,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "fda3755.4ca4688",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1115.4762954711914,
+        "y": 523.9523372650146,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "41079a08.942214"
+            ]
+        ]
+    },
+    {
+        "id": "41079a08.942214",
+        "type": "save",
+        "name": "save VNICS_CAPACITY",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\n\tkey=\"insert into VNICS_CAPACITY \n\t  (vnics_group_id, vnic_port_name, available_capacity, vnic_capacity)\n\t  VALUES ( $db.vnics-group-id ,\n\t    $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name ,\n\t    $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity ,\n\t    $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity\n\t    )\"\n\tpfx='pfx' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1312.1430053710938,
+        "y": 523.9523277282715,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "6a32b892.8f68f8"
+            ]
+        ]
+    },
+    {
+        "id": "6a32b892.8f68f8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1510.476276397705,
+        "y": 522.2856945991516,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "a8fbb0ff.039e6"
+            ]
+        ]
+    },
+    {
+        "id": "a8fbb0ff.039e6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure to insert record into VNICS_CAPACITY table\" />\n",
+        "comments": "",
+        "x": 1662.1430206298828,
+        "y": 521.6188826560974,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "6169bfbf.6fa9c",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1115.476417541504,
+        "y": 580.6189975738525,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "91c7d1c5.6a47a"
+            ]
+        ]
+    },
+    {
+        "id": "91c7d1c5.6a47a",
+        "type": "set",
+        "name": "set vnic-capacity",
+        "xml": "<set>\n<parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity'\n  value='`$db.vnics-capacity.available-capacity`' />\n",
+        "comments": "",
+        "x": 1285.4762573242188,
+        "y": 580.6189765930176,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "7f4adf17.47b08",
+        "type": "set",
+        "name": "set source-to-dest-map_length",
+        "xml": "<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length'\n  value='`$map-idx`' />\n",
+        "comments": "",
+        "x": 426.47618865966797,
+        "y": 1052.2857131958008,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "2648638f.48dc3c",
+        "type": "switchNode",
+        "name": "is this is most remaining capacity so far?",
+        "xml": "<switch test='`$tmp.rem-cap &gt; $tmp.save-rem-cap`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2254.47664642334,
+        "y": 880.6190948486328,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "813e25b7.580f58"
+            ]
+        ]
+    },
+    {
+        "id": "813e25b7.580f58",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2501.1432189941406,
+        "y": 878.9523334503174,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "56ba6414.9f4ccc"
+            ]
+        ]
+    },
+    {
+        "id": "56ba6414.9f4ccc",
+        "type": "set",
+        "name": "set found-capacity and save vnic",
+        "xml": "<set>\n<parameter name='tmp.found-capacity' value='Y' />\n<parameter name='tmp.save-vnfc-do-idx' value='`$vnfc-do-idx`' />\n<parameter name='tmp.save-vnic-d-idx' value='`$vnic-d-idx`' />\n<parameter name='tmp.save-rem-cap' value='`$tmp.rem-cap`' />\n",
+        "comments": "",
+        "x": 2757.8097610473633,
+        "y": 878.9523677825928,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "e3e68421.71a8b8",
+        "type": "for",
+        "name": "for each dest vnfc-object",
+        "xml": "<for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 409.80950927734375,
+        "y": 1112.2857131958008,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "e42814ea.b0ea28"
+            ]
+        ]
+    },
+    {
+        "id": "e42814ea.b0ea28",
+        "type": "for",
+        "name": "for each dest vnic",
+        "xml": "<for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 639.8096008300781,
+        "y": 1112.285701751709,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "999a9dbf.6d329"
+            ]
+        ]
+    },
+    {
+        "id": "e98ed9b2.d66598",
+        "type": "update",
+        "name": "update VNICS_CAPACITY",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"update VNICS_CAPACITY\n     set available_capacity = $tmp.avail-capacity\n     where vnics_group_id = $db.vnics-group-id\n     and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name\n\" >",
+        "comments": "",
+        "outputs": 1,
+        "x": 1063.142837524414,
+        "y": 1163.9522199630737,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "e37dddbd.93743"
+            ]
+        ]
+    },
+    {
+        "id": "e37dddbd.93743",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1279.809413909912,
+        "y": 1162.2856788635254,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "9a4f7649.32e9d8"
+            ]
+        ]
+    },
+    {
+        "id": "9a4f7649.32e9d8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failure updating VNICS_CAPACITY table\" />\n",
+        "comments": "",
+        "x": 1448.1427536010742,
+        "y": 1160.4287452697754,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "999a9dbf.6d329",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 826.4761505126953,
+        "y": 1110.6189651489258,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "59c4c4cf.8c1e7c",
+                "61833831.c63cb8",
+                "e98ed9b2.d66598"
+            ]
+        ]
+    },
+    {
+        "id": "59c4c4cf.8c1e7c",
+        "type": "get-resource",
+        "name": "get-resource VNICS_CAPACITY",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='select available_capacity\n    from VNICS_CAPACITY\n    where vnics_group_id = $db.vnics-group-id\n    and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'\n  pfx='db.vnics-capacity'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1081.4761085510254,
+        "y": 1060.618984222412,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "bcb1f86a.023148"
+            ]
+        ]
+    },
+    {
+        "id": "61833831.c63cb8",
+        "type": "set",
+        "name": "set new available capacity",
+        "xml": "<set>\n<parameter name='tmp.original-avail-capacity' value='`$db.vnics-capacity.available-capacity`' />\n<parameter name='tmp.original-used-capacity' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />\n<parameter name='tmp.avail-capacity' value='`$db.vnics-capacity.available-capacity - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />\n",
+        "comments": "",
+        "x": 1061.4761695861816,
+        "y": 1112.2856330871582,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "bcb1f86a.023148",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1304.8094635009766,
+        "y": 1058.9523391723633,
+        "z": "660eb50b.12658c",
+        "wires": [
+            [
+                "a87c2664.36e398"
+            ]
+        ]
+    },
+    {
+        "id": "a87c2664.36e398",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failure reading VNICS_CAPACITY table\" />\n",
+        "comments": "",
+        "x": 1473.1428031921387,
+        "y": 1057.0954055786133,
+        "z": "660eb50b.12658c",
+        "wires": []
+    },
+    {
+        "id": "a97afc7d.c209b",
+        "type": "save",
+        "name": "save VNICS_CONFIGURATION_ID",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\n\tkey=\"insert into VNICS_CONFIGURATION_ID\n\t(configuration_id, vnics_group_id)\n\tvalues ( $tmp.configuration-id , $db.vnics-group-id )\"\n\tpfx='pfx' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 439.8095245361328,
+        "y": 1223.9523391723633,
+        "z": "660eb50b.12658c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3600f5af.f19cca",
+        "type": "set",
+        "name": "set vnics-group-id",
+        "xml": "<set>\n<parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id'\n  value='`$db.vnics-group-id`' />\n",
+        "comments": "",
+        "x": 383.4761962890625,
+        "y": 424.2857131958008,
+        "z": "660eb50b.12658c",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.json
new file mode 100644 (file)
index 0000000..e2529a9
--- /dev/null
@@ -0,0 +1,788 @@
+[
+    {
+        "id": "8bbb7374.4b98a",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 116,
+        "y": 90,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "772f4378.64823c"
+            ]
+        ]
+    },
+    {
+        "id": "772f4378.64823c",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 229.61902618408203,
+        "y": 130.2381134033203,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "58997f12.7afb3"
+            ]
+        ]
+    },
+    {
+        "id": "58997f12.7afb3",
+        "type": "method",
+        "name": "method port-mirror-topology-operation-unassign",
+        "xml": "<method rpc='port-mirror-topology-operation-unassign' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 234.09529876708984,
+        "y": 171.66666793823242,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "5c090ffc.79e3e"
+            ]
+        ]
+    },
+    {
+        "id": "b44412dc.e6821",
+        "type": "comment",
+        "name": "port-mirror-topology-operation-unassign",
+        "info": "",
+        "comments": "",
+        "x": 510.34485626220703,
+        "y": 37.58634376525879,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "5c090ffc.79e3e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 168.85714721679688,
+        "y": 687.1428813934326,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "a00881e6.27503",
+                "3cd15e0b.8a9242",
+                "c02c29b9.8c7e88",
+                "6dad1b2d.44e274",
+                "970129e3.7b30e8",
+                "9bbcaeed.5bcb1",
+                "b0105555.232da8",
+                "af3a37ae.9c69a8",
+                "a3b37ff7.c3c35",
+                "fb90193b.a54318",
+                "6cdc1207.ebd5dc",
+                "942856b4.633be8"
+            ]
+        ]
+    },
+    {
+        "id": "a00881e6.27503",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name='error-code' value='200' />\n<parameter name='ack-final' value='Y' />",
+        "comments": "",
+        "x": 440.4762268066406,
+        "y": 1303.5712909698486,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "3cd15e0b.8a9242",
+        "type": "set",
+        "name": "set tmp.configuration-id",
+        "xml": "<set>\n<parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\n<parameter name='tmp.service-instance-id' value='`$port-mirror-topology-operation-input.service-information.service-instance-id`' />\n",
+        "comments": "",
+        "x": 477.8571548461914,
+        "y": 288.57142639160156,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "c02c29b9.8c7e88",
+        "type": "execute",
+        "name": "execute readProperties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 478.8571472167969,
+        "y": 334.28567695617676,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6dad1b2d.44e274",
+        "type": "execute",
+        "name": "generate port-mirror-configuration url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.pm-configuration`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.pmc-url\"/>\n    <parameter name=\"target\" value=\"{configuration-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.configuration-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 518.8571548461914,
+        "y": 375.7142524719238,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "970129e3.7b30e8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"pm-mdsal\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 577.4286193847656,
+        "y": 440.00006103515625,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "3dcfdbe4.afb2f4",
+                "8f7d6134.c5be7"
+            ]
+        ]
+    },
+    {
+        "id": "3dcfdbe4.afb2f4",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 875.5817413330078,
+        "y": 410.80790996551514,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "75cc3cfd.cbd064"
+            ]
+        ]
+    },
+    {
+        "id": "8f7d6134.c5be7",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 873.142879486084,
+        "y": 460.00000381469727,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "a00d5b26.695c08"
+            ]
+        ]
+    },
+    {
+        "id": "a00d5b26.695c08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`\" />\n",
+        "comments": "",
+        "x": 1387.4285583496094,
+        "y": 457.14286613464355,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "9bbcaeed.5bcb1",
+        "type": "switchNode",
+        "name": "switch order-status == 'Created'",
+        "xml": "<switch test=\"`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Created'`\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 503.1428909301758,
+        "y": 507.1428031921387,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "3c7b307b.3b6f6"
+            ]
+        ]
+    },
+    {
+        "id": "75cc3cfd.cbd064",
+        "type": "switchNode",
+        "name": "switch length == 1",
+        "xml": "<switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1054.5714416503906,
+        "y": 410.000018119812,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "edc73da3.d8892"
+            ]
+        ]
+    },
+    {
+        "id": "edc73da3.d8892",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1224.5714721679688,
+        "y": 410.00000953674316,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "a00d5b26.695c08"
+            ]
+        ]
+    },
+    {
+        "id": "3c7b307b.3b6f6",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 721.7143020629883,
+        "y": 507.1428909301758,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "8e30c079.587fb"
+            ]
+        ]
+    },
+    {
+        "id": "8e30c079.587fb",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Created'`\" />\n",
+        "comments": "",
+        "x": 883.1428909301758,
+        "y": 505.7143020629883,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "91831f7f.9b292",
+        "type": "comment",
+        "name": "rpc-port-mirror-1100",
+        "info": "",
+        "comments": "",
+        "x": 428.142822265625,
+        "y": 679.2856960296631,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "60c9f952.f4f188",
+        "type": "comment",
+        "name": "step 2 - call DG to delete route policy",
+        "info": "",
+        "comments": "",
+        "x": 509.3332977294922,
+        "y": 730.238130569458,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "fc0ac42c.952338",
+        "type": "comment",
+        "name": "step 4 - delete logical-link objects (aai-port-mirror-1080)",
+        "info": "",
+        "comments": "",
+        "x": 565.0477142333984,
+        "y": 864.5237045288086,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "7d49d03a.924b7",
+        "type": "comment",
+        "name": "step 5 - update configuration object (aai-port-mirror-1070)",
+        "info": "",
+        "comments": "",
+        "x": 569.333366394043,
+        "y": 1027.1428117752075,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "decb832b.7756e",
+        "type": "comment",
+        "name": "step 6 - remove port mirror configuration instance ",
+        "info": "",
+        "comments": "",
+        "x": 544.8094940185547,
+        "y": 1160.9523677825928,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "b0105555.232da8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - get port-mirror-configuration",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-pmc\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 569.0952301025391,
+        "y": 1217.3809337615967,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "e5926e1f.9d417",
+                "a0df149e.9ba658"
+            ]
+        ]
+    },
+    {
+        "id": "e5926e1f.9d417",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 890.1055297851562,
+        "y": 1192.474473953247,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "ddd7e984.1b33f8"
+            ]
+        ]
+    },
+    {
+        "id": "a0df149e.9ba658",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 887.6666679382324,
+        "y": 1241.6665678024292,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "bfee39f8.3ed2a8"
+            ]
+        ]
+    },
+    {
+        "id": "bfee39f8.3ed2a8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to delete port-mirror-configuration object in MD-SAL\" />\n",
+        "comments": "",
+        "x": 1050.2856979370117,
+        "y": 1242.1427536010742,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "ddd7e984.1b33f8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1031.9524269104004,
+        "y": 1191.66667842865,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f67563da.36229",
+        "type": "call",
+        "name": "call api-contrail-route-topology-operation-delete",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1155.7617301940918,
+        "y": 767.3809356689453,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "88c7692a.dfbb88"
+            ]
+        ]
+    },
+    {
+        "id": "88c7692a.dfbb88",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1419.5714073181152,
+        "y": 767.618992805481,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "e130765d.952908"
+            ]
+        ]
+    },
+    {
+        "id": "dd3beea5.003a",
+        "type": "set",
+        "name": "set parameters",
+        "xml": "<set>\n<parameter name='cto-api.default-domain' value='default-domain' />\n<parameter name='cto-api.default-project'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />\n<parameter name='cto-api.cloud-region-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />\n<parameter name='cto-api.contrail-route-allotted-resource-id'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />\n<parameter name='cto-api.rollback-flag' value='false' />\n<parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='cto-api.owning-entity'\n  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />\n",
+        "comments": "",
+        "x": 1053.8571815490723,
+        "y": 717.8573741912842,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "e130765d.952908",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n",
+        "comments": "",
+        "x": 1592.6666374206543,
+        "y": 766.1904449462891,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "a3ed1438.144d08",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1067.0237274169922,
+        "y": 946.3470678329468,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "25107429.8cfe6c"
+            ]
+        ]
+    },
+    {
+        "id": "71dc471a.140258",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1075.595157623291,
+        "y": 990.6327810287476,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "71960fd3.a6f9d"
+            ]
+        ]
+    },
+    {
+        "id": "af3a37ae.9c69a8",
+        "type": "for",
+        "name": "for each mapped source port",
+        "xml": "<for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 493.6189651489258,
+        "y": 932.3801527023315,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "f9221a0.27240e8"
+            ]
+        ]
+    },
+    {
+        "id": "f9221a0.27240e8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 714.0951461791992,
+        "y": 932.6180410385132,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "1b255416.32a90c",
+                "29114eb1.e42792"
+            ]
+        ]
+    },
+    {
+        "id": "29114eb1.e42792",
+        "type": "save",
+        "name": "delete logical-link",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"logical-link\" \n\tkey=\"logical-link.link-name = $tmp.link-name\" >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 902.1903915405273,
+        "y": 965.4754810333252,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "a3ed1438.144d08",
+                "71dc471a.140258"
+            ]
+        ]
+    },
+    {
+        "id": "1b255416.32a90c",
+        "type": "set",
+        "name": "set tmp.link-name",
+        "xml": "<set>\n<parameter name='tmp.link-name' value=\"`'PMC_' + $tmp.configuration-id\n  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\n  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`\" />\n",
+        "comments": "",
+        "x": 905.5237846374512,
+        "y": 903.8086490631104,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "25107429.8cfe6c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1235.5236892700195,
+        "y": 945.4752893447876,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "d47baa6a.fa3238"
+            ]
+        ]
+    },
+    {
+        "id": "d47baa6a.fa3238",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to delete logical-link in AAI: ' + $tmp.link-name`\" />\n",
+        "comments": "",
+        "x": 1411.7143325805664,
+        "y": 944.7618818283081,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "a3b37ff7.c3c35",
+        "type": "save",
+        "name": "update configuration object",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"configuration\"\n   key=\"configuration.configuration-id = $tmp.configuration-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 482.19054412841797,
+        "y": 1090.000015258789,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "6d22e53b.f9793c",
+                "5df9b73.caf0d48"
+            ]
+        ]
+    },
+    {
+        "id": "6d22e53b.f9793c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 686.5478630065918,
+        "y": 1113.619324684143,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "b4115912.041598"
+            ]
+        ]
+    },
+    {
+        "id": "5df9b73.caf0d48",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 695.1192779541016,
+        "y": 1062.9051275253296,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "44175244.a650bc"
+            ]
+        ]
+    },
+    {
+        "id": "44175244.a650bc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Unable to find configuration object in AAI\" />\n",
+        "comments": "",
+        "x": 855.0476608276367,
+        "y": 1062.8571319580078,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "b4115912.041598",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failure updating configuration object in AAI\" />\n",
+        "comments": "",
+        "x": 853.6191329956055,
+        "y": 1114.285659790039,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "fb90193b.a54318",
+        "type": "set",
+        "name": "set pm",
+        "xml": "<set>\n<parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\n<parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />\n",
+        "comments": "",
+        "x": 425.76184844970703,
+        "y": 550.9523181915283,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "71960fd3.a6f9d",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1239.0952529907227,
+        "y": 989.2856588363647,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6cdc1207.ebd5dc",
+        "type": "switchNode",
+        "name": "switch tmp.configuration-sub-type",
+        "xml": "<switch test='`$tmp.configuration-sub-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 507.6667175292969,
+        "y": 789.9999523162842,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "5808e94d.02aa98"
+            ]
+        ]
+    },
+    {
+        "id": "5808e94d.02aa98",
+        "type": "outcome",
+        "name": "vprobe",
+        "xml": "<outcome value='vprobe'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 720.6667251586914,
+        "y": 789.9999370574951,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "2d69de80.1eff82"
+            ]
+        ]
+    },
+    {
+        "id": "2d69de80.1eff82",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 865.9999847412109,
+        "y": 789.9999885559082,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "93d9487f.f05578",
+                "dd3beea5.003a",
+                "f67563da.36229"
+            ]
+        ]
+    },
+    {
+        "id": "93d9487f.f05578",
+        "type": "call",
+        "name": "call port-mirror-rollback-capacity-db",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' >\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1114.333236694336,
+        "y": 851.6666440963745,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "ff59022f.79e16"
+            ]
+        ]
+    },
+    {
+        "id": "639e5c15.feeb14",
+        "type": "comment",
+        "name": "step 3 - undo DB capacity data",
+        "info": "",
+        "comments": "",
+        "x": 1114.3332748413086,
+        "y": 810.000036239624,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "ff59022f.79e16",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1344.3333129882812,
+        "y": 849.9999876022339,
+        "z": "57b283d9.2c73ac",
+        "wires": [
+            [
+                "64c8888e.67e758"
+            ]
+        ]
+    },
+    {
+        "id": "64c8888e.67e758",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n",
+        "comments": "",
+        "x": 1517.4285430908203,
+        "y": 848.571439743042,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    },
+    {
+        "id": "942856b4.633be8",
+        "type": "set",
+        "name": "set tmp.configuration-sub-type",
+        "xml": "<set>\n<parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />\n",
+        "comments": "",
+        "x": 497.6666717529297,
+        "y": 596.666633605957,
+        "z": "57b283d9.2c73ac",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.json
new file mode 100755 (executable)
index 0000000..9d59797
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"937e2678.de7bd8","type":"dgstart","name":"DGSTART","outputs":1,"x":106.66666412353516,"y":87.4136552810669,"z":"4b49c6e4.fe3048","wires":[["1b70aaac.e18bc5"]]},{"id":"1b70aaac.e18bc5","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":220.2856903076172,"y":127.6517686843872,"z":"4b49c6e4.fe3048","wires":[["6bcf44ce.589bac"]]},{"id":"6bcf44ce.589bac","type":"method","name":"method port-mirror-topology-operation-validation","xml":"<method rpc='port-mirror-topology-operation-validation' mode='sync'>\n","comments":"","outputs":1,"x":225.0952911376953,"y":167.4136552810669,"z":"4b49c6e4.fe3048","wires":[["36b909f6.73cb66"]]},{"id":"f1fba941.92b308","type":"comment","name":"port-mirror-topology-operation-validation","info":"","comments":"","x":501.0115203857422,"y":34.999999046325684,"z":"4b49c6e4.fe3048","wires":[]},{"id":"2619e935.995346","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":416.2500991821289,"y":1565.1518993377686,"z":"4b49c6e4.fe3048","wires":[]},{"id":"36b909f6.73cb66","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":209.52381134033203,"y":333.1279344558716,"z":"4b49c6e4.fe3048","wires":[["2619e935.995346","f9f21e89.7956e","ddc786f6.b87d48","3e22ced3.993ad2","ec829e8c.5b84a"]]},{"id":"f9f21e89.7956e","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":429.4643096923828,"y":1211.0447816848755,"z":"4b49c6e4.fe3048","wires":[["52455406.f27e4c","b969f141.ea07e","4d535fd8.fecd9","bdce53a.e85beb","e59dd1ca.f9ba9","4b42cd2a.a91bb4"]]},{"id":"52455406.f27e4c","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":669.2262058258057,"y":780.1518878936768,"z":"4b49c6e4.fe3048","wires":[["2b4034cc.bd8e1c"]]},{"id":"b969f141.ea07e","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":667.3214721679688,"y":1076.9376935958862,"z":"4b49c6e4.fe3048","wires":[["b20062c7.68f33"]]},{"id":"4d535fd8.fecd9","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":669.1071891784668,"y":1174.0805578231812,"z":"4b49c6e4.fe3048","wires":[["9e6a5efe.3186"]]},{"id":"bdce53a.e85beb","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":672.6786098480225,"y":1269.259165763855,"z":"4b49c6e4.fe3048","wires":[["ea8a89c9.e8c648"]]},{"id":"e59dd1ca.f9ba9","type":"outcome","name":"enable","xml":"<outcome value='enable'>\n","comments":"","outputs":1,"x":661.4286613464355,"y":1380.1520357131958,"z":"4b49c6e4.fe3048","wires":[["8a6db9fd.e2b678"]]},{"id":"4b42cd2a.a91bb4","type":"outcome","name":"disable","xml":"<outcome value='disable'>\n","comments":"","outputs":1,"x":652.6787376403809,"y":1489.4376859664917,"z":"4b49c6e4.fe3048","wires":[["e18f42ef.5f8e1"]]},{"id":"ddc786f6.b87d48","type":"switchNode","name":"switch service-information.subscription-service-type","xml":"<switch test='`$service-data.service-information.subscription-service-type`'>\n","comments":"","outputs":1,"x":542.9166412353516,"y":268.30652713775635,"z":"4b49c6e4.fe3048","wires":[["27028266.63249e"]]},{"id":"27028266.63249e","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":811.4881248474121,"y":267.66365909576416,"z":"4b49c6e4.fe3048","wires":[["71dc5896.72bb98"]]},{"id":"71dc5896.72bb98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'No service exists for service instance ' + $port-mirror-topology-operation-input.service-information.service-instance-id`\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":961.4881286621094,"y":267.66365909576416,"z":"4b49c6e4.fe3048","wires":[]},{"id":"34225637.7fe37a","type":"comment","name":"common validations","info":"","comments":"","x":603.4523696899414,"y":220.6279420852661,"z":"4b49c6e4.fe3048","wires":[]},{"id":"3e22ced3.993ad2","type":"switchNode","name":"switch configuration-information.configuration-id","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-id`'>\n","comments":"","outputs":1,"x":528.9881134033203,"y":315.09221363067627,"z":"4b49c6e4.fe3048","wires":[["f52397cc.074718"]]},{"id":"f52397cc.074718","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":811.4881172180176,"y":315.9136552810669,"z":"4b49c6e4.fe3048","wires":[["fd84a975.169f78"]]},{"id":"fd84a975.169f78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"No configuration-id supplied in input\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":961.4881210327148,"y":315.9136552810669,"z":"4b49c6e4.fe3048","wires":[]},{"id":"daeed855.f65228","type":"comment","name":"action-specific validations","info":"","comments":"","x":694.2261772155762,"y":730.8661651611328,"z":"4b49c6e4.fe3048","wires":[]},{"id":"2b4034cc.bd8e1c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":817.9761943817139,"y":780.1518821716309,"z":"4b49c6e4.fe3048","wires":[["fdb2b4ca.fd9468","6d59591f.ef4c98","eda5afb3.f630f","b44e8a2a.37d798","793d5df3.b19c44","8cfba049.9ab71"]]},{"id":"fdb2b4ca.fd9468","type":"switchNode","name":"switch svc-notification-url","xml":"<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\n","comments":"","outputs":1,"x":1053.333339691162,"y":656.5804595947266,"z":"4b49c6e4.fe3048","wires":[["96080e51.d5f5c"]]},{"id":"96080e51.d5f5c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1370.8333473205566,"y":655.3304595947266,"z":"4b49c6e4.fe3048","wires":[["a423e75c.6555b8"]]},{"id":"a423e75c.6555b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"svc-notification-url is required for assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1520.833351135254,"y":655.3304595947266,"z":"4b49c6e4.fe3048","wires":[]},{"id":"b20062c7.68f33","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":818.5714721679688,"y":1076.9376935958862,"z":"4b49c6e4.fe3048","wires":[["abcfc8c5.f7caa8","dca53974.0698c8"]]},{"id":"abcfc8c5.f7caa8","type":"switchNode","name":"switch svc-notification-url","xml":"<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\n","comments":"","outputs":1,"x":1049.4643211364746,"y":1051.7590856552124,"z":"4b49c6e4.fe3048","wires":[["97f7ec47.04288"]]},{"id":"97f7ec47.04288","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1366.9643287658691,"y":1050.5090856552124,"z":"4b49c6e4.fe3048","wires":[["5915d14f.c072a"]]},{"id":"5915d14f.c072a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"svc-notification-url is required for activate\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1516.9643325805664,"y":1050.5090856552124,"z":"4b49c6e4.fe3048","wires":[]},{"id":"ea8a89c9.e8c648","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":820.1786098480225,"y":1268.0091667175293,"z":"4b49c6e4.fe3048","wires":[["61d3d15f.ca091","8624276.49c5bd8"]]},{"id":"61d3d15f.ca091","type":"switchNode","name":"switch svc-notification-url","xml":"<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\n","comments":"","outputs":1,"x":1052.85719871521,"y":1240.3305521011353,"z":"4b49c6e4.fe3048","wires":[["eb91689d.347218"]]},{"id":"eb91689d.347218","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1370.3572063446045,"y":1239.0805521011353,"z":"4b49c6e4.fe3048","wires":[["c611ae80.8f1df"]]},{"id":"c611ae80.8f1df","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"svc-notification-url is required for deactivate\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1520.3572101593018,"y":1239.0805521011353,"z":"4b49c6e4.fe3048","wires":[]},{"id":"6d59591f.ef4c98","type":"switchNode","name":"switch request-action='CreatePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1164.583339691162,"y":709.0804605484009,"z":"4b49c6e4.fe3048","wires":[["f5beef9f.34adb"]]},{"id":"f5beef9f.34adb","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1470.8333473205566,"y":709.0804595947266,"z":"4b49c6e4.fe3048","wires":[["13771525.e3f82b"]]},{"id":"13771525.e3f82b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be CreatePortMirrorConfigurationInstance for assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1622.0833473205566,"y":709.0804615020752,"z":"4b49c6e4.fe3048","wires":[]},{"id":"9e6a5efe.3186","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":819.1071891784668,"y":1174.0805568695068,"z":"4b49c6e4.fe3048","wires":[["78601c3c.46ee54"]]},{"id":"8a6db9fd.e2b678","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":820.1786613464355,"y":1380.1520376205444,"z":"4b49c6e4.fe3048","wires":[["5f2b82e4.5647cc","de8812d9.defb9"]]},{"id":"e18f42ef.5f8e1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":810.1787376403809,"y":1489.4376878738403,"z":"4b49c6e4.fe3048","wires":[["e87a4a95.a74d28","49e544be.a01fcc"]]},{"id":"dca53974.0698c8","type":"switchNode","name":"switch request-action='CreatePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1164.4643058776855,"y":1105.5090799331665,"z":"4b49c6e4.fe3048","wires":[["5db674c6.f192ec"]]},{"id":"5db674c6.f192ec","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1470.71431350708,"y":1105.5090789794922,"z":"4b49c6e4.fe3048","wires":[["ebddce7.738fb3"]]},{"id":"ebddce7.738fb3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be CreatePortMirrorConfigurationInstance for activate\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1621.96431350708,"y":1105.5090808868408,"z":"4b49c6e4.fe3048","wires":[]},{"id":"78601c3c.46ee54","type":"switchNode","name":"switch request-action='DeletePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1162.321548461914,"y":1174.080584526062,"z":"4b49c6e4.fe3048","wires":[["189fafd.d538a5"]]},{"id":"189fafd.d538a5","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1468.5715560913086,"y":1174.0805835723877,"z":"4b49c6e4.fe3048","wires":[["c2927195.691fe"]]},{"id":"c2927195.691fe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be DeletePortMirrorConfigurationInstance for unassign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1619.8215560913086,"y":1174.0805854797363,"z":"4b49c6e4.fe3048","wires":[]},{"id":"8624276.49c5bd8","type":"switchNode","name":"switch request-action='DeletePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1165.3571796417236,"y":1296.5805463790894,"z":"4b49c6e4.fe3048","wires":[["52576a21.d04bc4"]]},{"id":"52576a21.d04bc4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1471.6071872711182,"y":1296.580545425415,"z":"4b49c6e4.fe3048","wires":[["43bf1df3.a10684"]]},{"id":"43bf1df3.a10684","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be DeletePortMirrorConfigurationInstance for deactivate\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1622.8571872711182,"y":1296.5805473327637,"z":"4b49c6e4.fe3048","wires":[]},{"id":"5f2b82e4.5647cc","type":"switchNode","name":"switch request-action='ChangePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1169.1071891784668,"y":1356.4019956588745,"z":"4b49c6e4.fe3048","wires":[["80cbf3a5.e6cb2"]]},{"id":"80cbf3a5.e6cb2","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1475.3571968078613,"y":1356.4019947052002,"z":"4b49c6e4.fe3048","wires":[["507e85a0.81b15c"]]},{"id":"507e85a0.81b15c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be ChangePortMirrorConfigurationInstance for enable\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1626.6071968078613,"y":1356.4019966125488,"z":"4b49c6e4.fe3048","wires":[]},{"id":"e87a4a95.a74d28","type":"switchNode","name":"switch request-action='ChangePortMirrorConfigurationInstance'","xml":"<switch test=\"`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`\">\n","comments":"","outputs":1,"x":1165.7144107818604,"y":1466.937762260437,"z":"4b49c6e4.fe3048","wires":[["5d058a4d.1488f4"]]},{"id":"5d058a4d.1488f4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1471.9644184112549,"y":1466.9377613067627,"z":"4b49c6e4.fe3048","wires":[["67c3e397.0aab2c"]]},{"id":"67c3e397.0aab2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"request-action must be ChangePortMirrorConfigurationInstance for disable\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1623.2144184112549,"y":1466.9377632141113,"z":"4b49c6e4.fe3048","wires":[]},{"id":"eda5afb3.f630f","type":"switchNode","name":"switch configuration-type","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-type`'>\n","comments":"","outputs":1,"x":1049.583324432373,"y":756.5804538726807,"z":"4b49c6e4.fe3048","wires":[["f187e6e1.d294a8"]]},{"id":"f187e6e1.d294a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1367.0833320617676,"y":755.3304538726807,"z":"4b49c6e4.fe3048","wires":[["c8846487.c0f2c8"]]},{"id":"c8846487.c0f2c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"configuration-type is required for assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1517.0833358764648,"y":755.3304538726807,"z":"4b49c6e4.fe3048","wires":[]},{"id":"b44e8a2a.37d798","type":"switchNode","name":"switch model-customization-uuid","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1070.833339691162,"y":804.0804615020752,"z":"4b49c6e4.fe3048","wires":[["8e2355b8.217348"]]},{"id":"8e2355b8.217348","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1367.0833320617676,"y":802.8304538726807,"z":"4b49c6e4.fe3048","wires":[["1a1a1278.0a12ce"]]},{"id":"1a1a1278.0a12ce","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"configuration-information.onap-model-information.model-customization-uuid is required for assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1517.0833358764648,"y":802.8304538726807,"z":"4b49c6e4.fe3048","wires":[]},{"id":"de8812d9.defb9","type":"switchNode","name":"switch source-port-id","xml":"<switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\n","comments":"","outputs":1,"x":1036.6072044372559,"y":1405.152009010315,"z":"4b49c6e4.fe3048","wires":[["89436a82.aada88"]]},{"id":"89436a82.aada88","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1370.3571815490723,"y":1403.9019861221313,"z":"4b49c6e4.fe3048","wires":[["2c34d503.4c6dba"]]},{"id":"2c34d503.4c6dba","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"port-mirror-configuration-request-input.source-port.source-port-id is required for enable\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1520.3571853637695,"y":1403.9019861221313,"z":"4b49c6e4.fe3048","wires":[]},{"id":"793d5df3.b19c44","type":"switchNode","name":"switch source vnf-id","xml":"<switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1030.4761199951172,"y":850.1518898010254,"z":"4b49c6e4.fe3048","wires":[["d375e10f.ae4c8"]]},{"id":"d375e10f.ae4c8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1366.7261390686035,"y":848.9018573760986,"z":"4b49c6e4.fe3048","wires":[["bc3cc9c4.5aa0d8"]]},{"id":"bc3cc9c4.5aa0d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"source vnf-id is required for assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1516.7261428833008,"y":848.9018573760986,"z":"4b49c6e4.fe3048","wires":[]},{"id":"fec456da.d6b3f8","type":"switchNode","name":"switch dest pnf-name","xml":"<switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`'>\n","comments":"","outputs":1,"x":1491.6666259765625,"y":952.2947626113892,"z":"4b49c6e4.fe3048","wires":[["732c3da4.c574b4"]]},{"id":"732c3da4.c574b4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1673.6310234069824,"y":951.0447587966919,"z":"4b49c6e4.fe3048","wires":[["b43ad89.d207228"]]},{"id":"b43ad89.d207228","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"dest pnf-name is required for pprobe assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1823.6310272216797,"y":951.0447587966919,"z":"4b49c6e4.fe3048","wires":[]},{"id":"49e544be.a01fcc","type":"switchNode","name":"switch source-port-id","xml":"<switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\n","comments":"","outputs":1,"x":1032.1429996490479,"y":1513.7234201431274,"z":"4b49c6e4.fe3048","wires":[["b4119b4e.eed6a8"]]},{"id":"b4119b4e.eed6a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1365.8929767608643,"y":1512.4733972549438,"z":"4b49c6e4.fe3048","wires":[["585839e5.1385c8"]]},{"id":"585839e5.1385c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"port-mirror-configuration-request-input.source-port.source-port-id is required for disable\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1515.8929805755615,"y":1512.4733972549438,"z":"4b49c6e4.fe3048","wires":[]},{"id":"ec829e8c.5b84a","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\n","comments":"","outputs":1,"x":466.4285430908203,"y":472.17556858062744,"z":"4b49c6e4.fe3048","wires":[["b51a834.9bdb88","6259a83f.1f75d8","832bb128.6d0fa","58eec95.5f22138","b542d001.82978","3ff65082.0031"]]},{"id":"58eec95.5f22138","type":"outcome","name":"VPROBE","xml":"<outcome value='VPROBE'>\n","comments":"","outputs":1,"x":708.0952606201172,"y":500.50885486602783,"z":"4b49c6e4.fe3048","wires":[["b52e118a.5df2d"]]},{"id":"832bb128.6d0fa","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":701.4285507202148,"y":453.8422155380249,"z":"4b49c6e4.fe3048","wires":[["b52e118a.5df2d"]]},{"id":"6259a83f.1f75d8","type":"outcome","name":"PPROBE","xml":"<outcome value='PPROBE'>\n","comments":"","outputs":1,"x":704.7618827819824,"y":405.5088815689087,"z":"4b49c6e4.fe3048","wires":[["c0d71baf.d40d78"]]},{"id":"b51a834.9bdb88","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":698.09521484375,"y":360.5088891983032,"z":"4b49c6e4.fe3048","wires":[["c0d71baf.d40d78"]]},{"id":"c0d71baf.d40d78","type":"set","name":"set to pprobe","xml":"<set>\n<parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\n","comments":"","x":891.4285202026367,"y":375.50889110565186,"z":"4b49c6e4.fe3048","wires":[]},{"id":"b542d001.82978","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":701.4285697937012,"y":547.1755437850952,"z":"4b49c6e4.fe3048","wires":[["b52e118a.5df2d"]]},{"id":"b52e118a.5df2d","type":"set","name":"set to vprobe","xml":"<set>\n<parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\n","comments":"","x":891.4284973144531,"y":488.84222888946533,"z":"4b49c6e4.fe3048","wires":[]},{"id":"3ff65082.0031","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":701.4285697937012,"y":593.8422327041626,"z":"4b49c6e4.fe3048","wires":[["b11a56b2.2dcac8"]]},{"id":"b11a56b2.2dcac8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"configuration-sub-type must be pprobe or vprobe\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":893.095142364502,"y":591.842191696167,"z":"4b49c6e4.fe3048","wires":[]},{"id":"8cfba049.9ab71","type":"switchNode","name":"switch configuration-sub-type","xml":"<switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\n","comments":"","outputs":1,"x":1059.7620239257812,"y":925.5089731216431,"z":"4b49c6e4.fe3048","wires":[["401ded48.31abf4","6007a19d.b22a1"]]},{"id":"401ded48.31abf4","type":"outcome","name":"vprobe","xml":"<outcome value='vprobe'>\n","comments":"","outputs":1,"x":1293.095230102539,"y":902.1755418777466,"z":"4b49c6e4.fe3048","wires":[["ed474658.d36fd8"]]},{"id":"6007a19d.b22a1","type":"outcome","name":"pprobe","xml":"<outcome value='pprobe'>\n","comments":"","outputs":1,"x":1291.428482055664,"y":952.1755418777466,"z":"4b49c6e4.fe3048","wires":[["fec456da.d6b3f8"]]},{"id":"ed474658.d36fd8","type":"switchNode","name":"switch dest vnf-id","xml":"<switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1491.4285049438477,"y":900.8422040939331,"z":"4b49c6e4.fe3048","wires":[["fbf78ab6.0f0da8"]]},{"id":"fbf78ab6.0f0da8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1673.3929023742676,"y":899.5922002792358,"z":"4b49c6e4.fe3048","wires":[["c8a8b281.e471a"]]},{"id":"c8a8b281.e471a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"dest vnf-id is required for vprobe assign\" />\n<parameter name='ack-final' value='Y' />\n","comments":"","x":1823.3929061889648,"y":899.5922002792358,"z":"4b49c6e4.fe3048","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_port-mirror-topology-operation.json
new file mode 100644 (file)
index 0000000..cf675fb
--- /dev/null
@@ -0,0 +1,638 @@
+[
+    {
+        "id": "4a3915c6.05f4cc",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 101.42857360839844,
+        "y": 81.42857360839844,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "4b88506.9e22db"
+            ]
+        ]
+    },
+    {
+        "id": "4b88506.9e22db",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 215.04759979248047,
+        "y": 121.66668701171875,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "3d36d704.8162c8"
+            ]
+        ]
+    },
+    {
+        "id": "3d36d704.8162c8",
+        "type": "method",
+        "name": "method port-mirror-topology-operation",
+        "xml": "<method rpc='port-mirror-topology-operation' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 189.8572006225586,
+        "y": 161.42857360839844,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "e6e242da.69fe6"
+            ]
+        ]
+    },
+    {
+        "id": "be456109.bd24e",
+        "type": "comment",
+        "name": "port-mirror-topology-operation",
+        "info": "",
+        "comments": "",
+        "x": 495.77342987060547,
+        "y": 29.014917373657227,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "355dd75e.24ec18",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n\n",
+        "comments": "",
+        "x": 518.869068145752,
+        "y": 721.7260837554932,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "e6e242da.69fe6",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 224.28571319580078,
+        "y": 459.99999237060547,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "355dd75e.24ec18",
+                "f0cb07d6.0e4048",
+                "508bb8bf.ae93d8",
+                "f41c1b7a.2417f8"
+            ]
+        ]
+    },
+    {
+        "id": "f0cb07d6.0e4048",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-validation",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-validation' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 615,
+        "y": 251.25000381469727,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "f20f67c8.480108"
+            ]
+        ]
+    },
+    {
+        "id": "f20f67c8.480108",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.9999847412109,
+        "y": 251.6071434020996,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "28729372.5d8d4c"
+            ]
+        ]
+    },
+    {
+        "id": "28729372.5d8d4c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n",
+        "comments": "",
+        "x": 1069.9999237060547,
+        "y": 250.71429443359375,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "508bb8bf.ae93d8",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 532.857177734375,
+        "y": 480.0000228881836,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "911e3654.4628b8",
+                "9cf51ec1.5a687",
+                "240d0258.67162e",
+                "13c3af67.47b1b1",
+                "dcac8be4.96c918",
+                "d7879d5c.1b4cb"
+            ]
+        ]
+    },
+    {
+        "id": "911e3654.4628b8",
+        "type": "outcome",
+        "name": "assign",
+        "xml": "<outcome value='assign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 758.5714855194092,
+        "y": 371.2500286102295,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "be83b6f4.dba758"
+            ]
+        ]
+    },
+    {
+        "id": "9cf51ec1.5a687",
+        "type": "outcome",
+        "name": "activate",
+        "xml": "<outcome value='activate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 759.2858085632324,
+        "y": 418.7500829696655,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "26db655a.45972a"
+            ]
+        ]
+    },
+    {
+        "id": "240d0258.67162e",
+        "type": "outcome",
+        "name": "unassign",
+        "xml": "<outcome value='unassign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 759.642894744873,
+        "y": 465.8929195404053,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "4c2b1545.e2559c"
+            ]
+        ]
+    },
+    {
+        "id": "13c3af67.47b1b1",
+        "type": "outcome",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 764.6428985595703,
+        "y": 513.9286460876465,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "1489bb5a.cc2a45"
+            ]
+        ]
+    },
+    {
+        "id": "dcac8be4.96c918",
+        "type": "outcome",
+        "name": "enable",
+        "xml": "<outcome value='enable'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 753.3929290771484,
+        "y": 560.535810470581,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "1ab8a43d.1a186c"
+            ]
+        ]
+    },
+    {
+        "id": "d7879d5c.1b4cb",
+        "type": "outcome",
+        "name": "disable",
+        "xml": "<outcome value='disable'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 753.2144660949707,
+        "y": 605.5357418060303,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "1b07a08e.6bf74f"
+            ]
+        ]
+    },
+    {
+        "id": "be83b6f4.dba758",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 907.3214740753174,
+        "y": 371.2500228881836,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "99c6d930.0a8418"
+            ]
+        ]
+    },
+    {
+        "id": "26db655a.45972a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 910.5358085632324,
+        "y": 418.7500829696655,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "a48c837b.3ad64"
+            ]
+        ]
+    },
+    {
+        "id": "1489bb5a.cc2a45",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 912.1428985595703,
+        "y": 512.6786470413208,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "f5118913.72f998"
+            ]
+        ]
+    },
+    {
+        "id": "4c2b1545.e2559c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 911.0714645385742,
+        "y": 465.89294624328613,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "8cb75768.8a7f38"
+            ]
+        ]
+    },
+    {
+        "id": "1ab8a43d.1a186c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 912.1429290771484,
+        "y": 560.5358123779297,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "c455fe19.109ac"
+            ]
+        ]
+    },
+    {
+        "id": "1b07a08e.6bf74f",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 910.7144660949707,
+        "y": 605.5357437133789,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "38bd81a6.85a1ce"
+            ]
+        ]
+    },
+    {
+        "id": "99c6d930.0a8418",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-assign-sync",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-assign-sync' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1198.5714111328125,
+        "y": 370,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "dacaa4a6.19a198"
+            ]
+        ]
+    },
+    {
+        "id": "dacaa4a6.19a198",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1461.4285888671875,
+        "y": 368.5714416503906,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "a38116c0.2bc5a8"
+            ]
+        ]
+    },
+    {
+        "id": "a38116c0.2bc5a8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1631.428565979004,
+        "y": 367.6785888671875,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "a48c837b.3ad64",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-activate-sync",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-activate-sync' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1200.000171661377,
+        "y": 419.0000190734863,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "24ad15be.750daa"
+            ]
+        ]
+    },
+    {
+        "id": "24ad15be.750daa",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1464.2858963012695,
+        "y": 419.00004482269287,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "c812919a.e4b99"
+            ]
+        ]
+    },
+    {
+        "id": "c812919a.e4b99",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1632.8573379516602,
+        "y": 418.6785898208618,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "47b534cc.71ecec",
+        "type": "comment",
+        "name": "More involved validations",
+        "info": "",
+        "comments": "",
+        "x": 890.0000305175781,
+        "y": 322.85713291168213,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "fb527534.27e138",
+        "type": "comment",
+        "name": "Input validations",
+        "info": "",
+        "comments": "",
+        "x": 575.7142944335938,
+        "y": 202.85715293884277,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "f5118913.72f998",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-deactivate-sync",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-deactivate-sync' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1205.142822265625,
+        "y": 512.2857055664062,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "3532cc9e.66ec14"
+            ]
+        ]
+    },
+    {
+        "id": "3532cc9e.66ec14",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1461.4285469055176,
+        "y": 512.2857313156128,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "a6fa834e.abd31"
+            ]
+        ]
+    },
+    {
+        "id": "a6fa834e.abd31",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1629.9999885559082,
+        "y": 511.96427631378174,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "c455fe19.109ac",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-enable",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-enable' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1177.2857666015625,
+        "y": 560,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "c5988a87.bbad38"
+            ]
+        ]
+    },
+    {
+        "id": "c5988a87.bbad38",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1458.571491241455,
+        "y": 560.0000257492065,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "4844c077.62ae3"
+            ]
+        ]
+    },
+    {
+        "id": "4844c077.62ae3",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1627.1429328918457,
+        "y": 559.6785707473755,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "38bd81a6.85a1ce",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-disable",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-disable' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1176.2857666015625,
+        "y": 607.1428833007812,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "fd672617.26d768"
+            ]
+        ]
+    },
+    {
+        "id": "fd672617.26d768",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1458.571491241455,
+        "y": 607.1429090499878,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "b751d818.e76978"
+            ]
+        ]
+    },
+    {
+        "id": "b751d818.e76978",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1627.1429328918457,
+        "y": 606.8214540481567,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "8cb75768.8a7f38",
+        "type": "call",
+        "name": "call port-mirror-topology-operation-unassign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-unassign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1184.2857131958008,
+        "y": 464.2857189178467,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "72e7e63a.f45948"
+            ]
+        ]
+    },
+    {
+        "id": "72e7e63a.f45948",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1462.857135772705,
+        "y": 462.8571729660034,
+        "z": "ccb80365.d73f6",
+        "wires": [
+            [
+                "8b2dcc51.346be"
+            ]
+        ]
+    },
+    {
+        "id": "8b2dcc51.346be",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n<parameter name='ack-final' value='Y' />\n\n",
+        "comments": "",
+        "x": 1631.4285774230957,
+        "y": 462.53571796417236,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    },
+    {
+        "id": "f41c1b7a.2417f8",
+        "type": "set",
+        "name": "set response paths",
+        "xml": "<set>\n<parameter name='service-object-path' value=\"`'/config/GENERIC-RESOURCE-API:services/service/'\n  + $port-mirror-topology-operation-input.service-information.service-instance-id + '/service-data/service-topology'`\" />\n<parameter name='port-mirror-object-path' value=\"`'/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/'\n  + $port-mirror-topology-operation-input.configuration-information.configuration-id + '/configuration-data/port-mirror-configuration-topology'`\" />\n",
+        "comments": "",
+        "x": 533.3333206176758,
+        "y": 668.3333396911621,
+        "z": "ccb80365.d73f6",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-network-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-network-topology-operation.json
new file mode 100755 (executable)
index 0000000..4c47dd0
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"744a6ac.bc88a94","type":"dgstart","name":"DGSTART","outputs":1,"x":107.5,"y":82.41365623474121,"z":"b919fa6d.b41f58","wires":[["94e1fb79.426e68"]]},{"id":"94e1fb79.426e68","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":222.78569793701172,"y":122.65176486968994,"z":"b919fa6d.b41f58","wires":[["81a2afe9.da7f7"]]},{"id":"81a2afe9.da7f7","type":"method","name":"method preload-network-topology-operation","xml":"<method rpc='preload-network-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":214.92862701416016,"y":163.4136505126953,"z":"b919fa6d.b41f58","wires":[["a5be5d1b.75fe3"]]},{"id":"925c66c0.4b0608","type":"comment","name":"preload-network-topology-operation","info":"","comments":"","x":501.84485626220703,"y":30,"z":"b919fa6d.b41f58","wires":[]},{"id":"a5be5d1b.75fe3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":161.25000381469727,"y":340.0000047683716,"z":"b919fa6d.b41f58","wires":[["5017b57b.bf597c","fb27e21a.5c19d","c79cfdcd.6bd95","3eb928de.152f08","f67c8a3c.6f4628"]]},{"id":"5017b57b.bf597c","type":"set","name":"set preload-data.preload-network-topology-information from input","xml":"<set>\n<parameter name='preload-data.preload-network-topology-information.'\n  value='`$preload-network-topology-operation-input.preload-network-topology-information.`' />\n","comments":"","x":533.7500076293945,"y":326.2500057220459,"z":"b919fa6d.b41f58","wires":[]},{"id":"fb27e21a.5c19d","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":378.75000762939453,"y":458.75000762939453,"z":"b919fa6d.b41f58","wires":[]},{"id":"c79cfdcd.6bd95","type":"switchNode","name":"switch existing network-name","xml":"<switch test='`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-name`'>\n","comments":"","outputs":1,"x":420.00000762939453,"y":253.75000381469727,"z":"b919fa6d.b41f58","wires":[["779ca3b8.5c073c","df17eea8.b29a6"]]},{"id":"df17eea8.b29a6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":641.2500076293945,"y":275.00000381469727,"z":"b919fa6d.b41f58","wires":[["3befdf53.d36d3"]]},{"id":"779ca3b8.5c073c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":642.5000114440918,"y":227.50000286102295,"z":"b919fa6d.b41f58","wires":[["89a17c1e.38fd6"]]},{"id":"89a17c1e.38fd6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":772.5000114440918,"y":227.50000286102295,"z":"b919fa6d.b41f58","wires":[[]]},{"id":"3befdf53.d36d3","type":"set","name":"clear preload-data","xml":"<set>\n<parameter name='preload-data.' value='' />\n","comments":"","x":805.0000076293945,"y":273.75000381469727,"z":"b919fa6d.b41f58","wires":[]},{"id":"3eb928de.152f08","type":"set","name":"set order-status and create-timestamp","xml":"<set>\n<parameter name='preload-data.preload-oper-status.order-status' value='PendingAssignment' />\n<parameter name='preload-data.preload-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":451.25003814697266,"y":412.5000066757202,"z":"b919fa6d.b41f58","wires":[]},{"id":"f67c8a3c.6f4628","type":"execute","name":"execute tmp.current-time","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n\t<parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":410.00000762939453,"y":370.0000057220459,"z":"b919fa6d.b41f58","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.json
new file mode 100755 (executable)
index 0000000..feb537a
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"f27fa912.589538","type":"dgstart","name":"DGSTART","outputs":1,"x":105,"y":82.5,"z":"c07f05da.c7e1c8","wires":[["9146a9a6.f7edf8"]]},{"id":"9146a9a6.f7edf8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":220.28569793701172,"y":122.73810863494873,"z":"c07f05da.c7e1c8","wires":[["bdf5c3ba.ee152"]]},{"id":"bdf5c3ba.ee152","type":"method","name":"method preload-vf-module-topology-operation","xml":"<method rpc='preload-vf-module-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":218.42862701416016,"y":163.4999942779541,"z":"c07f05da.c7e1c8","wires":[["882ef2af.667e5"]]},{"id":"a89316f9.b21838","type":"comment","name":"preload-vf-module-topology-operation","info":"","comments":"","x":499.34485626220703,"y":30.08634376525879,"z":"c07f05da.c7e1c8","wires":[]},{"id":"882ef2af.667e5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":170,"y":346.3363389968872,"z":"c07f05da.c7e1c8","wires":[["7047801c.8951","6d62d0a8.c977c","a6ab8e75.08063","ca14bd3c.d82cc","43661128.1df3b"]]},{"id":"7047801c.8951","type":"set","name":"set preload-data.preload-vf-module-topology-information from input","xml":"<set>\n<parameter name='preload-data.preload-vf-module-topology-information.'\n  value='`$preload-vf-module-topology-operation-input.preload-vf-module-topology-information.`' />\n","comments":"","x":540.0000076293945,"y":326.33637046813965,"z":"c07f05da.c7e1c8","wires":[]},{"id":"6d62d0a8.c977c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"success\" />\n\n","comments":"","x":377.50000381469727,"y":458.8363723754883,"z":"c07f05da.c7e1c8","wires":[]},{"id":"a6ab8e75.08063","type":"switchNode","name":"switch existing vf-module-name","xml":"<switch test='`$preload-data.preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\n","comments":"","outputs":1,"x":430.3571472167969,"y":255.08635139465332,"z":"c07f05da.c7e1c8","wires":[["d05889b1.634f78","706d3e7c.d22d"]]},{"id":"706d3e7c.d22d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":632.3214263916016,"y":276.15777015686035,"z":"c07f05da.c7e1c8","wires":[["a6459d44.6e54f"]]},{"id":"d05889b1.634f78","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":633.5714302062988,"y":228.65776920318604,"z":"c07f05da.c7e1c8","wires":[["d8daaf0e.c6f17"]]},{"id":"d8daaf0e.c6f17","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":763.5714302062988,"y":228.65776920318604,"z":"c07f05da.c7e1c8","wires":[[]]},{"id":"a6459d44.6e54f","type":"set","name":"clear preload-data","xml":"<set>\n<parameter name='preload-data.' value='' />\n","comments":"","x":796.0714263916016,"y":274.90777015686035,"z":"c07f05da.c7e1c8","wires":[]},{"id":"43661128.1df3b","type":"set","name":"set order-status and create-timestamp","xml":"<set>\n<parameter name='preload-data.preload-oper-status.order-status' value='PendingAssignment' />\n<parameter name='preload-data.preload-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":450,"y":412.5,"z":"c07f05da.c7e1c8","wires":[]},{"id":"ca14bd3c.d82cc","type":"execute","name":"execute tmp.current-time","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n\t<parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":408.7499694824219,"y":369.9999990463257,"z":"c07f05da.c7e1c8","wires":[[]]}]
\ No newline at end of file
index 57c7860..8147d64 100644 (file)
@@ -1 +1 @@
-[{"id":"b67dacc5.0d756","type":"dgstart","name":"DGSTART","outputs":1,"x":207.99989318847656,"y":99.36906051635742,"z":"f952bc99.2d7ef","wires":[["c49255fa.d97648"]]},{"id":"c49255fa.d97648","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":270.5713233947754,"y":151.3333444595337,"z":"f952bc99.2d7ef","wires":[["3a0b7ea0.7c1512"]]},{"id":"3a0b7ea0.7c1512","type":"method","name":"process-eipam-pools","xml":"<method rpc=\"process-eipam-pools\" mode=\"sync\">","comments":"","outputs":1,"x":204.9046401977539,"y":242.75002574920654,"z":"f952bc99.2d7ef","wires":[["3a4ac45e.70cf9c"]]},{"id":"215818d3.3de248","type":"comment","name":"GENERIC-RESOURCE-API: PROCESS-EIPAM-POOLS","info":"","comments":"","x":666.4046936035156,"y":93.00000953674316,"z":"f952bc99.2d7ef","wires":[]},{"id":"1b779ba4.babaa4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":396.6546745300293,"y":401.5834274291992,"z":"f952bc99.2d7ef","wires":[["1679194b.17c9c7","f4dce5f3.320ae8","8f666f4c.792","a46cbfe1.320c","e8caf88b.999398","d94b078d.3bf3a8","32912400.2c8a1c","984c8c29.958c6","a96ade11.7c13d","4ad3e9cf.db5138"]]},{"id":"cd4e10fa.b05c6","type":"comment","name":"CLEANUP LOCAL VARIABLES TO BE USED","info":"","comments":"","x":747.0117416381836,"y":187.34528636932373,"z":"f952bc99.2d7ef","wires":[]},{"id":"a46cbfe1.320c","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.region' value='`$aai.complex.region`' />\n<parameter name='tmp.cloud-region-id' value=\"`$aai.cloud-region.cloud-region-id`\" />\n<parameter name='tmp.physical-location-id' value=\"`$aai.complex.physical-location-id`\" />\n<parameter name=\"tmp.clli\" value=\"`$aai.complex.physical-location-id`\" />\n<parameter name=\"tmp.zone\" value=\"`$aai.cloud-region.cloud-zone`\" />\n<parameter name=\"tmp.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"tmp.service-type\" value=\"`$network-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name='eipam-pool.v4.pre-existing' value='false' />\n<parameter name='eipam-pool.v6.pre-existing' value='false' />\n<parameter name=\"tmp.level1-key-value\" value=\"`$aai.complex.physical-location-id + ':' + $aai.cloud-region.cloud-region-id`\" />\n<parameter name=\"tmp.level2-key-value\" value=\"`$network-model.network-role + ':' + $tmp.l3-network.network-id`\" />\n<parameter name=\"tmp.ipv4-cidr-mask\" value=\"`$network-model.ipv4-cidr-mask`\" />\n<parameter name=\"tmp.ipv6-cidr-mask\" value=\"`$network-model.ipv6-cidr-mask`\" />","comments":"","x":689.9589309692383,"y":253.2447919845581,"z":"f952bc99.2d7ef","wires":[]},{"id":"1f46cdd5.3ab782","type":"comment","name":"Process level 1 pool - works v4 and v6","info":"","comments":"","x":711.8956756591797,"y":443.6019515991211,"z":"f952bc99.2d7ef","wires":[]},{"id":"1679194b.17c9c7","type":"call","name":"call eipam-create-network-role-pool for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":759.5146484375,"y":483.1733283996582,"z":"f952bc99.2d7ef","wires":[["71ac165c.911f28","9a05e4cc.4f8b08"]]},{"id":"dc84bed9.0f66f","type":"call","name":"call eipam-allocate-network-role-subnet for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2261.407512664795,"y":633.7925186157227,"z":"f952bc99.2d7ef","wires":[["7b320795.7564e8","215b2255.65126e"]]},{"id":"7b320795.7564e8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2682.967109680176,"y":707.8354949951172,"z":"f952bc99.2d7ef","wires":[["f2fa55c6.6d3af8"]]},{"id":"71ac165c.911f28","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1048.1928901672363,"y":484.50205993652344,"z":"f952bc99.2d7ef","wires":[["aa1d5c4f.68acc"]]},{"id":"aa1d5c4f.68acc","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while allocating subnet in EIPAM.  Error creating level 1 pool. ' + $error-message`\" />\n\t","comments":"","x":1221.443000793457,"y":483.7043914794922,"z":"f952bc99.2d7ef","wires":[]},{"id":"e1539b17.4fe6e8","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4254.394844055176,"y":793.3521280288696,"z":"f952bc99.2d7ef","wires":[["1dfbdbc5.996cd4","a34de3f2.f8a7e"]]},{"id":"1dfbdbc5.996cd4","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4527.5618324279785,"y":790.9922323226929,"z":"f952bc99.2d7ef","wires":[["f2a221b4.015d2"]]},{"id":"f2a221b4.015d2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4701.811347961426,"y":789.4088582992554,"z":"f952bc99.2d7ef","wires":[]},{"id":"4045d178.2db3c","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":4126.339134216309,"y":719.4632081985474,"z":"f952bc99.2d7ef","wires":[]},{"id":"f2fa55c6.6d3af8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2872.7101516723633,"y":705.9723358154297,"z":"f952bc99.2d7ef","wires":[["f0f78b84.6897b8","181af87e.ac39e8"]]},{"id":"b55eba07.112298","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4204.181602478027,"y":756.6947755813599,"z":"f952bc99.2d7ef","wires":[]},{"id":"3a4af118.c4e1ae","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":4700.931427001953,"y":830.9447584152222,"z":"f952bc99.2d7ef","wires":[]},{"id":"a34de3f2.f8a7e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4532.181419372559,"y":830.9447946548462,"z":"f952bc99.2d7ef","wires":[["3a4af118.c4e1ae"]]},{"id":"3a4ac45e.70cf9c","type":"switchNode","name":"switch","xml":"<switch test='`$tmp.process-eipam-action`'>\n","comments":"","outputs":1,"x":160.1824836730957,"y":323.69446563720703,"z":"f952bc99.2d7ef","wires":[["6a3c2e6.90c98d","1950da9.29e6f25","260c039a.83c7cc"]]},{"id":"6a3c2e6.90c98d","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":217.09911727905273,"y":402.52779388427734,"z":"f952bc99.2d7ef","wires":[["1b779ba4.babaa4"]]},{"id":"1950da9.29e6f25","type":"other","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":176.42317962646484,"y":2742.009256839752,"z":"f952bc99.2d7ef","wires":[["5f392f83.9ef9b"]]},{"id":"260c039a.83c7cc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":166.42319679260254,"y":2812.009350299835,"z":"f952bc99.2d7ef","wires":[["c342f238.9831"]]},{"id":"c342f238.9831","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Invalid option to process-eipam\" />\n\t","comments":"","x":376.42317962646484,"y":2812.009256839752,"z":"f952bc99.2d7ef","wires":[]},{"id":"e8caf88b.999398","type":"set","name":"clean up local variables","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='' />\n<parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='' />\n<parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='' />\n<parameter name='tmp.l3-network.level2.v4.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='' />\n<parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />\n\n","comments":"","x":674.1254425048828,"y":224.03045272827148,"z":"f952bc99.2d7ef","wires":[]},{"id":"5f392f83.9ef9b","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Invalid option to process-eipam\" />\n\t","comments":"","x":374.7565231323242,"y":2732.009256839752,"z":"f952bc99.2d7ef","wires":[]},{"id":"9c730d35.31f75","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field5\" value=\"`$eipam-pool.v4.pre-existing`\"/>\n<parameter name=\"field6\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field7\" value=\"`$eipam-pool.v6.pre-existing`\"/>\n<parameter name=\"field8\" value=\"tmp.create-v4-pool-flag\" />\n<parameter name=\"field9\" value=\"`$tmp.create-v4-pool-flag`\" />\n<parameter name=\"field10\" value=\"tmp.create-v6-pool-flag\" />\n<parameter name=\"field11\" value=\"`$tmp.create-v6-pool-flag`\" />\n\n","comments":"","outputs":1,"x":1402.2059860229492,"y":487.4008026123047,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"9a05e4cc.4f8b08","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1051.3488960266113,"y":518.7182769775391,"z":"f952bc99.2d7ef","wires":[["cc821fe6.cd72f"]]},{"id":"215b2255.65126e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2678.3967208862305,"y":624.0040683746338,"z":"f952bc99.2d7ef","wires":[["71b1901e.8a53c"]]},{"id":"2c44c339.bcfe4c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":3046.587127685547,"y":623.1469631195068,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"f4dce5f3.320ae8","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":702.6823616027832,"y":596.9247398376465,"z":"f952bc99.2d7ef","wires":[["11cf4595.d04cda"]]},{"id":"11cf4595.d04cda","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":917.6824951171875,"y":595.6866140365601,"z":"f952bc99.2d7ef","wires":[["9250fe2.19568"]]},{"id":"9250fe2.19568","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1098.5870895385742,"y":596.1152439117432,"z":"f952bc99.2d7ef","wires":[["58f6d3c8.72fbac"]]},{"id":"33f1dd7e.590052","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv4' />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2185.9681816101074,"y":593.7818984985352,"z":"f952bc99.2d7ef","wires":[]},{"id":"9595f2c9.cea8a","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3114.3008575439453,"y":662.4486179351807,"z":"f952bc99.2d7ef","wires":[]},{"id":"71b1901e.8a53c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2843.422897338867,"y":622.6019897460938,"z":"f952bc99.2d7ef","wires":[["2c44c339.bcfe4c","9595f2c9.cea8a"]]},{"id":"cc821fe6.cd72f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1222.793098449707,"y":518.6389312744141,"z":"f952bc99.2d7ef","wires":[["9c730d35.31f75","b4f598b2.142618"]]},{"id":"b4f598b2.142618","type":"set","name":"Save return values from eipam level 1 pool","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\n<parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\n","comments":"","x":1505.126480102539,"y":517.305585861206,"z":"f952bc99.2d7ef","wires":[]},{"id":"c09959cb.7d7228","type":"call","name":"call eipam-allocate-network-role-subnet for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2316.126724243164,"y":873.8610801696777,"z":"f952bc99.2d7ef","wires":[["ce7f3982.658828","d176dbca.9f6898"]]},{"id":"ce7f3982.658828","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2643.3530807495117,"y":939.9039907455444,"z":"f952bc99.2d7ef","wires":[["b67d44ba.680b88"]]},{"id":"d184018d.b9a27","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4173.448627471924,"y":993.7538566589355,"z":"f952bc99.2d7ef","wires":[["455af08a.adb86","51c110c5.707fb"]]},{"id":"455af08a.adb86","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4483.282020568848,"y":999.7273271083832,"z":"f952bc99.2d7ef","wires":[["b58aa487.353488"]]},{"id":"b58aa487.353488","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4637.53137588501,"y":999.1439731121063,"z":"f952bc99.2d7ef","wires":[]},{"id":"b67d44ba.680b88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2833.096122741699,"y":938.0408315658569,"z":"f952bc99.2d7ef","wires":[["dbe92352.fa718","262b4940.672706"]]},{"id":"28e3d2dc.6d980e","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4121.568744659424,"y":950.4297587871552,"z":"f952bc99.2d7ef","wires":[]},{"id":"200d17f7.3bcdf8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":4636.652282714844,"y":967.6797797679901,"z":"f952bc99.2d7ef","wires":[]},{"id":"51c110c5.707fb","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4482.901950836182,"y":968.0132148265839,"z":"f952bc99.2d7ef","wires":[["200d17f7.3bcdf8"]]},{"id":"d176dbca.9f6898","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2654.116050720215,"y":873.4059839248657,"z":"f952bc99.2d7ef","wires":[["1fdda468.d7a17c"]]},{"id":"f8019f13.9e46","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":2997.306407928467,"y":834.2155246734619,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"8f666f4c.792","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":705.4019470214844,"y":796.9933710098267,"z":"f952bc99.2d7ef","wires":[["4dcca263.b0f71c"]]},{"id":"4dcca263.b0f71c","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1000.544807434082,"y":796.7552556991577,"z":"f952bc99.2d7ef","wires":[["a0a6b416.6b7e48"]]},{"id":"a0a6b416.6b7e48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1159.5448532104492,"y":797.4218816757202,"z":"f952bc99.2d7ef","wires":[["54ef1626.295eb8"]]},{"id":"8603aaa6.0967d8","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv6' />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2234.687370300293,"y":837.8504018783569,"z":"f952bc99.2d7ef","wires":[]},{"id":"9efc4172.79ebb","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3065.020275115967,"y":871.5172214508057,"z":"f952bc99.2d7ef","wires":[]},{"id":"1fdda468.d7a17c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2819.1422271728516,"y":872.0039052963257,"z":"f952bc99.2d7ef","wires":[["f8019f13.9e46","9efc4172.79ebb"]]},{"id":"58f6d3c8.72fbac","type":"get-resource","name":"get-resource V4 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1434.745864868164,"y":595.6706838607788,"z":"f952bc99.2d7ef","wires":[["9ef700ca.0d4c8","1344a1eb.80ac2e"]]},{"id":"9ef700ca.0d4c8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1752.745864868164,"y":566.0872745513916,"z":"f952bc99.2d7ef","wires":[["d60acc9e.ea03d"]]},{"id":"1344a1eb.80ac2e","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1752.857925415039,"y":595.837306022644,"z":"f952bc99.2d7ef","wires":[["4a5fcaaa.0bc904"]]},{"id":"4a5fcaaa.0bc904","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1909.3241157531738,"y":592.551233291626,"z":"f952bc99.2d7ef","wires":[["33f1dd7e.590052","dc84bed9.0f66f"]]},{"id":"d60acc9e.ea03d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1909.7180366516113,"y":566.5873048305511,"z":"f952bc99.2d7ef","wires":[["7fe861f0.6441c","c8cf33c9.77119"]]},{"id":"7fe861f0.6441c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":2120.134552001953,"y":526.0040121078491,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"c8cf33c9.77119","type":"set","name":"set pre-existing for l3subnet for level1","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n\n","comments":"","x":2213.598663330078,"y":558.8056793212891,"z":"f952bc99.2d7ef","wires":[]},{"id":"54ef1626.295eb8","type":"get-resource","name":"get-resource V6 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1476.6824798583984,"y":797.0831346511841,"z":"f952bc99.2d7ef","wires":[["c3bac977.4661a8","3db24e26.1b8ac2"]]},{"id":"c3bac977.4661a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1798.0155334472656,"y":800.4165077209473,"z":"f952bc99.2d7ef","wires":[["9c73f5a5.87c408"]]},{"id":"3db24e26.1b8ac2","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1806.8776626586914,"y":846.416538476944,"z":"f952bc99.2d7ef","wires":[["d2ddd942.d1d868"]]},{"id":"d2ddd942.d1d868","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1957.0938339233398,"y":844.3804972171783,"z":"f952bc99.2d7ef","wires":[["8603aaa6.0967d8","c09959cb.7d7228"]]},{"id":"954c65f8.d15228","type":"comment","name":"Check if level1 ipv6 subnet exists","info":"","comments":"","x":1392.0475616455078,"y":765.4165515899658,"z":"f952bc99.2d7ef","wires":[]},{"id":"9c73f5a5.87c408","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1981.2377014160156,"y":800.4165077209473,"z":"f952bc99.2d7ef","wires":[["e14979b6.d0cfd8","74f6cba0.e206a4"]]},{"id":"e14979b6.d0cfd8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":2179.237617492676,"y":758.4165878295898,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"74f6cba0.e206a4","type":"set","name":"set pre-existing for l3subnet for level1","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2270.9515686035156,"y":797.718204498291,"z":"f952bc99.2d7ef","wires":[]},{"id":"d94b078d.3bf3a8","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name='eipam-pool.v4.pre-existing' value='false' />\n<parameter name='eipam-pool.v6.pre-existing' value='false' />\n","comments":"","x":703.4510650634766,"y":936.0464601516724,"z":"f952bc99.2d7ef","wires":[]},{"id":"c312d18.e12303","type":"comment","name":"Process level 2 pool - works v4 and v6","info":"","comments":"","x":804.0068283081055,"y":1043.8797640800476,"z":"f952bc99.2d7ef","wires":[]},{"id":"32912400.2c8a1c","type":"call","name":"call eipam-create-network-role-pool for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":767.6258239746094,"y":971.3083038330078,"z":"f952bc99.2d7ef","wires":[["a0afe554.2785e8","2c268f2c.e0546"]]},{"id":"a7cb1cfa.0f549","type":"call","name":"call eipam-allocate-network-role-subnet for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2448.6016960144043,"y":1396.847885131836,"z":"f952bc99.2d7ef","wires":[["8cff1c2d.4bb0c","a802819d.d0e34"]]},{"id":"8cff1c2d.4bb0c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2793.827995300293,"y":1442.890947341919,"z":"f952bc99.2d7ef","wires":[["36ed6e2.ff4fe92"]]},{"id":"a0afe554.2785e8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1070.3874588012695,"y":972.1130695343018,"z":"f952bc99.2d7ef","wires":[["43ffa10a.8453d"]]},{"id":"e00163e7.419ee","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error creating level 2 pool\" />\n\t","comments":"","x":1433.4472427368164,"y":968.7915554046631,"z":"f952bc99.2d7ef","wires":[]},{"id":"851486f7.ef53b8","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4245.256484985352,"y":1471.9630699157715,"z":"f952bc99.2d7ef","wires":[["6c5dac7.20e7854","baf01a29.ea1028"]]},{"id":"6c5dac7.20e7854","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4550.423843383789,"y":1467.6031036376953,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"770097ef.308fe8","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":4117.200759887695,"y":1396.0740814208984,"z":"f952bc99.2d7ef","wires":[]},{"id":"36ed6e2.ff4fe92","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2983.5710372924805,"y":1441.0277881622314,"z":"f952bc99.2d7ef","wires":[["fd0daacd.dcb218","6bf71b9b.45dac4"]]},{"id":"4b72c28b.ed33cc","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n","comments":"","x":4195.043228149414,"y":1433.305648803711,"z":"f952bc99.2d7ef","wires":[]},{"id":"baf01a29.ea1028","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4551.043472290039,"y":1505.5557403564453,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"5ac5e3dd.2f03bc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field5\" value=\"`$eipam-pool.v4.pre-existing`\"/>\n<parameter name=\"field6\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field7\" value=\"`$eipam-pool.v6.pre-existing`\"/>\n<parameter name=\"field8\" value=\"tmp.create-v4-pool-flag\" />\n<parameter name=\"field9\" value=\"`$tmp.create-v4-pool-flag`\" />\n<parameter name=\"field10\" value=\"tmp.create-v6-pool-flag\" />\n<parameter name=\"field11\" value=\"`$tmp.create-v6-pool-flag`\" />\n\n","comments":"","outputs":1,"x":1422.067237854004,"y":1004.011833190918,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"2c268f2c.e0546","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1070.2100067138672,"y":1003.6625504493713,"z":"f952bc99.2d7ef","wires":[["c4f7ad92.93b9b"]]},{"id":"a802819d.d0e34","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2802.591018676758,"y":1392.392807006836,"z":"f952bc99.2d7ef","wires":[["56cf4de3.7ffac4"]]},{"id":"2bf3b759.27ba98","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level2\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level2\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":3247.1151275634766,"y":1333.535629272461,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"984c8c29.958c6","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":703.2100944519043,"y":1321.3136434555054,"z":"f952bc99.2d7ef","wires":[["e00b80a1.32095"]]},{"id":"e00b80a1.32095","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1047.019817352295,"y":1318.4088668823242,"z":"f952bc99.2d7ef","wires":[["3cda4212.fe039e"]]},{"id":"3cda4212.fe039e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1201.019760131836,"y":1317.4088706970215,"z":"f952bc99.2d7ef","wires":[["13a69cae.ff05c3"]]},{"id":"6b9c56d8.d3ab78","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv4' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$eipam-ip-block.subnet-size-override-v4`\" />\n","comments":"","x":2363.162395477295,"y":1354.837142944336,"z":"f952bc99.2d7ef","wires":[]},{"id":"d7cedcb0.0f074","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3316.8287506103516,"y":1368.8375091552734,"z":"f952bc99.2d7ef","wires":[]},{"id":"56cf4de3.7ffac4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2967.6171951293945,"y":1390.990728378296,"z":"f952bc99.2d7ef","wires":[["2bf3b759.27ba98","d7cedcb0.0f074"]]},{"id":"c4f7ad92.93b9b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1239.3210945129395,"y":1002.9166197776794,"z":"f952bc99.2d7ef","wires":[["5ac5e3dd.2f03bc","52e7f03b.a8622"]]},{"id":"52e7f03b.a8622","type":"set","name":"Save return values from eipam level 2 pool","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\n<parameter name='tmp.l3-network.level2.v6.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\n","comments":"","x":1528.3211097717285,"y":1035.9165506362915,"z":"f952bc99.2d7ef","wires":[]},{"id":"39556357.9dce0c","type":"call","name":"call eipam-allocate-network-role-subnet for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2692.988052368164,"y":1870.7125091552734,"z":"f952bc99.2d7ef","wires":[["d3587f17.0022d","d2a4e238.b8b64"]]},{"id":"d3587f17.0022d","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3070.881118774414,"y":1899.2557220458984,"z":"f952bc99.2d7ef","wires":[["bf4e9f3e.356de"]]},{"id":"3b1c6b3c.bdb1e4","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4448.309951782227,"y":1980.3278045654297,"z":"f952bc99.2d7ef","wires":[["cb2b5938.735178","16e8f110.41380f"]]},{"id":"cb2b5938.735178","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4763.4767417907715,"y":1937.9679737091064,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"3067d347.4166fc","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":3556.253890991211,"y":1874.4389905929565,"z":"f952bc99.2d7ef","wires":[]},{"id":"bf4e9f3e.356de","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3230.624282836914,"y":1895.392562866211,"z":"f952bc99.2d7ef","wires":[["43d4715c.229a7","ea23f939.5b11b8"]]},{"id":"5bded456.68894c","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n","comments":"","x":4398.096725463867,"y":1943.6704864501953,"z":"f952bc99.2d7ef","wires":[]},{"id":"16e8f110.41380f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4768.096488952637,"y":1977.9205493927002,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"d2a4e238.b8b64","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3069.6441345214844,"y":1862.75777053833,"z":"f952bc99.2d7ef","wires":[["dbede8bf.788e58"]]},{"id":"861e4276.f3848","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":3434.1677474975586,"y":1799.9007358551025,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"a96ade11.7c13d","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":472.5963897705078,"y":1879.3453130722046,"z":"f952bc99.2d7ef","wires":[["400bdd27.60c6c4"]]},{"id":"400bdd27.60c6c4","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1286.072597503662,"y":1880.773796081543,"z":"f952bc99.2d7ef","wires":[["3c398abd.52b596"]]},{"id":"3c398abd.52b596","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1453.4058952331543,"y":1878.1071949005127,"z":"f952bc99.2d7ef","wires":[["7c82d8bf.aa37c8"]]},{"id":"d5a0936c.26784","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv6' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$eipam-ip-block.subnet-size-override-v6`\" />\n\n","comments":"","x":2616.215347290039,"y":1835.202133178711,"z":"f952bc99.2d7ef","wires":[]},{"id":"58cd1d81.5e80a4","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3501.881607055664,"y":1833.202377319336,"z":"f952bc99.2d7ef","wires":[]},{"id":"dbede8bf.788e58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3234.670310974121,"y":1861.35569190979,"z":"f952bc99.2d7ef","wires":[["861e4276.f3848","58cd1d81.5e80a4"]]},{"id":"33a121ac.c45b4e","type":"comment","name":"Allocate ipv4 subnet for level 2","info":"","comments":"","x":814.6547698974609,"y":1257.250023735894,"z":"f952bc99.2d7ef","wires":[]},{"id":"5f27a619.801138","type":"comment","name":"Allocate ipv6 subnet for level 1","info":"","comments":"","x":975.6546173095703,"y":1829.2130088806152,"z":"f952bc99.2d7ef","wires":[]},{"id":"13a69cae.ff05c3","type":"get-resource","name":"get-resource V4 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1579.3213958740234,"y":1317.9167461395264,"z":"f952bc99.2d7ef","wires":[["3c187ca6.bd91b4","38f089df.affb66"]]},{"id":"3c187ca6.bd91b4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1921.654598236084,"y":1315.2499845027924,"z":"f952bc99.2d7ef","wires":[["e15a7aa9.2b9be8"]]},{"id":"38f089df.affb66","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1930.5167274475098,"y":1361.250015258789,"z":"f952bc99.2d7ef","wires":[["831568d9.d0ba18"]]},{"id":"831568d9.d0ba18","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2080.732898712158,"y":1359.2139739990234,"z":"f952bc99.2d7ef","wires":[["6b9c56d8.d3ab78","a7cb1cfa.0f549"]]},{"id":"bb9558e5.f99c68","type":"comment","name":"Check if level2 ipv4 subnet exists","info":"","comments":"","x":1548.8769149780273,"y":1221.2499961853027,"z":"f952bc99.2d7ef","wires":[]},{"id":"e15a7aa9.2b9be8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2104.876766204834,"y":1315.2499845027924,"z":"f952bc99.2d7ef","wires":[["21d1d3ff.53e55c","42e8047d.9a082c"]]},{"id":"21d1d3ff.53e55c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level2\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level2\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":2304.876766204834,"y":1267.2499845027924,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"42e8047d.9a082c","type":"set","name":"set pre-existing for l3subnet for level2","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2394.590633392334,"y":1312.551681280136,"z":"f952bc99.2d7ef","wires":[]},{"id":"7c82d8bf.aa37c8","type":"get-resource","name":"get-resource V6 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1793.876823425293,"y":1839.4350967407227,"z":"f952bc99.2d7ef","wires":[["af837910.e47218","d3c4bc3.f10a64"]]},{"id":"af837910.e47218","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2216.8767013549805,"y":1789.4350967407227,"z":"f952bc99.2d7ef","wires":[["650a354.ce721cc"]]},{"id":"d3c4bc3.f10a64","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2225.7388305664062,"y":1835.4351274967194,"z":"f952bc99.2d7ef","wires":[["e7e192ea.8a1f3"]]},{"id":"e7e192ea.8a1f3","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2375.9550018310547,"y":1833.3990862369537,"z":"f952bc99.2d7ef","wires":[["d5a0936c.26784","39556357.9dce0c"]]},{"id":"89b66d1e.8fdb3","type":"comment","name":"Check if level2 ipv6 subnet exists","info":"","comments":"","x":1712.0990753173828,"y":1799.4350547790527,"z":"f952bc99.2d7ef","wires":[]},{"id":"650a354.ce721cc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2400.0988693237305,"y":1789.4350967407227,"z":"f952bc99.2d7ef","wires":[["fc0330f9.cfdd6","aac5588c.1aac58"]]},{"id":"fc0330f9.cfdd6","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":2560.098808288574,"y":1749.4350624084473,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"aac5588c.1aac58","type":"set","name":"set pre-existing for l3subnet for level2","xml":"<set>\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2651.812759399414,"y":1788.7366790771484,"z":"f952bc99.2d7ef","wires":[]},{"id":"f0f78b84.6897b8","type":"switchNode","name":"switch: tmp.l3-network.level1.v4.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing`\">","comments":"","outputs":1,"x":3174.745864868164,"y":737.6072845458984,"z":"f952bc99.2d7ef","wires":[["38c4ba0d.cf5796","9f8a87cf.2d90c8","690ff915.aa6a28"]]},{"id":"dbe92352.fa718","type":"switchNode","name":"switch: tmp.l3-network.level1.v6.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level1.v6.pool.pre-existing`\">","comments":"","outputs":1,"x":3128.9045906066895,"y":970.527670621872,"z":"f952bc99.2d7ef","wires":[["a3d0a1cb.9d8fd","37d94e45.b2e192","c202d046.5bdbe"]]},{"id":"2bb67e85.513072","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3923.793228149414,"y":756.0836448669434,"z":"f952bc99.2d7ef","wires":[["b55eba07.112298","e1539b17.4fe6e8"]]},{"id":"fd0daacd.dcb218","type":"switchNode","name":"switch: tmp.l3-network.level2.v4.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level2.v4.pool.pre-existing`\">","comments":"","outputs":1,"x":3380.6822662353516,"y":1441.8609466552734,"z":"f952bc99.2d7ef","wires":[["539676f8.1bb8a8","2cbab948.12a936","de33ed91.f2e23"]]},{"id":"539676f8.1bb8a8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3749.0157890319824,"y":1432.527868270874,"z":"f952bc99.2d7ef","wires":[["bd6948f0.ee5558"]]},{"id":"bd6948f0.ee5558","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3899.9047088623047,"y":1432.7501583099365,"z":"f952bc99.2d7ef","wires":[["4b72c28b.ed33cc","851486f7.ef53b8","1749c073.f9a32"]]},{"id":"43d4715c.229a7","type":"switchNode","name":"switch: tmp.l3-network.level2.v6.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level2.v6.pool.pre-existing`\">","comments":"","outputs":1,"x":3565.682632446289,"y":1925.8240814208984,"z":"f952bc99.2d7ef","wires":[["8603fa44.4ac018","5d10faed.7c4fc4","a7751f96.0afc9"]]},{"id":"de2406b6.935868","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4055.9048805236816,"y":1960.0463666915894,"z":"f952bc99.2d7ef","wires":[["5bded456.68894c","3b1c6b3c.bdb1e4","28b9496d.d124d6"]]},{"id":"2cbab948.12a936","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3748.793502807617,"y":1463.861120223999,"z":"f952bc99.2d7ef","wires":[["bd6948f0.ee5558"]]},{"id":"a3d0a1cb.9d8fd","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3436.126968383789,"y":1003.8608856201172,"z":"f952bc99.2d7ef","wires":[["fe337b12.aa2bc8"]]},{"id":"fe337b12.aa2bc8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3850.3494148254395,"y":983.0832011699677,"z":"f952bc99.2d7ef","wires":[["28e3d2dc.6d980e","d184018d.b9a27"]]},{"id":"37d94e45.b2e192","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3439.238052368164,"y":1041.8607652187347,"z":"f952bc99.2d7ef","wires":[["fe337b12.aa2bc8"]]},{"id":"38c4ba0d.cf5796","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3532.126724243164,"y":754.6390228271484,"z":"f952bc99.2d7ef","wires":[["2bb67e85.513072"]]},{"id":"9f8a87cf.2d90c8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3531.904438018799,"y":785.9722747802734,"z":"f952bc99.2d7ef","wires":[["2bb67e85.513072"]]},{"id":"8603fa44.4ac018","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3864.127000808716,"y":1958.4907836914062,"z":"f952bc99.2d7ef","wires":[["de2406b6.935868"]]},{"id":"5d10faed.7c4fc4","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3863.9047145843506,"y":1989.8240356445312,"z":"f952bc99.2d7ef","wires":[["de2406b6.935868"]]},{"id":"181af87e.ac39e8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level1 ipv4 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3050.0633277893066,"y":702.4642543792725,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"43ffa10a.8453d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1239.079231262207,"y":964.1309933662415,"z":"f952bc99.2d7ef","wires":[["e00163e7.419ee","9d2793f.2e0c17"]]},{"id":"9d2793f.2e0c17","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Error creating level 2 pool, need to attempt rollback\"/>\n\n\n","comments":"","outputs":1,"x":1416.698299407959,"y":934.5277805328369,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"262b4940.672706","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level1 ipv6 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3004.2699127197266,"y":937.8292694091797,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"6bf71b9b.45dac4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level2 ipv4 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3254.206008911133,"y":1403.3213958740234,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"ea23f939.5b11b8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level2 ipv6 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3432.0953521728516,"y":1893.1890716552734,"z":"f952bc99.2d7ef","wires":[[]]},{"id":"c202d046.5bdbe","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3434.407030105591,"y":968.8875029087067,"z":"f952bc99.2d7ef","wires":[["4f412c0b.853a44"]]},{"id":"4f412c0b.853a44","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":3599.7403831481934,"y":969.220671415329,"z":"f952bc99.2d7ef","wires":[]},{"id":"690ff915.aa6a28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3526.740394592285,"y":722.406120300293,"z":"f952bc99.2d7ef","wires":[["ef38fdaf.f6f95"]]},{"id":"ef38fdaf.f6f95","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":3696.407127380371,"y":724.4059133529663,"z":"f952bc99.2d7ef","wires":[]},{"id":"de33ed91.f2e23","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3748.7405395507812,"y":1400.7763605117798,"z":"f952bc99.2d7ef","wires":[["cf9f56ca.cc60a8"]]},{"id":"cf9f56ca.cc60a8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":3912.0738792419434,"y":1399.1095304489136,"z":"f952bc99.2d7ef","wires":[]},{"id":"a7751f96.0afc9","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3869.740753173828,"y":1924.776427268982,"z":"f952bc99.2d7ef","wires":[["86f36263.e24d8"]]},{"id":"86f36263.e24d8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4033.0740928649902,"y":1923.1095972061157,"z":"f952bc99.2d7ef","wires":[]},{"id":"6f631f1b.e5302","type":"comment","name":"If preexisting, check to see if there are any level 2 pools whose parent is the level 1, if not remove level 1 pool","info":"","comments":"","x":5221.518356323242,"y":571.2209243774414,"z":"f952bc99.2d7ef","wires":[]},{"id":"5e76fb0f.aae584","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4927.926284790039,"y":1630.0728302001953,"z":"f952bc99.2d7ef","wires":[["4cea94c4.5ace1c","d344b9bd.898c08"]]},{"id":"4cea94c4.5ace1c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5237.759677886963,"y":1636.046300649643,"z":"f952bc99.2d7ef","wires":[["54bc6c39.509e84"]]},{"id":"fe5b021d.95d6c","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4872.046646118164,"y":1594.748764038086,"z":"f952bc99.2d7ef","wires":[]},{"id":"d344b9bd.898c08","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":5237.379608154297,"y":1604.3321883678436,"z":"f952bc99.2d7ef","wires":[["d462e2e2.f246"]]},{"id":"1749c073.f9a32","type":"switchNode","name":"switch: v4 or v6 is preexisting","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`\">","comments":"","outputs":1,"x":4155.382095336914,"y":1566.8466339111328,"z":"f952bc99.2d7ef","wires":[["da7188b4.85a168","c8ee2aed.d1d1f8","a846b402.dba418"]]},{"id":"da7188b4.85a168","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4416.604019165039,"y":1602.1798858642578,"z":"f952bc99.2d7ef","wires":[["2034a050.d1795"]]},{"id":"2034a050.d1795","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4604.827072143555,"y":1619.4021747112274,"z":"f952bc99.2d7ef","wires":[["fe5b021d.95d6c","5e76fb0f.aae584"]]},{"id":"c8ee2aed.d1d1f8","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4419.715103149414,"y":1640.1797654628754,"z":"f952bc99.2d7ef","wires":[["2034a050.d1795"]]},{"id":"a846b402.dba418","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4414.884292602539,"y":1567.2064971923828,"z":"f952bc99.2d7ef","wires":[["bfd1edc6.cdf45"]]},{"id":"bfd1edc6.cdf45","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4562.217788696289,"y":1565.5396270751953,"z":"f952bc99.2d7ef","wires":[]},{"id":"a41b37e0.ff6d18","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5131.259048461914,"y":2084.7394256591797,"z":"f952bc99.2d7ef","wires":[["1cf60cf2.a24793","943b8edf.5e2ca"]]},{"id":"1cf60cf2.a24793","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5441.092441558838,"y":2090.7128961086273,"z":"f952bc99.2d7ef","wires":[["43ac3bdf.58d534"]]},{"id":"43ac3bdf.58d534","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":5595.341796875,"y":2090.1295421123505,"z":"f952bc99.2d7ef","wires":[]},{"id":"77c85f5b.a8397","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":5075.379409790039,"y":2049.4153594970703,"z":"f952bc99.2d7ef","wires":[]},{"id":"81111598.7b5d98","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":5594.462703704834,"y":2058.6653487682343,"z":"f952bc99.2d7ef","wires":[]},{"id":"943b8edf.5e2ca","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":5440.712371826172,"y":2058.998783826828,"z":"f952bc99.2d7ef","wires":[["81111598.7b5d98"]]},{"id":"28b9496d.d124d6","type":"switchNode","name":"switch: v4 or v6 is preexisting","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`\">","comments":"","outputs":1,"x":4358.714859008789,"y":2021.5132293701172,"z":"f952bc99.2d7ef","wires":[["6ee92545.ca530c","d02ef2e9.1915","c4c2834a.2f88b"]]},{"id":"6ee92545.ca530c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4619.936782836914,"y":2056.846481323242,"z":"f952bc99.2d7ef","wires":[["c1d6e6f8.fbd478"]]},{"id":"c1d6e6f8.fbd478","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4808.15983581543,"y":2074.068770170212,"z":"f952bc99.2d7ef","wires":[["77c85f5b.a8397","a41b37e0.ff6d18"]]},{"id":"d02ef2e9.1915","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4623.047866821289,"y":2094.8463609218597,"z":"f952bc99.2d7ef","wires":[["c1d6e6f8.fbd478"]]},{"id":"c4c2834a.2f88b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4618.217056274414,"y":2021.8730926513672,"z":"f952bc99.2d7ef","wires":[["bd9b036e.d38c1"]]},{"id":"bd9b036e.d38c1","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4765.550552368164,"y":2020.2062225341797,"z":"f952bc99.2d7ef","wires":[]},{"id":"54bc6c39.509e84","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":5392.009033203125,"y":1635.462946653366,"z":"f952bc99.2d7ef","wires":[]},{"id":"d462e2e2.f246","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":5391.129940032959,"y":1603.9987533092499,"z":"f952bc99.2d7ef","wires":[]},{"id":"d6d05e96.2a1d9","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4114.370376586914,"y":1710.2949676513672,"z":"f952bc99.2d7ef","wires":[]},{"id":"968cba1b.6591b8","type":"comment","name":"Check for mask override","info":"","comments":"","x":679.4285278320312,"y":310.7976264953613,"z":"f952bc99.2d7ef","wires":[]},{"id":"f066a056.88e02","type":"for","name":"for pidx..$network-topology-operation-input.network-request-input.network-input-parameters[]","xml":"<for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":1892.2857666015625,"y":376.36910581588745,"z":"f952bc99.2d7ef","wires":[["29675950.07bd36"]]},{"id":"4ad3e9cf.db5138","type":"switchNode","name":"network-topology-operation-input.network-request-input.network-input-parameters.param_length","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`\">","comments":"","outputs":1,"x":905.1427917480469,"y":343.65476417541504,"z":"f952bc99.2d7ef","wires":[["bde1f4c2.7b0f68","c3a89e3b.da7ed"]]},{"id":"bde1f4c2.7b0f68","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1336.5712642669678,"y":344.08334732055664,"z":"f952bc99.2d7ef","wires":[["6707b611.7d4008"]]},{"id":"6707b611.7d4008","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1501.9998953683034,"y":344.2262050083705,"z":"f952bc99.2d7ef","wires":[["fbcf20a2.8d01d"]]},{"id":"c3a89e3b.da7ed","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1320.8569374084473,"y":376.5119152069092,"z":"f952bc99.2d7ef","wires":[["85e306cd.346a18"]]},{"id":"85e306cd.346a18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1492.857048034668,"y":376.51190757751465,"z":"f952bc99.2d7ef","wires":[["f066a056.88e02"]]},{"id":"29675950.07bd36","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2327.42822265625,"y":376.6071472167969,"z":"f952bc99.2d7ef","wires":[["db0dae6d.e44c7","29e7a409.d906cc"]]},{"id":"db0dae6d.e44c7","type":"execute","name":"SliStringUtils - check v4 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv4_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2591.7615509033203,"y":376.27378845214844,"z":"f952bc99.2d7ef","wires":[["efd3997c.b56db8","807884aa.4d3f48"]]},{"id":"efd3997c.b56db8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2819.0951194763184,"y":376.273832321167,"z":"f952bc99.2d7ef","wires":[["17f753f8.49b80c"]]},{"id":"17f753f8.49b80c","type":"set","name":"set subnet override for v4","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":3027.428394317627,"y":376.27378273010254,"z":"f952bc99.2d7ef","wires":[]},{"id":"807884aa.4d3f48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2822.428451538086,"y":411.27381896972656,"z":"f952bc99.2d7ef","wires":[["526fe82a.18d528"]]},{"id":"526fe82a.18d528","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v4\" value=\"`$network-model.ipv4-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":3039.094970703125,"y":411.2738037109375,"z":"f952bc99.2d7ef","wires":[]},{"id":"29e7a409.d906cc","type":"execute","name":"SliStringUtils - check v4 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv6_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2595.76171875,"y":457.9404602050781,"z":"f952bc99.2d7ef","wires":[["b5bfb5c2.97ab28","fe68cfd8.e16af"]]},{"id":"b5bfb5c2.97ab28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2823.095287322998,"y":457.9405040740967,"z":"f952bc99.2d7ef","wires":[["6746fdb3.eceef4"]]},{"id":"6746fdb3.eceef4","type":"set","name":"set subnet override for v6","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":3031.428436279297,"y":462.94046354293823,"z":"f952bc99.2d7ef","wires":[]},{"id":"fe68cfd8.e16af","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2826.4286193847656,"y":492.94049072265625,"z":"f952bc99.2d7ef","wires":[["aafa7dcb.dff8c"]]},{"id":"aafa7dcb.dff8c","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v6\" value=\"`$network-model.ipv6-cidr-mask`\" />\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":3043.0951385498047,"y":492.9404754638672,"z":"f952bc99.2d7ef","wires":[]},{"id":"fbcf20a2.8d01d","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v4\" value=\"`$network-model.ipv4-cidr-mask`\" />\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v6\" value=\"`$network-model.ipv6-cidr-mask`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":1716.4283752441406,"y":341.27379512786865,"z":"f952bc99.2d7ef","wires":[]}]
+[{"id":"26a5ca6.1c01336","type":"dgstart","name":"DGSTART","outputs":1,"x":330.0048828125,"y":106.2548828125,"z":"13273219.a2462e","wires":[["74e1a712.f43b48"]]},{"id":"74e1a712.f43b48","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":392.5763130187988,"y":158.21916675567627,"z":"13273219.a2462e","wires":[["a13ee1a0.aff3b"]]},{"id":"a13ee1a0.aff3b","type":"method","name":"process-eipam-pools","xml":"<method rpc=\"process-eipam-pools\" mode=\"sync\">","comments":"","outputs":1,"x":326.90962982177734,"y":249.63584804534912,"z":"13273219.a2462e","wires":[["decca8b7.d137d8"]]},{"id":"ca8cc337.0ec27","type":"comment","name":"GENERIC-RESOURCE-API: PROCESS-EIPAM-POOLS","info":"","comments":"","x":788.4096832275391,"y":99.88583183288574,"z":"13273219.a2462e","wires":[]},{"id":"9e716ee7.6d1a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":518.6596641540527,"y":408.4692497253418,"z":"13273219.a2462e","wires":[["8835f153.a604c","a0c28b8c.701b58","971f07f1.cc61b8","510fe372.d8df2c","4cc7733a.da8a4c","bbb3baa4.d38678","49a676db.497248","5efc09b8.c40c58","b43df66.6f46008","5af4e899.fd1ad8","41091a95.2f2404","40348bbc.184364"]]},{"id":"929b8679.970fa8","type":"comment","name":"CLEANUP LOCAL VARIABLES TO BE USED","info":"","comments":"","x":859.0167236328125,"y":132.23112392425537,"z":"13273219.a2462e","wires":[]},{"id":"510fe372.d8df2c","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.region' value='`$aai.complex.region`' />\n<parameter name='tmp.cloud-region-id' value=\"`$aai.cloud-region.cloud-region-id`\" />\n<parameter name='tmp.physical-location-id' value=\"`$aai.complex.physical-location-id`\" />\n<parameter name=\"tmp.clli\" value=\"`$aai.complex.physical-location-id`\" />\n<parameter name=\"tmp.zone\" value=\"`$aai.cloud-region.cloud-zone`\" />\n<parameter name=\"tmp.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n<parameter name=\"tmp.service-type\" value=\"`$network-topology-operation-input.service-information.subscription-service-type`\" />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name='eipam-pool.v4.pre-existing' value='false' />\n<parameter name='eipam-pool.v6.pre-existing' value='false' />\n<parameter name=\"tmp.level1-key-value\" value=\"`$tmp.location8 + ':' + $aai.cloud-region.cloud-region-id`\" />\n<parameter name=\"tmp.level2-key-value\" value=\"`$network-model.network-role + ':' + $tmp.l3-network.network-id`\" />\n<parameter name=\"tmp.ipv4-cidr-mask\" value=\"`$network-model.ipv4-cidr-mask`\" />\n<parameter name=\"tmp.ipv6-cidr-mask\" value=\"`$network-model.ipv6-cidr-mask`\" />","comments":"","x":810.9639434814453,"y":260.13062715530396,"z":"13273219.a2462e","wires":[]},{"id":"81093b35.926608","type":"comment","name":"Process level 1 pool - works v4 and v6","info":"","comments":"","x":833.9006652832031,"y":450.4877738952637,"z":"13273219.a2462e","wires":[]},{"id":"8835f153.a604c","type":"call","name":"call eipam-create-network-role-pool for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":881.5196380615234,"y":490.0591506958008,"z":"13273219.a2462e","wires":[["be0f5d3d.999be","bf64d71a.01b678"]]},{"id":"821df4f7.68f4b8","type":"call","name":"call eipam-allocate-network-role-subnet for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2383.4125022888184,"y":640.6783409118652,"z":"13273219.a2462e","wires":[["a0a2c0af.38716","578b6235.e398bc"]]},{"id":"a0a2c0af.38716","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2804.972099304199,"y":714.7213172912598,"z":"13273219.a2462e","wires":[["bbd0b56.6f62848"]]},{"id":"be0f5d3d.999be","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1170.1978797912598,"y":491.387882232666,"z":"13273219.a2462e","wires":[["cf338f9d.20013"]]},{"id":"cf338f9d.20013","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while allocating subnet in EIPAM.  Error creating level 1 pool. ' + $error-message`\" />\n\t","comments":"","x":1343.4479904174805,"y":490.59021377563477,"z":"13273219.a2462e","wires":[]},{"id":"f2592640.3b1438","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4376.399833679199,"y":800.2379503250122,"z":"13273219.a2462e","wires":[["e8553677.862948","c29653be.ac7cc"]]},{"id":"e8553677.862948","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4649.566822052002,"y":797.8780546188354,"z":"13273219.a2462e","wires":[["113aa130.3128ff"]]},{"id":"113aa130.3128ff","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4823.816337585449,"y":796.294680595398,"z":"13273219.a2462e","wires":[]},{"id":"ec60a377.0783b","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":4248.344123840332,"y":726.3490304946899,"z":"13273219.a2462e","wires":[]},{"id":"bbd0b56.6f62848","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2994.7151412963867,"y":712.8581581115723,"z":"13273219.a2462e","wires":[["a4b3682.cadc198","ee5fcb95.7a1fc8"]]},{"id":"2bc2eb0b.32d0c4","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4326.186592102051,"y":763.5805978775024,"z":"13273219.a2462e","wires":[]},{"id":"e1ed1cc.fbec7e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":4822.936416625977,"y":837.8305807113647,"z":"13273219.a2462e","wires":[]},{"id":"c29653be.ac7cc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4654.186408996582,"y":837.8306169509888,"z":"13273219.a2462e","wires":[["e1ed1cc.fbec7e"]]},{"id":"decca8b7.d137d8","type":"switchNode","name":"switch","xml":"<switch test='`$tmp.process-eipam-action`'>\n","comments":"","outputs":1,"x":282.18747329711914,"y":330.5802879333496,"z":"13273219.a2462e","wires":[["a516bf77.c80e8","d5fbf628.c1c488","f67aa8de.8c0578"]]},{"id":"a516bf77.c80e8","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":339.1041069030762,"y":409.4136161804199,"z":"13273219.a2462e","wires":[["9e716ee7.6d1a"]]},{"id":"d5fbf628.c1c488","type":"other","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":298.4281692504883,"y":2748.895079135895,"z":"13273219.a2462e","wires":[["1c42d9e6.7b1b46"]]},{"id":"f67aa8de.8c0578","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":288.428186416626,"y":2818.895172595978,"z":"13273219.a2462e","wires":[["1e63660f.426e7a"]]},{"id":"1e63660f.426e7a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Invalid option to process-eipam\" />\n\t","comments":"","x":498.4281692504883,"y":2818.895079135895,"z":"13273219.a2462e","wires":[]},{"id":"4cc7733a.da8a4c","type":"set","name":"clean up local variables","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name='tmp.location8' value='' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='' />\n<parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='' />\n<parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='' />\n<parameter name='tmp.l3-network.level2.v4.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='' />\n<parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />\n\n","comments":"","x":798.1304626464844,"y":195.9162826538086,"z":"13273219.a2462e","wires":[]},{"id":"1c42d9e6.7b1b46","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Invalid option to process-eipam\" />\n\t","comments":"","x":496.76151275634766,"y":2738.895079135895,"z":"13273219.a2462e","wires":[]},{"id":"51f43cfc.dddeb4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field5\" value=\"`$eipam-pool.v4.pre-existing`\"/>\n<parameter name=\"field6\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field7\" value=\"`$eipam-pool.v6.pre-existing`\"/>\n<parameter name=\"field8\" value=\"tmp.create-v4-pool-flag\" />\n<parameter name=\"field9\" value=\"`$tmp.create-v4-pool-flag`\" />\n<parameter name=\"field10\" value=\"tmp.create-v6-pool-flag\" />\n<parameter name=\"field11\" value=\"`$tmp.create-v6-pool-flag`\" />\n\n","comments":"","outputs":1,"x":1524.2109756469727,"y":494.28662490844727,"z":"13273219.a2462e","wires":[[]]},{"id":"bf64d71a.01b678","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1173.3538856506348,"y":525.6040992736816,"z":"13273219.a2462e","wires":[["9ea6458b.4ba778"]]},{"id":"578b6235.e398bc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2800.401710510254,"y":630.8898906707764,"z":"13273219.a2462e","wires":[["97b6ef9c.ea63"]]},{"id":"bf91aa56.8eb818","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":3168.5921173095703,"y":630.0327854156494,"z":"13273219.a2462e","wires":[[]]},{"id":"a0c28b8c.701b58","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":824.6873512268066,"y":603.8105621337891,"z":"13273219.a2462e","wires":[["ae3d966a.c9c648"]]},{"id":"ae3d966a.c9c648","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1039.687484741211,"y":602.5724363327026,"z":"13273219.a2462e","wires":[["43bbc76a.c3f6b8"]]},{"id":"43bbc76a.c3f6b8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1220.5920791625977,"y":603.0010662078857,"z":"13273219.a2462e","wires":[["af7f6527.edb5c8"]]},{"id":"8825b922.356dc8","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv4' />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2307.973171234131,"y":600.6677207946777,"z":"13273219.a2462e","wires":[]},{"id":"fc1d4e.48cd62b","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3236.3058471679688,"y":669.3344402313232,"z":"13273219.a2462e","wires":[]},{"id":"97b6ef9c.ea63","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2965.4278869628906,"y":629.4878120422363,"z":"13273219.a2462e","wires":[["bf91aa56.8eb818","fc1d4e.48cd62b"]]},{"id":"9ea6458b.4ba778","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1344.7980880737305,"y":525.5247535705566,"z":"13273219.a2462e","wires":[["51f43cfc.dddeb4","3ba64f1d.b8549"]]},{"id":"3ba64f1d.b8549","type":"set","name":"Save return values from eipam level 1 pool","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.pool.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\n<parameter name='tmp.l3-network.level1.v6.pool.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\n","comments":"","x":1627.1314697265625,"y":524.1914081573486,"z":"13273219.a2462e","wires":[]},{"id":"c10611d3.6d382","type":"call","name":"call eipam-allocate-network-role-subnet for level 1 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2438.1317138671875,"y":880.7469024658203,"z":"13273219.a2462e","wires":[["3443f1a6.7f03ce","d27f450.b62b6b8"]]},{"id":"3443f1a6.7f03ce","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2765.358070373535,"y":946.789813041687,"z":"13273219.a2462e","wires":[["4f6f9cb9.a07924"]]},{"id":"37233d85.e67162","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4295.453617095947,"y":1000.6396789550781,"z":"13273219.a2462e","wires":[["57b5862f.1058c8","ea103017.440e8"]]},{"id":"57b5862f.1058c8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4605.287010192871,"y":1006.6131494045258,"z":"13273219.a2462e","wires":[["68b2fca.6643404"]]},{"id":"68b2fca.6643404","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4759.536365509033,"y":1006.0297954082489,"z":"13273219.a2462e","wires":[]},{"id":"4f6f9cb9.a07924","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2955.1011123657227,"y":944.9266538619995,"z":"13273219.a2462e","wires":[["9390a183.d5941","e26666fa.6a5278"]]},{"id":"c2e2769.3bad588","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4243.573734283447,"y":957.3155810832977,"z":"13273219.a2462e","wires":[]},{"id":"4770b69.349e548","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":4758.657272338867,"y":974.5656020641327,"z":"13273219.a2462e","wires":[]},{"id":"ea103017.440e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4604.906940460205,"y":974.8990371227264,"z":"13273219.a2462e","wires":[["4770b69.349e548"]]},{"id":"d27f450.b62b6b8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2776.1210403442383,"y":880.2918062210083,"z":"13273219.a2462e","wires":[["9d36a9ac.fef518"]]},{"id":"8a97ab57.38cf98","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":3119.3113975524902,"y":841.1013469696045,"z":"13273219.a2462e","wires":[[]]},{"id":"971f07f1.cc61b8","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":827.4069366455078,"y":803.8791933059692,"z":"13273219.a2462e","wires":[["f3e1324c.6612e"]]},{"id":"f3e1324c.6612e","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1122.5497970581055,"y":803.6410779953003,"z":"13273219.a2462e","wires":[["12147367.4a8bdd"]]},{"id":"12147367.4a8bdd","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1281.5498428344727,"y":804.3077039718628,"z":"13273219.a2462e","wires":[["2ff782e5.e2ab0e"]]},{"id":"a6235f03.e315","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv6' />\n<parameter name=\"eipam-ip-block.level\" value='1' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2354.6925048828125,"y":845.7362957000732,"z":"13273219.a2462e","wires":[]},{"id":"62308253.bd37fc","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3187.0252647399902,"y":878.4030437469482,"z":"13273219.a2462e","wires":[]},{"id":"9d36a9ac.fef518","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2941.147216796875,"y":878.8897275924683,"z":"13273219.a2462e","wires":[["8a97ab57.38cf98","62308253.bd37fc"]]},{"id":"af7f6527.edb5c8","type":"get-resource","name":"get-resource V4 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1556.7508544921875,"y":602.5565061569214,"z":"13273219.a2462e","wires":[["f8f9d373.532b","72e91999.024938"]]},{"id":"f8f9d373.532b","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1874.7508544921875,"y":572.9730968475342,"z":"13273219.a2462e","wires":[["ef161a9c.0d0c68"]]},{"id":"72e91999.024938","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1874.8629150390625,"y":602.7231283187866,"z":"13273219.a2462e","wires":[["b674f36a.1a068"]]},{"id":"b674f36a.1a068","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2031.3291053771973,"y":599.4370555877686,"z":"13273219.a2462e","wires":[["8825b922.356dc8","821df4f7.68f4b8"]]},{"id":"ef161a9c.0d0c68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2031.7230262756348,"y":573.4731271266937,"z":"13273219.a2462e","wires":[["bc822129.93202","5d6a12e4.f7367c"]]},{"id":"bc822129.93202","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":2242.1395416259766,"y":532.8898344039917,"z":"13273219.a2462e","wires":[[]]},{"id":"5d6a12e4.f7367c","type":"set","name":"set pre-existing for l3subnet for level1","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n\n","comments":"","x":2335.6036529541016,"y":565.6915016174316,"z":"13273219.a2462e","wires":[]},{"id":"2ff782e5.e2ab0e","type":"get-resource","name":"get-resource V6 - validate if level 1 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 1 and k.key_value = $tmp.level1-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1598.6874694824219,"y":803.9689569473267,"z":"13273219.a2462e","wires":[["73286b3d.7c3de4","b9f2f0d3.63cbb"]]},{"id":"73286b3d.7c3de4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1920.020523071289,"y":807.3023300170898,"z":"13273219.a2462e","wires":[["f45581d4.512d6"]]},{"id":"b9f2f0d3.63cbb","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1928.8826522827148,"y":853.3023607730865,"z":"13273219.a2462e","wires":[["e7b8d744.8ea788"]]},{"id":"e7b8d744.8ea788","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2079.0988235473633,"y":851.2663195133209,"z":"13273219.a2462e","wires":[["a6235f03.e315","c10611d3.6d382"]]},{"id":"36abb80c.f7d488","type":"comment","name":"Check if level1 ipv6 subnet exists","info":"","comments":"","x":1514.0525512695312,"y":772.3023738861084,"z":"13273219.a2462e","wires":[]},{"id":"f45581d4.512d6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2103.242691040039,"y":807.3023300170898,"z":"13273219.a2462e","wires":[["5e1dfaca.7d1de4","8692643b.73b088"]]},{"id":"5e1dfaca.7d1de4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":2301.242607116699,"y":765.3024101257324,"z":"13273219.a2462e","wires":[[]]},{"id":"8692643b.73b088","type":"set","name":"set pre-existing for l3subnet for level1","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2392.956558227539,"y":804.6040267944336,"z":"13273219.a2462e","wires":[]},{"id":"bbb3baa4.d38678","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name='eipam-pool.v4.pre-existing' value='false' />\n<parameter name='eipam-pool.v6.pre-existing' value='false' />\n","comments":"","x":825.4560546875,"y":942.9322824478149,"z":"13273219.a2462e","wires":[]},{"id":"84167862.8d4608","type":"comment","name":"Process level 2 pool - works v4 and v6","info":"","comments":"","x":926.0118179321289,"y":1050.7655863761902,"z":"13273219.a2462e","wires":[]},{"id":"49a676db.497248","type":"call","name":"call eipam-create-network-role-pool for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-create-network-role-pool' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":889.6308135986328,"y":978.1941261291504,"z":"13273219.a2462e","wires":[["e2699b39.b4f1b8","855112f1.7ac38"]]},{"id":"b8a9a3d0.bcc68","type":"call","name":"call eipam-allocate-network-role-subnet for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2570.6066856384277,"y":1403.7337074279785,"z":"13273219.a2462e","wires":[["3a4d7362.3951cc","daecaf42.f4517"]]},{"id":"3a4d7362.3951cc","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2915.8329849243164,"y":1449.7767696380615,"z":"13273219.a2462e","wires":[["2aa7a17.8253c5e"]]},{"id":"e2699b39.b4f1b8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1192.392448425293,"y":978.9988918304443,"z":"13273219.a2462e","wires":[["d1bdae81.46c86"]]},{"id":"d3bdbb5f.8fad18","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM.  Error creating level 2 pool\" />\n\t","comments":"","x":1555.4522323608398,"y":975.6773777008057,"z":"13273219.a2462e","wires":[]},{"id":"b390984b.905dc8","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4367.261474609375,"y":1478.848892211914,"z":"13273219.a2462e","wires":[["367c3d33.3aa6f2","e03da82.9460b58"]]},{"id":"367c3d33.3aa6f2","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4672.4288330078125,"y":1474.488925933838,"z":"13273219.a2462e","wires":[[]]},{"id":"308acba1.d8b8e4","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":4239.205749511719,"y":1402.959903717041,"z":"13273219.a2462e","wires":[]},{"id":"2aa7a17.8253c5e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3105.576026916504,"y":1447.913610458374,"z":"13273219.a2462e","wires":[["83fbd2ff.3f684","f7621f6a.bcfcd"]]},{"id":"d38997f6.9e0988","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n","comments":"","x":4317.0482177734375,"y":1440.1914710998535,"z":"13273219.a2462e","wires":[]},{"id":"e03da82.9460b58","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4673.0484619140625,"y":1512.441562652588,"z":"13273219.a2462e","wires":[[]]},{"id":"ac8fe90.639de18","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field5\" value=\"`$eipam-pool.v4.pre-existing`\"/>\n<parameter name=\"field6\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field7\" value=\"`$eipam-pool.v6.pre-existing`\"/>\n<parameter name=\"field8\" value=\"tmp.create-v4-pool-flag\" />\n<parameter name=\"field9\" value=\"`$tmp.create-v4-pool-flag`\" />\n<parameter name=\"field10\" value=\"tmp.create-v6-pool-flag\" />\n<parameter name=\"field11\" value=\"`$tmp.create-v6-pool-flag`\" />\n\n","comments":"","outputs":1,"x":1544.0722274780273,"y":1010.8976554870605,"z":"13273219.a2462e","wires":[[]]},{"id":"855112f1.7ac38","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1192.2149963378906,"y":1010.5483727455139,"z":"13273219.a2462e","wires":[["699ee235.f1dbfc"]]},{"id":"daecaf42.f4517","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2924.5960083007812,"y":1399.2786293029785,"z":"13273219.a2462e","wires":[["715d357a.98f3ac"]]},{"id":"59c01406.8fcf5c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level2\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level2\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":3369.1201171875,"y":1340.4214515686035,"z":"13273219.a2462e","wires":[[]]},{"id":"5efc09b8.c40c58","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":825.2150840759277,"y":1328.199465751648,"z":"13273219.a2462e","wires":[["c72f2288.0a2f5"]]},{"id":"c72f2288.0a2f5","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1169.0248069763184,"y":1325.2946891784668,"z":"13273219.a2462e","wires":[["a9493ce.e3e59c"]]},{"id":"a9493ce.e3e59c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1323.0247497558594,"y":1324.294692993164,"z":"13273219.a2462e","wires":[["25d3a2dc.2588ce"]]},{"id":"b98d84fb.d73f78","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv4' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$eipam-ip-block.subnet-size-override-v4`\" />\n","comments":"","x":2485.1673851013184,"y":1361.7229652404785,"z":"13273219.a2462e","wires":[]},{"id":"ea0e7273.2d7a1","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3438.833740234375,"y":1375.723331451416,"z":"13273219.a2462e","wires":[]},{"id":"715d357a.98f3ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3089.622184753418,"y":1397.8765506744385,"z":"13273219.a2462e","wires":[["59c01406.8fcf5c","ea0e7273.2d7a1"]]},{"id":"699ee235.f1dbfc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1361.326084136963,"y":1009.802442073822,"z":"13273219.a2462e","wires":[["ac8fe90.639de18","e8050219.af8cb"]]},{"id":"e8050219.af8cb","type":"set","name":"Save return values from eipam level 2 pool","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.pre-existing' value='`$eipam-pool.v4.pre-existing`'/>\n<parameter name='tmp.l3-network.level2.v6.pre-existing' value='`$eipam-pool.v6.pre-existing`'/>\n","comments":"","x":1650.326099395752,"y":1042.802372932434,"z":"13273219.a2462e","wires":[]},{"id":"a8bd6055.9077c","type":"call","name":"call eipam-allocate-network-role-subnet for level 2 pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-network-role-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2814.9930419921875,"y":1877.598331451416,"z":"13273219.a2462e","wires":[["d5830192.64037","dd267a76.2bed88"]]},{"id":"d5830192.64037","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":3192.8861083984375,"y":1906.141544342041,"z":"13273219.a2462e","wires":[["2f7196d8.47f47a"]]},{"id":"e89c3ffe.854bc","type":"execute","name":"execute deletePoolByNetworkLevel for level 2 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":4570.31494140625,"y":1987.2136268615723,"z":"13273219.a2462e","wires":[["fe4065e1.db6d38","40ff689.0e45898"]]},{"id":"fe4065e1.db6d38","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":4885.481731414795,"y":1944.853796005249,"z":"13273219.a2462e","wires":[[]]},{"id":"9fc036f4.3c53b8","type":"comment","name":"Rollback level 1 pool","info":"","comments":"","x":3678.2588806152344,"y":1881.3248128890991,"z":"13273219.a2462e","wires":[]},{"id":"2f7196d8.47f47a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3352.6292724609375,"y":1902.2783851623535,"z":"13273219.a2462e","wires":[["433c3e71.52ba2","4d0efd6c.1776a4"]]},{"id":"ee3babc0.1cd638","type":"set","name":"set: network-id to deallocate level 2 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='2' />\n","comments":"","x":4520.101715087891,"y":1950.556308746338,"z":"13273219.a2462e","wires":[]},{"id":"40ff689.0e45898","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4890.10147857666,"y":1984.8063716888428,"z":"13273219.a2462e","wires":[[]]},{"id":"dd267a76.2bed88","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":3191.649124145508,"y":1869.6435928344727,"z":"13273219.a2462e","wires":[["f64cf0d3.40786"]]},{"id":"8a91df5f.08d47","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.mask`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":3556.172737121582,"y":1806.7865581512451,"z":"13273219.a2462e","wires":[[]]},{"id":"b43df66.6f46008","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":594.6013793945312,"y":1886.2311353683472,"z":"13273219.a2462e","wires":[["d4112f60.f8379"]]},{"id":"d4112f60.f8379","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1408.0775871276855,"y":1887.6596183776855,"z":"13273219.a2462e","wires":[["eea0303a.7f9a5"]]},{"id":"eea0303a.7f9a5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1575.4108848571777,"y":1884.9930171966553,"z":"13273219.a2462e","wires":[["98edb47c.7103a8"]]},{"id":"15c0f5d5.df77ea","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv6' />\n<parameter name=\"eipam-ip-block.level\" value='2' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n<parameter name=\"eipam-ip-block.subnet-size-override\" value=\"`$eipam-ip-block.subnet-size-override-v6`\" />\n\n","comments":"","x":2738.2203369140625,"y":1842.0879554748535,"z":"13273219.a2462e","wires":[]},{"id":"280c41ff.c8bfee","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3623.8865966796875,"y":1840.0881996154785,"z":"13273219.a2462e","wires":[]},{"id":"f64cf0d3.40786","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3356.6753005981445,"y":1868.2415142059326,"z":"13273219.a2462e","wires":[["8a91df5f.08d47","280c41ff.c8bfee"]]},{"id":"279b22b8.18538e","type":"comment","name":"Allocate ipv4 subnet for level 2","info":"","comments":"","x":936.6597595214844,"y":1264.1358460320366,"z":"13273219.a2462e","wires":[]},{"id":"c2cddcdc.fdb41","type":"comment","name":"Allocate ipv6 subnet for level 1","info":"","comments":"","x":1097.6596069335938,"y":1836.0988311767578,"z":"13273219.a2462e","wires":[]},{"id":"25d3a2dc.2588ce","type":"get-resource","name":"get-resource V4 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1701.3263854980469,"y":1324.802568435669,"z":"13273219.a2462e","wires":[["1952016e.3f672f","3db8dd8.554bc22"]]},{"id":"1952016e.3f672f","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2043.6595878601074,"y":1322.135806798935,"z":"13273219.a2462e","wires":[["dc729d74.3017e"]]},{"id":"3db8dd8.554bc22","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2052.521717071533,"y":1368.1358375549316,"z":"13273219.a2462e","wires":[["ad57044b.6c28a8"]]},{"id":"ad57044b.6c28a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2202.7378883361816,"y":1366.099796295166,"z":"13273219.a2462e","wires":[["b98d84fb.d73f78","b8a9a3d0.bcc68"]]},{"id":"b228f721.dfa6d8","type":"comment","name":"Check if level2 ipv4 subnet exists","info":"","comments":"","x":1670.8819046020508,"y":1228.1358184814453,"z":"13273219.a2462e","wires":[]},{"id":"dc729d74.3017e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2226.8817558288574,"y":1322.135806798935,"z":"13273219.a2462e","wires":[["b0532c9.9f729d","63d7e576.ad29ec"]]},{"id":"b0532c9.9f729d","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level2\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level2\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n\n\n","comments":"","outputs":1,"x":2426.8817558288574,"y":1274.135806798935,"z":"13273219.a2462e","wires":[[]]},{"id":"63d7e576.ad29ec","type":"set","name":"set pre-existing for l3subnet for level2","xml":"<set>\n<parameter name='tmp.l3-network.level2.v4.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level2.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level2.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level2.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2516.5956230163574,"y":1319.4375035762787,"z":"13273219.a2462e","wires":[]},{"id":"98edb47c.7103a8","type":"get-resource","name":"get-resource V6 - validate if level 2 subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1915.8818130493164,"y":1846.3209190368652,"z":"13273219.a2462e","wires":[["4d9abe6f.03723","5fa34d71.41e264"]]},{"id":"4d9abe6f.03723","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2338.881690979004,"y":1796.3209190368652,"z":"13273219.a2462e","wires":[["6d74200f.9a21b"]]},{"id":"5fa34d71.41e264","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":2347.7438201904297,"y":1842.320949792862,"z":"13273219.a2462e","wires":[["2355885b.84f818"]]},{"id":"2355885b.84f818","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2497.959991455078,"y":1840.2849085330963,"z":"13273219.a2462e","wires":[["15c0f5d5.df77ea","a8bd6055.9077c"]]},{"id":"67fe0d24.77b704","type":"comment","name":"Check if level2 ipv6 subnet exists","info":"","comments":"","x":1834.1040649414062,"y":1806.3208770751953,"z":"13273219.a2462e","wires":[]},{"id":"6d74200f.9a21b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2522.103858947754,"y":1796.3209190368652,"z":"13273219.a2462e","wires":[["723b2abc.e7dcd4","bca9455b.dabdc8"]]},{"id":"723b2abc.e7dcd4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level1\"/>\n<parameter name=\"field5\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level1\"/>\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n\n\n","comments":"","outputs":1,"x":2682.1037979125977,"y":1756.3208847045898,"z":"13273219.a2462e","wires":[[]]},{"id":"bca9455b.dabdc8","type":"set","name":"set pre-existing for l3subnet for level2","xml":"<set>\n<parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level2.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level2.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level2.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2773.8177490234375,"y":1795.622501373291,"z":"13273219.a2462e","wires":[]},{"id":"a4b3682.cadc198","type":"switchNode","name":"switch: tmp.l3-network.level1.v4.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing`\">","comments":"","outputs":1,"x":3296.7508544921875,"y":744.493106842041,"z":"13273219.a2462e","wires":[["e499cd71.43c93","587fff8a.27e9e","cb4647b0.201b38"]]},{"id":"9390a183.d5941","type":"switchNode","name":"switch: tmp.l3-network.level1.v6.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level1.v6.pool.pre-existing`\">","comments":"","outputs":1,"x":3250.909580230713,"y":977.4134929180145,"z":"13273219.a2462e","wires":[["97cce460.b59978","c45d0ade.64a628","bcaf0131.0c991"]]},{"id":"8effc3ff.6e142","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4045.7982177734375,"y":762.9694671630859,"z":"13273219.a2462e","wires":[["2bc2eb0b.32d0c4","f2592640.3b1438"]]},{"id":"83fbd2ff.3f684","type":"switchNode","name":"switch: tmp.l3-network.level2.v4.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level2.v4.pool.pre-existing`\">","comments":"","outputs":1,"x":3502.687255859375,"y":1448.746768951416,"z":"13273219.a2462e","wires":[["8cb10eb0.1e01d","75013018.c42ca","e9669fbd.776b7"]]},{"id":"8cb10eb0.1e01d","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3871.020778656006,"y":1439.4136905670166,"z":"13273219.a2462e","wires":[["b1fb1e2.c5d5de"]]},{"id":"b1fb1e2.c5d5de","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4021.909698486328,"y":1439.635980606079,"z":"13273219.a2462e","wires":[["d38997f6.9e0988","b390984b.905dc8","53cff857.660688"]]},{"id":"433c3e71.52ba2","type":"switchNode","name":"switch: tmp.l3-network.level2.v6.pool.pre-existing","xml":"<switch test=\"`$tmp.l3-network.level2.v6.pool.pre-existing`\">","comments":"","outputs":1,"x":3687.6876220703125,"y":1932.709903717041,"z":"13273219.a2462e","wires":[["29ecf01a.181cd","e27e2625.ab3528","988b417d.71bc"]]},{"id":"aa9ed2f7.49cc6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4177.909870147705,"y":1966.932188987732,"z":"13273219.a2462e","wires":[["ee3babc0.1cd638","e89c3ffe.854bc","8fc0591a.42f498"]]},{"id":"75013018.c42ca","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3870.7984924316406,"y":1470.7469425201416,"z":"13273219.a2462e","wires":[["b1fb1e2.c5d5de"]]},{"id":"97cce460.b59978","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3558.1319580078125,"y":1010.7467079162598,"z":"13273219.a2462e","wires":[["29338655.3bb4aa"]]},{"id":"29338655.3bb4aa","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":3972.354404449463,"y":989.9690234661102,"z":"13273219.a2462e","wires":[["c2e2769.3bad588","37233d85.e67162"]]},{"id":"c45d0ade.64a628","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3561.2430419921875,"y":1048.7465875148773,"z":"13273219.a2462e","wires":[["29338655.3bb4aa"]]},{"id":"e499cd71.43c93","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3654.1317138671875,"y":761.524845123291,"z":"13273219.a2462e","wires":[["8effc3ff.6e142"]]},{"id":"587fff8a.27e9e","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3653.9094276428223,"y":792.858097076416,"z":"13273219.a2462e","wires":[["8effc3ff.6e142"]]},{"id":"29ecf01a.181cd","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3986.1319904327393,"y":1965.3766059875488,"z":"13273219.a2462e","wires":[["aa9ed2f7.49cc6"]]},{"id":"e27e2625.ab3528","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3985.909704208374,"y":1996.7098579406738,"z":"13273219.a2462e","wires":[["aa9ed2f7.49cc6"]]},{"id":"ee5fcb95.7a1fc8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level1 ipv4 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3172.06831741333,"y":709.350076675415,"z":"13273219.a2462e","wires":[[]]},{"id":"d1bdae81.46c86","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1361.0842208862305,"y":971.016815662384,"z":"13273219.a2462e","wires":[["d3bdbb5f.8fad18","3568caa1.e24ec6"]]},{"id":"3568caa1.e24ec6","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Error creating level 2 pool, need to attempt rollback\"/>\n\n\n","comments":"","outputs":1,"x":1538.7032890319824,"y":941.4136028289795,"z":"13273219.a2462e","wires":[[]]},{"id":"e26666fa.6a5278","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level1 ipv6 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3126.27490234375,"y":944.7150917053223,"z":"13273219.a2462e","wires":[[]]},{"id":"f7621f6a.bcfcd","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level2 ipv4 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3376.2109985351562,"y":1410.207218170166,"z":"13273219.a2462e","wires":[[]]},{"id":"4d0efd6c.1776a4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate level2 ipv6 subnet - failure from eipam-allocate-network-role-subnet\"/>\n\n\n\n","comments":"","outputs":1,"x":3554.100341796875,"y":1900.074893951416,"z":"13273219.a2462e","wires":[[]]},{"id":"bcaf0131.0c991","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3556.4120197296143,"y":975.7733252048492,"z":"13273219.a2462e","wires":[["9ebe1aa6.192e88"]]},{"id":"9ebe1aa6.192e88","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":3721.745372772217,"y":976.1064937114716,"z":"13273219.a2462e","wires":[]},{"id":"cb4647b0.201b38","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3648.7453842163086,"y":729.2919425964355,"z":"13273219.a2462e","wires":[["92f5bb4d.61dfd8"]]},{"id":"92f5bb4d.61dfd8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":3818.4121170043945,"y":731.2917356491089,"z":"13273219.a2462e","wires":[]},{"id":"e9669fbd.776b7","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3870.7455291748047,"y":1407.6621828079224,"z":"13273219.a2462e","wires":[["c4d26b8d.b092f8"]]},{"id":"c4d26b8d.b092f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4034.078868865967,"y":1405.9953527450562,"z":"13273219.a2462e","wires":[]},{"id":"988b417d.71bc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3991.7457427978516,"y":1931.6622495651245,"z":"13273219.a2462e","wires":[["6cd0f2c.47b5c0c"]]},{"id":"6cd0f2c.47b5c0c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4155.079082489014,"y":1929.9954195022583,"z":"13273219.a2462e","wires":[]},{"id":"5c72eb0.0aed714","type":"comment","name":"If preexisting, check to see if there are any level 2 pools whose parent is the level 1, if not remove level 1 pool","info":"","comments":"","x":5343.523345947266,"y":578.106746673584,"z":"13273219.a2462e","wires":[]},{"id":"a1079cc2.e2ee8","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5049.9312744140625,"y":1636.958652496338,"z":"13273219.a2462e","wires":[["6f04d1d5.5f9ba","540060d6.b2021"]]},{"id":"6f04d1d5.5f9ba","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5359.764667510986,"y":1642.9321229457855,"z":"13273219.a2462e","wires":[["c2ca0fa.2bdc5f"]]},{"id":"d889ce3a.e9edb","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":4994.0516357421875,"y":1601.6345863342285,"z":"13273219.a2462e","wires":[]},{"id":"540060d6.b2021","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":5359.38459777832,"y":1611.2180106639862,"z":"13273219.a2462e","wires":[["18bef9ee.c4f286"]]},{"id":"53cff857.660688","type":"switchNode","name":"switch: v4 or v6 is preexisting","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`\">","comments":"","outputs":1,"x":4277.3870849609375,"y":1573.7324562072754,"z":"13273219.a2462e","wires":[["63318349.4d837c","a5cfa2e1.d93ab","b3a7b935.51bae8"]]},{"id":"63318349.4d837c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4538.6090087890625,"y":1609.0657081604004,"z":"13273219.a2462e","wires":[["94a98109.1a794"]]},{"id":"94a98109.1a794","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4726.832061767578,"y":1626.28799700737,"z":"13273219.a2462e","wires":[["d889ce3a.e9edb","a1079cc2.e2ee8"]]},{"id":"a5cfa2e1.d93ab","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4541.7200927734375,"y":1647.065587759018,"z":"13273219.a2462e","wires":[["94a98109.1a794"]]},{"id":"b3a7b935.51bae8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4536.8892822265625,"y":1574.0923194885254,"z":"13273219.a2462e","wires":[["b0d1a533.811538"]]},{"id":"b0d1a533.811538","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4684.2227783203125,"y":1572.425449371338,"z":"13273219.a2462e","wires":[]},{"id":"47a8f869.cbdf48","type":"execute","name":"execute deletePoolByNetworkLevel for level 1 by network id ","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePoolByNetworkLevel\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":5253.2640380859375,"y":2091.6252479553223,"z":"13273219.a2462e","wires":[["9ca9efd1.dd319","e255d0e.1574d3"]]},{"id":"9ca9efd1.dd319","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":5563.097431182861,"y":2097.59871840477,"z":"13273219.a2462e","wires":[["b12f56c1.f36bb8"]]},{"id":"b12f56c1.f36bb8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv6 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":5717.346786499023,"y":2097.015364408493,"z":"13273219.a2462e","wires":[]},{"id":"76aa1a43.f7cbd4","type":"set","name":"set: network-id to deallocate level 1 subnets","xml":"<set>\n\t<parameter name=\"eipam-ip-block.network-id\" value=\"`$tmp.l3-network.network-id`\" />\n\t<parameter name=\"eipam-ip-block.level\" value='1' />\n","comments":"","x":5197.3843994140625,"y":2056.301181793213,"z":"13273219.a2462e","wires":[]},{"id":"10018766.0764c9","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv6 subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":5716.467693328857,"y":2065.551171064377,"z":"13273219.a2462e","wires":[]},{"id":"e255d0e.1574d3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":5562.717361450195,"y":2065.8846061229706,"z":"13273219.a2462e","wires":[["10018766.0764c9"]]},{"id":"8fc0591a.42f498","type":"switchNode","name":"switch: v4 or v6 is preexisting","xml":"<switch test=\"`$tmp.l3-network.level1.v4.pool.pre-existing == true or $tmp.l3-network.level1.v4.pool.pre-existing == true`\">","comments":"","outputs":1,"x":4480.7198486328125,"y":2028.3990516662598,"z":"13273219.a2462e","wires":[["51a738a5.eb4508","5cd9bf93.11988","5afc75b4.b63d4c"]]},{"id":"51a738a5.eb4508","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4741.9417724609375,"y":2063.7323036193848,"z":"13273219.a2462e","wires":[["ea2401f0.93e87"]]},{"id":"ea2401f0.93e87","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":4930.164825439453,"y":2080.9545924663544,"z":"13273219.a2462e","wires":[["76aa1a43.f7cbd4","47a8f869.cbdf48"]]},{"id":"5cd9bf93.11988","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4745.0528564453125,"y":2101.7321832180023,"z":"13273219.a2462e","wires":[["ea2401f0.93e87"]]},{"id":"5afc75b4.b63d4c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4740.2220458984375,"y":2028.7589149475098,"z":"13273219.a2462e","wires":[["e9ecf5a6.862ab8"]]},{"id":"e9ecf5a6.862ab8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating subnet in EIPAM. Pre-existing pool, no rollback.\" />\n\t","comments":"","x":4887.5555419921875,"y":2027.0920448303223,"z":"13273219.a2462e","wires":[]},{"id":"c2ca0fa.2bdc5f","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":5514.014022827148,"y":1642.3487689495087,"z":"13273219.a2462e","wires":[]},{"id":"18bef9ee.c4f286","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM. Rollback complete.\" />\n\t","comments":"","x":5513.134929656982,"y":1610.8845756053925,"z":"13273219.a2462e","wires":[]},{"id":"cc4b6f7a.b133f","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while allocating level 2 ipv4 subnet in EIPAM.  Error rolling back EIPAM level 1 pool.\" />\n\t","comments":"","x":4236.3753662109375,"y":1717.1807899475098,"z":"13273219.a2462e","wires":[]},{"id":"1b1b39d.6e1f5c6","type":"comment","name":"Check for mask override","info":"","comments":"","x":801.4335174560547,"y":317.6834487915039,"z":"13273219.a2462e","wires":[]},{"id":"53d875b9.e25a0c","type":"for","name":"for pidx..$network-topology-operation-input.network-request-input.network-input-parameters[]","xml":"<for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":2014.290756225586,"y":383.25492811203003,"z":"13273219.a2462e","wires":[["12b86022.9f3c9"]]},{"id":"5af4e899.fd1ad8","type":"switchNode","name":"network-topology-operation-input.network-request-input.network-input-parameters.param_length","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`\">","comments":"","outputs":1,"x":1027.1477813720703,"y":350.5405864715576,"z":"13273219.a2462e","wires":[["b56e9929.0631f8","77d0882a.eba8a8"]]},{"id":"b56e9929.0631f8","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1458.5762538909912,"y":350.9691696166992,"z":"13273219.a2462e","wires":[["98af4284.40a5d"]]},{"id":"98af4284.40a5d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1624.0048849923269,"y":351.11202730451305,"z":"13273219.a2462e","wires":[[]]},{"id":"77d0882a.eba8a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1442.8619270324707,"y":383.39773750305176,"z":"13273219.a2462e","wires":[["9e36687d.b7bc78"]]},{"id":"9e36687d.b7bc78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1614.8620376586914,"y":383.3977298736572,"z":"13273219.a2462e","wires":[["53d875b9.e25a0c"]]},{"id":"12b86022.9f3c9","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2449.4332122802734,"y":383.49296951293945,"z":"13273219.a2462e","wires":[["d16ce2be.ed367","9e089bc0.790198"]]},{"id":"d16ce2be.ed367","type":"execute","name":"SliStringUtils - check v4 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv4_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2713.7665405273438,"y":383.159610748291,"z":"13273219.a2462e","wires":[["2ed358db.e30918"]]},{"id":"2ed358db.e30918","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2941.100109100342,"y":383.15965461730957,"z":"13273219.a2462e","wires":[["2e214c0e.51b7d4"]]},{"id":"2e214c0e.51b7d4","type":"set","name":"set subnet override for v4","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":3147.4334564208984,"y":383.15959548950195,"z":"13273219.a2462e","wires":[]},{"id":"9e089bc0.790198","type":"execute","name":"SliStringUtils - check v6 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv6_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2712.0167541503906,"y":426.32629013061523,"z":"13273219.a2462e","wires":[["ce2eaebf.051b"]]},{"id":"ce2eaebf.051b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2941.3503227233887,"y":427.3263339996338,"z":"13273219.a2462e","wires":[["d902235b.05114"]]},{"id":"d902235b.05114","type":"set","name":"set subnet override for v6","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":3147.183547973633,"y":427.32629680633545,"z":"13273219.a2462e","wires":[]},{"id":"41091a95.2f2404","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v4\" value=\"`$network-model.ipv4-cidr-mask`\" />\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v6\" value=\"`$network-model.ipv6-cidr-mask`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":808.4333419799805,"y":293.15962982177734,"z":"13273219.a2462e","wires":[]},{"id":"40348bbc.184364","type":"execute","name":"SliStringUtils - substring clli","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\n    <parameter name=\"string\" value=\"`$aai.complex.physical-location-id`\" />\n    <parameter name=\"result\" value=\"tmp.location8\"/>\n    <parameter name=\"begin-index\" value=\"0\" />\n    <parameter name=\"end-index\" value=\"8\" />\n","comments":"","outputs":1,"x":809.0049133300781,"y":229.88975143432617,"z":"13273219.a2462e","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_process-generic-eipam-pools.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_process-generic-eipam-pools.json
new file mode 100755 (executable)
index 0000000..c9e8cd4
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"6639e046.20571","type":"comment","name":"Required INPUTS","info":"required INPUTS:\n\n$aai.cloud-region.cloud-region-id from AAI, vf-module-topology-operation-input or RA\nnetwork-model - from Tosca model or RA\ntmp.skip-first-level - set to Y if already created in EIPAM\ntmp.allocate-subnet-flag - Y if EIPAM should allocate automatically, \n       else N in which case eipam-allocate-generic-subnet will be called \n       to allocate subnet using same key_names & key_values as the createPool \n       based on generate-FQPN outputs.\nif driven by capabilities input, set following accordingly\n\t\t\tnetwork-model.eipam-v4-address-plan\n\t\t\tnetwork-model.eipam-v6-address-plan\n\t\t\tnetwork-model.use-ipv4\n\t\t\tnetwork-model.use-ipv6\n\nSet the necessary values as inputs for all the key_values as needed\n for the specific Address Plans based on generate-FQPN DG required inputs:\n\ngenerate-FQPN-input.aic-cloud-region\ngenerate-FQPN-input.location-clli8\ngenerate-FQPN-input.complex-region\ngenerate-FQPN-input.network-name\ngenerate-FQPN-input.network-role\ngenerate-FQPN-input.vrf-name\ngenerate-FQPN-input.network-collection\ngenerate-FQPN-input.network-id\ngenerate-FQPN-input.subnet-role\ngenerate-FQPN-input.zone\ngenerate-FQPN-input.equipment\n\nOptional Inputs\n\t\ntmp.activate-subnet-flag - set to Y or N to have EIPAM activate it(Default to Y)\t\n(If for shared network)\nnetwork-topology-operation-input.network-request-input.network-instance-group-id\n","comments":"","x":637.7777709960938,"y":99.99999809265137,"z":"5699c5cb.963a7c","wires":[]},{"id":"fbf3c5c8.de5c78","type":"dgstart","name":"DGSTART","outputs":1,"x":145.8730239868164,"y":25.55555534362793,"z":"5699c5cb.963a7c","wires":[["c869b773.2f8a58"]]},{"id":"c869b773.2f8a58","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":208.44445419311523,"y":77.5198392868042,"z":"5699c5cb.963a7c","wires":[["2dc4b3d0.17207c"]]},{"id":"2dc4b3d0.17207c","type":"method","name":"process-generic-eipam-pools","xml":"<method rpc=\"process-generic-eipam-pools\" mode=\"sync\">","comments":"This DG relys on generate-FQPN to determine the key_names & key_values for all levels for the specified plan-name.","outputs":1,"x":177.2222137451172,"y":157.8254165649414,"z":"5699c5cb.963a7c","wires":[["f85abacd.8c5448"]]},{"id":"4020be51.23848","type":"comment","name":"GENERIC-RESOURCE-API: process-generic-eipam-pools","info":"1806 - Used by VLAN-Tagging for network-collection. This can be reused by adding \nother key-values as needed by other Address Plans.","comments":"","x":509.9999694824219,"y":27.77777671813965,"z":"5699c5cb.963a7c","wires":[]},{"id":"7ef17b38.7db444","type":"for","name":"for l-idx: getPlanTopologyResponse.TopologyDetails[]","xml":"<for index=\"l-idx\" start=\"1\" end=\"`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length + 1`\">","comments":"","outputs":1,"x":384.3253059387207,"y":2139.920602798462,"z":"5699c5cb.963a7c","wires":[["fc1b7d2e.0283"]]},{"id":"f85abacd.8c5448","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":117.77777099609375,"y":264.4444408416748,"z":"5699c5cb.963a7c","wires":[["9b260fd6.396cf","8ca80066.09737","a6616785.d520f8","7ef17b38.7db444","801abe02.e2e1b","72c6fa14.eb5414","4f1fda53.55bbe4","9b3275bb.0d36d8","b17da27b.64d35","b8e79a11.50fec8","adf823e9.02928","98682fc4.05c22","a551348.af4dac8","e85e7565.d76da8","5e9374f6.85274c"]]},{"id":"9b260fd6.396cf","type":"set","name":"set: data initialization","xml":"<set>\n\t<parameter name=\"tmp.eipam-error\" value=\"false\" />\n\t<parameter name=\"tmp.create-v4-pool-flag\" value=\"N\" />\n\t<parameter name=\"tmp.create-v6-pool-flag\" value=\"N\" />\n\t<parameter name='eipam-ip-block.plans_length' value='0' />\n\t<parameter name=\"eipam-pool.v4.pre-existing\" value=\"false\"/>\n\t<parameter name=\"eipam-pool.v6.pre-existing\" value=\"false\"/>\n<!-- <parameter name=\"tmp.network-id\" value=\"`$tmp.l3-network.network-id`\" /> -->\n\t<parameter name=\"tmp.network-id\" value=\"`$network-topology-operation-input.network-information.network-id`\" />\n\n","comments":"","x":378.0159149169922,"y":201.1111421585083,"z":"5699c5cb.963a7c","wires":[]},{"id":"dc240e90.7c143","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":884.0478057861328,"y":1528.511996269226,"z":"5699c5cb.963a7c","wires":[["d7b5dc50.66bae"]]},{"id":"d7b5dc50.66bae","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1057.1430835723877,"y":1527.7025480270386,"z":"5699c5cb.963a7c","wires":[["c8e18c62.f671c"]]},{"id":"c8e18c62.f671c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":1203.1430854797363,"y":1527.7025480270386,"z":"5699c5cb.963a7c","wires":[]},{"id":"acef8d81.05eac","type":"set","name":"set generate-FQPN-input.plan-name v4","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v4-address-plan`' />\n","comments":"","x":958.4131126403809,"y":1449.742238998413,"z":"5699c5cb.963a7c","wires":[]},{"id":"8ca80066.09737","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":312.36134338378906,"y":1563.7501077651978,"z":"5699c5cb.963a7c","wires":[["cb7c8c1c.091c9","5ff70d5e.fcb184","90712d6.6f872d"]]},{"id":"5ff70d5e.fcb184","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":521.8614349365234,"y":1616.750150680542,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"cb7c8c1c.091c9","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":520.8614921569824,"y":1569.0000972747803,"z":"5699c5cb.963a7c","wires":[["be3bd336.71a94"]]},{"id":"be3bd336.71a94","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":678.3335800170898,"y":1527.7223300933838,"z":"5699c5cb.963a7c","wires":[["dc240e90.7c143","3e7b82c9.2f3e8e","acef8d81.05eac"]]},{"id":"90712d6.6f872d","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":517.8613967895508,"y":1525.9400367736816,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"fc1b7d2e.0283","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":664.722110748291,"y":2143.0636167526245,"z":"5699c5cb.963a7c","wires":[["e878ceff.dd9e7","4fdc7750.bee6d8","a5b75182.1e4e"]]},{"id":"4f1fda53.55bbe4","type":"switchNode","name":"switch: generate-FQPN-input.zone","xml":"<switch test='`$generate-FQPN-input.zone`'>\n","comments":"","outputs":1,"x":403.7500057220459,"y":430.0000114440918,"z":"5699c5cb.963a7c","wires":[["7d09f53.0ec530c"]]},{"id":"7d09f53.0ec530c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":615.0000114440918,"y":429.5000066757202,"z":"5699c5cb.963a7c","wires":[["2c36f082.69714"]]},{"id":"138dbc4b.50e054","type":"comment","name":"go thru each level in topology","info":"Level 1 is special case, since if EIPAM already created it, \nthen just skip.","comments":"","x":310.0596046447754,"y":2064.0476608276367,"z":"5699c5cb.963a7c","wires":[]},{"id":"e878ceff.dd9e7","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.level\" value='`$l-idx`' />\n<parameter name='eipam-pool.v4.pre-existing' value='false' />\n<parameter name='eipam-pool.v6.pre-existing' value='false' />\n","comments":"","x":874.8808746337891,"y":2141.8332347869873,"z":"5699c5cb.963a7c","wires":[]},{"id":"23866667.fbee0a","type":"comment","name":"Create pools for each level - includes v4 and v6","info":"","comments":"","x":368.2938117980957,"y":2101.095058441162,"z":"5699c5cb.963a7c","wires":[]},{"id":"4fdc7750.bee6d8","type":"call","name":"call eipam-create-generic-pool for l-idx level","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-create-generic-pool' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":921.9128074645996,"y":2178.5236492156982,"z":"5699c5cb.963a7c","wires":[["40f29997.00db98","af688d4d.bea39"]]},{"id":"40f29997.00db98","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1224.6744422912598,"y":2179.328414916992,"z":"5699c5cb.963a7c","wires":[["61dca39.09b5f5c"]]},{"id":"64182e18.d54fa","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"tmp.eipam-error\" value=\"true\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while creating pool\" />\n\t","comments":"","x":1587.7342262268066,"y":2176.0069007873535,"z":"5699c5cb.963a7c","wires":[]},{"id":"67b6f066.f59d3","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-generic-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"`$l-idx`\"/>\n<parameter name=\"field5\" value=\"`$eipam-pool.v4.pre-existing`\"/>\n<parameter name=\"field6\" value=\"eipam-pool.v4.pre-existing\"/>\n<parameter name=\"field7\" value=\"`$eipam-pool.v6.pre-existing`\"/>\n<parameter name=\"field8\" value=\"tmp.create-v4-pool-flag\" />\n<parameter name=\"field9\" value=\"`$tmp.create-v4-pool-flag`\" />\n<parameter name=\"field10\" value=\"tmp.create-v6-pool-flag\" />\n<parameter name=\"field11\" value=\"`$tmp.create-v6-pool-flag`\" />\n<parameter name=\"field12\" value=\"Successful\" />\n","comments":"","outputs":1,"x":1576.3542213439941,"y":2211.2271785736084,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"af688d4d.bea39","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1224.4969902038574,"y":2210.8778958320618,"z":"5699c5cb.963a7c","wires":[["cd684d36.53dbb"]]},{"id":"cd684d36.53dbb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1393.6080780029297,"y":2210.13196516037,"z":"5699c5cb.963a7c","wires":[["67b6f066.f59d3"]]},{"id":"61dca39.09b5f5c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1392.1162338256836,"y":2156.3464679718018,"z":"5699c5cb.963a7c","wires":[["64182e18.d54fa","a8738c2a.45fc"]]},{"id":"a8738c2a.45fc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-generic-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Error creating pool for level\"/>\n<parameter name=\"field5\" value=\"`$l-idx`\"/>\n\n","comments":"","outputs":1,"x":1570.985252380371,"y":2131.7431964874268,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"3e7b82c9.2f3e8e","type":"set","name":"set v4FQPN-output","xml":"<set>\n\t<parameter name=\"v4FQPN-output.\" value=\"generate-FQPN-output.\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":883.1549301147461,"y":1594.166742324829,"z":"5699c5cb.963a7c","wires":[]},{"id":"e6178867.650b28","type":"call","name":"call: generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >","comments":"","outputs":1,"x":891.2699584960938,"y":1732.916711807251,"z":"5699c5cb.963a7c","wires":[["51c1bf8e.d4ee8"]]},{"id":"51c1bf8e.d4ee8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1064.3652362823486,"y":1732.1072635650635,"z":"5699c5cb.963a7c","wires":[["1b67d960.c217c7"]]},{"id":"1b67d960.c217c7","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while generating FQPN: '+ $error-message`\" />\n","comments":"","x":1210.3652381896973,"y":1732.1072635650635,"z":"5699c5cb.963a7c","wires":[]},{"id":"96ff74dd.aeb058","type":"set","name":"set generate-FQPN-input.plan-name v6","xml":"<set>\n<parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v6-address-plan`' />\n","comments":"","x":944.2064781188965,"y":1680.7541151046753,"z":"5699c5cb.963a7c","wires":[]},{"id":"a6616785.d520f8","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":319.58349609375,"y":1768.1548233032227,"z":"5699c5cb.963a7c","wires":[["4f012967.c289a8","cf85cf74.c416b","e049d83c.4571c8"]]},{"id":"cf85cf74.c416b","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":529.0835876464844,"y":1821.154866218567,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"4f012967.c289a8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":528.0836448669434,"y":1773.4048128128052,"z":"5699c5cb.963a7c","wires":[["da6bc1e.6da914"]]},{"id":"da6bc1e.6da914","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":680.0201263427734,"y":1772.1271743774414,"z":"5699c5cb.963a7c","wires":[["e6178867.650b28","f5a220bc.5210c","96ff74dd.aeb058"]]},{"id":"e049d83c.4571c8","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":525.0835494995117,"y":1730.3447523117065,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"f5a220bc.5210c","type":"set","name":"set v6FQPN-output","xml":"<set>\n\t<parameter name=\"v6FQPN-output.\" value=\"generate-FQPN-output.\"/>\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":890.3771286010742,"y":1798.5714092254639,"z":"5699c5cb.963a7c","wires":[]},{"id":"9dff2817.fe14a8","type":"comment","name":"Check for mask override","info":"Only needed for allocateSubnet","comments":"","x":308.8663635253906,"y":1915.8623867034912,"z":"5699c5cb.963a7c","wires":[]},{"id":"44d80ecf.eafed","type":"for","name":"for pidx..$network-topology-operation-input.network-request-input.network-input-parameters[]","xml":"<for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":1521.7236022949219,"y":1981.4338660240173,"z":"5699c5cb.963a7c","wires":[["bcee52bc.a960d"]]},{"id":"72c6fa14.eb5414","type":"switchNode","name":"network-topology-operation-input.network-request-input.network-input-parameters.param_length","xml":"<switch test=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`\">","comments":"","outputs":1,"x":534.5806274414062,"y":1948.719524383545,"z":"5699c5cb.963a7c","wires":[["9b1de44.065e618","bb217635.69a128"]]},{"id":"9b1de44.065e618","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":966.0090999603271,"y":1949.1481075286865,"z":"5699c5cb.963a7c","wires":[["dd0b8cb9.090d4"]]},{"id":"dd0b8cb9.090d4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1131.4377310616628,"y":1949.2909652165004,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"bb217635.69a128","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":950.2947731018066,"y":1981.576675415039,"z":"5699c5cb.963a7c","wires":[["1532ecad.3b8f83"]]},{"id":"1532ecad.3b8f83","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1122.2948837280273,"y":1981.5766677856445,"z":"5699c5cb.963a7c","wires":[["44d80ecf.eafed"]]},{"id":"bcee52bc.a960d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1956.8660583496094,"y":1981.6719074249268,"z":"5699c5cb.963a7c","wires":[["434f2ab8.2dbe94","b8d20e27.f4ff8"]]},{"id":"434f2ab8.2dbe94","type":"execute","name":"SliStringUtils - check v4 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv4_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2221.1993865966797,"y":1981.3385486602783,"z":"5699c5cb.963a7c","wires":[["40772195.8256f"]]},{"id":"40772195.8256f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2448.5329551696777,"y":1981.3385925292969,"z":"5699c5cb.963a7c","wires":[["ed6c781b.a3ac38"]]},{"id":"ed6c781b.a3ac38","type":"set","name":"set subnet override for v4","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":2654.8663024902344,"y":1981.3385334014893,"z":"5699c5cb.963a7c","wires":[]},{"id":"b8d20e27.f4ff8","type":"execute","name":"SliStringUtils - check v6 override","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`\" />\n    <parameter name=\"target\" value=\"network_assignments_ipv6_subnet_default_assignment_cidr_mask\"/>\n  \n","comments":"","outputs":1,"x":2219.4496002197266,"y":2024.5052280426025,"z":"5699c5cb.963a7c","wires":[["71f73fc7.4a33a"]]},{"id":"71f73fc7.4a33a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2448.7831687927246,"y":2025.505271911621,"z":"5699c5cb.963a7c","wires":[["eda6c591.c61198"]]},{"id":"eda6c591.c61198","type":"set","name":"set subnet override for v6","xml":"<set>\n<parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\n\n","comments":"","x":2654.6163940429688,"y":2025.5052347183228,"z":"5699c5cb.963a7c","wires":[]},{"id":"801abe02.e2e1b","type":"set","name":"set subnet override if not set","xml":"<set>\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v4\" value=\"`$network-model.ipv4-cidr-mask`\" />\n\t<parameter name=\"eipam-ip-block.subnet-size-override-v6\" value=\"`$network-model.ipv6-cidr-mask`\" />","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","x":315.8661880493164,"y":1891.3385677337646,"z":"5699c5cb.963a7c","wires":[]},{"id":"b00c44bd.c95888","type":"set","name":"set: data initialization","xml":"<set>\n<parameter name=\"generate-FQPN-input.zone\" value=\"`$aai.cloud-region.cloud-zone`\" />\n","comments":"","x":963.7500152587891,"y":427.5000057220459,"z":"5699c5cb.963a7c","wires":[]},{"id":"2c36f082.69714","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":771.2500114440918,"y":427.5000057220459,"z":"5699c5cb.963a7c","wires":[["b00c44bd.c95888"]]},{"id":"9b3275bb.0d36d8","type":"switchNode","name":"switch: tmp.service-type","xml":"<switch test='`$tmp.service-type`'>\n","comments":"","outputs":1,"x":384.04766845703125,"y":256.1905059814453,"z":"5699c5cb.963a7c","wires":[["956294d5.bcf718"]]},{"id":"956294d5.bcf718","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":594.1071624755859,"y":254.73813247680664,"z":"5699c5cb.963a7c","wires":[["25f5220c.ae8cde"]]},{"id":"b4de5ae6.712548","type":"set","name":"set: data initialization","xml":"<set>\n<parameter name=\"tmp.service-type\" value=\"`$service-data.service-information.subscription-service-type`\" />","comments":"","x":984.0476474761963,"y":253.69050407409668,"z":"5699c5cb.963a7c","wires":[]},{"id":"25f5220c.ae8cde","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":753.21435546875,"y":253.6905059814453,"z":"5699c5cb.963a7c","wires":[["b4de5ae6.712548"]]},{"id":"b17da27b.64d35","type":"switchNode","name":"switch: generate-FQPN-input.network-collection","xml":"<switch test='`$generate-FQPN-input.network-collection`'>\n","comments":"","outputs":1,"x":438.57142639160156,"y":498.5714416503906,"z":"5699c5cb.963a7c","wires":[["b8f3f8e4.6c2538"]]},{"id":"b8f3f8e4.6c2538","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":671.2500534057617,"y":496.6428699493408,"z":"5699c5cb.963a7c","wires":[["f3de6cc4.41db3"]]},{"id":"545e806.2fb928","type":"set","name":"set: aai-network-collection.collection-name","xml":"<set>\n<parameter name=\"generate-FQPN-input.network-collection\" value=\"`$aai-network-collection.collection-name`\" />\n","comments":"","x":1061.4285583496094,"y":496.0714511871338,"z":"5699c5cb.963a7c","wires":[]},{"id":"f3de6cc4.41db3","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":806.0714321136475,"y":496.0714359283447,"z":"5699c5cb.963a7c","wires":[["545e806.2fb928"]]},{"id":"86ca1ebb.981a9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1165.031940460205,"y":765.4999933242798,"z":"5699c5cb.963a7c","wires":[["9d2d3fba.a2a9d"]]},{"id":"9d2d3fba.a2a9d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":1340.0319137573242,"y":765.5000295639038,"z":"5699c5cb.963a7c","wires":[]},{"id":"da212f7d.7dcf1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1173.960536956787,"y":716.7857265472412,"z":"5699c5cb.963a7c","wires":[["381c75fc.e73bea"]]},{"id":"381c75fc.e73bea","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`\" />\n","comments":"","x":1340.309814453125,"y":716.0913038253784,"z":"5699c5cb.963a7c","wires":[]},{"id":"ca932ed8.9d846","type":"for","name":"for relationship list","xml":"<for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":905.7619552612305,"y":956.6062526702881,"z":"5699c5cb.963a7c","wires":[["efe6069a.2b0288"]]},{"id":"9717a9fb.4c8bf8","type":"get-resource","name":"get-resource: AAI cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\n\t\t     depth = '0'\"\n        pfx='aai.cloud-region' >\n\n","comments":"","outputs":1,"x":945.5357322692871,"y":739.5991458892822,"z":"5699c5cb.963a7c","wires":[["da212f7d.7dcf1","86ca1ebb.981a9"]]},{"id":"fb22d8a.f128c28","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2278.230480194092,"y":1152.3372926712036,"z":"5699c5cb.963a7c","wires":[["301f2e89.56c8c2"]]},{"id":"301f2e89.56c8c2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving complex from AAI\" />\n","comments":"","x":2444.766124725342,"y":1151.837332725525,"z":"5699c5cb.963a7c","wires":[]},{"id":"1bdd0a0a.ab33f6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2284.7304763793945,"y":1108.3373537063599,"z":"5699c5cb.963a7c","wires":[["f024720e.f09cf"]]},{"id":"f024720e.f09cf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Complex not found in AAI\" />\n","comments":"","x":2452.508403778076,"y":1108.6427011489868,"z":"5699c5cb.963a7c","wires":[]},{"id":"28bc7ee.8785882","type":"get-resource","name":"get-resource complex","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"complex\" \n\t\tkey=\"complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value\"\n    pfx='aai.complex' >\n        \n\n\n","comments":"","outputs":1,"x":2076.876953125,"y":1108.2938966751099,"z":"5699c5cb.963a7c","wires":[["1bdd0a0a.ab33f6","fb22d8a.f128c28"]]},{"id":"d739427d.15e62","type":"switchNode","name":"switch: relationship-key","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1355.6786727905273,"y":956.3931171894073,"z":"5699c5cb.963a7c","wires":[["98a7bb6b.95b5d8"]]},{"id":"98a7bb6b.95b5d8","type":"other","name":"complex.physical-location-id","xml":"<outcome value='complex.physical-location-id'>\n","comments":"","outputs":1,"x":1611.6074142456055,"y":956.666912317276,"z":"5699c5cb.963a7c","wires":[["b87b5e4d.10389"]]},{"id":"9475a09a.394d","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":2023.9759368896484,"y":956.3218030929565,"z":"5699c5cb.963a7c","wires":[["8d249718.6ab0b8","9b601edb.f09cc","c9a7d699.c01ec8"]]},{"id":"8d249718.6ab0b8","type":"set","name":"set tmp.aic-clli","xml":"<set>\n<parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\n\n","comments":"","x":2228.952850341797,"y":954.6828660964966,"z":"5699c5cb.963a7c","wires":[]},{"id":"fbc819eb.798958","type":"switchNode","name":"switch cloud-region.relationship_length","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":970.3690147399902,"y":843.0991458892822,"z":"5699c5cb.963a7c","wires":[["ab469986.4e2c88","da9bb44.0e72648"]]},{"id":"ab469986.4e2c88","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1220.6190867953828,"y":819.5992327796089,"z":"5699c5cb.963a7c","wires":[["7374cc22.079c84"]]},{"id":"da9bb44.0e72648","type":"other","name":"null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1223.869083404541,"y":868.5992679595947,"z":"5699c5cb.963a7c","wires":[["7374cc22.079c84"]]},{"id":"7374cc22.079c84","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"cloud-region missing relationships in AAI\" />\n","comments":"","x":1395.3690910339355,"y":839.5992670059204,"z":"5699c5cb.963a7c","wires":[]},{"id":"efe6069a.2b0288","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":1130.583351135254,"y":956.5158245563507,"z":"5699c5cb.963a7c","wires":[["d739427d.15e62"]]},{"id":"1803ac81.8f2153","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":669.5,"y":740.0991821289062,"z":"5699c5cb.963a7c","wires":[["9717a9fb.4c8bf8","fbc819eb.798958","ca932ed8.9d846","4aa2f647.930768","e039c810.d4c378"]]},{"id":"9b601edb.f09cc","type":"execute","name":"substring aic-clli to 8 chars","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\n   <parameter name='result' value='tmp.truncated.clli8' />\n   <parameter name='string' value='`$tmp.aic-clli`' />\n   <parameter name='begin-index' value='0' />\n   <parameter name='end-index' value='8' />\n","comments":"","outputs":1,"x":2269.4998092651367,"y":1002.833295583725,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"c9a7d699.c01ec8","type":"set","name":"set generate-FQPN-input.location-clli8","xml":"<set>\n<parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\n","comments":"","x":2306.888832092285,"y":1050.1664941310883,"z":"5699c5cb.963a7c","wires":[]},{"id":"98340d5a.0362c","type":"set","name":"set generate-FQPN-input.complex-region","xml":"<set>\n<parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\n","comments":"","x":2136.8333740234375,"y":1201.8332271575928,"z":"5699c5cb.963a7c","wires":[]},{"id":"b87b5e4d.10389","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1844.4999046325684,"y":956.4999418258667,"z":"5699c5cb.963a7c","wires":[["9475a09a.394d","28bc7ee.8785882","98340d5a.0362c"]]},{"id":"4aa2f647.930768","type":"set","name":"set generate-FQPN-input.aic-cloud-region","xml":"<set>\n<parameter name='generate-FQPN-input.aic-cloud-region' \n\tvalue='`$aai.cloud-region.cloud-region-id`' />\n","comments":"","x":972.3094863891602,"y":1029.4998931884766,"z":"5699c5cb.963a7c","wires":[]},{"id":"7db1b35.ac8294c","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":382.07144927978516,"y":720.9285545349121,"z":"5699c5cb.963a7c","wires":[]},{"id":"ed117b9f.a2e7e8","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":2539.214080810547,"y":1024.0237035751343,"z":"5699c5cb.963a7c","wires":[]},{"id":"96f4e3b.c6c072","type":"comment","name":"generate-FQPN-input","info":"","comments":"","x":2236.8331985473633,"y":1226.166579246521,"z":"5699c5cb.963a7c","wires":[]},{"id":"491cd8eb.eb1878","type":"comment","name":"generate-FQPN calls getPlanTopology","info":"also sets all the key_values for the FQPN in \ncontext memory, generate-FQPN-output.","comments":"","x":962.5,"y":1490,"z":"5699c5cb.963a7c","wires":[]},{"id":"1822dfed.b1cc9","type":"comment","name":"generate-FQPN calls getPlanTopology","info":"also sets all the key_values for the FQPN in \ncontext memory, generate-FQPN-output.","comments":"","x":995,"y":1766.25,"z":"5699c5cb.963a7c","wires":[]},{"id":"b8e79a11.50fec8","type":"switchNode","name":"switch: generate-FQPN-input.aic-cloud-region","xml":"<switch test='`$generate-FQPN-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":434,"y":556,"z":"5699c5cb.963a7c","wires":[["59f6597b.6ffc58"]]},{"id":"59f6597b.6ffc58","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":666.6786270141602,"y":554.0714282989502,"z":"5699c5cb.963a7c","wires":[["1803ac81.8f2153"]]},{"id":"adf823e9.02928","type":"switchNode","name":"switch: generate-FQPN-input.location-clli8","xml":"<switch test='`$generate-FQPN-input.location-clli8`'>\n","comments":"","outputs":1,"x":436,"y":608,"z":"5699c5cb.963a7c","wires":[["67c0821f.539b8c"]]},{"id":"67c0821f.539b8c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":668.6786270141602,"y":606.0714282989502,"z":"5699c5cb.963a7c","wires":[["1803ac81.8f2153"]]},{"id":"98682fc4.05c22","type":"switchNode","name":"switch: generate-FQPN-input.complex-region","xml":"<switch test='`$generate-FQPN-input.complex-region`'>\n","comments":"","outputs":1,"x":450,"y":654,"z":"5699c5cb.963a7c","wires":[["82e9c9a2.d20dc8"]]},{"id":"82e9c9a2.d20dc8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":682.6786270141602,"y":652.0714282989502,"z":"5699c5cb.963a7c","wires":[["1803ac81.8f2153"]]},{"id":"a551348.af4dac8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\t<parameter name=\"error-code\" value=\"200\" />\n","comments":"","x":263.0357360839844,"y":3660.2740812301636,"z":"5699c5cb.963a7c","wires":[]},{"id":"d1765fc3.935b1","type":"call","name":"call eipam-allocate-generic-subnet for pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2356.666793823242,"y":3254.841824531555,"z":"5699c5cb.963a7c","wires":[["3b3626f5.f162fa","42cbb94.17a6648"]]},{"id":"3b3626f5.f162fa","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2663.8931198120117,"y":3306.598602771759,"z":"5699c5cb.963a7c","wires":[["2310bb6.a2a2d44"]]},{"id":"2310bb6.a2a2d44","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2853.636161804199,"y":3304.7354435920715,"z":"5699c5cb.963a7c","wires":[["e18dd490.2c0658"]]},{"id":"42cbb94.17a6648","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2674.656089782715,"y":3240.1005959510803,"z":"5699c5cb.963a7c","wires":[["35f38429.2717ec"]]},{"id":"5057c561.1fec3c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.v6.allocateSubnetResponse.Mask`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n<parameter name=\"field9\" value=\"`$l-idx`\" />\n\n","comments":"","outputs":1,"x":3000.346607208252,"y":3244.6600856781006,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"aaa362d4.f1a14","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv6' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2320.9418411254883,"y":3214.5453169345856,"z":"5699c5cb.963a7c","wires":[]},{"id":"d64954e8.a03148","type":"set","name":"set l3-network","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3210.2033157348633,"y":3119.461950302124,"z":"5699c5cb.963a7c","wires":[]},{"id":"35f38429.2717ec","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2839.6822662353516,"y":3238.6985173225403,"z":"5699c5cb.963a7c","wires":[["5057c561.1fec3c","2d3968a5.a9c078"]]},{"id":"650f65f9.50eb5c","type":"get-resource","name":"get-resource V6 - validate if subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = $l-idx and k.key_value = $key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1680.0796661376953,"y":3170.920791864395,"z":"5699c5cb.963a7c","wires":[["8f2a02b7.9ab9","386387b5.398a38"]]},{"id":"8f2a02b7.9ab9","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1935.6986198425293,"y":3161.3971016407013,"z":"5699c5cb.963a7c","wires":[["605fd1e9.217db"]]},{"id":"386387b5.398a38","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1944.560749053955,"y":3207.397132396698,"z":"5699c5cb.963a7c","wires":[["1d82ae2a.4003d2"]]},{"id":"1d82ae2a.4003d2","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2094.7769203186035,"y":3205.3610911369324,"z":"5699c5cb.963a7c","wires":[["aaa362d4.f1a14","d1765fc3.935b1"]]},{"id":"86a8580d.287a38","type":"comment","name":"Check if ipv6 subnet exists","info":"","comments":"","x":1595.4447479248047,"y":3139.254208803177,"z":"5699c5cb.963a7c","wires":[]},{"id":"605fd1e9.217db","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2118.9207878112793,"y":3161.3971016407013,"z":"5699c5cb.963a7c","wires":[["c57058d3.2193a8","5a07c5f5.d6169c"]]},{"id":"c57058d3.2193a8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level:\" />\n<parameter name=\"field5\" value=\"`$l-idx`\" />\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level:\" />\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv6\"/>\n<parameter name=\"field9\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n","comments":"","outputs":1,"x":2265.492088317871,"y":3135.1115028858185,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"5a07c5f5.d6169c","type":"set","name":"set pre-existing for l3subnet for level1","xml":"<set>\n<parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n","comments":"","x":2341.4918212890625,"y":3175.841957092285,"z":"5699c5cb.963a7c","wires":[]},{"id":"e18dd490.2c0658","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate ipv6 subnet - failure from eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field9\" value=\"`$l-idx`\" />\n\n\n","comments":"","outputs":1,"x":3024.8099517822266,"y":3304.5238814353943,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"a5b75182.1e4e","type":"switchNode","name":"switch: tmp.allocate-subnet-flag","xml":"<switch test=\"`$tmp.allocate-subnet-flag`\">","comments":"","outputs":1,"x":886.6665802001953,"y":2265.3331823349,"z":"5699c5cb.963a7c","wires":[["3e556ee3.331412","d2460beb.20a458","ca0d59da.ac99f8"]]},{"id":"d2460beb.20a458","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1091.6667938232422,"y":2260.8889875411987,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"ca0d59da.ac99f8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1037.0953903198242,"y":3348.853012084961,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"8239630d.c2116","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1122.425054550171,"y":2319.7187461853027,"z":"5699c5cb.963a7c","wires":[["6b70862c.498308","4a1da2fb.b241dc"]]},{"id":"3e556ee3.331412","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":973.6192321777344,"y":2319.6030082702637,"z":"5699c5cb.963a7c","wires":[["8239630d.c2116"]]},{"id":"3f20acf7.1dafa4","type":"comment","name":"Check if need to allocateSubnet","info":" tmp.allocate-subnet-flag = 'Y', \n \tif EIPAM should create subnet\n \n tmp.allocate-subnet-flag = 'N', \n \twe need to explicitly call allocateSubnet","comments":"","x":902.8412017822266,"y":2358.984079360962,"z":"5699c5cb.963a7c","wires":[]},{"id":"3ff3fe7e.90a822","type":"call","name":"call eipam-allocate-generic-subnet for pool","xml":"<call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\n","comments":"","outputs":1,"x":2354.5716094970703,"y":2513.5078859329224,"z":"5699c5cb.963a7c","wires":[["e1bdb83c.a688b8","f3e9c5a5.d9a7a8"]]},{"id":"e1bdb83c.a688b8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":2597.559352874756,"y":2563.2649002075195,"z":"5699c5cb.963a7c","wires":[["3c8c2b49.ef4c44"]]},{"id":"3c8c2b49.ef4c44","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2751.0524711608887,"y":2563.901786804199,"z":"5699c5cb.963a7c","wires":[["1f76867c.edc97a"]]},{"id":"f3e9c5a5.d9a7a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2592.9889640808105,"y":2479.433473587036,"z":"5699c5cb.963a7c","wires":[["29886065.7b87a"]]},{"id":"6b7a605a.82a84","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"eipam-ip-block.ip-prefix\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ip-prefix`\"/>\n<parameter name=\"field6\" value=\"eipam-ip-block.mask\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.v4.allocateSubnetResponse.Mask`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n<parameter name=\"field9\" value=\"`$l-idx`\" />\n\n","comments":"","outputs":1,"x":2921.179618835449,"y":2484.826536178589,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"1d0d24bf.20366b","type":"set","name":"set values needed for eipam","xml":"<set>\n<parameter name='eipam-ip-block.entity-id' value='' />\n<parameter name='eipam-ip-block.ip-prefix' value='' />\n<parameter name='eipam-ip-block.mask' value='' />\n<parameter name=\"eipam-ip-block.allocate-version\" value='ipv4' />\n<parameter name='eipam-ip-block.plans_length' value='0' />\n\n","comments":"","x":2324.8463745117188,"y":2470.6400938034058,"z":"5699c5cb.963a7c","wires":[]},{"id":"8a808da6.c949c","type":"set","name":"set allocateSubnetResponse","xml":"<set>\n<parameter name='eipam-ip-block.v4.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\n","comments":"","x":2983.179039001465,"y":2445.735324859619,"z":"5699c5cb.963a7c","wires":[]},{"id":"29886065.7b87a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2758.0151405334473,"y":2478.031394958496,"z":"5699c5cb.963a7c","wires":[["6b7a605a.82a84","8a808da6.c949c"]]},{"id":"54544b58.e03b54","type":"get-resource","name":"get-resource V4 - validate if subnet does not exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = $l-idx and k.key_value = $key-value ; \"\n        pfx='tmp.eipam-subnet-row'>\n\n","comments":"","outputs":1,"x":1626.4810829162598,"y":2451.1004180908203,"z":"5699c5cb.963a7c","wires":[["8187134c.209d9","647284d.c22dc7c"]]},{"id":"8187134c.209d9","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1891.6240577697754,"y":2442.945469856262,"z":"5699c5cb.963a7c","wires":[["36963d61.1dcad2"]]},{"id":"647284d.c22dc7c","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1891.7361183166504,"y":2472.6955013275146,"z":"5699c5cb.963a7c","wires":[["8f13420f.962d7"]]},{"id":"8f13420f.962d7","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":2048.202308654785,"y":2469.4094285964966,"z":"5699c5cb.963a7c","wires":[["1d0d24bf.20366b","3ff3fe7e.90a822"]]},{"id":"36963d61.1dcad2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":2045.7393035888672,"y":2433.4455308914185,"z":"5699c5cb.963a7c","wires":[["314e158d.d4258a","1284868e.f212b9"]]},{"id":"314e158d.d4258a","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Existing eipam-ip-block.ip-prefix for level:\" />\n<parameter name=\"field5\" value=\"`$l-idx`\" />\n<parameter name=\"field6\" value=\"Existing eipam-ip-block.mask for level:\" />\n<parameter name=\"field7\" value=\"`$tmp.eipam-subnet-row.prefix-length`\"/>\n<parameter name=\"field8\" value=\"ipv4\"/>\n<parameter name=\"field9\" value=\"`$tmp.eipam-subnet-row.ip-address`\"/>\n\n","comments":"","outputs":1,"x":2245.2626991271973,"y":2396.6121950149536,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"1284868e.f212b9","type":"set","name":"set pre-existing for l3subnet for level","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\n\n\n","comments":"","x":2337.0009002685547,"y":2439.2357625961304,"z":"5699c5cb.963a7c","wires":[]},{"id":"1f76867c.edc97a","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.process-eipam-pools:REQID\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to allocate ipv4 subnet - failure from eipam-allocate-network-role-subnet\"/>\n<parameter name=\"field5\" value=\"`$l-idx`\" />\n\n\n","comments":"","outputs":1,"x":2900.905590057373,"y":2564.1433877944946,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"7da7a71d.1d7828","type":"comment","name":"Check if ipv4 subnet exists","info":"","comments":"","x":1723.9205627441406,"y":2411.444664955139,"z":"5699c5cb.963a7c","wires":[]},{"id":"6b70862c.498308","type":"switchNode","name":"switch: network-model.use-ipv4","xml":"<switch test=\"`$network-model.use-ipv4`\">","comments":"","outputs":1,"x":1340.0001068115234,"y":2321.7145385742188,"z":"5699c5cb.963a7c","wires":[["c212db95.eddde8","53f30b08.a1b714","2727e599.65d53a"]]},{"id":"53f30b08.a1b714","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1558.0716514587402,"y":2360.4288005828857,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"c212db95.eddde8","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1557.0719757080078,"y":2319.8218784332275,"z":"5699c5cb.963a7c","wires":[["eebf3959.20d158"]]},{"id":"2727e599.65d53a","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1555.5000534057617,"y":2276.7615671157837,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"eebf3959.20d158","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1350.0000457763672,"y":2451.2383489608765,"z":"5699c5cb.963a7c","wires":[["54544b58.e03b54"]]},{"id":"4a1da2fb.b241dc","type":"switchNode","name":"switch: network-model.use-ipv6","xml":"<switch test=\"`$network-model.use-ipv6`\">","comments":"","outputs":1,"x":1259.523796081543,"y":3030.7622203826904,"z":"5699c5cb.963a7c","wires":[["f2572e73.48074","867a323f.a6147","127b2530.ff579b"]]},{"id":"867a323f.a6147","type":"other","name":"NULL","xml":"<outcome value=\"\">","comments":"","outputs":1,"x":1469.0238876342773,"y":3083.7622632980347,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"f2572e73.48074","type":"other","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1465.1668853759766,"y":3038.8696851730347,"z":"5699c5cb.963a7c","wires":[["8ddbfb35.fa6be8"]]},{"id":"127b2530.ff579b","type":"other","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1465.0238494873047,"y":2992.9521493911743,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"8ddbfb35.fa6be8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1398.5715637207031,"y":3170.7620363235474,"z":"5699c5cb.963a7c","wires":[["650f65f9.50eb5c"]]},{"id":"e85e7565.d76da8","type":"switchNode","name":"switch: generate-FQPN-input.network-name","xml":"<switch test='`$generate-FQPN-input.network-name`'>\n","comments":"","outputs":1,"x":428.33331298828125,"y":368.33331298828125,"z":"5699c5cb.963a7c","wires":[["579a6475.72ab8c"]]},{"id":"579a6475.72ab8c","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":656.7261581420898,"y":363.5476026535034,"z":"5699c5cb.963a7c","wires":[["196e4862.4a59a8"]]},{"id":"377485c2.ec409a","type":"set","name":"set: data initialization","xml":"<set>\n<parameter name=\"generate-FQPN-input.network-name\" value=\"`$network-topology-identifier-structure.network-name`\" />\n","comments":"","x":988.3333225250244,"y":365.83330726623535,"z":"5699c5cb.963a7c","wires":[]},{"id":"196e4862.4a59a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":795.8333187103271,"y":365.83330726623535,"z":"5699c5cb.963a7c","wires":[["377485c2.ec409a"]]},{"id":"5e9374f6.85274c","type":"switchNode","name":"switch: tmp.network-instance-group-id","xml":"<switch test='`$tmp.network-instance-group-id`'>\n","comments":"","outputs":1,"x":383.33331298828125,"y":298.33331298828125,"z":"5699c5cb.963a7c","wires":[["7636bd97.fe7f74"]]},{"id":"7636bd97.fe7f74","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":593.3928070068359,"y":296.8809394836426,"z":"5699c5cb.963a7c","wires":[["3812c68b.d31d3a"]]},{"id":"6cc90794.819c48","type":"set","name":"set: data initialization","xml":"<set>\n<parameter name=\"tmp.network-instance-group-id\" value=\"`$network-topology-operation-input.network-request-input.network-instance-group-id`\" />","comments":"","x":983.3332920074463,"y":295.8333110809326,"z":"5699c5cb.963a7c","wires":[]},{"id":"3812c68b.d31d3a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":752.5,"y":295.83331298828125,"z":"5699c5cb.963a7c","wires":[["6cc90794.819c48"]]},{"id":"e039c810.d4c378","type":"execute","name":"get prop","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n<parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n<parameter name='contextPrefix' value='prop' />","comments":"","outputs":1,"x":878.9027913411458,"y":668.9236195882162,"z":"5699c5cb.963a7c","wires":[[]]},{"id":"91fc65fd.117318","type":"set","name":"set l3-network","xml":"<set>\n<parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='' />\n<parameter name='tmp.l3-network.level1.v4.entity-id' value='`$eipam-ip-block.entity-id`' />\n<parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='tmp.l3-network.level1.v4.mask' value='`$eipam-ip-block.mask`' />\n","comments":"","x":3064.265625,"y":2372.5390625,"z":"5699c5cb.963a7c","wires":[]},{"id":"2d3968a5.a9c078","type":"set","name":"set allocateSubnetResponse","xml":"<set>\n<parameter name='eipam-ip-block.v6.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\n","comments":"","x":3062.5157508850098,"y":3202.538601875305,"z":"5699c5cb.963a7c","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.json
new file mode 100644 (file)
index 0000000..ea2fc9a
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"bf3334ad.aa95c8","type":"for","name":"for each l3-network","xml":"<for index='network-index' start='0' end='`$tmp.aai.l3-networks.l3-network_length`' >\n","comments":"","outputs":1,"x":954,"y":926.4010419845581,"z":"feb1c694.520168","wires":[["4424c7b4.c59f48"]]},{"id":"119ee255.4a85ae","type":"switchNode","name":"switch : aic-cloud-region - relationship-value == input","xml":"<switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $query-aai-l3-network-by-network-role-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":2333.6945724487305,"y":1135.9482860565186,"z":"feb1c694.520168","wires":[["91405384.4ade9"]]},{"id":"91405384.4ade9","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2614.6946029663086,"y":1136.0912313461304,"z":"feb1c694.520168","wires":[["e38015d.73828e8"]]},{"id":"e38015d.73828e8","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":2748.5275802612305,"y":1135.5673398971558,"z":"feb1c694.520168","wires":[["95b3e438.5935d8","1ef86d14.11e0f3"]]},{"id":"95b3e438.5935d8","type":"set","name":"set cloud.matched.l3-networks[]","xml":"<set>\n<parameter name='cloud.matched.l3-networks[$cloud.matched.l3-networks_length].' \n\tvalue='$tmp.aai.l3-networks.l3-network[$network-index].' />","comments":"","x":2974.416374206543,"y":1135.5672016143799,"z":"feb1c694.520168","wires":[]},{"id":"c177097b.58dea8","type":"dgstart","name":"DGSTART","outputs":1,"x":100.61910247802734,"y":47.99999713897705,"z":"feb1c694.520168","wires":[["608f149b.34f30c"]]},{"id":"608f149b.34f30c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":362.90482330322266,"y":48.17857074737549,"z":"feb1c694.520168","wires":[["e9648dda.ccd68"]]},{"id":"e9648dda.ccd68","type":"method","name":"method: query-aai-l3-network-by-network-role","xml":"<method rpc='query-aai-l3-network-by-network-role' mode='sync'>\n","comments":"","outputs":1,"x":225.94051361083984,"y":110.37698078155518,"z":"feb1c694.520168","wires":[["2ee88c19.4df2e4"]]},{"id":"12517b26.0dc7b5","type":"comment","name":"Required INPUTS","info":"query-aai-l3-network-by-network-role-input.filter\n - Either filter=[aic-cloud-region|service-instance-id|Other]\n   - Other: match on aic-cloud-region first; if more than 1 match, \n     then match against service-instance-id\n   - aic-cloud-region: match on 1st occurance of cloud region id\n   - service-instance-id: match on 1st occurance of service-instance-id\n\nquery-aai-l3-network-by-network-role-input.aic-cloud-region\n - filter multiple l3-networks with same network-role\n\nquery-aai-l3-network-by-network-role-input.service-instance-id\n - filter multiple l3-networks with same network-role and\n   aic-cloud-region, \n   \nquery-aai-l3-network-by-network-role-input.network-role\n - key for l3-network from AAI query\n ","comments":"","x":742.4405517578125,"y":47,"z":"feb1c694.520168","wires":[]},{"id":"93c2ab0e.7958f8","type":"get-resource","name":"get-resource l3-networks by network-role","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-networks\" \n\t\tkey=\"l3-network.network-role = $query-aai-l3-network-by-network-role-input.network-role\" \n\tpfx='tmp.aai.l3-networks' >","comments":"","outputs":1,"x":503.6429138183594,"y":463.210355758667,"z":"feb1c694.520168","wires":[["5cbbeab8.150404","52bcd52.4d21e2c"]]},{"id":"52bcd52.4d21e2c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":755.6906280517578,"y":485.3531951904297,"z":"feb1c694.520168","wires":[["3d7eccad.709ca4"]]},{"id":"3d7eccad.709ca4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Error retrieving l3-network from AAI with network-role = ' + $query-aai-l3-network-by-network-role-input.network-role`\" />\n","comments":"","x":930.690601348877,"y":485.3532314300537,"z":"feb1c694.520168","wires":[]},{"id":"5cbbeab8.150404","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":764.6192245483398,"y":443.6389284133911,"z":"feb1c694.520168","wires":[["251e6c77.f17114"]]},{"id":"251e6c77.f17114","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No active l3-network found in AAI with cloud_region_id '\n          + $vnf-topology-operation-input.vnf-request-information.aic-cloud-region + ' and network_role '\n          + $query-aai-l3-network-by-network-role-input.network-role`\" />\n","comments":"","x":930.9685020446777,"y":442.9445056915283,"z":"feb1c694.520168","wires":[]},{"id":"2a1dd340.f0380c","type":"comment","name":"Returns tmp.aai.l3-networks[]","info":"","comments":"","x":1128.0079862806533,"y":458.06749153137207,"z":"feb1c694.520168","wires":[]},{"id":"48a24709.984178","type":"switchNode","name":"switch: input.aic-cloud-region","xml":"<switch test='`$query-aai-l3-network-by-network-role-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":468.5476837158203,"y":182.9285659790039,"z":"feb1c694.520168","wires":[["6a12f78b.c08e18"]]},{"id":"6a12f78b.c08e18","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":694.797664642334,"y":183.1785659790039,"z":"feb1c694.520168","wires":[["4b61b754.ab7388"]]},{"id":"4b61b754.ab7388","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"query-aai-l3-network-by-network-role-input.aic-cloud-region is null\" />\n","comments":"","x":856.7143363952637,"y":183.2896647453308,"z":"feb1c694.520168","wires":[]},{"id":"87170b50.c8b308","type":"switchNode","name":"switch: input.service-instance-id","xml":"<switch test='`$query-aai-l3-network-by-network-role-input.service-instance-id`'>\n","comments":"","outputs":1,"x":476.29766845703125,"y":230.9285659790039,"z":"feb1c694.520168","wires":[["f2134453.11a5e8"]]},{"id":"f2134453.11a5e8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":709.7976760864258,"y":230.4285659790039,"z":"feb1c694.520168","wires":[["32323a30.adcc96"]]},{"id":"32323a30.adcc96","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"query-aai-l3-network-by-network-role-input.service-instance-id is null\" />\n","comments":"","x":871.7143478393555,"y":230.5396647453308,"z":"feb1c694.520168","wires":[]},{"id":"e6e4ed73.68284","type":"switchNode","name":"switch: input.network-role","xml":"<switch test='`$query-aai-l3-network-by-network-role-input.network-role`'>\n","comments":"","outputs":1,"x":457.04766845703125,"y":279.6785697937012,"z":"feb1c694.520168","wires":[["39cb02ff.11c3de"]]},{"id":"39cb02ff.11c3de","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":663.5476760864258,"y":279.1785697937012,"z":"feb1c694.520168","wires":[["6eccddc7.ef39a4"]]},{"id":"6eccddc7.ef39a4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"query-aai-l3-network-by-network-role-input.network-role is null\" />\n","comments":"","x":825.4643478393555,"y":279.2896685600281,"z":"feb1c694.520168","wires":[]},{"id":"2ee88c19.4df2e4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":188.86910247802734,"y":183.24999713897705,"z":"feb1c694.520168","wires":[["48a24709.984178","e6e4ed73.68284","93c2ab0e.7958f8","8c3ad4c3.1173b8","762f5443.53124c","36e9d5a6.c6e93a","87170b50.c8b308"]]},{"id":"d12e8629.e48a78","type":"comment","name":"Change History","info":"9/20/17\n- added otpion to match on aic-cloud-region only, service-instance-id only, or both\n9555\n- added set node to empty query-aai-l3-network-by-network-role-output and tmp.aai.l3-networks.\n9675\n- return error when no l3-network found with the given cloud-region instead of picking the first network found in the list\n- return error when no l3-network found with the given cloud-region and service-instance-id\n- removed filter option to query only by cloud-region or service-instance-id; i.e. query must be by cloud-region and then service-instance-id\n10846\n- node 11, 12 fixed network-role variable in error-message","comments":"","x":114.94052124023438,"y":300.0357093811035,"z":"feb1c694.520168","wires":[]},{"id":"f84da69.6e03a58","type":"for","name":"for relationship list","xml":"<for index='ridx' start='0' end='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1352.0358123779297,"y":987.0596609115601,"z":"feb1c694.520168","wires":[["3dd4f64f.d4b96a"]]},{"id":"41f1c1ff.38c4a","type":"switchNode","name":"switch: relationship-key","xml":"<switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":1745.7977600097656,"y":1135.3148355484009,"z":"feb1c694.520168","wires":[["63768c9a.07fbc4"]]},{"id":"63768c9a.07fbc4","type":"other","name":"cloud-region.cloud-region-id","xml":"<outcome value='cloud-region.cloud-region-id'>\n","comments":"","outputs":1,"x":1992.7265014648438,"y":1135.5886306762695,"z":"feb1c694.520168","wires":[["119ee255.4a85ae"]]},{"id":"f7a5b0c6.f93ab","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":1525.2024383544922,"y":1135.4375448226929,"z":"feb1c694.520168","wires":[["41f1c1ff.38c4a"]]},{"id":"1ef86d14.11e0f3","type":"set","name":"set cloud.matched.l3-networks_length++","xml":"<set>\n<parameter name='cloud.matched.l3-networks_length' value='`$cloud.matched.l3-networks_length + 1`' />","comments":"","x":3002.797737121582,"y":1182.3612508773804,"z":"feb1c694.520168","wires":[]},{"id":"8c3ad4c3.1173b8","type":"switchNode","name":"switch : $tmp.aai.l3-networks.l3-network_length","xml":"<switch test='`$tmp.aai.l3-networks.l3-network_length`'>\n","comments":"","outputs":1,"x":518.0476760864258,"y":552.8928813934326,"z":"feb1c694.520168","wires":[["7b296b5.86add94","902a8730.77e468"]]},{"id":"7b296b5.86add94","type":"outcomeTrue","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":788.5476760864258,"y":552.8928813934326,"z":"feb1c694.520168","wires":[["ece02720.817ac8"]]},{"id":"ece02720.817ac8","type":"set","name":"set query-aai-l3-network-by-network-role-output","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \n\tvalue='`$tmp.aai.l3-networks.l3-network[0].`' />\n\t\n<!--\n<parameter name='query-aai-l3-network-by-network-role-output.network-id' \n\tvalue='`$tmp.aai.l3-networks.l3-network[0].network-id`' />\n<parameter name='query-aai-l3-network-by-network-role-output.network-name' \n\tvalue='`$tmp.aai.l3-networks.l3-network[0].network-name`' />\n-->","comments":"","x":1054.0476608276367,"y":553.1428718566895,"z":"feb1c694.520168","wires":[]},{"id":"902a8730.77e468","type":"outcomeTrue","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":789.4405860900879,"y":604.857141494751,"z":"feb1c694.520168","wires":[["bd59e54d.eed458"]]},{"id":"a4529200.80a9d","type":"for","name":"for each cloud.matched.l3-networks","xml":"<for index='cidx' start='0' end='`$cloud.matched.l3-networks_length`' >\n","comments":"","outputs":1,"x":1687.7738723754883,"y":1583.9166793823242,"z":"feb1c694.520168","wires":[["e8437766.bb91b8"]]},{"id":"4a250290.cbbefc","type":"switchNode","name":"switch : $cloud.matched.l3-networks_length","xml":"<switch test='`$cloud.matched.l3-networks_length`'>\n","comments":"","outputs":1,"x":1014.7501373291016,"y":1319.2738027572632,"z":"feb1c694.520168","wires":[["ff85c7a5.83cff8","20d04cd7.e412a4","1317425a.01096e"]]},{"id":"ff85c7a5.83cff8","type":"outcomeTrue","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1282.2501373291016,"y":1319.2738027572632,"z":"feb1c694.520168","wires":[["af038e06.b9472"]]},{"id":"af038e06.b9472","type":"set","name":"set query-aai-l3-network-by-network-role-output","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \n\tvalue='`$cloud.matched.l3-networks[0].`' />\n\t\t\n<!--\t\t\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-id' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-id`' />\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-name' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-name`' />\n-->","comments":"","x":1552.7501220703125,"y":1319.52379322052,"z":"feb1c694.520168","wires":[]},{"id":"20d04cd7.e412a4","type":"outcomeTrue","name":"Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1282.4286575317383,"y":1370.809497833252,"z":"feb1c694.520168","wires":[["13260e8c.efd691"]]},{"id":"2a7ed906.631a66","type":"switchNode","name":"switch : service-instance-id - relationship-value == input","xml":"<switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $query-aai-l3-network-by-network-role-input.service-instance-id`'>\n","comments":"","outputs":1,"x":2914.254077911377,"y":1886.9523391723633,"z":"feb1c694.520168","wires":[["89c568f6.31c118"]]},{"id":"89c568f6.31c118","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3195.254108428955,"y":1887.095284461975,"z":"feb1c694.520168","wires":[["173f8ae2.0d3ce5"]]},{"id":"99cd11af.d390b","type":"for","name":"for relationship list","xml":"<for index='ridx' start='0' end='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1876.750057220459,"y":1725.389310836792,"z":"feb1c694.520168","wires":[["d26b52e6.a3e06"]]},{"id":"ca9edd76.63442","type":"switchNode","name":"switch: relationship-key","xml":"<switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\n","comments":"","outputs":1,"x":2258.357265472412,"y":1886.3188886642456,"z":"feb1c694.520168","wires":[["574bc8cd.72dad8"]]},{"id":"574bc8cd.72dad8","type":"other","name":"service-instance.service-instance-id","xml":"<outcome value='service-instance.service-instance-id'>\n","comments":"","outputs":1,"x":2544.2860069274902,"y":1886.5926837921143,"z":"feb1c694.520168","wires":[["2a7ed906.631a66"]]},{"id":"8de595fc.242118","type":"for","name":"for relationship data","xml":"<for silentFailure='false' index='rdidx' start='0' end=\"`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data_length`\" >\n","comments":"","outputs":1,"x":2005.797679901123,"y":1885.8702383041382,"z":"feb1c694.520168","wires":[["ca9edd76.63442"]]},{"id":"3111a04c.69592","type":"set","name":"set query-aai-l3-network-by-network-role-output","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \n\tvalue='`$cloud.matched.l3-networks[$cidx].`' />\n\n<!--\n<parameter name='query-aai-l3-network-by-network-role-output.network-id' \n\tvalue='`$cloud.matched.l3-networks[$cidx].network-id`' />\n<parameter name='query-aai-l3-network-by-network-role-output.network-name' \n\tvalue='`$cloud.matched.l3-networks[$cidx].network-name`' />\n-->","comments":"","x":3666.404548100063,"y":1887.5712970324926,"z":"feb1c694.520168","wires":[]},{"id":"953777cf.56def8","type":"set","name":"set input for testing","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-input.aic-cloud-region' \n\tvalue='mtn6' />\n<parameter name='query-aai-l3-network-by-network-role-input.service-instance-id' \n\tvalue='bogus' />\n<parameter name='query-aai-l3-network-by-network-role-input.network-role' \n\tvalue='GN_EVPN_direct' />\n<parameter name='query-aai-l3-network-by-network-role-input.filter' \n\tvalue='service-instance-id' />\n<!--\n<parameter name='query-aai-l3-network-by-network-role-input.filter' \n\tvalue='aic-cloud-region' />\n<parameter name='query-aai-l3-network-by-network-role-input.service-instance-id' \n\tvalue='e87fa574-6826-4dba-aad0-bf862a586ad3' />\n<parameter name='query-aai-l3-network-by-network-role-input.filter' \n\tvalue='Other' />\n-->","comments":"","x":875.6548385620117,"y":96.64285850524902,"z":"feb1c694.520168","wires":[]},{"id":"173f8ae2.0d3ce5","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":3353.9286308288574,"y":1887.5237760543823,"z":"feb1c694.520168","wires":[["3111a04c.69592","f2203553.f05ce8","b10af6ab.da4238"]]},{"id":"f2203553.f05ce8","type":"returnFailure","name":"BREAK","xml":"<return status='failure'>","comments":"","x":3547.4050369262695,"y":1990.6190071105957,"z":"feb1c694.520168","wires":[]},{"id":"1f5b3666.f39caa","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1439.738037109375,"y":1583.6667308807373,"z":"feb1c694.520168","wires":[["a4529200.80a9d","8869134c.cdc45"]]},{"id":"8869134c.cdc45","type":"returnSuccess","name":"CATCH BREAK","xml":"<return status='success'>\n","comments":"","x":1638.4523620605469,"y":1987.9522705078125,"z":"feb1c694.520168","wires":[]},{"id":"c8096fa6.4cf5","type":"comment","name":"OUTPUT","info":"query-aai-l3-network-by-network-role-output.l3-network.","comments":"","x":676.0477294921875,"y":92.57142639160156,"z":"feb1c694.520168","wires":[]},{"id":"3dd4f64f.d4b96a","type":"switchNode","name":"switch: relationship-list.relationship[].related-to","xml":"<switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].related-to`'>\n","comments":"","outputs":1,"x":1504.2857666015625,"y":1053.5239171981812,"z":"feb1c694.520168","wires":[["828ee5fa.b8d688"]]},{"id":"828ee5fa.b8d688","type":"other","name":"cloud-region","xml":"<outcome value='cloud-region'>\n","comments":"","outputs":1,"x":1791.7857818603516,"y":1054.023928642273,"z":"feb1c694.520168","wires":[["f7a5b0c6.f93ab"]]},{"id":"d26b52e6.a3e06","type":"switchNode","name":"switch: relationship-list.relationship[].related-to","xml":"<switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].related-to`'>\n","comments":"","outputs":1,"x":2014.0952949523926,"y":1800.7501153945923,"z":"feb1c694.520168","wires":[["ff875f64.7bfc9"]]},{"id":"ff875f64.7bfc9","type":"other","name":"service-instance","xml":"<outcome value='service-instance'>\n","comments":"","outputs":1,"x":2301.5953102111816,"y":1801.250126838684,"z":"feb1c694.520168","wires":[["8de595fc.242118"]]},{"id":"77958b76.344254","type":"switchNode","name":"switch: relationship-list.relationship_length","xml":"<switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`'>","comments":"","outputs":1,"x":1427.7500457763672,"y":926.9525861740112,"z":"feb1c694.520168","wires":[["5b4e99c5.c9b4e8"]]},{"id":"5b4e99c5.c9b4e8","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":1687.0832977294922,"y":926.3692121505737,"z":"feb1c694.520168","wires":[["b52a5ba3.5bcee8"]]},{"id":"b52a5ba3.5bcee8","type":"switchNode","name":"set relationship-list.relationship_length = 0","xml":"<set>\n<parameter name ='tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length' value = '0' />\n","comments":"","outputs":1,"x":1954.7500457763672,"y":926.3692121505737,"z":"feb1c694.520168","wires":[[]]},{"id":"4424c7b4.c59f48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1144.7143249511719,"y":927.0597143173218,"z":"feb1c694.520168","wires":[["77958b76.344254","f84da69.6e03a58"]]},{"id":"5a454f73.cdbdd","type":"switchNode","name":"switch: relationship-list.relationship_length","xml":"<switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`'>\n","comments":"","outputs":1,"x":1949.6310653686523,"y":1657.9644203186035,"z":"feb1c694.520168","wires":[["a5fe2f1c.8d41a"]]},{"id":"a5fe2f1c.8d41a","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":2206.3929138183594,"y":1657.9524097442627,"z":"feb1c694.520168","wires":[["bb489d22.7e4d1"]]},{"id":"bb489d22.7e4d1","type":"switchNode","name":"set relationship-list.relationship_length = 0","xml":"<set>\n<parameter name ='tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length' value = '0' />\n","comments":"","outputs":1,"x":2448.0596618652344,"y":1657.9524097442627,"z":"feb1c694.520168","wires":[[]]},{"id":"e8437766.bb91b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1669.2500915527344,"y":1657.7261791229248,"z":"feb1c694.520168","wires":[["5a454f73.cdbdd","99cd11af.d390b"]]},{"id":"1317425a.01096e","type":"outcomeTrue","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1282.8215637207031,"y":1265.345209121704,"z":"feb1c694.520168","wires":[["d7044fae.8418"]]},{"id":"e693088d.236668","type":"set","name":"set query-aai-l3-network-by-network-role-output = FIRST l3-network","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \n\tvalue='`$tmp.aai.l3-networks.l3-network[0].`' />\n\t\t\n<!--\t\t\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-id' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-id`' />\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-name' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-name`' />\n-->","comments":"","x":1866.6073608398438,"y":1267.0237998962402,"z":"feb1c694.520168","wires":[]},{"id":"13260e8c.efd691","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1230.2501411437988,"y":1505.059398651123,"z":"feb1c694.520168","wires":[["1f5b3666.f39caa","2a53cc04.197444"]]},{"id":"2a53cc04.197444","type":"switchNode","name":"switch : tmp.l3-network-found","xml":"<switch test='`$tmp.l3-network-found`'>\n","comments":"","outputs":1,"x":1502.3454132080078,"y":2082.2500467300415,"z":"feb1c694.520168","wires":[["97a102aa.624f2"]]},{"id":"562dfc81.f13814","type":"set","name":"set query-aai-l3-network-by-network-role-output","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \n\tvalue='`$cloud.matched.l3-networks[0].`' />\n\t\t\n<!--\t\t\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-id' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-id`' />\n\t<parameter name='query-aai-l3-network-by-network-role-output.network-name' \n\t\tvalue='`$cloud.matched.l3-networks[0].network-name`' />\n-->","comments":"","x":2043.2026062011719,"y":2163.2619552612305,"z":"feb1c694.520168","wires":[]},{"id":"97a102aa.624f2","type":"outcomeTrue","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1738.4167938232422,"y":2081.988163948059,"z":"feb1c694.520168","wires":[["ae3a485b.36e298"]]},{"id":"b10af6ab.da4238","type":"set","name":"set tmp.l3-network-found = 1","xml":"<set>\n<parameter name='tmp.l3-network-found' value='1' />\n\t","comments":"","x":3610.3450622558594,"y":1937.2498664855957,"z":"feb1c694.520168","wires":[]},{"id":"bd59e54d.eed458","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":722.7381591796875,"y":806.1905012130737,"z":"feb1c694.520168","wires":[["fa71b5e1.12aad8","162f00a4.dbf4df","bf3334ad.aa95c8","4a250290.cbbefc"]]},{"id":"fa71b5e1.12aad8","type":"set","name":"set tmp.l3-network-found = 0","xml":"<set>\n<parameter name='tmp.l3-network-found' value='0' />","comments":"","x":981.5953674316406,"y":805.6190900802612,"z":"feb1c694.520168","wires":[]},{"id":"162f00a4.dbf4df","type":"set","name":"initialize cloud.matched.l3-networks_length","xml":"<set>\n<parameter name='cloud.matched.l3-networks_length' value='0' />","comments":"","x":1026.4048156738281,"y":856.8571882247925,"z":"feb1c694.520168","wires":[]},{"id":"6d4d6798.2bc218","type":"comment","name":"match both cloud-region and then service-instance-id","info":"","comments":"","x":815.2380676269531,"y":1114.8573160171509,"z":"feb1c694.520168","wires":[]},{"id":"762f5443.53124c","type":"set","name":"Empty query-aai-l3-network-by-network-role-output.","xml":"<set>\n<parameter name='query-aai-l3-network-by-network-role-output.' value='' />","comments":"","x":537.7380676269531,"y":337.4285488128662,"z":"feb1c694.520168","wires":[]},{"id":"36e9d5a6.c6e93a","type":"set","name":"Empty tmp.aai.l3-networks.","xml":"<set>\n<parameter name='tmp.aai.l3-networks.' value='' />","comments":"","x":461.8809509277344,"y":391.7143154144287,"z":"feb1c694.520168","wires":[]},{"id":"d7044fae.8418","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No l3-network with network-role=' + $query-aai-l3-network-by-network-role-input.network-role + ' and cloud-region=' + $query-aai-l3-network-by-network-role-input.aic-cloud-region + ' found in AAI'`\" />\n","comments":"","x":1441.9285430908203,"y":1265.5000114440918,"z":"feb1c694.520168","wires":[]},{"id":"ae3a485b.36e298","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No l3-network with network-role=' + $query-aai-l3-network-by-network-role-input.network-role + ' and cloud-region=' + $query-aai-l3-network-by-network-role-input.aic-cloud-region + ' and service-instance-id=' + $query-aai-l3-network-by-network-role-input.service-instance-id + ' found in AAI'`\" />\n","comments":"","x":1921.9285430908203,"y":2081.071544647217,"z":"feb1c694.520168","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.json
new file mode 100644 (file)
index 0000000..652fd6e
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"ea815a18.2dbc38","type":"dgstart","name":"DGSTART","outputs":1,"x":175.71429443359375,"y":71.42857360839844,"z":"efce3e2c.92e5a","wires":[["75f09495.0b88ec"]]},{"id":"4f7a2aae.d22154","type":"method","name":"method rollback-eipam-ip-assignment","xml":"<method rpc='rollback-eipam-ip-assignment' mode='sync'>\n","comments":"","outputs":1,"x":343.2142791748047,"y":232.3650894165039,"z":"efce3e2c.92e5a","wires":[["df537867.a583e8"]]},{"id":"54dcc02b.74032","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\n\tkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status \n\t\tWHERE info = $vnf-topology-operation-input.vnf-request-information.vnf-id\" >","comments":"","outputs":1,"x":1366.7619132995605,"y":415.7142610549927,"z":"efce3e2c.92e5a","wires":[["b0907e6c.84fac"]]},{"id":"ccc5977b.048f08","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' \n\tvalue=\"`'PENDING_DELETE_' + $vnf-topology-operation-input.vnf-request-information.vnf-id`\" />\n<parameter name='service-data.service-information.service-type' \n\tvalue='NOT_APPLICABLE' />\n\t\n","comments":"","x":1236.761875152588,"y":369.04763317108154,"z":"efce3e2c.92e5a","wires":[]},{"id":"b0907e6c.84fac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1672.7618217468262,"y":415.0475606918335,"z":"efce3e2c.92e5a","wires":[["2819fc9.528a104"]]},{"id":"2819fc9.528a104","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table on rollback.\" />\n","comments":"","x":1831.761848449707,"y":414.85729598999023,"z":"efce3e2c.92e5a","wires":[]},{"id":"3b4fac15.b93614","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":1301.7618827819824,"y":460.71430492401123,"z":"efce3e2c.92e5a","wires":[["ab8d1507.dd66a8"]]},{"id":"ab8d1507.dd66a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1538.428508758545,"y":460.71424770355225,"z":"efce3e2c.92e5a","wires":[["972f63af.2272a"]]},{"id":"972f63af.2272a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in EIPAM unassign IP address on rollback.\" />\n","comments":"","x":1728.4285354614258,"y":460.523983001709,"z":"efce3e2c.92e5a","wires":[]},{"id":"33111690.4e393a","type":"comment","name":"rollback-eipam-ip-assignment","info":"","comments":"","x":699.7619781494141,"y":82.14334297180176,"z":"efce3e2c.92e5a","wires":[]},{"id":"df537867.a583e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":315.5714416503906,"y":322.33350372314453,"z":"efce3e2c.92e5a","wires":[["bbf0c063.177bf"]]},{"id":"bbf0c063.177bf","type":"update","name":"get-resource EIPAM_IP_ASSIGNMENTS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_ASSIGNMENTS \n  WHERE info = $vnf-topology-operation-input.vnf-request-information.vnf-id'>","comments":"","outputs":1,"x":591.7143402099609,"y":322.71427726745605,"z":"efce3e2c.92e5a","wires":[["76dfc5db.6c084c","fab0816a.ac00c"]]},{"id":"76dfc5db.6c084c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":853.2857780456543,"y":322.28571581840515,"z":"efce3e2c.92e5a","wires":[["e49469d9.9c7228"]]},{"id":"e49469d9.9c7228","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":996.4285866873606,"y":321.71429361615856,"z":"efce3e2c.92e5a","wires":[[]]},{"id":"fab0816a.ac00c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":849.9999237060547,"y":370.0000286102295,"z":"efce3e2c.92e5a","wires":[["deacba9b.7d81d8"]]},{"id":"deacba9b.7d81d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1017.285701751709,"y":369.42856216430664,"z":"efce3e2c.92e5a","wires":[["ccc5977b.048f08","54dcc02b.74032","3b4fac15.b93614"]]},{"id":"75f09495.0b88ec","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":308.5714416503906,"y":148.5714225769043,"z":"efce3e2c.92e5a","wires":[["4f7a2aae.d22154"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-generated-names.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_rollback-generated-names.json
new file mode 100644 (file)
index 0000000..dacb337
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"367177f7.563698","type":"dgstart","name":"DGSTART","outputs":1,"x":163.75,"y":68.75,"z":"d0c367b0.d55ca8","wires":[["60ca91f4.f6268"]]},{"id":"468f67a9.c0fe68","type":"method","name":"method rollback-generated-names","xml":"<method rpc='rollback-generated-names' mode='sync'>\n","comments":"","outputs":1,"x":288.82142639160156,"y":140.1785717010498,"z":"d0c367b0.d55ca8","wires":[["d2988a7c.2fd408"]]},{"id":"d2988a7c.2fd408","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":288.0357208251953,"y":221.60715103149414,"z":"d0c367b0.d55ca8","wires":[["d1a57281.50136","ceb3fba9.761848","dbce21dd.bda28","7ce1313f.711c4","796e66f5.e5b048"]]},{"id":"d1a57281.50136","type":"switchNode","name":"switch rollback-generated-names-input.context-id","xml":"<switch test='`$rollback-generated-names-input.context-id`'>\n","comments":"","outputs":1,"x":609.5833129882812,"y":220.6666603088379,"z":"d0c367b0.d55ca8","wires":[["dbafe83a.757ed8"]]},{"id":"ceb3fba9.761848","type":"switchNode","name":"switch rollback-generated-names-input.naming-type","xml":"<switch test='`$rollback-generated-names-input.naming-type`'>\n","comments":"","outputs":1,"x":616.7500152587891,"y":280.50000381469727,"z":"d0c367b0.d55ca8","wires":[["23bb964b.7a2caa","b0705a0b.157f48","34b9c028.357d9","70f01569.bbfe5c","1710e5d3.77dcfa","170cdd4d.2b21a3","de873242.c7b5f","fc133415.70f288"]]},{"id":"dbafe83a.757ed8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":888.0000152587891,"y":221.25000381469727,"z":"d0c367b0.d55ca8","wires":[["5d590d62.dfd0a4"]]},{"id":"5d590d62.dfd0a4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"rollback-generated-names-input.context-id can not be null\" />\n","comments":"","x":1054.6543159484863,"y":220.64523601531982,"z":"d0c367b0.d55ca8","wires":[]},{"id":"23bb964b.7a2caa","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":931.5,"y":280.25,"z":"d0c367b0.d55ca8","wires":[["a0afb9b9.38f3f8"]]},{"id":"a0afb9b9.38f3f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"rollback-generated-names-input.naming-type can not be null\" />\n","comments":"","x":1097.7500190734863,"y":280.25000381469727,"z":"d0c367b0.d55ca8","wires":[]},{"id":"b0705a0b.157f48","type":"outcome","name":"VM_INSTANCE","xml":"<outcome value='VM_INSTANCE'>","comments":"","outputs":1,"x":959.5000381469727,"y":327.8571434020996,"z":"d0c367b0.d55ca8","wires":[["bdd8786c.e5b358"]]},{"id":"34b9c028.357d9","type":"outcome","name":"VNFC_INSTANCE","xml":"<outcome value='VNFC_INSTANCE'>","comments":"","outputs":1,"x":969.7500305175781,"y":375.35714530944824,"z":"d0c367b0.d55ca8","wires":[["5edf9755.0901f8"]]},{"id":"bdd8786c.e5b358","type":"set","name":"set tmp.rb.naming-index-table-name and prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VM_NAME_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' value='vm_name_prefix' />\n","comments":"","x":1381.000015258789,"y":328.0000057220459,"z":"d0c367b0.d55ca8","wires":[]},{"id":"5edf9755.0901f8","type":"set","name":"set tmp.rb.naming-index-table-name and prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VNFC_NAME_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnfc_name_prefix' />\n\n","comments":"","x":1383.250015258789,"y":375.25000762939453,"z":"d0c367b0.d55ca8","wires":[]},{"id":"70f01569.bbfe5c","type":"outcome","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":937,"y":619.5,"z":"d0c367b0.d55ca8","wires":[["3136ec47.d68c14"]]},{"id":"3136ec47.d68c14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unknown rollbck-generated-name-input.naming-type: ' + $rollback-generated-names-input.naming-type`\" />\n","comments":"","x":1103.2500190734863,"y":619.5000038146973,"z":"d0c367b0.d55ca8","wires":[]},{"id":"77bdf758.54df88","type":"set","name":"set tmp.rb.sql","xml":"<set>\n<parameter name='tmp.rb.sql' \n\tvalue=\"`'SELECT * from ' + $rollback-generated-names.index-table-name \n\t\t+ ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \n\t\t+ ' = $tmp.rb.grn.prefix'`\" />","comments":"","x":1130.416660308838,"y":1156.5833010673523,"z":"d0c367b0.d55ca8","wires":[]},{"id":"c12778f6.0a1338","type":"get-resource","name":"GET INDEX TABLE.index_number","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.rb.sql`\" pfx='db.grn.index-table'>\n\n","comments":"","outputs":1,"x":1199.0951309204102,"y":1204.4523363113403,"z":"d0c367b0.d55ca8","wires":[["4ba02bfe.2fafb4","6a6129db.ee97d8"]]},{"id":"23b3074b.857058","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":939.4166564941406,"y":1157.0833015441895,"z":"d0c367b0.d55ca8","wires":[["77bdf758.54df88","c12778f6.0a1338"]]},{"id":"8e098c23.2f40a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error reading the '\n\t+ $rollback-generated-names.index-table-name \n\t+ ' table with ' + $rollback-generated-names.name-prefix-column\n\t+ ' = ' + $tmp.rb.grn.prefix \n\t+ '. MANUAL clean up is required!'`\" />\n\n","comments":"","x":1615.6666641235352,"y":1205.3334102630615,"z":"d0c367b0.d55ca8","wires":[]},{"id":"d5340d0c.48452","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'No entries found in ' \n\t+ $rollback-generated-names.index-table-name \n\t+ ' with ' \n\t+ $rollback-generated-names.name-prefix-column \n\t+ ' = ' \n\t+ $tmp.rb.grn.prefix `\" />\n\n","comments":"","x":1615.3451309204102,"y":1251.1190853118896,"z":"d0c367b0.d55ca8","wires":[]},{"id":"4ba02bfe.2fafb4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1442.6666641235352,"y":1204.8334102630615,"z":"d0c367b0.d55ca8","wires":[["8e098c23.2f40a"]]},{"id":"6a6129db.ee97d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1449.5120658874512,"y":1251.3215522766113,"z":"d0c367b0.d55ca8","wires":[["d5340d0c.48452"]]},{"id":"7ce1313f.711c4","type":"get-resource","name":"GET GENERIC_RESOURCE_NAME distinct prefix","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT distinct prefix from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \n\t\tAND context_id = $rollback-generated-names-input.context-id'\n  pfx='db.grn.distinct-prefix[]'>","comments":"","outputs":1,"x":607.4166259765625,"y":741.333324432373,"z":"d0c367b0.d55ca8","wires":[["4ad7538e.f3d82c","65bbc13b.28e13"]]},{"id":"4ad7538e.f3d82c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":887.1666259765625,"y":741.3333168029785,"z":"d0c367b0.d55ca8","wires":[["173e772a.cd4d19"]]},{"id":"173e772a.cd4d19","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"Encountered error reading GENERIC_RESOURCE_NAME table to retrieve distinct prefix\"/>","comments":"","x":1056.6666259765625,"y":741.3333168029785,"z":"d0c367b0.d55ca8","wires":[]},{"id":"65bbc13b.28e13","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":895.1666030883789,"y":787.8333101272583,"z":"d0c367b0.d55ca8","wires":[["7e2b366.e1ab2c8"]]},{"id":"611ed5aa.78878c","type":"comment","name":"pfx = db.grn.distinct-prefix[]","info":"","comments":"","x":599.6666717529297,"y":778.833324432373,"z":"d0c367b0.d55ca8","wires":[]},{"id":"796e66f5.e5b048","type":"for","name":"for each distinct prefix","xml":"<for index='prefix-index' start='0' end='`$db.grn.distinct-prefix_length`' >\n","comments":"","outputs":1,"x":511.9166564941406,"y":903.8333072662354,"z":"d0c367b0.d55ca8","wires":[["863a787.4a89d88"]]},{"id":"10bc4004.cfe86","type":"get-resource","name":"GET GENERIC_RESOURCE_NAME  (name_index)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type   \n\t\tAND context_id = $rollback-generated-names-input.context-id \n\t\tAND prefix = $tmp.rb.grn.prefix order by name_index'\n  pfx='db.grn.subset[]'>","comments":"","outputs":1,"x":1056.9166526794434,"y":1043.5832977294922,"z":"d0c367b0.d55ca8","wires":[["5207f077.d162b","57b22cdd.a0b3b4"]]},{"id":"5207f077.d162b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1374.6666526794434,"y":1043.5832901000977,"z":"d0c367b0.d55ca8","wires":[["37f91f4f.dc317"]]},{"id":"37f91f4f.dc317","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"Encountered error reading GENERIC_RESOURCE_NAME table\"/>","comments":"","x":1544.1666526794434,"y":1043.5832901000977,"z":"d0c367b0.d55ca8","wires":[]},{"id":"57b22cdd.a0b3b4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1382.6666297912598,"y":1090.0832834243774,"z":"d0c367b0.d55ca8","wires":[["e0189d81.4cff1"]]},{"id":"e0189d81.4cff1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"`'No entry found in GENERIC_RESOURCE_NAME where context_id = ' + $rollback-generated-names-input.context-id + ' and type = ' + $rollback-generated-names-input.naming-type + ' and prefix = ' + $db.grn.distinct-prefix[$prefix-index].prefix`\"/>","comments":"","x":1545.9166679382324,"y":1089.8332996368408,"z":"d0c367b0.d55ca8","wires":[]},{"id":"2b90b34b.d7633c","type":"comment","name":"pfx = db.grn.subset[]","info":"","comments":"","x":1127.9166679382324,"y":1081.0833072662354,"z":"d0c367b0.d55ca8","wires":[]},{"id":"863a787.4a89d88","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":722.1666488647461,"y":903.5832977294922,"z":"d0c367b0.d55ca8","wires":[["10bc4004.cfe86","f27ef71e.c804b8","23b3074b.857058","a6b9f4f4.6ad9c8","9b466971.d86f98","92644ca8.ceecd","d045a533.059c38","5592a6f6.a24438","14f7ce44.68bc82","18dcbbfc.8a54f4","37760911.be5b06"]]},{"id":"f27ef71e.c804b8","type":"set","name":"set tmp.rb.grn.prefix","xml":"<set>\n<parameter name='tmp.rb.grn.prefix' value='`$db.grn.distinct-prefix[$prefix-index].prefix`' />\n","comments":"","x":959.4166374206543,"y":994.3333034515381,"z":"d0c367b0.d55ca8","wires":[]},{"id":"e83d55fd.8d2e08","type":"switchNode","name":"switch: tmp.rb.net-index == 0","xml":"<switch test=\"`$tmp.rb.net-index == 0`\">","comments":"","outputs":1,"x":1418.3334503173828,"y":1454.4166259765625,"z":"d0c367b0.d55ca8","wires":[["e05f58d7.4e07f8","f48212b5.20b62"]]},{"id":"676ed71d.e6ce68","type":"comment","name":"pfx = db.grn.index-table","info":"","comments":"","x":1235.1666412353516,"y":1241.0832901000977,"z":"d0c367b0.d55ca8","wires":[]},{"id":"9b466971.d86f98","type":"set","name":"set tmp.rb.grn.max-index","xml":"<set>\n<parameter name='tmp.rb.grn.max-index' \n\tvalue='`$db.grn.subset[$db.grn.subset_length - 1].name-index`' />\n","comments":"","x":967.9166564941406,"y":1311.0833044052124,"z":"d0c367b0.d55ca8","wires":[]},{"id":"a6b9f4f4.6ad9c8","type":"set","name":"clear tmp.rb.","xml":"<set>\n<parameter name='tmp.rb.' value='' />\n","comments":"","x":934.4166221618652,"y":947.583288192749,"z":"d0c367b0.d55ca8","wires":[]},{"id":"dbce21dd.bda28","type":"set","name":"clear db.grn.","xml":"<set>\n<parameter name='db.grn.' value='' />\n","comments":"","x":490.55554962158203,"y":687.7777805328369,"z":"d0c367b0.d55ca8","wires":[]},{"id":"92644ca8.ceecd","type":"set","name":"clear db.grn.subset.","xml":"<set>\n<parameter name='db.grn.subset.' value='' />\n","comments":"","x":955.4166564941406,"y":903.8332967758179,"z":"d0c367b0.d55ca8","wires":[]},{"id":"dd5310c5.e7bc1","type":"set","name":"set tmp.rb.sql for delete","xml":"<set>\n<parameter name='tmp.rb.sql' \n\tvalue=\"`'DELETE from ' + $rollback-generated-names.index-table-name \n\t\t+ ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \n\t\t+ ' = $tmp.rb.grn.prefix'`\" />\n\t\t\n<!--\n+ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`\" />\n-->\t\t\t\t","comments":"","x":2031.0832824707031,"y":1454.4166088104248,"z":"d0c367b0.d55ca8","wires":[]},{"id":"985fa2e8.98689","type":"get-resource","name":"DELETE from INDEX TABLE","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.rb.sql`\">\n\n","comments":"","outputs":1,"x":2047.2618103027344,"y":1500.0356426239014,"z":"d0c367b0.d55ca8","wires":[["3c1ebfe4.59e22","4c9bbe94.157e"]]},{"id":"27f4d519.bb790a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error deleting '\n\t+ $rollback-generated-names.index-table-name \n\t+ ' WHERE ' + $rollback-generated-names.name-prefix-column \n\t+ ' = ' + $tmp.rb.grn.prefix \n\t+ ' AND index_number = ' + $db.index-table.index-number\n\t+ '. MANUAL clean up is required!'`\" />\n\n","comments":"","x":2455.8333435058594,"y":1499.9167165756226,"z":"d0c367b0.d55ca8","wires":[]},{"id":"3c1ebfe4.59e22","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2282.8333435058594,"y":1500.4167165756226,"z":"d0c367b0.d55ca8","wires":[["27f4d519.bb790a"]]},{"id":"4c9bbe94.157e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2289.6787452697754,"y":1546.9048585891724,"z":"d0c367b0.d55ca8","wires":[["9e5f981.150f268"]]},{"id":"85575d12.d5857","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1798.5833358764648,"y":1454.1666259765625,"z":"d0c367b0.d55ca8","wires":[["dd5310c5.e7bc1","985fa2e8.98689"]]},{"id":"d045a533.059c38","type":"set","name":"set tmp.rb.delta-index = index-number - max-index","xml":"<set>\n<parameter name='tmp.rb.delta-index' \n\tvalue='`$db.grn.index-table.index-number - $tmp.rb.grn.max-index`' />\n","comments":"","x":1045.9166564941406,"y":1356.333303451538,"z":"d0c367b0.d55ca8","wires":[]},{"id":"e05f58d7.4e07f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1632.0833129882812,"y":1454.4166069030762,"z":"d0c367b0.d55ca8","wires":[["85575d12.d5857"]]},{"id":"18dcbbfc.8a54f4","type":"get-resource","name":"DELETE from GENERIC_RESOURCE_NAME","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='DELETE from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \n\t\tAND context_id = $rollback-generated-names-input.context-id \n\t\tAND prefix = $tmp.rb.grn.prefix'>\n","comments":"","outputs":1,"x":1028.7618713378906,"y":1792.2856998443604,"z":"d0c367b0.d55ca8","wires":[["62bd7357.1b6afc","e9732f88.feaff"]]},{"id":"b81d8b08.9ca378","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error deleting GENERIC_RESOURCE_NAME WHERE type = '\n\t+ $rollback-generated-names-input.naming-type  \n\t+ ' AND context_id = ' + $rollback-generated-names-input.context-id \n\t+ ' AND prefix = '+ $tmp.rb.grn.prefix\n\t+ '. MANUAL clean up is required!'`\" />\n\n","comments":"","x":1480.3334045410156,"y":1793.1667737960815,"z":"d0c367b0.d55ca8","wires":[]},{"id":"62bd7357.1b6afc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1307.3334045410156,"y":1792.6667737960815,"z":"d0c367b0.d55ca8","wires":[["b81d8b08.9ca378"]]},{"id":"e9732f88.feaff","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1314.1787490844727,"y":1839.1549606323242,"z":"d0c367b0.d55ca8","wires":[["ae5976af.669a08"]]},{"id":"24f6c0c3.95f7f","type":"comment","name":"Delete prefix from INDEX TABLE","info":"","comments":"","x":2301.3334197998047,"y":1456.4166803359985,"z":"d0c367b0.d55ca8","wires":[]},{"id":"ee44b770.263dc8","type":"comment","name":"Silence SUCCESS","info":"","comments":"","x":2546.333351135254,"y":1558.4166240692139,"z":"d0c367b0.d55ca8","wires":[]},{"id":"9e5f981.150f268","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2438.5833473205566,"y":1546.6666259765625,"z":"d0c367b0.d55ca8","wires":[[]]},{"id":"f48212b5.20b62","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1631.083396911621,"y":1639.666648864746,"z":"d0c367b0.d55ca8","wires":[["2679c184.7566ce"]]},{"id":"ce016bf1.726fe8","type":"comment","name":"index_number > $db.grn.subset_length; i.e hole in the middle. DO NOTHING","info":"","comments":"","x":1221.8334197998047,"y":1578.4166812896729,"z":"d0c367b0.d55ca8","wires":[]},{"id":"d0ffe154.2017d","type":"comment","name":"Silence SUCCESS","info":"","comments":"","x":1570.333251953125,"y":1850.6666584014893,"z":"d0c367b0.d55ca8","wires":[]},{"id":"ae5976af.669a08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1462.5832481384277,"y":1838.916660308838,"z":"d0c367b0.d55ca8","wires":[[]]},{"id":"5592a6f6.a24438","type":"switchNode","name":"switch: tmp.rb.delta-index == 0","xml":"<switch test=\"`$tmp.rb.delta-index == 0`\">","comments":"","outputs":1,"x":984.3333282470703,"y":1454.6666240692139,"z":"d0c367b0.d55ca8","wires":[["54669b2b.1c7664","5cd2e8b2.3aabf8"]]},{"id":"54669b2b.1c7664","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1211.5833129882812,"y":1454.6666069030762,"z":"d0c367b0.d55ca8","wires":[["e83d55fd.8d2e08"]]},{"id":"13ee581e.78bb98","type":"set","name":"set tmp.rb.sql for update","xml":"<set>\n<parameter name='tmp.rb.sql' \n\tvalue=\"`'UPDATE ' + $rollback-generated-names.index-table-name \n\t\t+ ' set index_number = ' + $tmp.rb.net-index\n\t\t+ ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \n\t\t+ ' = $tmp.rb.grn.prefix'`\" />","comments":"","x":2037.833351135254,"y":1639.666633605957,"z":"d0c367b0.d55ca8","wires":[]},{"id":"d1d5de27.6d65f","type":"get-resource","name":"Update INDEX TABLE","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.rb.sql`\">\n\n","comments":"","outputs":1,"x":2034.0118789672852,"y":1685.2856674194336,"z":"d0c367b0.d55ca8","wires":[["af5b63b8.507a5","961b37ec.64dc98"]]},{"id":"21898cbf.33f884","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error updating  '\n\t+ $rollback-generated-names.index-table-name + '.index_number = ' \n\t+ $tmp.rb.net-index\n\t+ ' WHERE ' + $rollback-generated-names.name-prefix-column \n\t+ ' = ' + $tmp.rb.grn.prefix\n\t+ '. MANUAL clean up is required!'`\" />\n\n","comments":"","x":2439.58341217041,"y":1685.1667413711548,"z":"d0c367b0.d55ca8","wires":[]},{"id":"af5b63b8.507a5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2247.58341217041,"y":1685.6667413711548,"z":"d0c367b0.d55ca8","wires":[["21898cbf.33f884"]]},{"id":"961b37ec.64dc98","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2254.428813934326,"y":1732.1548833847046,"z":"d0c367b0.d55ca8","wires":[["21898cbf.33f884"]]},{"id":"2679c184.7566ce","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1798.3334045410156,"y":1639.4166507720947,"z":"d0c367b0.d55ca8","wires":[["13ee581e.78bb98","d1d5de27.6d65f"]]},{"id":"14c2ad0d.ae7c33","type":"comment","name":"Update prefix from INDEX TABLE","info":"","comments":"","x":1989.8334121704102,"y":1717.9166464805603,"z":"d0c367b0.d55ca8","wires":[]},{"id":"14f7ce44.68bc82","type":"set","name":"set tmp.rb.net-index = index-number - $db.grn.subset_length","xml":"<set>\n<parameter name='tmp.rb.net-index' \n\tvalue='`$db.grn.index-table.index-number - $db.grn.subset_length`' />\n","comments":"","x":1076.6666412353516,"y":1403.833288192749,"z":"d0c367b0.d55ca8","wires":[]},{"id":"2a3dc862.500858","type":"comment","name":"index_number == max index","info":"","comments":"","x":862.1666564941406,"y":1497.5833053588867,"z":"d0c367b0.d55ca8","wires":[]},{"id":"54f2328a.63d03c","type":"comment","name":"index_number == $db.grn.subset_length","info":"","comments":"","x":1489.6666564941406,"y":1415.0833053588867,"z":"d0c367b0.d55ca8","wires":[]},{"id":"5cd2e8b2.3aabf8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1219.6666564941406,"y":1623.8333044052124,"z":"d0c367b0.d55ca8","wires":[["f7ec1a24.211fe8"]]},{"id":"f7ec1a24.211fe8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1363.4166641235352,"y":1624.0833072662354,"z":"d0c367b0.d55ca8","wires":[[]]},{"id":"3dffc8c6.351eb8","type":"comment","name":"Change History","info":"iTrack SDNGC-10767\n- new DG to rollback generated-names","comments":"","x":642.5000076293945,"y":113.75000190734863,"z":"d0c367b0.d55ca8","wires":[]},{"id":"6b1751d3.9aae8","type":"set","name":"set tmp.rb.naming-index-table-name, index-table.prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnf_name_prefix' />\n","comments":"","x":1408.75,"y":425.75,"z":"d0c367b0.d55ca8","wires":[]},{"id":"1710e5d3.77dcfa","type":"outcome","name":"CLIENT_KEY","xml":"<outcome value='CLIENT_KEY'>","comments":"","outputs":1,"x":956.5000152587891,"y":425.35713958740234,"z":"d0c367b0.d55ca8","wires":[["6b1751d3.9aae8"]]},{"id":"170cdd4d.2b21a3","type":"outcome","name":"NETWORK_INSTANCE","xml":"<outcome value='NETWORK_INSTANCE'>","comments":"","outputs":1,"x":988.2777633666992,"y":475.61110496520996,"z":"d0c367b0.d55ca8","wires":[["5fa679c.78e5088"]]},{"id":"de873242.c7b5f","type":"outcome","name":"SERVICE_INSTANCE","xml":"<outcome value='SERVICE_INSTANCE'>","comments":"","outputs":1,"x":986.3889007568359,"y":524.6111211776733,"z":"d0c367b0.d55ca8","wires":[["82455610.85dad8"]]},{"id":"fc133415.70f288","type":"outcome","name":"VNF_INSTANCE","xml":"<outcome value='VNF_INSTANCE'>","comments":"","outputs":1,"x":970.2777633666992,"y":570.611120223999,"z":"d0c367b0.d55ca8","wires":[["8ec44038.4f2ac"]]},{"id":"5a4d6d80.b5bda4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1310.7856979370117,"y":1936.4285354614258,"z":"d0c367b0.d55ca8","wires":[["d0e2990c.3467d8"]]},{"id":"d0e2990c.3467d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='error-code' value='500'/>\n\t<parameter name='error-message' value=\"Encountered error reading GENERIC_RESOURCE_NAME table\"/>","comments":"","x":1480.2856979370117,"y":1936.4285354614258,"z":"d0c367b0.d55ca8","wires":[]},{"id":"3d2d0a92.8fb326","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1318.7856750488281,"y":1982.9285287857056,"z":"d0c367b0.d55ca8","wires":[["a9dae2af.d2f53"]]},{"id":"31297cf.fcd1684","type":"comment","name":"pfx = db.grn.prefix[]","info":"","comments":"","x":1044.0357131958008,"y":1973.9285526275635,"z":"d0c367b0.d55ca8","wires":[]},{"id":"37760911.be5b06","type":"get-resource","name":"GET GENERIC_RESOURCE_NAME  (prefix)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type    \n\t\tAND prefix = $tmp.rb.grn.prefix order by name_index'\n  pfx='db.grn.prefix[]'>","comments":"","outputs":1,"x":1023.0356903076172,"y":1936.1785564422607,"z":"d0c367b0.d55ca8","wires":[["5a4d6d80.b5bda4","3d2d0a92.8fb326","430381ee.4fc6b"]]},{"id":"430381ee.4fc6b","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1312.321434020996,"y":2125.892852783203,"z":"d0c367b0.d55ca8","wires":[["3f64846a.c8c06c"]]},{"id":"3f64846a.c8c06c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1461.9643783569336,"y":2126.0356769561768,"z":"d0c367b0.d55ca8","wires":[["5b56358f.06720c","c6c2e25e.9582a"]]},{"id":"eb05862b.646188","type":"comment","name":"Clean up holes in INDEX TABLE","info":"","comments":"","x":781.0000152587891,"y":1880.0000286102295,"z":"d0c367b0.d55ca8","wires":[]},{"id":"761a02e4.28318c","type":"set","name":"set tmp.rb.sql for delete","xml":"<set>\n<parameter name='tmp.rb.sql' \n\tvalue=\"`'DELETE from ' + $rollback-generated-names.index-table-name \n\t\t+ ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \n\t\t+ ' = $tmp.rb.grn.prefix'`\" />\n\t\t\n<!--\n+ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`\" />\n-->\t\t\t\t","comments":"","x":1719.7857360839844,"y":1982.9286041259766,"z":"d0c367b0.d55ca8","wires":[]},{"id":"e3b8fba6.d6a5d8","type":"get-resource","name":"DELETE from INDEX TABLE","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.rb.sql`\">\n\n","comments":"","outputs":1,"x":1735.9642639160156,"y":2028.5476379394531,"z":"d0c367b0.d55ca8","wires":[["8a19c44d.2f7a68","83735701.520468"]]},{"id":"87b45267.a3082","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error deleting '\n\t+ $rollback-generated-names.index-table-name \n\t+ ' WHERE ' + $rollback-generated-names.name-prefix-column \n\t+ ' = ' + $tmp.rb.grn.prefix \n\t+ ' AND index_number = ' + $db.index-table.index-number`\" />\n\n","comments":"","x":2126.5357971191406,"y":2028.4287118911743,"z":"d0c367b0.d55ca8","wires":[]},{"id":"8a19c44d.2f7a68","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1953.5357971191406,"y":2028.9287118911743,"z":"d0c367b0.d55ca8","wires":[["87b45267.a3082"]]},{"id":"83735701.520468","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1960.3811988830566,"y":2075.416853904724,"z":"d0c367b0.d55ca8","wires":[["8dd77dea.9bf17"]]},{"id":"f0c8fc09.c807b","type":"comment","name":"Delete prefix from INDEX TABLE","info":"","comments":"","x":1990.035873413086,"y":1984.9286756515503,"z":"d0c367b0.d55ca8","wires":[]},{"id":"8771620a.4a45","type":"comment","name":"Silence SUCCESS","info":"","comments":"","x":2217.035804748535,"y":2086.9286193847656,"z":"d0c367b0.d55ca8","wires":[]},{"id":"8dd77dea.9bf17","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2109.285800933838,"y":2075.1786212921143,"z":"d0c367b0.d55ca8","wires":[[]]},{"id":"a9dae2af.d2f53","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1466.5000228881836,"y":1983.2500286102295,"z":"d0c367b0.d55ca8","wires":[["761a02e4.28318c","e3b8fba6.d6a5d8"]]},{"id":"5b56358f.06720c","type":"set","name":"set tmp.rb.grn.last-max-index","xml":"<set>\n<parameter name='tmp.rb.grn.last-max-index' \n\tvalue='`$db.grn.prefix[$db.grn.prefix_length - 1].name-index`' />\n","comments":"","x":1685.0000228881836,"y":2126.2500324249268,"z":"d0c367b0.d55ca8","wires":[]},{"id":"c6c2e25e.9582a","type":"switchNode","name":"switch: index_number > last-max-index","xml":"<switch test=\"`$tmp.rb.net-index > $tmp.rb.grn.last-max-index`\">","comments":"","outputs":1,"x":1714.2500305175781,"y":2170.2500324249268,"z":"d0c367b0.d55ca8","wires":[["2a0f937.5be026c"]]},{"id":"2a0f937.5be026c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1954.25,"y":2169.75,"z":"d0c367b0.d55ca8","wires":[["6bcac8c3.2d4898"]]},{"id":"f6ae0895.c117f8","type":"set","name":"set tmp.rb.sql for update","xml":"<set>\n<parameter name='tmp.rb.sql' \n\tvalue=\"`'UPDATE ' + $rollback-generated-names.index-table-name \n\t\t+ ' set index_number = ' + $tmp.rb.grn.last-max-index\n\t\t+ ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \n\t\t+ ' = $tmp.rb.grn.prefix'`\" />","comments":"","x":2302.500030517578,"y":2169.7500324249268,"z":"d0c367b0.d55ca8","wires":[]},{"id":"877a352a.7a0348","type":"get-resource","name":"Update  INDEX TABLE","xml":"<update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"`$tmp.rb.sql`\">\n\n","comments":"","outputs":1,"x":2298.6785583496094,"y":2214.3690662384033,"z":"d0c367b0.d55ca8","wires":[["5993fe93.97069","ba617526.0c8828"]]},{"id":"35689d99.980fa2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-message' value=\"`'Error updating  '\n\t+ $rollback-generated-names.index-table-name + '.index_number = ' \n\t+ $tmp.rb.grn.last-max-index\n\t+ ' WHERE ' + $rollback-generated-names.name-prefix-column \n\t+ ' = ' + $tmp.rb.grn.prefix`\" />\n\n","comments":"","x":2681.2500381469727,"y":2215.2502768039703,"z":"d0c367b0.d55ca8","wires":[]},{"id":"5993fe93.97069","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2508.2500915527344,"y":2214.7501401901245,"z":"d0c367b0.d55ca8","wires":[["35689d99.980fa2"]]},{"id":"ba617526.0c8828","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2515.0954933166504,"y":2261.2382822036743,"z":"d0c367b0.d55ca8","wires":[["35689d99.980fa2"]]},{"id":"ab893117.4bf84","type":"comment","name":"Update prefix from INDEX TABLE","info":"","comments":"","x":2254.5000915527344,"y":2247.00004529953,"z":"d0c367b0.d55ca8","wires":[]},{"id":"6bcac8c3.2d4898","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2103.75,"y":2170,"z":"d0c367b0.d55ca8","wires":[["f6ae0895.c117f8","877a352a.7a0348"]]},{"id":"7e2b366.e1ab2c8","type":"set","name":"set db.grn.distinct-prefix_length = 0","xml":"<set>\n<parameter name='db.grn.distinct-prefix_length' value='0' />\n","comments":"","x":1127.500015258789,"y":788.0000133514404,"z":"d0c367b0.d55ca8","wires":[]},{"id":"60ca91f4.f6268","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":438.3333740234375,"y":68.33333587646484,"z":"d0c367b0.d55ca8","wires":[["468f67a9.c0fe68"]]},{"id":"8ec44038.4f2ac","type":"set","name":"set tmp.rb.naming-index-table-name and prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' value='VNF_NAME_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' \n\tvalue='vnf_name_prefix' />\n\n","comments":"","x":1390,"y":570.3333129882812,"z":"d0c367b0.d55ca8","wires":[]},{"id":"5fa679c.78e5088","type":"set","name":"set tmp.rb.naming-index-table-name and prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' \n\tvalue='NETWORK_INSTANCE_NAME_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' \n\tvalue='network_instance_name_prefix' />\n\n","comments":"","x":1387,"y":475,"z":"d0c367b0.d55ca8","wires":[]},{"id":"82455610.85dad8","type":"set","name":"set tmp.rb.naming-index-table-name and prefix column, grn.type","xml":"<set>\n<parameter name='rollback-generated-names.index-table-name' \n\tvalue='SERVICE_INSTANCE_NAME_INDEX' />\n<parameter name='rollback-generated-names.index-table.name-prefix-column' \n\tvalue='service_instance_name_prefix' />\n\n","comments":"","x":1387,"y":525,"z":"d0c367b0.d55ca8","wires":[]}]
\ No newline at end of file
index 5e4161c..bdba9fe 100755 (executable)
@@ -1 +1,612 @@
-[{"id":"f4d06dda.30316","type":"dgstart","name":"DGSTART","outputs":1,"x":167.14285278320312,"y":61.42856979370117,"z":"d029d2a.974963","wires":[["7f7c6af3.215f74"]]},{"id":"7f7c6af3.215f74","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":263.38093185424805,"y":122.38096046447754,"z":"d029d2a.974963","wires":[["5a1c2468.67872c"]]},{"id":"5a1c2468.67872c","type":"method","name":"security-zone-topology-operation-activate","xml":"<method rpc='security-zone-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":309.2977104187012,"y":157.61901569366455,"z":"d029d2a.974963","wires":[["dfe1dc14.5964"]]},{"id":"dfe1dc14.5964","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":217.61904525756836,"y":300.95235776901245,"z":"d029d2a.974963","wires":[["3dde4199.1c9e2e","d411dae1.fde8d8","30cc1a1b.8e88e6","6861327d.73bc7c","add0f6b0.d7fa28","b3f7a9f5.747648","5c57b0ca.b25a6","b6f5439f.b0624","fc0c4385.ee3a5","66ef7002.abb7e","56345297.bc34dc","62744ec2.dbf8"]]},{"id":"d411dae1.fde8d8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":484.1429634094238,"y":970.6430778503418,"z":"d029d2a.974963","wires":[]},{"id":"3dde4199.1c9e2e","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":512.8968772888184,"y":934.7656240463257,"z":"d029d2a.974963","wires":[]},{"id":"66ef7002.abb7e","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":523.8970718383789,"y":681.4799699783325,"z":"d029d2a.974963","wires":[]},{"id":"6861327d.73bc7c","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":479.880916595459,"y":274.76189517974854,"z":"d029d2a.974963","wires":[]},{"id":"30cc1a1b.8e88e6","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":527.1401786804199,"y":241.02116107940674,"z":"d029d2a.974963","wires":[]},{"id":"add0f6b0.d7fa28","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":486.1362724304199,"y":310.66009426116943,"z":"d029d2a.974963","wires":[[]]},{"id":"5c57b0ca.b25a6","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":548.6616058349609,"y":471.8880615234375,"z":"d029d2a.974963","wires":[["bcc2124f.d53a2","f31fdf96.9d6cc"]]},{"id":"b3f7a9f5.747648","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":514.207706451416,"y":370.44579887390137,"z":"d029d2a.974963","wires":[[]]},{"id":"bcc2124f.d53a2","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":805.9577445983887,"y":470.69582200050354,"z":"d029d2a.974963","wires":[["f78da3bd.a0afd"]]},{"id":"b6f5439f.b0624","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":556.6721649169922,"y":824.8627014160156,"z":"d029d2a.974963","wires":[["f821a3fb.c285e","f757d471.7dc7d8","49853f9a.93d68"]]},{"id":"f821a3fb.c285e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":826.9801826477051,"y":877.8609022125602,"z":"d029d2a.974963","wires":[["630debdb.168f04"]]},{"id":"f757d471.7dc7d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":817.9802322387695,"y":846.3609279617667,"z":"d029d2a.974963","wires":[["630debdb.168f04"]]},{"id":"49853f9a.93d68","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":821.7302703857422,"y":816.7180328369141,"z":"d029d2a.974963","wires":[["fb95f526.14ff08"]]},{"id":"630debdb.168f04","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":987.7302703857422,"y":847.1109518036246,"z":"d029d2a.974963","wires":[]},{"id":"f78da3bd.a0afd","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":986.9576988220215,"y":471.19577145576477,"z":"d029d2a.974963","wires":[["a88d57e7.ea7b68","874276d9.71a568"]]},{"id":"a88d57e7.ea7b68","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1232.8149452209473,"y":505.48153471946716,"z":"d029d2a.974963","wires":[["b5653c05.23ac6"]]},{"id":"b5653c05.23ac6","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1423.8149490356445,"y":505.4815323352814,"z":"d029d2a.974963","wires":[["750425c0.df6c0c"]]},{"id":"803be05.23d262","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1823.6720848083496,"y":506.0529565811157,"z":"d029d2a.974963","wires":[]},{"id":"750425c0.df6c0c","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1594.671932220459,"y":506.0530014038086,"z":"d029d2a.974963","wires":[["803be05.23d262","86d2d032.ec9c7","1fd599c8.bea286"]]},{"id":"86d2d032.ec9c7","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1821.6723289489746,"y":573.481520652771,"z":"d029d2a.974963","wires":[]},{"id":"ae3be0c3.a3ad4","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":573.9576683044434,"y":435.19576239585876,"z":"d029d2a.974963","wires":[]},{"id":"1fd599c8.bea286","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1831.6721076965332,"y":539.0529546737671,"z":"d029d2a.974963","wires":[["ea7abf8a.d6c0e","88378d84.e1337"]]},{"id":"ea7abf8a.d6c0e","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2043.2720642089844,"y":500.0529546737671,"z":"d029d2a.974963","wires":[["c95729c.38426d8"]]},{"id":"88378d84.e1337","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2068.9864387512207,"y":535.4815454483032,"z":"d029d2a.974963","wires":[["c95729c.38426d8"]]},{"id":"81dbbc42.6cf3b","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":529.4814910888672,"y":525.7672157287598,"z":"d029d2a.974963","wires":[]},{"id":"874276d9.71a568","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1312.5292778015137,"y":471.1958634853363,"z":"d029d2a.974963","wires":[]},{"id":"ef3a6e4c.51d76","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":485.10051345825195,"y":340.0529260635376,"z":"d029d2a.974963","wires":[]},{"id":"fb95f526.14ff08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":963.3862380981445,"y":812.9102020263672,"z":"d029d2a.974963","wires":[[]]},{"id":"369a0f6a.c9ad8","type":"comment","name":"TO DO: vnf/put parent","info":"","comments":"","x":487.38623046875,"y":713.5767650604248,"z":"d029d2a.974963","wires":[]},{"id":"fc0c4385.ee3a5","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":471.38623428344727,"y":642.9101247787476,"z":"d029d2a.974963","wires":[[]]},{"id":"f31fdf96.9d6cc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":805.719539642334,"y":506.90999484062195,"z":"d029d2a.974963","wires":[["19da75c4.bf509a"]]},{"id":"19da75c4.bf509a","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":985.7194900512695,"y":507.57654547691345,"z":"d029d2a.974963","wires":[[]]},{"id":"56345297.bc34dc","type":"set","name":"set id","xml":"<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />","comments":"","x":454.3862762451172,"y":562.5767364501953,"z":"d029d2a.974963","wires":[]},{"id":"c95729c.38426d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2257.7425804138184,"y":501.4285888671875,"z":"d029d2a.974963","wires":[[]]},{"id":"62744ec2.dbf8","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"in-service-path\" />\n","comments":"","outputs":1,"x":515.0000152587891,"y":746.6666326522827,"z":"d029d2a.974963","wires":[["5211695c.bb63d8","6077137b.90cddc"]]},{"id":"5211695c.bb63d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":770.7619094848633,"y":729.6191296577454,"z":"d029d2a.974963","wires":[["fa37c9f8.eb9288"]]},{"id":"fa37c9f8.eb9288","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":937.2857894897461,"y":741.2382006645203,"z":"d029d2a.974963","wires":[]},{"id":"6077137b.90cddc","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":777.8571968078613,"y":762.381097316742,"z":"d029d2a.974963","wires":[["fa37c9f8.eb9288"]]}]
+[
+    {
+        "id": "f4d06dda.30316",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 167.14285278320312,
+        "y": 61.42856979370117,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "7f7c6af3.215f74"
+            ]
+        ]
+    },
+    {
+        "id": "7f7c6af3.215f74",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 263.38093185424805,
+        "y": 122.38096046447754,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "5a1c2468.67872c"
+            ]
+        ]
+    },
+    {
+        "id": "5a1c2468.67872c",
+        "type": "method",
+        "name": "security-zone-topology-operation-activate",
+        "xml": "<method rpc='security-zone-topology-operation-activate' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 309.2977104187012,
+        "y": 157.61901569366455,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "dfe1dc14.5964"
+            ]
+        ]
+    },
+    {
+        "id": "dfe1dc14.5964",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 217.61904525756836,
+        "y": 300.95235776901245,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "3dde4199.1c9e2e",
+                "d411dae1.fde8d8",
+                "30cc1a1b.8e88e6",
+                "6861327d.73bc7c",
+                "add0f6b0.d7fa28",
+                "b3f7a9f5.747648",
+                "5c57b0ca.b25a6",
+                "b6f5439f.b0624",
+                "fc0c4385.ee3a5",
+                "66ef7002.abb7e",
+                "56345297.bc34dc",
+                "62744ec2.dbf8"
+            ]
+        ]
+    },
+    {
+        "id": "d411dae1.fde8d8",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 484.1429634094238,
+        "y": 970.6430778503418,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "3dde4199.1c9e2e",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 512.8968772888184,
+        "y": 934.7656240463257,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "66ef7002.abb7e",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 523.8970718383789,
+        "y": 681.4799699783325,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "6861327d.73bc7c",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 479.880916595459,
+        "y": 274.76189517974854,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "30cc1a1b.8e88e6",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 527.1401786804199,
+        "y": 241.02116107940674,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "add0f6b0.d7fa28",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 486.1362724304199,
+        "y": 310.66009426116943,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5c57b0ca.b25a6",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 548.6616058349609,
+        "y": 471.8880615234375,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "bcc2124f.d53a2",
+                "f31fdf96.9d6cc"
+            ]
+        ]
+    },
+    {
+        "id": "b3f7a9f5.747648",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 514.207706451416,
+        "y": 370.44579887390137,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "bcc2124f.d53a2",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 805.9577445983887,
+        "y": 470.69582200050354,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "f78da3bd.a0afd"
+            ]
+        ]
+    },
+    {
+        "id": "b6f5439f.b0624",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 556.6721649169922,
+        "y": 824.8627014160156,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "f821a3fb.c285e",
+                "f757d471.7dc7d8",
+                "49853f9a.93d68"
+            ]
+        ]
+    },
+    {
+        "id": "f821a3fb.c285e",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 826.9801826477051,
+        "y": 877.8609022125602,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "630debdb.168f04"
+            ]
+        ]
+    },
+    {
+        "id": "f757d471.7dc7d8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 817.9802322387695,
+        "y": 846.3609279617667,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "630debdb.168f04"
+            ]
+        ]
+    },
+    {
+        "id": "49853f9a.93d68",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 821.7302703857422,
+        "y": 816.7180328369141,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "fb95f526.14ff08"
+            ]
+        ]
+    },
+    {
+        "id": "630debdb.168f04",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 987.7302703857422,
+        "y": 847.1109518036246,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "f78da3bd.a0afd",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 986.9576988220215,
+        "y": 471.19577145576477,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "a88d57e7.ea7b68",
+                "874276d9.71a568"
+            ]
+        ]
+    },
+    {
+        "id": "a88d57e7.ea7b68",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1232.8149452209473,
+        "y": 505.48153471946716,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "b5653c05.23ac6"
+            ]
+        ]
+    },
+    {
+        "id": "b5653c05.23ac6",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1423.8149490356445,
+        "y": 505.4815323352814,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "750425c0.df6c0c"
+            ]
+        ]
+    },
+    {
+        "id": "803be05.23d262",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1823.6720848083496,
+        "y": 506.0529565811157,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "750425c0.df6c0c",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1594.671932220459,
+        "y": 506.0530014038086,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "803be05.23d262",
+                "86d2d032.ec9c7",
+                "1fd599c8.bea286"
+            ]
+        ]
+    },
+    {
+        "id": "86d2d032.ec9c7",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1821.6723289489746,
+        "y": 573.481520652771,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "ae3be0c3.a3ad4",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 573.9576683044434,
+        "y": 435.19576239585876,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "1fd599c8.bea286",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1831.6721076965332,
+        "y": 539.0529546737671,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "ea7abf8a.d6c0e",
+                "88378d84.e1337"
+            ]
+        ]
+    },
+    {
+        "id": "ea7abf8a.d6c0e",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2043.2720642089844,
+        "y": 500.0529546737671,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "c95729c.38426d8"
+            ]
+        ]
+    },
+    {
+        "id": "88378d84.e1337",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2068.9864387512207,
+        "y": 535.4815454483032,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "c95729c.38426d8"
+            ]
+        ]
+    },
+    {
+        "id": "81dbbc42.6cf3b",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 529.4814910888672,
+        "y": 525.7672157287598,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "874276d9.71a568",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1312.5292778015137,
+        "y": 471.1958634853363,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "ef3a6e4c.51d76",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 485.10051345825195,
+        "y": 340.0529260635376,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "fb95f526.14ff08",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 963.3862380981445,
+        "y": 812.9102020263672,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "369a0f6a.c9ad8",
+        "type": "comment",
+        "name": "TO DO: vnf/put parent",
+        "info": "",
+        "comments": "",
+        "x": 487.38623046875,
+        "y": 713.5767650604248,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "fc0c4385.ee3a5",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 471.38623428344727,
+        "y": 642.9101247787476,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f31fdf96.9d6cc",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 805.719539642334,
+        "y": 506.90999484062195,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "19da75c4.bf509a"
+            ]
+        ]
+    },
+    {
+        "id": "19da75c4.bf509a",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 985.7194900512695,
+        "y": 507.57654547691345,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "56345297.bc34dc",
+        "type": "set",
+        "name": "set id",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />",
+        "comments": "",
+        "x": 454.3862762451172,
+        "y": 562.5767364501953,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "c95729c.38426d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2257.7425804138184,
+        "y": 501.4285888671875,
+        "z": "d029d2a.974963",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "62744ec2.dbf8",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"in-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 515.0000152587891,
+        "y": 746.6666326522827,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "5211695c.bb63d8",
+                "6077137b.90cddc"
+            ]
+        ]
+    },
+    {
+        "id": "5211695c.bb63d8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 770.7619094848633,
+        "y": 729.6191296577454,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "fa37c9f8.eb9288"
+            ]
+        ]
+    },
+    {
+        "id": "fa37c9f8.eb9288",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 937.2857894897461,
+        "y": 741.2382006645203,
+        "z": "d029d2a.974963",
+        "wires": []
+    },
+    {
+        "id": "6077137b.90cddc",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 777.8571968078613,
+        "y": 762.381097316742,
+        "z": "d029d2a.974963",
+        "wires": [
+            [
+                "fa37c9f8.eb9288"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index 0c0663a..740e7ed 100755 (executable)
@@ -1 +1,1593 @@
-[{"id":"3aa7dd53.c23282","type":"dgstart","name":"DGSTART","outputs":1,"x":113.75662612915039,"y":48.518513679504395,"z":"d9f8bc54.6ca48","wires":[["d95c10eb.dc1d4"]]},{"id":"d95c10eb.dc1d4","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":209.9947052001953,"y":109.47090435028076,"z":"d9f8bc54.6ca48","wires":[["9ec57dff.79a3e"]]},{"id":"9ec57dff.79a3e","type":"method","name":"security-zone-topology-operation-assign","xml":"<method rpc='security-zone-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":255.91148376464844,"y":144.70895957946777,"z":"d9f8bc54.6ca48","wires":[["b469237.21f31e"]]},{"id":"b469237.21f31e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":164.23281860351562,"y":288.0423016548157,"z":"d9f8bc54.6ca48","wires":[["da8bc6b3.f36008","dd46184f.c5ad68","19bd4a95.82d635","7ff7d11f.c2ff8","5082e4fd.fb398c","44a8ff0c.4ea4","3f7399d.1a38166","df2b47bc.dad938","29f6546e.b6ab2c","cd2238ce.a361f8","f37960af.a307","676f8458.1ceddc","41c3e1d7.688b9","bf0c5aa1.d23018","bb728435.7fabc8","db115202.e2393","773fe048.c730b","995418ca.5fe778","422fade5.4f8814","83f71044.bcea7","4f2b0053.cbdf5","14e2f5f2.92d2fa","121f5121.c5ff2f","a4891e73.c917","a62f34b1.dd5738","87ceb4de.ec7128","c025c3c9.338f6"]]},{"id":"dd46184f.c5ad68","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":380.75672149658203,"y":2301.73295211792,"z":"d9f8bc54.6ca48","wires":[]},{"id":"da8bc6b3.f36008","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":409.51063537597656,"y":2265.855498313904,"z":"d9f8bc54.6ca48","wires":[]},{"id":"a62f34b1.dd5738","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":469.0821876525879,"y":1642.569899559021,"z":"d9f8bc54.6ca48","wires":[]},{"id":"7ff7d11f.c2ff8","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":426.49468994140625,"y":261.85183906555176,"z":"d9f8bc54.6ca48","wires":[]},{"id":"19bd4a95.82d635","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":473.7539520263672,"y":228.11110496520996,"z":"d9f8bc54.6ca48","wires":[]},{"id":"5082e4fd.fb398c","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":432.7500457763672,"y":297.75003814697266,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"3f7399d.1a38166","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":513.2753753662109,"y":520.9779777526855,"z":"d9f8bc54.6ca48","wires":[["5afe88e8.32e0a8","4a737d1.caa4e84"]]},{"id":"44a8ff0c.4ea4","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":460.8214797973633,"y":357.5357427597046,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"5afe88e8.32e0a8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":758.5715179443359,"y":523.7857661247253,"z":"d9f8bc54.6ca48","wires":[["b6853767.ffe678"]]},{"id":"14e2f5f2.92d2fa","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":487.61922454833984,"y":1847.2859721183777,"z":"d9f8bc54.6ca48","wires":[["975af54b.31fe88","615e377.16035c8","3777cc93.f26b94"]]},{"id":"975af54b.31fe88","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":756.2606010437012,"y":1898.6173838600516,"z":"d9f8bc54.6ca48","wires":[["a456aa59.071ed8"]]},{"id":"615e377.16035c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":747.2606506347656,"y":1867.1174096092582,"z":"d9f8bc54.6ca48","wires":[["a456aa59.071ed8"]]},{"id":"3777cc93.f26b94","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":751.0106887817383,"y":1837.4745144844055,"z":"d9f8bc54.6ca48","wires":[["4593956d.d1f3ec"]]},{"id":"a456aa59.071ed8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":917.0106887817383,"y":1867.867433451116,"z":"d9f8bc54.6ca48","wires":[]},{"id":"b6853767.ffe678","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":939.5714721679688,"y":524.2857155799866,"z":"d9f8bc54.6ca48","wires":[["f8ae24aa.f00bb8","a0673b92.f4f7c8"]]},{"id":"f8ae24aa.f00bb8","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1185.4287185668945,"y":558.571478843689,"z":"d9f8bc54.6ca48","wires":[["b691cae6.eefd08"]]},{"id":"b691cae6.eefd08","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1376.4287223815918,"y":558.5714764595032,"z":"d9f8bc54.6ca48","wires":[["c71c7fc0.fb074"]]},{"id":"9e2ca7ca.004578","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1770.286018371582,"y":493.14292335510254,"z":"d9f8bc54.6ca48","wires":[]},{"id":"c71c7fc0.fb074","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1563.2858505249023,"y":527.1428961753845,"z":"d9f8bc54.6ca48","wires":[["9e2ca7ca.004578","577032f2.5c728c","f6f446f7.eb6e38"]]},{"id":"577032f2.5c728c","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1770.286018371582,"y":572.5714111328125,"z":"d9f8bc54.6ca48","wires":[]},{"id":"b73d4268.63b59","type":"comment","name":"Save consumed-allotted-resources to mdsal","info":"","comments":"","x":491.0000915527344,"y":1490.238136291504,"z":"d9f8bc54.6ca48","wires":[]},{"id":"9c87c693.6b7aa8","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":526.5714416503906,"y":488.28570652008057,"z":"d9f8bc54.6ca48","wires":[]},{"id":"f6f446f7.eb6e38","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1778.2858810424805,"y":526.1428985595703,"z":"d9f8bc54.6ca48","wires":[["1ba18b9c.c66c64","e561c273.b01c"]]},{"id":"1ba18b9c.c66c64","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":1989.8858375549316,"y":487.1428985595703,"z":"d9f8bc54.6ca48","wires":[["ace0f78a.8c4198"]]},{"id":"e561c273.b01c","type":"outcome","name":"outcome PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":2015.600212097168,"y":522.5714893341064,"z":"d9f8bc54.6ca48","wires":[["ace0f78a.8c4198"]]},{"id":"ace0f78a.8c4198","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n","comments":"","x":2277.885810852051,"y":495.14288544654846,"z":"d9f8bc54.6ca48","wires":[]},{"id":"df2b47bc.dad938","type":"set","name":"set sz-ar-identifiers","xml":"<set>\n<parameter name='sz-ar-identifiers.consuming-service-instance-id' value=\"`$security-zone-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='sz-ar-identifiers.parent-service-instance-id' value=\"`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='sz-ar-identifiers.allotted-resource-type' value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='sz-ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n","comments":"","x":437.1429138183594,"y":677.1428809165955,"z":"d9f8bc54.6ca48","wires":[]},{"id":"c09b6648.7720b8","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":478.0952682495117,"y":622.8571615219116,"z":"d9f8bc54.6ca48","wires":[]},{"id":"29f6546e.b6ab2c","type":"set","name":"set identifiers in overal structure","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.allotted-resource-identifiers.' \nvalue=\"`$sz-ar-identifiers.`\" />\n\n\n","comments":"","x":474.1428756713867,"y":951.428858757019,"z":"d9f8bc54.6ca48","wires":[]},{"id":"cd2238ce.a361f8","type":"set","name":"set ecomp model information from input","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.' \nvalue=\"`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.`\" />\n\n\n","comments":"","x":505.7143325805664,"y":711.4285831451416,"z":"d9f8bc54.6ca48","wires":[]},{"id":"f37960af.a307","type":"switchNode","name":"switch model-invariant-uuid is null","xml":"<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\n","comments":"","outputs":1,"x":488.5714416503906,"y":745.714301109314,"z":"d9f8bc54.6ca48","wires":[["cdaca375.86687"]]},{"id":"cdaca375.86687","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":715.7143211364746,"y":747.1428184509277,"z":"d9f8bc54.6ca48","wires":[["ca95e15f.7a282"]]},{"id":"ca95e15f.7a282","type":"set","name":"set model-invariant-uuid","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-invariant-uuid' \nvalue=\"`$ar-model.invariant-uuid`\" />\n\n\n","comments":"","x":917.142894744873,"y":746.5713710784912,"z":"d9f8bc54.6ca48","wires":[]},{"id":"676f8458.1ceddc","type":"switchNode","name":"switch model-uuid is null","xml":"<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\n","comments":"","outputs":1,"x":460.00003814697266,"y":780.0000019073486,"z":"d9f8bc54.6ca48","wires":[["c051003f.4d255"]]},{"id":"c051003f.4d255","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":661.4286041259766,"y":780.5714235305786,"z":"d9f8bc54.6ca48","wires":[["17a9ad79.daf043"]]},{"id":"17a9ad79.daf043","type":"set","name":"set model-uuid","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-uuid' \nvalue=\"`$ar-model.uuid`\" />\n\n\n","comments":"","x":854.2857627868652,"y":780.5713453292847,"z":"d9f8bc54.6ca48","wires":[]},{"id":"41c3e1d7.688b9","type":"switchNode","name":"switch model-version is null","xml":"<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\n","comments":"","outputs":1,"x":468.5714416503906,"y":812.8571290969849,"z":"d9f8bc54.6ca48","wires":[["834cdb5d.a611a8"]]},{"id":"834cdb5d.a611a8","type":"outcome","name":"outcome null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":718.5714225769043,"y":812.8571138381958,"z":"d9f8bc54.6ca48","wires":[["6df03ba1.da4d84"]]},{"id":"6df03ba1.da4d84","type":"set","name":"set model-version","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-version' \nvalue=\"`$ar-model.version`\" />\n\n\n","comments":"","x":911.428581237793,"y":812.8570356369019,"z":"d9f8bc54.6ca48","wires":[]},{"id":"bf0c5aa1.d23018","type":"switchNode","name":"switch ar-model.ecomp-generated-naming","xml":"<switch test='`$ar-model.ecomp-generated-naming`'>\n","comments":"","outputs":1,"x":507.1428413391113,"y":914.2858047485352,"z":"d9f8bc54.6ca48","wires":[["8263bea9.21776","31dce175.8172ce"]]},{"id":"8263bea9.21776","type":"other","name":"outcome Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":857.1429061889648,"y":913.7143549919128,"z":"d9f8bc54.6ca48","wires":[["6d3862a4.def2cc"]]},{"id":"6d3862a4.def2cc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">\n","atomic":"true","comments":"","outputs":1,"x":1025.8929481506348,"y":914.214343547821,"z":"d9f8bc54.6ca48","wires":[["340cfc26.1a1d64"]]},{"id":"31dce175.8172ce","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":848.3651962280273,"y":946.7143549919128,"z":"d9f8bc54.6ca48","wires":[["79411f72.37cc4"]]},{"id":"79411f72.37cc4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in allotted-resource-model data.  Ecomp-generated-naming should be true\" />\n\n","comments":"","x":1026.3651962280273,"y":945.7143549919128,"z":"d9f8bc54.6ca48","wires":[]},{"id":"340cfc26.1a1d64","type":"switchNode","name":"switch ar-model.ecomp-generated-naming","xml":"<switch test='`$ar-model.naming-policy`'>\n","comments":"","outputs":1,"x":1327.1428527832031,"y":914.2858171463013,"z":"d9f8bc54.6ca48","wires":[["c60923e3.e3226","5fb6c973.79b708"]]},{"id":"c60923e3.e3226","type":"other","name":"outcome oam_security_zone_name","xml":"<outcome value='oam_security_zone_name'>\n","comments":"","outputs":1,"x":1668.000617980957,"y":914.8638672828674,"z":"d9f8bc54.6ca48","wires":[["64919905.bc8708"]]},{"id":"5fb6c973.79b708","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1579.4285507202148,"y":945.714367389679,"z":"d9f8bc54.6ca48","wires":[["64919905.bc8708"]]},{"id":"47d880dc.e5c98","type":"set","name":"set ar_name","xml":"<set>\n<parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />\n","comments":"","x":2108.8573417663574,"y":914.2857584953308,"z":"d9f8bc54.6ca48","wires":[]},{"id":"e616a9fb.2ba0a8","type":"execute","name":"execute SliStringUtils - replace TenantOAMNetworkRole","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`\"/>\n\n","comments":"","outputs":1,"x":2246.0004119873047,"y":947.1429333686829,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"c3a0064f.e2bfc8","type":"execute","name":"execute SliStringUtils - replace LandingNetworkRole","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`\"/>\n\n","comments":"","outputs":1,"x":2229.0004272460938,"y":979.2858099937439,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"64919905.bc8708","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1910.2858276367188,"y":942.8572659492493,"z":"d9f8bc54.6ca48","wires":[["47d880dc.e5c98","e616a9fb.2ba0a8","c3a0064f.e2bfc8","3ea93d43.94b532"]]},{"id":"3ea93d43.94b532","type":"set","name":"set identifiers.allotted-resource-name","xml":"<set>\n<parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\n","comments":"","x":2178.8573150634766,"y":1008.571485042572,"z":"d9f8bc54.6ca48","wires":[]},{"id":"db115202.e2393","type":"set","name":"set assignments in overal structure","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.security-zone-assignments.' \nvalue=\"`$sz-ar-assignments.`\" />\n\n\n","comments":"","x":482.61910247802734,"y":1117.1431503295898,"z":"d9f8bc54.6ca48","wires":[]},{"id":"bb728435.7fabc8","type":"set","name":"set sz-ar-assignments","xml":"<set>\n<parameter name='sz-ar-assignments.vlan-tag' value=\"`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag` \" />\n<parameter name='sz-ar-assignments.trusted-network-role' value=\"`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role` \" />\n<parameter name='sz-ar-assignments.untrusted-network-role' value=\"`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role` \" />\n<parameter name='sz-ar-assignments.security-zone-service-instance-id' value=\"`$tmp.ar.parent-service-instance-id` \" />\n\n","comments":"","x":444.28570556640625,"y":988.5715227127075,"z":"d9f8bc54.6ca48","wires":[]},{"id":"cae22b42.18c468","type":"for","name":"for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]","xml":"<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n","comments":"","outputs":1,"x":1360.572135925293,"y":1564.8096537590027,"z":"d9f8bc54.6ca48","wires":[["7553ad4e.ad7d94"]]},{"id":"773fe048.c730b","type":"switchNode","name":"switch service-data.consumed-allotted-resources_length","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n","comments":"","outputs":1,"x":534.5714721679688,"y":1524.5236463546753,"z":"d9f8bc54.6ca48","wires":[["38c33f23.a99c8","61a487f.6f30978"]]},{"id":"38c33f23.a99c8","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":840.7143859863281,"y":1529.3809938430786,"z":"d9f8bc54.6ca48","wires":[["3413dfa5.ea0b8"]]},{"id":"61a487f.6f30978","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":820.7143859863281,"y":1564.3809938430786,"z":"d9f8bc54.6ca48","wires":[["a9ef602f.19524"]]},{"id":"7553ad4e.ad7d94","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n","comments":"","outputs":1,"x":1812.6673278808594,"y":1562.869366645813,"z":"d9f8bc54.6ca48","wires":[["2bfef68b.19fdca"]]},{"id":"2bfef68b.19fdca","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2004.4769649505615,"y":1562.3335065841675,"z":"d9f8bc54.6ca48","wires":[["2e1ed2f6.15d1fe"]]},{"id":"a9ef602f.19524","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":974.8415298461914,"y":1564.5069856643677,"z":"d9f8bc54.6ca48","wires":[["cae22b42.18c468","91a87775.758588"]]},{"id":"2e1ed2f6.15d1fe","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2160.238296508789,"y":1562.1907081604004,"z":"d9f8bc54.6ca48","wires":[["e679b033.de33f","4d5ec78f.74ab88"]]},{"id":"3413dfa5.ea0b8","type":"set","name":"set cidx","xml":"<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n","comments":"","x":999.5713996887207,"y":1529.0952253341675,"z":"d9f8bc54.6ca48","wires":[]},{"id":"e679b033.de33f","type":"set","name":"set tmp.cidx and ctx.consumed-ar","xml":"<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\n<parameter name='tmp.found-cidx' value='true' />","comments":"","x":2406.0957565307617,"y":1556.7621870040894,"z":"d9f8bc54.6ca48","wires":[]},{"id":"995418ca.5fe778","type":"set","name":"set consumed allotted resources","xml":"<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n","comments":"","x":462.42862701416016,"y":1565.0951986312866,"z":"d9f8bc54.6ca48","wires":[]},{"id":"59610fb0.0a244","type":"execute","name":"execute RestApiCallNode - PUT SZ VNF Provided Allotted Resource","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-p-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-prov-ar\" />\n\n","comments":"","outputs":1,"x":575.9049606323242,"y":2049.0955414772034,"z":"d9f8bc54.6ca48","wires":[["ae04f7b.eed3208","5027b5f7.e37cbc"]]},{"id":"a0673b92.f4f7c8","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1265.143051147461,"y":524.2858076095581,"z":"d9f8bc54.6ca48","wires":[]},{"id":"422fade5.4f8814","type":"execute","name":"generate vnf provided ar url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf-provided-allottedresource`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{service-instance-id}\" />\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\" />\n","comments":"","outputs":1,"x":452.8571472167969,"y":388.57141876220703,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"83f71044.bcea7","type":"execute","name":"execute SliStringUtils","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vnf-p-ar-url`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.sz-vnf-id`\"/>\n","comments":"","outputs":1,"x":443.1428985595703,"y":419.99999809265137,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"ec9be6aa.494588","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":431.7142868041992,"y":327.1428699493408,"z":"d9f8bc54.6ca48","wires":[]},{"id":"ae04f7b.eed3208","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":934.4763298034668,"y":2049.666941165924,"z":"d9f8bc54.6ca48","wires":[["f9fdf5f9.8e4668"]]},{"id":"f9fdf5f9.8e4668","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1144.047706604004,"y":2048.738305568695,"z":"d9f8bc54.6ca48","wires":[["3eccb358.12c2dc","968252db.ccc84"]]},{"id":"3eccb358.12c2dc","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1389.9049530029297,"y":2083.0240688323975,"z":"d9f8bc54.6ca48","wires":[["452ba5e6.956fcc"]]},{"id":"452ba5e6.956fcc","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1580.904956817627,"y":2083.0240664482117,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"968252db.ccc84","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1469.619285583496,"y":2048.7383975982666,"z":"d9f8bc54.6ca48","wires":[]},{"id":"5027b5f7.e37cbc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":933.047721862793,"y":2139.6668133735657,"z":"d9f8bc54.6ca48","wires":[["ce01090.f9b9af8"]]},{"id":"f1ea7873.944388","type":"comment","name":"Need to rollback?","info":"","comments":"","x":935.9049758911133,"y":2088.238205432892,"z":"d9f8bc54.6ca48","wires":[]},{"id":"e06b36.87ea84c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":1310.1905517578125,"y":2181.0956473350525,"z":"d9f8bc54.6ca48","wires":[]},{"id":"eeb0dfbd.307f7","type":"execute","name":"execute RestApiCallNode - DELETE AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":1411.6191864013672,"y":2142.5242981910706,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"ce01090.f9b9af8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1107.3334274291992,"y":2142.523895740509,"z":"d9f8bc54.6ca48","wires":[["eeb0dfbd.307f7","e06b36.87ea84c8"]]},{"id":"bde153f5.6a65","type":"comment","name":"Generate Security zone Panorama names","info":"","comments":"","x":494.8095932006836,"y":1016.1907386779785,"z":"d9f8bc54.6ca48","wires":[]},{"id":"4f2b0053.cbdf5","type":"set","name":"set sz-ar-assignments","xml":"<set>\n<parameter name='sz-ar-assignments.security-zone-name-untrusted' value=\"`$tmp.untrust-sz` \" />\n<parameter name='sz-ar-assignments.security-zone-name-trusted' value=\"`$tmp.trust-sz` \" />\n\n\n","comments":"","x":444.0953140258789,"y":1080.7148094177246,"z":"d9f8bc54.6ca48","wires":[]},{"id":"c28eabf9.0410c8","type":"execute","name":"execute SliStringUtils","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vnf-p-ar-url`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.sz-vnf-id`\"/>\n","comments":"","outputs":1,"x":444.28570556640625,"y":451.4285583496094,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"121f5121.c5ff2f","type":"call","name":"call generate-panorama-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-panorama-name' mode='sync' >\n","comments":"","outputs":1,"x":465.00001525878906,"y":1046.66672706604,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"4593956d.d1f3ec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":892.6666564941406,"y":1833.6666836738586,"z":"d9f8bc54.6ca48","wires":[["297e2310.b99eec"]]},{"id":"a64508aa.c4e898","type":"comment","name":"Add SZ AR to mdsal","info":"","comments":"","x":416.9048080444336,"y":1808.3808569908142,"z":"d9f8bc54.6ca48","wires":[]},{"id":"a4891e73.c917","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":424.66665840148926,"y":1602.3333406448364,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"4a737d1.caa4e84","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":758.3333129882812,"y":559.9999389648438,"z":"d9f8bc54.6ca48","wires":[["f20f59c0.b02038"]]},{"id":"f20f59c0.b02038","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":938.3332633972168,"y":560.6664896011353,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"87ceb4de.ec7128","type":"set","name":"set id","xml":"<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />","comments":"","x":405.000057220459,"y":585.9523229598999,"z":"d9f8bc54.6ca48","wires":[]},{"id":"c025c3c9.338f6","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$ar-model.invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$ar-model.uuid`\" />\n\t<parameter name=\"operational-status\" value=\"null\" />\n","comments":"","outputs":1,"x":446.66668701171875,"y":1730.238124847412,"z":"d9f8bc54.6ca48","wires":[["78f280c9.aa658","3206f266.94f28e"]]},{"id":"78f280c9.aa658","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":702.428596496582,"y":1713.190628528595,"z":"d9f8bc54.6ca48","wires":[["e21aa9c5.4ebb08"]]},{"id":"e21aa9c5.4ebb08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":868.9524765014648,"y":1724.8096995353699,"z":"d9f8bc54.6ca48","wires":[]},{"id":"3206f266.94f28e","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":709.5238838195801,"y":1745.9525961875916,"z":"d9f8bc54.6ca48","wires":[["e21aa9c5.4ebb08"]]},{"id":"91a87775.758588","type":"switchNode","name":"switch tmp.found-cidx","xml":"<switch test='`$tmp.found-cidx`'>\n","comments":"","outputs":1,"x":1177.999984741211,"y":1596.0000410079956,"z":"d9f8bc54.6ca48","wires":[["f9327230.fb919"]]},{"id":"f9327230.fb919","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1367.9999389648438,"y":1595.9999780654907,"z":"d9f8bc54.6ca48","wires":[["fde4a6ad.8b8798"]]},{"id":"fde4a6ad.8b8798","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1533.9999389648438,"y":1595.9999780654907,"z":"d9f8bc54.6ca48","wires":[["f243be1.0d9664"]]},{"id":"f243be1.0d9664","type":"set","name":"set tmp.cidx ","xml":"<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n","comments":"","x":1779.8572673797607,"y":1596.571452140808,"z":"d9f8bc54.6ca48","wires":[]},{"id":"4d5ec78f.74ab88","type":"break","name":"break","xml":"<break>\n","comments":"","x":2324.000057220459,"y":1588.0000791549683,"z":"d9f8bc54.6ca48","wires":[]},{"id":"297e2310.b99eec","type":"execute","name":"execute RestApiCallNode - Update parent provided service AR","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n","comments":"","outputs":1,"x":1243.708797454834,"y":1833.3755688667297,"z":"d9f8bc54.6ca48","wires":[["90eb7941.4e6d28","529b5fcc.fe782","5dd2303d.8c34d"]]},{"id":"c07fd6c.a7d3c28","type":"comment","name":"Rollback parent","info":"","comments":"","x":1087.708724975586,"y":1803.0421993732452,"z":"d9f8bc54.6ca48","wires":[]},{"id":"90eb7941.4e6d28","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1615.016845703125,"y":1894.040535211563,"z":"d9f8bc54.6ca48","wires":[["f889d017.68c21"]]},{"id":"529b5fcc.fe782","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1606.0168952941895,"y":1862.5405609607697,"z":"d9f8bc54.6ca48","wires":[["f889d017.68c21"]]},{"id":"5dd2303d.8c34d","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1609.766933441162,"y":1832.897665835917,"z":"d9f8bc54.6ca48","wires":[["f889d017.68c21"]]},{"id":"f889d017.68c21","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1751.4229011535645,"y":1829.0898350253701,"z":"d9f8bc54.6ca48","wires":[[]]},{"id":"d41e8d9f.684df","type":"comment","name":"Generate naming","info":"","comments":"","x":438.00001525878906,"y":876.0000257492065,"z":"d9f8bc54.6ca48","wires":[]}]
+[
+    {
+        "id": "3aa7dd53.c23282",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 113.75662612915039,
+        "y": 48.518513679504395,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "d95c10eb.dc1d4"
+            ]
+        ]
+    },
+    {
+        "id": "d95c10eb.dc1d4",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 209.9947052001953,
+        "y": 109.47090435028076,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "9ec57dff.79a3e"
+            ]
+        ]
+    },
+    {
+        "id": "9ec57dff.79a3e",
+        "type": "method",
+        "name": "security-zone-topology-operation-assign",
+        "xml": "<method rpc='security-zone-topology-operation-assign' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 255.91148376464844,
+        "y": 144.70895957946777,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "b469237.21f31e"
+            ]
+        ]
+    },
+    {
+        "id": "b469237.21f31e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 164.23281860351562,
+        "y": 288.0423016548157,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "da8bc6b3.f36008",
+                "dd46184f.c5ad68",
+                "19bd4a95.82d635",
+                "7ff7d11f.c2ff8",
+                "5082e4fd.fb398c",
+                "44a8ff0c.4ea4",
+                "3f7399d.1a38166",
+                "df2b47bc.dad938",
+                "29f6546e.b6ab2c",
+                "cd2238ce.a361f8",
+                "f37960af.a307",
+                "676f8458.1ceddc",
+                "41c3e1d7.688b9",
+                "bf0c5aa1.d23018",
+                "bb728435.7fabc8",
+                "db115202.e2393",
+                "773fe048.c730b",
+                "995418ca.5fe778",
+                "422fade5.4f8814",
+                "83f71044.bcea7",
+                "4f2b0053.cbdf5",
+                "14e2f5f2.92d2fa",
+                "121f5121.c5ff2f",
+                "a4891e73.c917",
+                "a62f34b1.dd5738",
+                "87ceb4de.ec7128",
+                "c025c3c9.338f6"
+            ]
+        ]
+    },
+    {
+        "id": "dd46184f.c5ad68",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 380.75672149658203,
+        "y": 2301.73295211792,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "da8bc6b3.f36008",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 409.51063537597656,
+        "y": 2265.855498313904,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "a62f34b1.dd5738",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 469.0821876525879,
+        "y": 1642.569899559021,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "7ff7d11f.c2ff8",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 426.49468994140625,
+        "y": 261.85183906555176,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "19bd4a95.82d635",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 473.7539520263672,
+        "y": 228.11110496520996,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "5082e4fd.fb398c",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 432.7500457763672,
+        "y": 297.75003814697266,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3f7399d.1a38166",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 513.2753753662109,
+        "y": 520.9779777526855,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "5afe88e8.32e0a8",
+                "4a737d1.caa4e84"
+            ]
+        ]
+    },
+    {
+        "id": "44a8ff0c.4ea4",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 460.8214797973633,
+        "y": 357.5357427597046,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5afe88e8.32e0a8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 758.5715179443359,
+        "y": 523.7857661247253,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "b6853767.ffe678"
+            ]
+        ]
+    },
+    {
+        "id": "14e2f5f2.92d2fa",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 487.61922454833984,
+        "y": 1847.2859721183777,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "975af54b.31fe88",
+                "615e377.16035c8",
+                "3777cc93.f26b94"
+            ]
+        ]
+    },
+    {
+        "id": "975af54b.31fe88",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 756.2606010437012,
+        "y": 1898.6173838600516,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "a456aa59.071ed8"
+            ]
+        ]
+    },
+    {
+        "id": "615e377.16035c8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 747.2606506347656,
+        "y": 1867.1174096092582,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "a456aa59.071ed8"
+            ]
+        ]
+    },
+    {
+        "id": "3777cc93.f26b94",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 751.0106887817383,
+        "y": 1837.4745144844055,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "4593956d.d1f3ec"
+            ]
+        ]
+    },
+    {
+        "id": "a456aa59.071ed8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 917.0106887817383,
+        "y": 1867.867433451116,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "b6853767.ffe678",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 939.5714721679688,
+        "y": 524.2857155799866,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f8ae24aa.f00bb8",
+                "a0673b92.f4f7c8"
+            ]
+        ]
+    },
+    {
+        "id": "f8ae24aa.f00bb8",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1185.4287185668945,
+        "y": 558.571478843689,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "b691cae6.eefd08"
+            ]
+        ]
+    },
+    {
+        "id": "b691cae6.eefd08",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1376.4287223815918,
+        "y": 558.5714764595032,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "c71c7fc0.fb074"
+            ]
+        ]
+    },
+    {
+        "id": "9e2ca7ca.004578",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1770.286018371582,
+        "y": 493.14292335510254,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "c71c7fc0.fb074",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1563.2858505249023,
+        "y": 527.1428961753845,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "9e2ca7ca.004578",
+                "577032f2.5c728c",
+                "f6f446f7.eb6e38"
+            ]
+        ]
+    },
+    {
+        "id": "577032f2.5c728c",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1770.286018371582,
+        "y": 572.5714111328125,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "b73d4268.63b59",
+        "type": "comment",
+        "name": "Save consumed-allotted-resources to mdsal",
+        "info": "",
+        "comments": "",
+        "x": 491.0000915527344,
+        "y": 1490.238136291504,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "9c87c693.6b7aa8",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 526.5714416503906,
+        "y": 488.28570652008057,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "f6f446f7.eb6e38",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1778.2858810424805,
+        "y": 526.1428985595703,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "1ba18b9c.c66c64",
+                "e561c273.b01c"
+            ]
+        ]
+    },
+    {
+        "id": "1ba18b9c.c66c64",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1989.8858375549316,
+        "y": 487.1428985595703,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "ace0f78a.8c4198"
+            ]
+        ]
+    },
+    {
+        "id": "e561c273.b01c",
+        "type": "outcome",
+        "name": "outcome PendingDelete",
+        "xml": "<outcome value='PendingDelete'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2015.600212097168,
+        "y": 522.5714893341064,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "ace0f78a.8c4198"
+            ]
+        ]
+    },
+    {
+        "id": "ace0f78a.8c4198",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" \n    value=\"`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`\" />\n",
+        "comments": "",
+        "x": 2277.885810852051,
+        "y": 495.14288544654846,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "df2b47bc.dad938",
+        "type": "set",
+        "name": "set sz-ar-identifiers",
+        "xml": "<set>\n<parameter name='sz-ar-identifiers.consuming-service-instance-id' value=\"`$security-zone-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='sz-ar-identifiers.parent-service-instance-id' value=\"`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='sz-ar-identifiers.allotted-resource-type' value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='sz-ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n",
+        "comments": "",
+        "x": 437.1429138183594,
+        "y": 677.1428809165955,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "c09b6648.7720b8",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 478.0952682495117,
+        "y": 622.8571615219116,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "29f6546e.b6ab2c",
+        "type": "set",
+        "name": "set identifiers in overal structure",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.allotted-resource-identifiers.' \nvalue=\"`$sz-ar-identifiers.`\" />\n\n\n",
+        "comments": "",
+        "x": 474.1428756713867,
+        "y": 951.428858757019,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "cd2238ce.a361f8",
+        "type": "set",
+        "name": "set ecomp model information from input",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.' \nvalue=\"`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.`\" />\n\n\n",
+        "comments": "",
+        "x": 505.7143325805664,
+        "y": 711.4285831451416,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "f37960af.a307",
+        "type": "switchNode",
+        "name": "switch model-invariant-uuid is null",
+        "xml": "<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 488.5714416503906,
+        "y": 745.714301109314,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "cdaca375.86687"
+            ]
+        ]
+    },
+    {
+        "id": "cdaca375.86687",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 715.7143211364746,
+        "y": 747.1428184509277,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "ca95e15f.7a282"
+            ]
+        ]
+    },
+    {
+        "id": "ca95e15f.7a282",
+        "type": "set",
+        "name": "set model-invariant-uuid",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-invariant-uuid' \nvalue=\"`$ar-model.invariant-uuid`\" />\n\n\n",
+        "comments": "",
+        "x": 917.142894744873,
+        "y": 746.5713710784912,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "676f8458.1ceddc",
+        "type": "switchNode",
+        "name": "switch model-uuid is null",
+        "xml": "<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 460.00003814697266,
+        "y": 780.0000019073486,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "c051003f.4d255"
+            ]
+        ]
+    },
+    {
+        "id": "c051003f.4d255",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 661.4286041259766,
+        "y": 780.5714235305786,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "17a9ad79.daf043"
+            ]
+        ]
+    },
+    {
+        "id": "17a9ad79.daf043",
+        "type": "set",
+        "name": "set model-uuid",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-uuid' \nvalue=\"`$ar-model.uuid`\" />\n\n\n",
+        "comments": "",
+        "x": 854.2857627868652,
+        "y": 780.5713453292847,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "41c3e1d7.688b9",
+        "type": "switchNode",
+        "name": "switch model-version is null",
+        "xml": "<switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 468.5714416503906,
+        "y": 812.8571290969849,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "834cdb5d.a611a8"
+            ]
+        ]
+    },
+    {
+        "id": "834cdb5d.a611a8",
+        "type": "outcome",
+        "name": "outcome null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 718.5714225769043,
+        "y": 812.8571138381958,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "6df03ba1.da4d84"
+            ]
+        ]
+    },
+    {
+        "id": "6df03ba1.da4d84",
+        "type": "set",
+        "name": "set model-version",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-version' \nvalue=\"`$ar-model.version`\" />\n\n\n",
+        "comments": "",
+        "x": 911.428581237793,
+        "y": 812.8570356369019,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "bf0c5aa1.d23018",
+        "type": "switchNode",
+        "name": "switch ar-model.ecomp-generated-naming",
+        "xml": "<switch test='`$ar-model.ecomp-generated-naming`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 507.1428413391113,
+        "y": 914.2858047485352,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "8263bea9.21776",
+                "31dce175.8172ce"
+            ]
+        ]
+    },
+    {
+        "id": "8263bea9.21776",
+        "type": "other",
+        "name": "outcome Y",
+        "xml": "<outcome value='Y'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 857.1429061889648,
+        "y": 913.7143549919128,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "6d3862a4.def2cc"
+            ]
+        ]
+    },
+    {
+        "id": "6d3862a4.def2cc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1025.8929481506348,
+        "y": 914.214343547821,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "340cfc26.1a1d64"
+            ]
+        ]
+    },
+    {
+        "id": "31dce175.8172ce",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 848.3651962280273,
+        "y": 946.7143549919128,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "79411f72.37cc4"
+            ]
+        ]
+    },
+    {
+        "id": "79411f72.37cc4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in allotted-resource-model data.  Ecomp-generated-naming should be true\" />\n\n",
+        "comments": "",
+        "x": 1026.3651962280273,
+        "y": 945.7143549919128,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "340cfc26.1a1d64",
+        "type": "switchNode",
+        "name": "switch ar-model.ecomp-generated-naming",
+        "xml": "<switch test='`$ar-model.naming-policy`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1327.1428527832031,
+        "y": 914.2858171463013,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "c60923e3.e3226",
+                "5fb6c973.79b708"
+            ]
+        ]
+    },
+    {
+        "id": "c60923e3.e3226",
+        "type": "other",
+        "name": "outcome oam_security_zone_name",
+        "xml": "<outcome value='oam_security_zone_name'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1668.000617980957,
+        "y": 914.8638672828674,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "64919905.bc8708"
+            ]
+        ]
+    },
+    {
+        "id": "5fb6c973.79b708",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1579.4285507202148,
+        "y": 945.714367389679,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "64919905.bc8708"
+            ]
+        ]
+    },
+    {
+        "id": "47d880dc.e5c98",
+        "type": "set",
+        "name": "set ar_name",
+        "xml": "<set>\n<parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />\n",
+        "comments": "",
+        "x": 2108.8573417663574,
+        "y": 914.2857584953308,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "e616a9fb.2ba0a8",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace TenantOAMNetworkRole",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$TenantOAMNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2246.0004119873047,
+        "y": 947.1429333686829,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c3a0064f.e2bfc8",
+        "type": "execute",
+        "name": "execute SliStringUtils - replace LandingNetworkRole",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ar-name`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-name\"/>\n    <parameter name=\"target\" value=\"$LandingNetworkRole\"/>\n    <parameter name=\"replacement\" value=\"`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2229.0004272460938,
+        "y": 979.2858099937439,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "64919905.bc8708",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1910.2858276367188,
+        "y": 942.8572659492493,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "47d880dc.e5c98",
+                "e616a9fb.2ba0a8",
+                "c3a0064f.e2bfc8",
+                "3ea93d43.94b532"
+            ]
+        ]
+    },
+    {
+        "id": "3ea93d43.94b532",
+        "type": "set",
+        "name": "set identifiers.allotted-resource-name",
+        "xml": "<set>\n<parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\n",
+        "comments": "",
+        "x": 2178.8573150634766,
+        "y": 1008.571485042572,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "db115202.e2393",
+        "type": "set",
+        "name": "set assignments in overal structure",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.security-zone-topology.security-zone-assignments.' \nvalue=\"`$sz-ar-assignments.`\" />\n\n\n",
+        "comments": "",
+        "x": 482.61910247802734,
+        "y": 1117.1431503295898,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "bb728435.7fabc8",
+        "type": "set",
+        "name": "set sz-ar-assignments",
+        "xml": "<set>\n<parameter name='sz-ar-assignments.vlan-tag' value=\"`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag` \" />\n<parameter name='sz-ar-assignments.trusted-network-role' value=\"`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role` \" />\n<parameter name='sz-ar-assignments.untrusted-network-role' value=\"`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role` \" />\n<parameter name='sz-ar-assignments.security-zone-service-instance-id' value=\"`$tmp.ar.parent-service-instance-id` \" />\n\n",
+        "comments": "",
+        "x": 444.28570556640625,
+        "y": 988.5715227127075,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "cae22b42.18c468",
+        "type": "for",
+        "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
+        "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1360.572135925293,
+        "y": 1564.8096537590027,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "7553ad4e.ad7d94"
+            ]
+        ]
+    },
+    {
+        "id": "773fe048.c730b",
+        "type": "switchNode",
+        "name": "switch service-data.consumed-allotted-resources_length",
+        "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 534.5714721679688,
+        "y": 1524.5236463546753,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "38c33f23.a99c8",
+                "61a487f.6f30978"
+            ]
+        ]
+    },
+    {
+        "id": "38c33f23.a99c8",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 840.7143859863281,
+        "y": 1529.3809938430786,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "3413dfa5.ea0b8"
+            ]
+        ]
+    },
+    {
+        "id": "61a487f.6f30978",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 820.7143859863281,
+        "y": 1564.3809938430786,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "a9ef602f.19524"
+            ]
+        ]
+    },
+    {
+        "id": "7553ad4e.ad7d94",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1812.6673278808594,
+        "y": 1562.869366645813,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "2bfef68b.19fdca"
+            ]
+        ]
+    },
+    {
+        "id": "2bfef68b.19fdca",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2004.4769649505615,
+        "y": 1562.3335065841675,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "2e1ed2f6.15d1fe"
+            ]
+        ]
+    },
+    {
+        "id": "a9ef602f.19524",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 974.8415298461914,
+        "y": 1564.5069856643677,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "cae22b42.18c468",
+                "91a87775.758588"
+            ]
+        ]
+    },
+    {
+        "id": "2e1ed2f6.15d1fe",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 2160.238296508789,
+        "y": 1562.1907081604004,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "e679b033.de33f",
+                "4d5ec78f.74ab88"
+            ]
+        ]
+    },
+    {
+        "id": "3413dfa5.ea0b8",
+        "type": "set",
+        "name": "set cidx",
+        "xml": "<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n",
+        "comments": "",
+        "x": 999.5713996887207,
+        "y": 1529.0952253341675,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "e679b033.de33f",
+        "type": "set",
+        "name": "set tmp.cidx and ctx.consumed-ar",
+        "xml": "<set>\n<parameter name='tmp.cidx' value='`$cidx`' />\n<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\n<parameter name='tmp.found-cidx' value='true' />",
+        "comments": "",
+        "x": 2406.0957565307617,
+        "y": 1556.7621870040894,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "995418ca.5fe778",
+        "type": "set",
+        "name": "set consumed allotted resources",
+        "xml": "<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n",
+        "comments": "",
+        "x": 462.42862701416016,
+        "y": 1565.0951986312866,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "59610fb0.0a244",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT SZ VNF Provided Allotted Resource",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-p-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-prov-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 575.9049606323242,
+        "y": 2049.0955414772034,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "ae04f7b.eed3208",
+                "5027b5f7.e37cbc"
+            ]
+        ]
+    },
+    {
+        "id": "a0673b92.f4f7c8",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1265.143051147461,
+        "y": 524.2858076095581,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "422fade5.4f8814",
+        "type": "execute",
+        "name": "generate vnf provided ar url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.vnf-provided-allottedresource`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{service-instance-id}\" />\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 452.8571472167969,
+        "y": 388.57141876220703,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "83f71044.bcea7",
+        "type": "execute",
+        "name": "execute SliStringUtils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vnf-p-ar-url`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.sz-vnf-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 443.1428985595703,
+        "y": 419.99999809265137,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ec9be6aa.494588",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 431.7142868041992,
+        "y": 327.1428699493408,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "ae04f7b.eed3208",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 934.4763298034668,
+        "y": 2049.666941165924,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f9fdf5f9.8e4668"
+            ]
+        ]
+    },
+    {
+        "id": "f9fdf5f9.8e4668",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1144.047706604004,
+        "y": 2048.738305568695,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "3eccb358.12c2dc",
+                "968252db.ccc84"
+            ]
+        ]
+    },
+    {
+        "id": "3eccb358.12c2dc",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1389.9049530029297,
+        "y": 2083.0240688323975,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "452ba5e6.956fcc"
+            ]
+        ]
+    },
+    {
+        "id": "452ba5e6.956fcc",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1580.904956817627,
+        "y": 2083.0240664482117,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "968252db.ccc84",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1469.619285583496,
+        "y": 2048.7383975982666,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "5027b5f7.e37cbc",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 933.047721862793,
+        "y": 2139.6668133735657,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "ce01090.f9b9af8"
+            ]
+        ]
+    },
+    {
+        "id": "f1ea7873.944388",
+        "type": "comment",
+        "name": "Need to rollback?",
+        "info": "",
+        "comments": "",
+        "x": 935.9049758911133,
+        "y": 2088.238205432892,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "e06b36.87ea84c8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1310.1905517578125,
+        "y": 2181.0956473350525,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "eeb0dfbd.307f7",
+        "type": "execute",
+        "name": "execute RestApiCallNode - DELETE AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1411.6191864013672,
+        "y": 2142.5242981910706,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ce01090.f9b9af8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1107.3334274291992,
+        "y": 2142.523895740509,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "eeb0dfbd.307f7",
+                "e06b36.87ea84c8"
+            ]
+        ]
+    },
+    {
+        "id": "bde153f5.6a65",
+        "type": "comment",
+        "name": "Generate Security zone Panorama names",
+        "info": "",
+        "comments": "",
+        "x": 494.8095932006836,
+        "y": 1016.1907386779785,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "4f2b0053.cbdf5",
+        "type": "set",
+        "name": "set sz-ar-assignments",
+        "xml": "<set>\n<parameter name='sz-ar-assignments.security-zone-name-untrusted' value=\"`$tmp.untrust-sz` \" />\n<parameter name='sz-ar-assignments.security-zone-name-trusted' value=\"`$tmp.trust-sz` \" />\n\n\n",
+        "comments": "",
+        "x": 444.0953140258789,
+        "y": 1080.7148094177246,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "c28eabf9.0410c8",
+        "type": "execute",
+        "name": "execute SliStringUtils",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.vnf-p-ar-url`\" />\n    <parameter name=\"outputPath\" value=\"tmp.vnf-p-ar-url\" />\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.sz-vnf-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 444.28570556640625,
+        "y": 451.4285583496094,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "121f5121.c5ff2f",
+        "type": "call",
+        "name": "call generate-panorama-name",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-panorama-name' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 465.00001525878906,
+        "y": 1046.66672706604,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4593956d.d1f3ec",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 892.6666564941406,
+        "y": 1833.6666836738586,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "297e2310.b99eec"
+            ]
+        ]
+    },
+    {
+        "id": "a64508aa.c4e898",
+        "type": "comment",
+        "name": "Add SZ AR to mdsal",
+        "info": "",
+        "comments": "",
+        "x": 416.9048080444336,
+        "y": 1808.3808569908142,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "a4891e73.c917",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 424.66665840148926,
+        "y": 1602.3333406448364,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4a737d1.caa4e84",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 758.3333129882812,
+        "y": 559.9999389648438,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f20f59c0.b02038"
+            ]
+        ]
+    },
+    {
+        "id": "f20f59c0.b02038",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 938.3332633972168,
+        "y": 560.6664896011353,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "87ceb4de.ec7128",
+        "type": "set",
+        "name": "set id",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />",
+        "comments": "",
+        "x": 405.000057220459,
+        "y": 585.9523229598999,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "c025c3c9.338f6",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"description\" value=\"`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$ar-model.invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$ar-model.uuid`\" />\n\t<parameter name=\"operational-status\" value=\"null\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 446.66668701171875,
+        "y": 1730.238124847412,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "78f280c9.aa658",
+                "3206f266.94f28e"
+            ]
+        ]
+    },
+    {
+        "id": "78f280c9.aa658",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 702.428596496582,
+        "y": 1713.190628528595,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "e21aa9c5.4ebb08"
+            ]
+        ]
+    },
+    {
+        "id": "e21aa9c5.4ebb08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 868.9524765014648,
+        "y": 1724.8096995353699,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "3206f266.94f28e",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 709.5238838195801,
+        "y": 1745.9525961875916,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "e21aa9c5.4ebb08"
+            ]
+        ]
+    },
+    {
+        "id": "91a87775.758588",
+        "type": "switchNode",
+        "name": "switch tmp.found-cidx",
+        "xml": "<switch test='`$tmp.found-cidx`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1177.999984741211,
+        "y": 1596.0000410079956,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f9327230.fb919"
+            ]
+        ]
+    },
+    {
+        "id": "f9327230.fb919",
+        "type": "outcomeTrue",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1367.9999389648438,
+        "y": 1595.9999780654907,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "fde4a6ad.8b8798"
+            ]
+        ]
+    },
+    {
+        "id": "fde4a6ad.8b8798",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1533.9999389648438,
+        "y": 1595.9999780654907,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f243be1.0d9664"
+            ]
+        ]
+    },
+    {
+        "id": "f243be1.0d9664",
+        "type": "set",
+        "name": "set tmp.cidx ",
+        "xml": "<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n",
+        "comments": "",
+        "x": 1779.8572673797607,
+        "y": 1596.571452140808,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "4d5ec78f.74ab88",
+        "type": "break",
+        "name": "break",
+        "xml": "<break>\n",
+        "comments": "",
+        "x": 2324.000057220459,
+        "y": 1588.0000791549683,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "297e2310.b99eec",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Update parent provided service AR",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1243.708797454834,
+        "y": 1833.3755688667297,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "90eb7941.4e6d28",
+                "529b5fcc.fe782",
+                "5dd2303d.8c34d"
+            ]
+        ]
+    },
+    {
+        "id": "c07fd6c.a7d3c28",
+        "type": "comment",
+        "name": "Rollback parent",
+        "info": "",
+        "comments": "",
+        "x": 1087.708724975586,
+        "y": 1803.0421993732452,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    },
+    {
+        "id": "90eb7941.4e6d28",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1615.016845703125,
+        "y": 1894.040535211563,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f889d017.68c21"
+            ]
+        ]
+    },
+    {
+        "id": "529b5fcc.fe782",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1606.0168952941895,
+        "y": 1862.5405609607697,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f889d017.68c21"
+            ]
+        ]
+    },
+    {
+        "id": "5dd2303d.8c34d",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1609.766933441162,
+        "y": 1832.897665835917,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            [
+                "f889d017.68c21"
+            ]
+        ]
+    },
+    {
+        "id": "f889d017.68c21",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1751.4229011535645,
+        "y": 1829.0898350253701,
+        "z": "d9f8bc54.6ca48",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d41e8d9f.684df",
+        "type": "comment",
+        "name": "Generate naming",
+        "info": "",
+        "comments": "",
+        "x": 438.00001525878906,
+        "y": 876.0000257492065,
+        "z": "d9f8bc54.6ca48",
+        "wires": []
+    }
+]
\ No newline at end of file
index 427361a..e11de44 100755 (executable)
@@ -1 +1,551 @@
-[{"id":"b6f76cf0.bed9d","type":"dgstart","name":"DGSTART","outputs":1,"x":295,"y":190,"z":"1afa105.0a3f0f","wires":[["ff3a2e96.20279"]]},{"id":"ff3a2e96.20279","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":391.2380790710449,"y":250.95239067077637,"z":"1afa105.0a3f0f","wires":[["b753df27.1ee1e"]]},{"id":"b753df27.1ee1e","type":"method","name":"security-zone-topology-operation-create","xml":"<method rpc='security-zone-topology-operation-create' mode='sync'>\n","comments":"","outputs":1,"x":437.15485763549805,"y":286.1904458999634,"z":"1afa105.0a3f0f","wires":[["3d5f9815.bb72d8"]]},{"id":"3d5f9815.bb72d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":345.47619247436523,"y":429.5237879753113,"z":"1afa105.0a3f0f","wires":[["bd924d4b.6ac3d","58426f57.d9671","87dd9628.4b8e08","24e1c2bf.f38e3e","56c65e21.0c536","42ea3bdc.05eb14","ad98be46.853ca","9549d5d.4d0ae28","7db0224a.ddf40c","c1426d52.6c3f3","8fad2375.b2e97"]]},{"id":"58426f57.d9671","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":612.0001106262207,"y":1099.2145080566406,"z":"1afa105.0a3f0f","wires":[]},{"id":"bd924d4b.6ac3d","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":640.7540245056152,"y":1063.3370542526245,"z":"1afa105.0a3f0f","wires":[]},{"id":"c1426d52.6c3f3","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":651.7542190551758,"y":810.0514001846313,"z":"1afa105.0a3f0f","wires":[]},{"id":"24e1c2bf.f38e3e","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":607.7380638122559,"y":403.33332538604736,"z":"1afa105.0a3f0f","wires":[]},{"id":"87dd9628.4b8e08","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":654.9973258972168,"y":369.59259128570557,"z":"1afa105.0a3f0f","wires":[]},{"id":"56c65e21.0c536","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":613.9934196472168,"y":439.23152446746826,"z":"1afa105.0a3f0f","wires":[[]]},{"id":"ad98be46.853ca","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":676.5187530517578,"y":600.4594917297363,"z":"1afa105.0a3f0f","wires":[["26a7a122.8ca35e","eef0e4d0.faeba8"]]},{"id":"42ea3bdc.05eb14","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":642.0648536682129,"y":499.0172290802002,"z":"1afa105.0a3f0f","wires":[[]]},{"id":"26a7a122.8ca35e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":933.8148918151855,"y":599.2672522068024,"z":"1afa105.0a3f0f","wires":[["ba2d298f.ee9da8"]]},{"id":"9549d5d.4d0ae28","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":684.5293121337891,"y":953.4341316223145,"z":"1afa105.0a3f0f","wires":[["c81ee454.030d28","6308f6ba.6c5ee8","f6e148d1.5bbbc8"]]},{"id":"c81ee454.030d28","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":954.837329864502,"y":1006.432332418859,"z":"1afa105.0a3f0f","wires":[["a2f954df.7d6a08"]]},{"id":"6308f6ba.6c5ee8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":945.8373794555664,"y":974.9323581680655,"z":"1afa105.0a3f0f","wires":[["a2f954df.7d6a08"]]},{"id":"f6e148d1.5bbbc8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":949.5874176025391,"y":945.2894630432129,"z":"1afa105.0a3f0f","wires":[["956bdde7.54a34"]]},{"id":"a2f954df.7d6a08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":1115.587417602539,"y":975.6823820099235,"z":"1afa105.0a3f0f","wires":[]},{"id":"ba2d298f.ee9da8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1114.8148460388184,"y":599.7672016620636,"z":"1afa105.0a3f0f","wires":[["f6b8a443.ce37c8","7f9a9607.9deb78"]]},{"id":"f6b8a443.ce37c8","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1360.6720924377441,"y":634.052964925766,"z":"1afa105.0a3f0f","wires":[["c19598d2.19bd88"]]},{"id":"c19598d2.19bd88","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1551.6720962524414,"y":634.0529625415802,"z":"1afa105.0a3f0f","wires":[["852776b8.720618"]]},{"id":"20c1fba5.738554","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1951.5292320251465,"y":634.6243867874146,"z":"1afa105.0a3f0f","wires":[]},{"id":"852776b8.720618","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1722.5290794372559,"y":634.6244316101074,"z":"1afa105.0a3f0f","wires":[["20c1fba5.738554","37c4ecf.ab37e14","b8ed9202.62a45"]]},{"id":"37c4ecf.ab37e14","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1949.5294761657715,"y":702.0529508590698,"z":"1afa105.0a3f0f","wires":[]},{"id":"a2659467.3372c8","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":701.8148155212402,"y":563.7671926021576,"z":"1afa105.0a3f0f","wires":[]},{"id":"b8ed9202.62a45","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1959.52925491333,"y":667.6243848800659,"z":"1afa105.0a3f0f","wires":[["994a7d02.f776","c6432d89.74604"]]},{"id":"994a7d02.f776","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":2171.1292114257812,"y":628.6243848800659,"z":"1afa105.0a3f0f","wires":[["edf3836c.7ac5a"]]},{"id":"c6432d89.74604","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2196.8435859680176,"y":664.052975654602,"z":"1afa105.0a3f0f","wires":[["edf3836c.7ac5a"]]},{"id":"242cf515.aebfea","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":657.3386383056641,"y":654.3386459350586,"z":"1afa105.0a3f0f","wires":[]},{"id":"7f9a9607.9deb78","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1440.3864250183105,"y":599.7672936916351,"z":"1afa105.0a3f0f","wires":[]},{"id":"1ab1e0dc.601f6f","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":612.9576606750488,"y":468.6243562698364,"z":"1afa105.0a3f0f","wires":[]},{"id":"956bdde7.54a34","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1091.2433853149414,"y":941.481632232666,"z":"1afa105.0a3f0f","wires":[[]]},{"id":"2ad43a51.cbb826","type":"comment","name":"TO DO: vnf/put parent","info":"","comments":"","x":625.2433776855468,"y":875.4815540313718,"z":"1afa105.0a3f0f","wires":[]},{"id":"7db0224a.ddf40c","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":599.2433815002441,"y":771.4815549850464,"z":"1afa105.0a3f0f","wires":[[]]},{"id":"eef0e4d0.faeba8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":933.5766868591309,"y":635.4814250469208,"z":"1afa105.0a3f0f","wires":[["c1d6759.acebc88"]]},{"id":"c1d6759.acebc88","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1113.5766372680664,"y":636.1479756832123,"z":"1afa105.0a3f0f","wires":[[]]},{"id":"8fad2375.b2e97","type":"set","name":"set id","xml":"<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />","comments":"","x":582.2434234619141,"y":691.1481666564941,"z":"1afa105.0a3f0f","wires":[]},{"id":"edf3836c.7ac5a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2385.5997276306152,"y":630.0000190734863,"z":"1afa105.0a3f0f","wires":[[]]}]
+[
+    {
+        "id": "b6f76cf0.bed9d",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 295,
+        "y": 190,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "ff3a2e96.20279"
+            ]
+        ]
+    },
+    {
+        "id": "ff3a2e96.20279",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 391.2380790710449,
+        "y": 250.95239067077637,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "b753df27.1ee1e"
+            ]
+        ]
+    },
+    {
+        "id": "b753df27.1ee1e",
+        "type": "method",
+        "name": "security-zone-topology-operation-create",
+        "xml": "<method rpc='security-zone-topology-operation-create' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 437.15485763549805,
+        "y": 286.1904458999634,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "3d5f9815.bb72d8"
+            ]
+        ]
+    },
+    {
+        "id": "3d5f9815.bb72d8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 345.47619247436523,
+        "y": 429.5237879753113,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "bd924d4b.6ac3d",
+                "58426f57.d9671",
+                "87dd9628.4b8e08",
+                "24e1c2bf.f38e3e",
+                "56c65e21.0c536",
+                "42ea3bdc.05eb14",
+                "ad98be46.853ca",
+                "9549d5d.4d0ae28",
+                "7db0224a.ddf40c",
+                "c1426d52.6c3f3",
+                "8fad2375.b2e97"
+            ]
+        ]
+    },
+    {
+        "id": "58426f57.d9671",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 612.0001106262207,
+        "y": 1099.2145080566406,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "bd924d4b.6ac3d",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 640.7540245056152,
+        "y": 1063.3370542526245,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "c1426d52.6c3f3",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 651.7542190551758,
+        "y": 810.0514001846313,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "24e1c2bf.f38e3e",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 607.7380638122559,
+        "y": 403.33332538604736,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "87dd9628.4b8e08",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 654.9973258972168,
+        "y": 369.59259128570557,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "56c65e21.0c536",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 613.9934196472168,
+        "y": 439.23152446746826,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ad98be46.853ca",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 676.5187530517578,
+        "y": 600.4594917297363,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "26a7a122.8ca35e",
+                "eef0e4d0.faeba8"
+            ]
+        ]
+    },
+    {
+        "id": "42ea3bdc.05eb14",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 642.0648536682129,
+        "y": 499.0172290802002,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "26a7a122.8ca35e",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 933.8148918151855,
+        "y": 599.2672522068024,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "ba2d298f.ee9da8"
+            ]
+        ]
+    },
+    {
+        "id": "9549d5d.4d0ae28",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 684.5293121337891,
+        "y": 953.4341316223145,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "c81ee454.030d28",
+                "6308f6ba.6c5ee8",
+                "f6e148d1.5bbbc8"
+            ]
+        ]
+    },
+    {
+        "id": "c81ee454.030d28",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 954.837329864502,
+        "y": 1006.432332418859,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "a2f954df.7d6a08"
+            ]
+        ]
+    },
+    {
+        "id": "6308f6ba.6c5ee8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 945.8373794555664,
+        "y": 974.9323581680655,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "a2f954df.7d6a08"
+            ]
+        ]
+    },
+    {
+        "id": "f6e148d1.5bbbc8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 949.5874176025391,
+        "y": 945.2894630432129,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "956bdde7.54a34"
+            ]
+        ]
+    },
+    {
+        "id": "a2f954df.7d6a08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1115.587417602539,
+        "y": 975.6823820099235,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "ba2d298f.ee9da8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1114.8148460388184,
+        "y": 599.7672016620636,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "f6b8a443.ce37c8",
+                "7f9a9607.9deb78"
+            ]
+        ]
+    },
+    {
+        "id": "f6b8a443.ce37c8",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1360.6720924377441,
+        "y": 634.052964925766,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "c19598d2.19bd88"
+            ]
+        ]
+    },
+    {
+        "id": "c19598d2.19bd88",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1551.6720962524414,
+        "y": 634.0529625415802,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "852776b8.720618"
+            ]
+        ]
+    },
+    {
+        "id": "20c1fba5.738554",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1951.5292320251465,
+        "y": 634.6243867874146,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "852776b8.720618",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1722.5290794372559,
+        "y": 634.6244316101074,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "20c1fba5.738554",
+                "37c4ecf.ab37e14",
+                "b8ed9202.62a45"
+            ]
+        ]
+    },
+    {
+        "id": "37c4ecf.ab37e14",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1949.5294761657715,
+        "y": 702.0529508590698,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "a2659467.3372c8",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 701.8148155212402,
+        "y": 563.7671926021576,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "b8ed9202.62a45",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1959.52925491333,
+        "y": 667.6243848800659,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "994a7d02.f776",
+                "c6432d89.74604"
+            ]
+        ]
+    },
+    {
+        "id": "994a7d02.f776",
+        "type": "outcome",
+        "name": "outcome PendingCreate",
+        "xml": "<outcome value='PendingCreate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2171.1292114257812,
+        "y": 628.6243848800659,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "edf3836c.7ac5a"
+            ]
+        ]
+    },
+    {
+        "id": "c6432d89.74604",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2196.8435859680176,
+        "y": 664.052975654602,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "edf3836c.7ac5a"
+            ]
+        ]
+    },
+    {
+        "id": "242cf515.aebfea",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 657.3386383056641,
+        "y": 654.3386459350586,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "7f9a9607.9deb78",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1440.3864250183105,
+        "y": 599.7672936916351,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "1ab1e0dc.601f6f",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 612.9576606750488,
+        "y": 468.6243562698364,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "956bdde7.54a34",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1091.2433853149414,
+        "y": 941.481632232666,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2ad43a51.cbb826",
+        "type": "comment",
+        "name": "TO DO: vnf/put parent",
+        "info": "",
+        "comments": "",
+        "x": 625.2433776855468,
+        "y": 875.4815540313718,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "7db0224a.ddf40c",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 599.2433815002441,
+        "y": 771.4815549850464,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "eef0e4d0.faeba8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 933.5766868591309,
+        "y": 635.4814250469208,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            [
+                "c1d6759.acebc88"
+            ]
+        ]
+    },
+    {
+        "id": "c1d6759.acebc88",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1113.5766372680664,
+        "y": 636.1479756832123,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8fad2375.b2e97",
+        "type": "set",
+        "name": "set id",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />",
+        "comments": "",
+        "x": 582.2434234619141,
+        "y": 691.1481666564941,
+        "z": "1afa105.0a3f0f",
+        "wires": []
+    },
+    {
+        "id": "edf3836c.7ac5a",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2385.5997276306152,
+        "y": 630.0000190734863,
+        "z": "1afa105.0a3f0f",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
index 00f8448..f6358bf 100755 (executable)
@@ -1 +1,612 @@
-[{"id":"284e27db.b7e5d8","type":"dgstart","name":"DGSTART","outputs":1,"x":184.2857208251953,"y":55.71428680419922,"z":"65a9f6a1.13f7b8","wires":[["21dc623f.cc352e"]]},{"id":"21dc623f.cc352e","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":280.52379989624023,"y":116.66667747497559,"z":"65a9f6a1.13f7b8","wires":[["eacf77e9.837ad8"]]},{"id":"eacf77e9.837ad8","type":"method","name":"security-zone-topology-operation-deactivate","xml":"<method rpc='security-zone-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":326.44057846069336,"y":151.9047327041626,"z":"65a9f6a1.13f7b8","wires":[["509784b4.18024c"]]},{"id":"509784b4.18024c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":234.76191329956055,"y":295.2380747795105,"z":"65a9f6a1.13f7b8","wires":[["e886f0a3.d1a26","29d9b6af.98a21a","8e5a9b8c.613e38","32c0247b.626e1c","de1f88fd.80fcb8","b9651040.0d909","36f9c9aa.1518a6","91736aaa.410ef8","fe89c5c7.b078a8","5c2248b0.cff7c8","f23600d4.282d8","3eb0bb84.9332a4"]]},{"id":"29d9b6af.98a21a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":501.285831451416,"y":964.9287948608398,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"e886f0a3.d1a26","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":530.0397453308105,"y":929.0513410568237,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"5c2248b0.cff7c8","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":541.0399627685547,"y":675.7657089233398,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"32c0247b.626e1c","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":497.0237846374512,"y":269.0476121902466,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"8e5a9b8c.613e38","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":544.2830467224121,"y":235.30687808990479,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"de1f88fd.80fcb8","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":503.2791404724121,"y":304.9458112716675,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"36f9c9aa.1518a6","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":565.8044738769531,"y":466.17377853393555,"z":"65a9f6a1.13f7b8","wires":[["e544ca46.98ecd8","e932d850.0e3608"]]},{"id":"b9651040.0d909","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":531.3505744934082,"y":364.7315158843994,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"e544ca46.98ecd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":823.1006126403809,"y":464.9815390110016,"z":"65a9f6a1.13f7b8","wires":[["4acc39b.9104dc8"]]},{"id":"91736aaa.410ef8","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":573.8150329589844,"y":819.1484184265137,"z":"65a9f6a1.13f7b8","wires":[["c7834590.fcdd68","7bc04e80.8eb95","a95d7c62.d143f"]]},{"id":"c7834590.fcdd68","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":844.1230506896973,"y":872.1466192230582,"z":"65a9f6a1.13f7b8","wires":[["7bf6e2d9.60f5ec"]]},{"id":"7bc04e80.8eb95","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":835.1231002807617,"y":840.6466449722648,"z":"65a9f6a1.13f7b8","wires":[["7bf6e2d9.60f5ec"]]},{"id":"a95d7c62.d143f","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":838.8731384277344,"y":811.0037498474121,"z":"65a9f6a1.13f7b8","wires":[["50148bc2.55e4c4"]]},{"id":"7bf6e2d9.60f5ec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":1004.8731384277344,"y":841.3966688141227,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"4acc39b.9104dc8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1004.1005668640137,"y":465.4814884662628,"z":"65a9f6a1.13f7b8","wires":[["524c404c.c6e87","712583b3.96568c"]]},{"id":"524c404c.c6e87","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1249.9578132629395,"y":499.7672517299652,"z":"65a9f6a1.13f7b8","wires":[["3ad43779.db66e8"]]},{"id":"3ad43779.db66e8","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1440.9578170776367,"y":499.7672493457794,"z":"65a9f6a1.13f7b8","wires":[["4a46e9c4.f9d128"]]},{"id":"a70a2794.6d9408","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1840.8149528503418,"y":500.33867359161377,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"4a46e9c4.f9d128","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1611.8148002624512,"y":500.33871841430664,"z":"65a9f6a1.13f7b8","wires":[["a70a2794.6d9408","b61c60b8.7a4ec","66e00065.03ca4"]]},{"id":"b61c60b8.7a4ec","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1838.8151969909668,"y":567.767237663269,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"ae8a5e82.01315","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":591.1005363464355,"y":429.4814794063568,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"66e00065.03ca4","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1848.8149757385254,"y":533.3386716842651,"z":"65a9f6a1.13f7b8","wires":[["65fba3ae.02978c","709a0f22.b2207"]]},{"id":"65fba3ae.02978c","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2060.4149322509766,"y":494.33867168426514,"z":"65a9f6a1.13f7b8","wires":[["389e0eec.32fdf2"]]},{"id":"709a0f22.b2207","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2086.129306793213,"y":529.7672624588013,"z":"65a9f6a1.13f7b8","wires":[["389e0eec.32fdf2"]]},{"id":"c232dfd.abca22","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":546.6243591308594,"y":520.0529327392578,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"712583b3.96568c","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1329.6721458435059,"y":465.48158049583435,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"dd477519.74e698","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":502.24338150024414,"y":334.33864307403564,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"50148bc2.55e4c4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":980.5291061401367,"y":807.1959190368652,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"f27feeff.247c1","type":"comment","name":"TO DO: vnf/put parent","info":"","comments":"","x":508.81481170654297,"y":712.6244564056396,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"fe89c5c7.b078a8","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":488.52910232543945,"y":637.1958417892456,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"e932d850.0e3608","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":822.8624076843262,"y":501.19571185112,"z":"65a9f6a1.13f7b8","wires":[["44f65ab4.13daa4"]]},{"id":"44f65ab4.13daa4","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1002.8623580932617,"y":501.8622624874115,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"f23600d4.282d8","type":"set","name":"set id","xml":"<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />","comments":"","x":471.5291442871094,"y":556.8624534606934,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"389e0eec.32fdf2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2274.8854484558105,"y":495.71430587768555,"z":"65a9f6a1.13f7b8","wires":[[]]},{"id":"3eb0bb84.9332a4","type":"update","name":"update AAI allotted-resource","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n","comments":"","outputs":1,"x":535.7142944335938,"y":754.2857055664062,"z":"65a9f6a1.13f7b8","wires":[["a77d093e.701398","a0e58ee0.5d11b"]]},{"id":"a77d093e.701398","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":791.476203918457,"y":737.2382092475891,"z":"65a9f6a1.13f7b8","wires":[["dce668a3.1b94f8"]]},{"id":"dce668a3.1b94f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":958.0000839233398,"y":748.857280254364,"z":"65a9f6a1.13f7b8","wires":[]},{"id":"a0e58ee0.5d11b","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":798.5714912414551,"y":770.0001769065857,"z":"65a9f6a1.13f7b8","wires":[["dce668a3.1b94f8"]]}]
+[
+    {
+        "id": "284e27db.b7e5d8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 184.2857208251953,
+        "y": 55.71428680419922,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "21dc623f.cc352e"
+            ]
+        ]
+    },
+    {
+        "id": "21dc623f.cc352e",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 280.52379989624023,
+        "y": 116.66667747497559,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "eacf77e9.837ad8"
+            ]
+        ]
+    },
+    {
+        "id": "eacf77e9.837ad8",
+        "type": "method",
+        "name": "security-zone-topology-operation-deactivate",
+        "xml": "<method rpc='security-zone-topology-operation-deactivate' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 326.44057846069336,
+        "y": 151.9047327041626,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "509784b4.18024c"
+            ]
+        ]
+    },
+    {
+        "id": "509784b4.18024c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 234.76191329956055,
+        "y": 295.2380747795105,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "e886f0a3.d1a26",
+                "29d9b6af.98a21a",
+                "8e5a9b8c.613e38",
+                "32c0247b.626e1c",
+                "de1f88fd.80fcb8",
+                "b9651040.0d909",
+                "36f9c9aa.1518a6",
+                "91736aaa.410ef8",
+                "fe89c5c7.b078a8",
+                "5c2248b0.cff7c8",
+                "f23600d4.282d8",
+                "3eb0bb84.9332a4"
+            ]
+        ]
+    },
+    {
+        "id": "29d9b6af.98a21a",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 501.285831451416,
+        "y": 964.9287948608398,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "e886f0a3.d1a26",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 530.0397453308105,
+        "y": 929.0513410568237,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "5c2248b0.cff7c8",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 541.0399627685547,
+        "y": 675.7657089233398,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "32c0247b.626e1c",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 497.0237846374512,
+        "y": 269.0476121902466,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "8e5a9b8c.613e38",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 544.2830467224121,
+        "y": 235.30687808990479,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "de1f88fd.80fcb8",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 503.2791404724121,
+        "y": 304.9458112716675,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "36f9c9aa.1518a6",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 565.8044738769531,
+        "y": 466.17377853393555,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "e544ca46.98ecd8",
+                "e932d850.0e3608"
+            ]
+        ]
+    },
+    {
+        "id": "b9651040.0d909",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 531.3505744934082,
+        "y": 364.7315158843994,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e544ca46.98ecd8",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 823.1006126403809,
+        "y": 464.9815390110016,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "4acc39b.9104dc8"
+            ]
+        ]
+    },
+    {
+        "id": "91736aaa.410ef8",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 573.8150329589844,
+        "y": 819.1484184265137,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "c7834590.fcdd68",
+                "7bc04e80.8eb95",
+                "a95d7c62.d143f"
+            ]
+        ]
+    },
+    {
+        "id": "c7834590.fcdd68",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 844.1230506896973,
+        "y": 872.1466192230582,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "7bf6e2d9.60f5ec"
+            ]
+        ]
+    },
+    {
+        "id": "7bc04e80.8eb95",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 835.1231002807617,
+        "y": 840.6466449722648,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "7bf6e2d9.60f5ec"
+            ]
+        ]
+    },
+    {
+        "id": "a95d7c62.d143f",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 838.8731384277344,
+        "y": 811.0037498474121,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "50148bc2.55e4c4"
+            ]
+        ]
+    },
+    {
+        "id": "7bf6e2d9.60f5ec",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1004.8731384277344,
+        "y": 841.3966688141227,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "4acc39b.9104dc8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1004.1005668640137,
+        "y": 465.4814884662628,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "524c404c.c6e87",
+                "712583b3.96568c"
+            ]
+        ]
+    },
+    {
+        "id": "524c404c.c6e87",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1249.9578132629395,
+        "y": 499.7672517299652,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "3ad43779.db66e8"
+            ]
+        ]
+    },
+    {
+        "id": "3ad43779.db66e8",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1440.9578170776367,
+        "y": 499.7672493457794,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "4a46e9c4.f9d128"
+            ]
+        ]
+    },
+    {
+        "id": "a70a2794.6d9408",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1840.8149528503418,
+        "y": 500.33867359161377,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "4a46e9c4.f9d128",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1611.8148002624512,
+        "y": 500.33871841430664,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "a70a2794.6d9408",
+                "b61c60b8.7a4ec",
+                "66e00065.03ca4"
+            ]
+        ]
+    },
+    {
+        "id": "b61c60b8.7a4ec",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1838.8151969909668,
+        "y": 567.767237663269,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "ae8a5e82.01315",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 591.1005363464355,
+        "y": 429.4814794063568,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "66e00065.03ca4",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1848.8149757385254,
+        "y": 533.3386716842651,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "65fba3ae.02978c",
+                "709a0f22.b2207"
+            ]
+        ]
+    },
+    {
+        "id": "65fba3ae.02978c",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2060.4149322509766,
+        "y": 494.33867168426514,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "389e0eec.32fdf2"
+            ]
+        ]
+    },
+    {
+        "id": "709a0f22.b2207",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2086.129306793213,
+        "y": 529.7672624588013,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "389e0eec.32fdf2"
+            ]
+        ]
+    },
+    {
+        "id": "c232dfd.abca22",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 546.6243591308594,
+        "y": 520.0529327392578,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "712583b3.96568c",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1329.6721458435059,
+        "y": 465.48158049583435,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "dd477519.74e698",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 502.24338150024414,
+        "y": 334.33864307403564,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "50148bc2.55e4c4",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 980.5291061401367,
+        "y": 807.1959190368652,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f27feeff.247c1",
+        "type": "comment",
+        "name": "TO DO: vnf/put parent",
+        "info": "",
+        "comments": "",
+        "x": 508.81481170654297,
+        "y": 712.6244564056396,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "fe89c5c7.b078a8",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 488.52910232543945,
+        "y": 637.1958417892456,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e932d850.0e3608",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 822.8624076843262,
+        "y": 501.19571185112,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "44f65ab4.13daa4"
+            ]
+        ]
+    },
+    {
+        "id": "44f65ab4.13daa4",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1002.8623580932617,
+        "y": 501.8622624874115,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f23600d4.282d8",
+        "type": "set",
+        "name": "set id",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />",
+        "comments": "",
+        "x": 471.5291442871094,
+        "y": 556.8624534606934,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "389e0eec.32fdf2",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2274.8854484558105,
+        "y": 495.71430587768555,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3eb0bb84.9332a4",
+        "type": "update",
+        "name": "update AAI allotted-resource",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-data.service-information.service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 535.7142944335938,
+        "y": 754.2857055664062,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "a77d093e.701398",
+                "a0e58ee0.5d11b"
+            ]
+        ]
+    },
+    {
+        "id": "a77d093e.701398",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 791.476203918457,
+        "y": 737.2382092475891,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "dce668a3.1b94f8"
+            ]
+        ]
+    },
+    {
+        "id": "dce668a3.1b94f8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
+        "comments": "",
+        "x": 958.0000839233398,
+        "y": 748.857280254364,
+        "z": "65a9f6a1.13f7b8",
+        "wires": []
+    },
+    {
+        "id": "a0e58ee0.5d11b",
+        "type": "failure",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 798.5714912414551,
+        "y": 770.0001769065857,
+        "z": "65a9f6a1.13f7b8",
+        "wires": [
+            [
+                "dce668a3.1b94f8"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index e4c77aa..65acd70 100755 (executable)
@@ -1 +1,563 @@
-[{"id":"6b945847.1c8628","type":"dgstart","name":"DGSTART","outputs":1,"x":187,"y":84,"z":"cab86701.408c88","wires":[["46c9c550.08ddbc"]]},{"id":"46c9c550.08ddbc","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":283.2380790710449,"y":144.95239067077637,"z":"cab86701.408c88","wires":[["33033a6c.777e46"]]},{"id":"33033a6c.777e46","type":"method","name":"security-zone-topology-operation-delete","xml":"<method rpc='security-zone-topology-operation-delete' mode='sync'>\n","comments":"","outputs":1,"x":329.15485763549805,"y":180.19044589996338,"z":"cab86701.408c88","wires":[["71a136f2.4a6ae8"]]},{"id":"71a136f2.4a6ae8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":237.47619247436523,"y":323.5237879753113,"z":"cab86701.408c88","wires":[["d473982e.2073e8","21b535a4.6f3cfa","58735763.200388","67dca0c.5203f6","d4bebd02.2ac6","ed3aea18.ac56a8","ce33759f.7f8848","af4ea7a7.5e99e8","dd978c58.19189","a078b88c.279298","1469e91d.b421d7","4a2606ec.007d08"]]},{"id":"21b535a4.6f3cfa","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":504.0001106262207,"y":993.2145080566406,"z":"cab86701.408c88","wires":[]},{"id":"d473982e.2073e8","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":532.7540245056152,"y":957.3370542526245,"z":"cab86701.408c88","wires":[]},{"id":"dd978c58.19189","type":"set","name":"set allotted-resource-oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n","comments":"","x":543.7542190551758,"y":704.0514001846313,"z":"cab86701.408c88","wires":[]},{"id":"67dca0c.5203f6","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":499.73806381225586,"y":297.33332538604736,"z":"cab86701.408c88","wires":[]},{"id":"58735763.200388","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":546.9973258972168,"y":263.59259128570557,"z":"cab86701.408c88","wires":[]},{"id":"d4bebd02.2ac6","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":505.9934196472168,"y":333.23152446746826,"z":"cab86701.408c88","wires":[[]]},{"id":"ce33759f.7f8848","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":568.5187530517578,"y":494.4594917297363,"z":"cab86701.408c88","wires":[["3d6ff871.1b6728","c68f9183.6fe9"]]},{"id":"ed3aea18.ac56a8","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":534.0648536682129,"y":393.0172290802002,"z":"cab86701.408c88","wires":[[]]},{"id":"3d6ff871.1b6728","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":825.8148918151855,"y":493.26725220680237,"z":"cab86701.408c88","wires":[["cae924d0.c91d68"]]},{"id":"e3d80d76.f38b6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":846.837329864502,"y":900.432332418859,"z":"cab86701.408c88","wires":[["e5182ef1.2930a"]]},{"id":"408d7749.7bfef8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":837.8373794555664,"y":868.9323581680655,"z":"cab86701.408c88","wires":[["e5182ef1.2930a"]]},{"id":"a26d7c72.44fcc","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":841.5874176025391,"y":839.2894630432129,"z":"cab86701.408c88","wires":[["e6e17eb6.e762c"]]},{"id":"e5182ef1.2930a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":1007.5874176025391,"y":869.6823820099235,"z":"cab86701.408c88","wires":[]},{"id":"cae924d0.c91d68","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1006.8148460388184,"y":493.7672016620636,"z":"cab86701.408c88","wires":[["a06def86.57a78","2d0ecbe9.d56c34"]]},{"id":"a06def86.57a78","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1252.6720924377441,"y":528.052964925766,"z":"cab86701.408c88","wires":[["ef02f832.92b468"]]},{"id":"ef02f832.92b468","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1443.6720962524414,"y":528.0529625415802,"z":"cab86701.408c88","wires":[["6ff8e752.374018"]]},{"id":"b7d42ce2.9a481","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1843.5292320251465,"y":528.6243867874146,"z":"cab86701.408c88","wires":[]},{"id":"6ff8e752.374018","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1614.5290794372559,"y":528.6244316101074,"z":"cab86701.408c88","wires":[["b7d42ce2.9a481","63e31730.e27918","d8d35b13.b628f8"]]},{"id":"63e31730.e27918","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1841.5294761657715,"y":596.0529508590698,"z":"cab86701.408c88","wires":[]},{"id":"bed5b961.bd6788","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":593.8148155212402,"y":457.7671926021576,"z":"cab86701.408c88","wires":[]},{"id":"d8d35b13.b628f8","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1851.52925491333,"y":561.6243848800659,"z":"cab86701.408c88","wires":[["55b36fbc.52943","19d63441.492dec"]]},{"id":"55b36fbc.52943","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2063.1292114257812,"y":522.6243848800659,"z":"cab86701.408c88","wires":[["27c47993.316bb6"]]},{"id":"19d63441.492dec","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2088.8435859680176,"y":558.052975654602,"z":"cab86701.408c88","wires":[["27c47993.316bb6"]]},{"id":"f3aeefda.cd911","type":"comment","name":"Set allotted-resource-identifiers","info":"","comments":"","x":549.3386383056641,"y":548.3386459350586,"z":"cab86701.408c88","wires":[]},{"id":"2d0ecbe9.d56c34","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1332.3864250183105,"y":493.76729369163513,"z":"cab86701.408c88","wires":[]},{"id":"33868ac7.abca26","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":504.9576606750488,"y":362.6243562698364,"z":"cab86701.408c88","wires":[]},{"id":"e6e17eb6.e762c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":983.2433853149414,"y":835.481632232666,"z":"cab86701.408c88","wires":[[]]},{"id":"2b3604ae.317ccc","type":"comment","name":"TO DO: vnf/put parent","info":"","comments":"","x":517.2433776855468,"y":769.4815540313718,"z":"cab86701.408c88","wires":[]},{"id":"af4ea7a7.5e99e8","type":"execute","name":"execute getTime","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n","comments":"","outputs":1,"x":491.24338150024414,"y":665.4815549850464,"z":"cab86701.408c88","wires":[[]]},{"id":"c68f9183.6fe9","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":825.5766868591309,"y":529.4814250469208,"z":"cab86701.408c88","wires":[["336a662a.c1025a"]]},{"id":"336a662a.c1025a","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1005.5766372680664,"y":530.1479756832123,"z":"cab86701.408c88","wires":[[]]},{"id":"a078b88c.279298","type":"set","name":"set id","xml":"<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />","comments":"","x":474.24342346191406,"y":585.1481666564941,"z":"cab86701.408c88","wires":[]},{"id":"27c47993.316bb6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2277.5997276306152,"y":524.0000190734863,"z":"cab86701.408c88","wires":[[]]},{"id":"1469e91d.b421d7","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":574.0000152587891,"y":850.0000247955322,"z":"cab86701.408c88","wires":[["a26d7c72.44fcc","408d7749.7bfef8","e3d80d76.f38b6"]]},{"id":"4a2606ec.007d08","type":"set","name":"clear sz-ar-assignments","xml":"<set>\n<parameter name='sz-ar-assignments.' value=\"\" />\n\n\n\n","comments":"","x":518,"y":736,"z":"cab86701.408c88","wires":[]}]
+[
+    {
+        "id": "6b945847.1c8628",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 187,
+        "y": 84,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "46c9c550.08ddbc"
+            ]
+        ]
+    },
+    {
+        "id": "46c9c550.08ddbc",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 283.2380790710449,
+        "y": 144.95239067077637,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "33033a6c.777e46"
+            ]
+        ]
+    },
+    {
+        "id": "33033a6c.777e46",
+        "type": "method",
+        "name": "security-zone-topology-operation-delete",
+        "xml": "<method rpc='security-zone-topology-operation-delete' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 329.15485763549805,
+        "y": 180.19044589996338,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "71a136f2.4a6ae8"
+            ]
+        ]
+    },
+    {
+        "id": "71a136f2.4a6ae8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 237.47619247436523,
+        "y": 323.5237879753113,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "d473982e.2073e8",
+                "21b535a4.6f3cfa",
+                "58735763.200388",
+                "67dca0c.5203f6",
+                "d4bebd02.2ac6",
+                "ed3aea18.ac56a8",
+                "ce33759f.7f8848",
+                "af4ea7a7.5e99e8",
+                "dd978c58.19189",
+                "a078b88c.279298",
+                "1469e91d.b421d7",
+                "4a2606ec.007d08"
+            ]
+        ]
+    },
+    {
+        "id": "21b535a4.6f3cfa",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 504.0001106262207,
+        "y": 993.2145080566406,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "d473982e.2073e8",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 532.7540245056152,
+        "y": 957.3370542526245,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "dd978c58.19189",
+        "type": "set",
+        "name": "set allotted-resource-oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
+        "comments": "",
+        "x": 543.7542190551758,
+        "y": 704.0514001846313,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "67dca0c.5203f6",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 499.73806381225586,
+        "y": 297.33332538604736,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "58735763.200388",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 546.9973258972168,
+        "y": 263.59259128570557,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "d4bebd02.2ac6",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 505.9934196472168,
+        "y": 333.23152446746826,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ce33759f.7f8848",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 568.5187530517578,
+        "y": 494.4594917297363,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "3d6ff871.1b6728",
+                "c68f9183.6fe9"
+            ]
+        ]
+    },
+    {
+        "id": "ed3aea18.ac56a8",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 534.0648536682129,
+        "y": 393.0172290802002,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3d6ff871.1b6728",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 825.8148918151855,
+        "y": 493.26725220680237,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "cae924d0.c91d68"
+            ]
+        ]
+    },
+    {
+        "id": "e3d80d76.f38b6",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 846.837329864502,
+        "y": 900.432332418859,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "e5182ef1.2930a"
+            ]
+        ]
+    },
+    {
+        "id": "408d7749.7bfef8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 837.8373794555664,
+        "y": 868.9323581680655,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "e5182ef1.2930a"
+            ]
+        ]
+    },
+    {
+        "id": "a26d7c72.44fcc",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 841.5874176025391,
+        "y": 839.2894630432129,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "e6e17eb6.e762c"
+            ]
+        ]
+    },
+    {
+        "id": "e5182ef1.2930a",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1007.5874176025391,
+        "y": 869.6823820099235,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "cae924d0.c91d68",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.8148460388184,
+        "y": 493.7672016620636,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "a06def86.57a78",
+                "2d0ecbe9.d56c34"
+            ]
+        ]
+    },
+    {
+        "id": "a06def86.57a78",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1252.6720924377441,
+        "y": 528.052964925766,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "ef02f832.92b468"
+            ]
+        ]
+    },
+    {
+        "id": "ef02f832.92b468",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1443.6720962524414,
+        "y": 528.0529625415802,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "6ff8e752.374018"
+            ]
+        ]
+    },
+    {
+        "id": "b7d42ce2.9a481",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1843.5292320251465,
+        "y": 528.6243867874146,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "6ff8e752.374018",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1614.5290794372559,
+        "y": 528.6244316101074,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "b7d42ce2.9a481",
+                "63e31730.e27918",
+                "d8d35b13.b628f8"
+            ]
+        ]
+    },
+    {
+        "id": "63e31730.e27918",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1841.5294761657715,
+        "y": 596.0529508590698,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "bed5b961.bd6788",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 593.8148155212402,
+        "y": 457.7671926021576,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "d8d35b13.b628f8",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1851.52925491333,
+        "y": 561.6243848800659,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "55b36fbc.52943",
+                "19d63441.492dec"
+            ]
+        ]
+    },
+    {
+        "id": "55b36fbc.52943",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2063.1292114257812,
+        "y": 522.6243848800659,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "27c47993.316bb6"
+            ]
+        ]
+    },
+    {
+        "id": "19d63441.492dec",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2088.8435859680176,
+        "y": 558.052975654602,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "27c47993.316bb6"
+            ]
+        ]
+    },
+    {
+        "id": "f3aeefda.cd911",
+        "type": "comment",
+        "name": "Set allotted-resource-identifiers",
+        "info": "",
+        "comments": "",
+        "x": 549.3386383056641,
+        "y": 548.3386459350586,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "2d0ecbe9.d56c34",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1332.3864250183105,
+        "y": 493.76729369163513,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "33868ac7.abca26",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 504.9576606750488,
+        "y": 362.6243562698364,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "e6e17eb6.e762c",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 983.2433853149414,
+        "y": 835.481632232666,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2b3604ae.317ccc",
+        "type": "comment",
+        "name": "TO DO: vnf/put parent",
+        "info": "",
+        "comments": "",
+        "x": 517.2433776855468,
+        "y": 769.4815540313718,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "af4ea7a7.5e99e8",
+        "type": "execute",
+        "name": "execute getTime",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 491.24338150024414,
+        "y": 665.4815549850464,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c68f9183.6fe9",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 825.5766868591309,
+        "y": 529.4814250469208,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "336a662a.c1025a"
+            ]
+        ]
+    },
+    {
+        "id": "336a662a.c1025a",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1005.5766372680664,
+        "y": 530.1479756832123,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a078b88c.279298",
+        "type": "set",
+        "name": "set id",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='sz-ar.allotted-resource-status.action' value=\"`$security-zone-topology-operation-input.request-information.request-action` \" />\n<parameter name='sz-ar.allotted-resource-status.rpc-name' value=\"security-zone-topology-operation\" />\n<parameter name='sz-ar.allotted-resource-status.rpc-action' value=\"`$security-zone-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$security-zone-topology-operation-input.request-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$security-zone-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$security-zone-topology-operation-input.service-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$security-zone-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value=\"`$security-zone-topology-operation-input.security-zone-request-input.` \" />",
+        "comments": "",
+        "x": 474.24342346191406,
+        "y": 585.1481666564941,
+        "z": "cab86701.408c88",
+        "wires": []
+    },
+    {
+        "id": "27c47993.316bb6",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2277.5997276306152,
+        "y": 524.0000190734863,
+        "z": "cab86701.408c88",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1469e91d.b421d7",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 574.0000152587891,
+        "y": 850.0000247955322,
+        "z": "cab86701.408c88",
+        "wires": [
+            [
+                "a26d7c72.44fcc",
+                "408d7749.7bfef8",
+                "e3d80d76.f38b6"
+            ]
+        ]
+    },
+    {
+        "id": "4a2606ec.007d08",
+        "type": "set",
+        "name": "clear sz-ar-assignments",
+        "xml": "<set>\n<parameter name='sz-ar-assignments.' value=\"\" />\n\n\n\n",
+        "comments": "",
+        "x": 518,
+        "y": 736,
+        "z": "cab86701.408c88",
+        "wires": []
+    }
+]
\ No newline at end of file
index e0ba088..1edf25f 100755 (executable)
@@ -1 +1,490 @@
-[{"id":"8f1f2ad4.1b2628","type":"dgstart","name":"DGSTART","outputs":1,"x":185,"y":110,"z":"892de9cf.a3e7e8","wires":[["aef28f38.d3ad2"]]},{"id":"aef28f38.d3ad2","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":281.2380790710449,"y":170.95239067077637,"z":"892de9cf.a3e7e8","wires":[["d541214e.1421c"]]},{"id":"d541214e.1421c","type":"method","name":"security-zone-topology-operation-unassign","xml":"<method rpc='security-zone-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":325.15489196777344,"y":210.190447807312,"z":"892de9cf.a3e7e8","wires":[["3d909232.be8cbe"]]},{"id":"3d909232.be8cbe","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":235.47619247436523,"y":349.5237879753113,"z":"892de9cf.a3e7e8","wires":[["ac546d04.a44e3","65b7ebff.45ef54","887af0a1.cfd5a","16719562.f89cfb","921e5db9.a3742","ae6a6800.748f18","4585bd6c.db3454","a30a4193.dc67c"]]},{"id":"65b7ebff.45ef54","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":502.0001106262207,"y":1019.2145080566406,"z":"892de9cf.a3e7e8","wires":[]},{"id":"ac546d04.a44e3","type":"set","name":"set output to api handler","xml":"<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n","comments":"","x":530.7540245056152,"y":983.3370542526245,"z":"892de9cf.a3e7e8","wires":[]},{"id":"16719562.f89cfb","type":"set","name":"set tmp.ar.self-link","xml":"<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n","comments":"","x":497.73806381225586,"y":323.33332538604736,"z":"892de9cf.a3e7e8","wires":[]},{"id":"887af0a1.cfd5a","type":"set","name":"set tmp.ar.allotted-resource-id,etc","xml":"<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n","comments":"","x":544.9973258972168,"y":289.59259128570557,"z":"892de9cf.a3e7e8","wires":[]},{"id":"921e5db9.a3742","type":"execute","name":"execute Properties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":503.9934196472168,"y":359.23152446746826,"z":"892de9cf.a3e7e8","wires":[[]]},{"id":"4585bd6c.db3454","type":"execute","name":"execute RestApiCallNode - Get AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":566.5187530517578,"y":520.4594917297363,"z":"892de9cf.a3e7e8","wires":[["39c78959.7ed206","f4ec9c65.dbf1a"]]},{"id":"ae6a6800.748f18","type":"execute","name":"generate allotted-resource url","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n","comments":"","outputs":1,"x":532.0648536682129,"y":419.0172290802002,"z":"892de9cf.a3e7e8","wires":[[]]},{"id":"39c78959.7ed206","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":823.8148918151855,"y":519.2672522068024,"z":"892de9cf.a3e7e8","wires":[["aa4578bf.e01898"]]},{"id":"cf288e81.867c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":844.837329864502,"y":926.432332418859,"z":"892de9cf.a3e7e8","wires":[["562e732f.776e5c"]]},{"id":"8f1f61fb.4c4c9","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":835.8373794555664,"y":894.9323581680655,"z":"892de9cf.a3e7e8","wires":[["562e732f.776e5c"]]},{"id":"48115134.9ae56","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":839.5874176025391,"y":865.2894630432129,"z":"892de9cf.a3e7e8","wires":[["9c761fba.db0c3"]]},{"id":"562e732f.776e5c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n","comments":"","x":1005.5874176025391,"y":895.6823820099235,"z":"892de9cf.a3e7e8","wires":[]},{"id":"aa4578bf.e01898","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1004.8148460388184,"y":519.7672016620636,"z":"892de9cf.a3e7e8","wires":[["d17cf2f0.cec85","dae16c74.e3b7c"]]},{"id":"d17cf2f0.cec85","type":"switchNode","name":"switch sz length","xml":"<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n","comments":"","outputs":1,"x":1250.6720924377441,"y":554.052964925766,"z":"892de9cf.a3e7e8","wires":[["9eb758cd.982008"]]},{"id":"9eb758cd.982008","type":"other","name":"outcome 1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1441.6720962524414,"y":554.0529625415802,"z":"892de9cf.a3e7e8","wires":[["e43335e7.a2b4b8"]]},{"id":"90a7fa85.7e06d8","type":"set","name":"set sz-ar from get","xml":"<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n","comments":"","x":1841.5292320251465,"y":554.6243867874146,"z":"892de9cf.a3e7e8","wires":[]},{"id":"e43335e7.a2b4b8","type":"block","name":"block: atomic","xml":"<block atomic='true'>\n","atomic":"false","comments":"","outputs":1,"x":1612.5290794372559,"y":554.6244316101074,"z":"892de9cf.a3e7e8","wires":[["90a7fa85.7e06d8","82e79827.7b2528","e9d4c55b.3b68e8"]]},{"id":"82e79827.7b2528","type":"set","name":"set oper-status","xml":"<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n","comments":"","x":1839.5294761657715,"y":622.0529508590698,"z":"892de9cf.a3e7e8","wires":[]},{"id":"dceff592.9c16a8","type":"comment","name":"GET security-zone-allotted-resource from mdsal","info":"","comments":"","x":591.8148155212402,"y":483.7671926021576,"z":"892de9cf.a3e7e8","wires":[]},{"id":"e9d4c55b.3b68e8","type":"switchNode","name":"switch order-status","xml":"<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1849.52925491333,"y":587.6243848800659,"z":"892de9cf.a3e7e8","wires":[["ee32ca42.029ac8","f44f15e1.8ed938"]]},{"id":"ee32ca42.029ac8","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":2061.1292114257812,"y":548.6243848800659,"z":"892de9cf.a3e7e8","wires":[["74e489f7.35eb68"]]},{"id":"f44f15e1.8ed938","type":"outcome","name":"outcome Other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2086.8435859680176,"y":584.052975654602,"z":"892de9cf.a3e7e8","wires":[["74e489f7.35eb68"]]},{"id":"dae16c74.e3b7c","type":"set","name":"save backup copy of mdsal-ar for rollback","xml":"<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n","comments":"","x":1330.3864250183105,"y":519.7672936916351,"z":"892de9cf.a3e7e8","wires":[]},{"id":"972a22dc.b7b85","type":"comment","name":"Create urls for restapi","info":"","comments":"","x":502.9576606750488,"y":388.6243562698364,"z":"892de9cf.a3e7e8","wires":[]},{"id":"9c761fba.db0c3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":981.2433853149414,"y":861.481632232666,"z":"892de9cf.a3e7e8","wires":[[]]},{"id":"f4ec9c65.dbf1a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":823.5766868591309,"y":555.4814250469208,"z":"892de9cf.a3e7e8","wires":[["8c932988.c6f7a8"]]},{"id":"8c932988.c6f7a8","type":"block","name":"block: atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1003.5766372680664,"y":556.1479756832123,"z":"892de9cf.a3e7e8","wires":[[]]},{"id":"74e489f7.35eb68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2275.5997276306152,"y":550.0000190734863,"z":"892de9cf.a3e7e8","wires":[[]]},{"id":"a30a4193.dc67c","type":"execute","name":"execute RestApiCallNode - PUT AR by id","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n","comments":"","outputs":1,"x":568.0000610351562,"y":878.0000267028809,"z":"892de9cf.a3e7e8","wires":[["48115134.9ae56","8f1f61fb.4c4c9","cf288e81.867c"]]}]
+[
+    {
+        "id": "8f1f2ad4.1b2628",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 185,
+        "y": 110,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "aef28f38.d3ad2"
+            ]
+        ]
+    },
+    {
+        "id": "aef28f38.d3ad2",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 281.2380790710449,
+        "y": 170.95239067077637,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "d541214e.1421c"
+            ]
+        ]
+    },
+    {
+        "id": "d541214e.1421c",
+        "type": "method",
+        "name": "security-zone-topology-operation-unassign",
+        "xml": "<method rpc='security-zone-topology-operation-unassign' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 325.15489196777344,
+        "y": 210.190447807312,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "3d909232.be8cbe"
+            ]
+        ]
+    },
+    {
+        "id": "3d909232.be8cbe",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 235.47619247436523,
+        "y": 349.5237879753113,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "ac546d04.a44e3",
+                "65b7ebff.45ef54",
+                "887af0a1.cfd5a",
+                "16719562.f89cfb",
+                "921e5db9.a3742",
+                "ae6a6800.748f18",
+                "4585bd6c.db3454",
+                "a30a4193.dc67c"
+            ]
+        ]
+    },
+    {
+        "id": "65b7ebff.45ef54",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 502.0001106262207,
+        "y": 1019.2145080566406,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "ac546d04.a44e3",
+        "type": "set",
+        "name": "set output to api handler",
+        "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='security-zone-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $security-zone-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
+        "comments": "",
+        "x": 530.7540245056152,
+        "y": 983.3370542526245,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "16719562.f89cfb",
+        "type": "set",
+        "name": "set tmp.ar.self-link",
+        "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/security-zone-topology/'` \" />\n\n",
+        "comments": "",
+        "x": 497.73806381225586,
+        "y": 323.33332538604736,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "887af0a1.cfd5a",
+        "type": "set",
+        "name": "set tmp.ar.allotted-resource-id,etc",
+        "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\n<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\n\n\n",
+        "comments": "",
+        "x": 544.9973258972168,
+        "y": 289.59259128570557,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "921e5db9.a3742",
+        "type": "execute",
+        "name": "execute Properties",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 503.9934196472168,
+        "y": 359.23152446746826,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4585bd6c.db3454",
+        "type": "execute",
+        "name": "execute RestApiCallNode - Get AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 566.5187530517578,
+        "y": 520.4594917297363,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "39c78959.7ed206",
+                "f4ec9c65.dbf1a"
+            ]
+        ]
+    },
+    {
+        "id": "ae6a6800.748f18",
+        "type": "execute",
+        "name": "generate allotted-resource url",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.sz-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 532.0648536682129,
+        "y": 419.0172290802002,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "39c78959.7ed206",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 823.8148918151855,
+        "y": 519.2672522068024,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "aa4578bf.e01898"
+            ]
+        ]
+    },
+    {
+        "id": "cf288e81.867c",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 844.837329864502,
+        "y": 926.432332418859,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "562e732f.776e5c"
+            ]
+        ]
+    },
+    {
+        "id": "8f1f61fb.4c4c9",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 835.8373794555664,
+        "y": 894.9323581680655,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "562e732f.776e5c"
+            ]
+        ]
+    },
+    {
+        "id": "48115134.9ae56",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 839.5874176025391,
+        "y": 865.2894630432129,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "9c761fba.db0c3"
+            ]
+        ]
+    },
+    {
+        "id": "562e732f.776e5c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for security-zone-allotted-resource\" />\n",
+        "comments": "",
+        "x": 1005.5874176025391,
+        "y": 895.6823820099235,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "aa4578bf.e01898",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1004.8148460388184,
+        "y": 519.7672016620636,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "d17cf2f0.cec85",
+                "dae16c74.e3b7c"
+            ]
+        ]
+    },
+    {
+        "id": "d17cf2f0.cec85",
+        "type": "switchNode",
+        "name": "switch sz length",
+        "xml": "<switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1250.6720924377441,
+        "y": 554.052964925766,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "9eb758cd.982008"
+            ]
+        ]
+    },
+    {
+        "id": "9eb758cd.982008",
+        "type": "other",
+        "name": "outcome 1",
+        "xml": "<outcome value='1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1441.6720962524414,
+        "y": 554.0529625415802,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "e43335e7.a2b4b8"
+            ]
+        ]
+    },
+    {
+        "id": "90a7fa85.7e06d8",
+        "type": "set",
+        "name": "set sz-ar from get",
+        "xml": "<set>\n<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\n",
+        "comments": "",
+        "x": 1841.5292320251465,
+        "y": 554.6243867874146,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "e43335e7.a2b4b8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic='true'>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1612.5290794372559,
+        "y": 554.6244316101074,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "90a7fa85.7e06d8",
+                "82e79827.7b2528",
+                "e9d4c55b.3b68e8"
+            ]
+        ]
+    },
+    {
+        "id": "82e79827.7b2528",
+        "type": "set",
+        "name": "set oper-status",
+        "xml": "<set>\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\n<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\n\n",
+        "comments": "",
+        "x": 1839.5294761657715,
+        "y": 622.0529508590698,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "dceff592.9c16a8",
+        "type": "comment",
+        "name": "GET security-zone-allotted-resource from mdsal",
+        "info": "",
+        "comments": "",
+        "x": 591.8148155212402,
+        "y": 483.7671926021576,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "e9d4c55b.3b68e8",
+        "type": "switchNode",
+        "name": "switch order-status",
+        "xml": "<switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1849.52925491333,
+        "y": 587.6243848800659,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "ee32ca42.029ac8",
+                "f44f15e1.8ed938"
+            ]
+        ]
+    },
+    {
+        "id": "ee32ca42.029ac8",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2061.1292114257812,
+        "y": 548.6243848800659,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "74e489f7.35eb68"
+            ]
+        ]
+    },
+    {
+        "id": "f44f15e1.8ed938",
+        "type": "outcome",
+        "name": "outcome Other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2086.8435859680176,
+        "y": 584.052975654602,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "74e489f7.35eb68"
+            ]
+        ]
+    },
+    {
+        "id": "dae16c74.e3b7c",
+        "type": "set",
+        "name": "save backup copy of mdsal-ar for rollback",
+        "xml": "<set>\n<parameter name='bk-sz-ar' value='$mdsal-ar.' />\n",
+        "comments": "",
+        "x": 1330.3864250183105,
+        "y": 519.7672936916351,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "972a22dc.b7b85",
+        "type": "comment",
+        "name": "Create urls for restapi",
+        "info": "",
+        "comments": "",
+        "x": 502.9576606750488,
+        "y": 388.6243562698364,
+        "z": "892de9cf.a3e7e8",
+        "wires": []
+    },
+    {
+        "id": "9c761fba.db0c3",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 981.2433853149414,
+        "y": 861.481632232666,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f4ec9c65.dbf1a",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 823.5766868591309,
+        "y": 555.4814250469208,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "8c932988.c6f7a8"
+            ]
+        ]
+    },
+    {
+        "id": "8c932988.c6f7a8",
+        "type": "block",
+        "name": "block: atomic",
+        "xml": "<block atomic=\"true\">\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1003.5766372680664,
+        "y": 556.1479756832123,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "74e489f7.35eb68",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 2275.5997276306152,
+        "y": 550.0000190734863,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a30a4193.dc67c",
+        "type": "execute",
+        "name": "execute RestApiCallNode - PUT AR by id",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='DELETE' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 568.0000610351562,
+        "y": 878.0000267028809,
+        "z": "892de9cf.a3e7e8",
+        "wires": [
+            [
+                "48115134.9ae56",
+                "8f1f61fb.4c4c9",
+                "cf288e81.867c"
+            ]
+        ]
+    }
+]
\ No newline at end of file
index 26b224f..917ff1c 100755 (executable)
@@ -1 +1,881 @@
-[{"id":"e4ebdff3.230ac","type":"dgstart","name":"DGSTART","outputs":1,"x":153.7037124633789,"y":150.37034606933594,"z":"38cff129.fc152e","wires":[["b4010019.28c11"]]},{"id":"b4010019.28c11","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":232.32273864746094,"y":190.60845851898193,"z":"38cff129.fc152e","wires":[["d0b7800c.ff6ae"]]},{"id":"d0b7800c.ff6ae","type":"method","name":"security-zone-topology-operation","xml":"<method rpc='security-zone-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":216.79901123046875,"y":250.3703441619873,"z":"38cff129.fc152e","wires":[["5cabda26.cb2e34"]]},{"id":"1d74440d.0be21c","type":"comment","name":"SECURITY-ZONE-TOPOLOGY-OPERATION ","info":"","comments":"","x":544.7152328491211,"y":97.95668983459473,"z":"38cff129.fc152e","wires":[]},{"id":"5cabda26.cb2e34","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":270.084716796875,"y":333.81380558013916,"z":"38cff129.fc152e","wires":[["8572d942.568b08","a4dc8e17.f43eb","8f606133.785f7","b962e00e.873c9"]]},{"id":"8572d942.568b08","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":494.4537658691406,"y":937.6564655303955,"z":"38cff129.fc152e","wires":[]},{"id":"a4dc8e17.f43eb","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":491.0846405029297,"y":544.2275238037109,"z":"38cff129.fc152e","wires":[["3b96ffc6.57b1a","2254507e.315a2","e31135d3.dc53d8","f3af2581.6384d8","928514d5.296ba8","5ec79a58.8d5414","fd3e4e18.0df77"]]},{"id":"3b96ffc6.57b1a","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":712.9894676208496,"y":405.0846047401428,"z":"38cff129.fc152e","wires":[["aa516bcc.267f38"]]},{"id":"aa516bcc.267f38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":892.7989959716797,"y":407.51329612731934,"z":"38cff129.fc152e","wires":[["f56f040a.9ba298"]]},{"id":"8f606133.785f7","type":"call","name":"call GENERIC-RESOURCE-API:validate-security-zone-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-security-zone-input' mode='sync' >\n","comments":"","outputs":1,"x":625.6560668945312,"y":325.7989387512207,"z":"38cff129.fc152e","wires":[[]]},{"id":"f56f040a.9ba298","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1264.3702926635742,"y":407.37035179138184,"z":"38cff129.fc152e","wires":[[]]},{"id":"2254507e.315a2","type":"other","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":713.3703765869141,"y":494.37034606933594,"z":"38cff129.fc152e","wires":[["2b87dbfe.7ba6e4"]]},{"id":"2b87dbfe.7ba6e4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":897.6085357666016,"y":495.37046813964844,"z":"38cff129.fc152e","wires":[["49265f59.4181d"]]},{"id":"e8d2423f.a9142","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1830.1800549825039,"y":1470.5608215332031,"z":"38cff129.fc152e","wires":[[]]},{"id":"e31135d3.dc53d8","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":722.3704166412354,"y":554.3704042434692,"z":"38cff129.fc152e","wires":[["39e52589.68fa0a"]]},{"id":"39e52589.68fa0a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":903.6085758209229,"y":555.3705263137817,"z":"38cff129.fc152e","wires":[["430726d9.dbdaa8"]]},{"id":"ed015722.b22218","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1836.6799634297695,"y":1586.3108215332031,"z":"38cff129.fc152e","wires":[[]]},{"id":"f3af2581.6384d8","type":"other","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":720.370439529419,"y":672.7037439346313,"z":"38cff129.fc152e","wires":[["5b1c51a7.e6aa7"]]},{"id":"5b1c51a7.e6aa7","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":901.6085987091064,"y":673.7038660049438,"z":"38cff129.fc152e","wires":[["5bc27941.d4f4f8"]]},{"id":"1d34f9a1.037d66","type":"call","name":"call GENERIC-RESOURCE-API:network-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1843.4299634297695,"y":1699.0608215332031,"z":"38cff129.fc152e","wires":[[]]},{"id":"928514d5.296ba8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":719.7037696838379,"y":732.7037267684937,"z":"38cff129.fc152e","wires":[["4e2016c4.9e9208"]]},{"id":"4e2016c4.9e9208","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":901.7037658691406,"y":731.7037363052368,"z":"38cff129.fc152e","wires":[]},{"id":"b962e00e.873c9","type":"set","name":"Set final indicator to Y","xml":"<set>\n<parameter name=\"ack-final\" value=\"Y\"/>","comments":"","x":513.4814605712891,"y":896.8148040771484,"z":"38cff129.fc152e","wires":[]},{"id":"970980ab.4166","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1732.1008466084804,"y":1364.465576171875,"z":"38cff129.fc152e","wires":[["7c375e30.6abc8"]]},{"id":"cec76c20.78cb4","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":1065.8149426778164,"y":1329.0369567871094,"z":"38cff129.fc152e","wires":[["5fff2a9.d7e8dd4","94eadb3a.e3a458"]]},{"id":"5fff2a9.d7e8dd4","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1308.81488164266,"y":1331.0369663238525,"z":"38cff129.fc152e","wires":[["a0ca271a.2df248"]]},{"id":"94eadb3a.e3a458","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1262.8149121602382,"y":1364.0369873046875,"z":"38cff129.fc152e","wires":[["955a1867.ed1ea8"]]},{"id":"7c375e30.6abc8","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n","comments":"","outputs":1,"x":2022.5293973286953,"y":1363.7156600952148,"z":"38cff129.fc152e","wires":[["43582bb0.126264"]]},{"id":"43582bb0.126264","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2211.4817517598476,"y":1364.6083984375,"z":"38cff129.fc152e","wires":[["e72ed2b6.760d4"]]},{"id":"e72ed2b6.760d4","type":"set","name":"set tmp.nidx and ctx.network-data","xml":"<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\n","comments":"","x":2445.0135205586757,"y":1363.3584060668945,"z":"38cff129.fc152e","wires":[]},{"id":"1533495c.2f7d47","type":"comment","name":"Find the index to service data for this network - save id in tmp.nidx, save service-data","info":"","comments":"","x":1188.9260266621914,"y":1298.036979675293,"z":"38cff129.fc152e","wires":[]},{"id":"a0ca271a.2df248","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n","comments":"","x":1500.592439015707,"y":1328.9259643554688,"z":"38cff129.fc152e","wires":[]},{"id":"955a1867.ed1ea8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1430.0848782857265,"y":1363.5915641784668,"z":"38cff129.fc152e","wires":[["970980ab.4166","a77bcb8b.e65188"]]},{"id":"a77bcb8b.e65188","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":1650.4022763570156,"y":1406.4487829208374,"z":"38cff129.fc152e","wires":[["4037e2b3.df5d0c"]]},{"id":"bbb7bbcb.e9d3e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n","comments":"","x":2003.25925954183,"y":1402.1630249023438,"z":"38cff129.fc152e","wires":[]},{"id":"4037e2b3.df5d0c","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1821.8308118184414,"y":1405.0201683044434,"z":"38cff129.fc152e","wires":[["bbb7bbcb.e9d3e8"]]},{"id":"14c198e5.1cc677","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1043.1482861836757,"y":1470.512222290039,"z":"38cff129.fc152e","wires":[["3c6c6eae.28e612","103089d1.c81916"]]},{"id":"3c6c6eae.28e612","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1408.148265838623,"y":1470.51220703125,"z":"38cff129.fc152e","wires":[["e8d2423f.a9142"]]},{"id":"103089d1.c81916","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1358.1483128865566,"y":1510.5122375488281,"z":"38cff129.fc152e","wires":[["e490ae22.d5bde"]]},{"id":"e490ae22.d5bde","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":1528.1483128865566,"y":1510.5122375488281,"z":"38cff129.fc152e","wires":[]},{"id":"ab179e35.550b2","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1050.4497693379726,"y":1586.463623046875,"z":"38cff129.fc152e","wires":[["9d407a50.6f42b8","50a066bd.db29b8"]]},{"id":"9d407a50.6f42b8","type":"outcome","name":"outcome Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":1413.4497388203945,"y":1586.4636535644531,"z":"38cff129.fc152e","wires":[["ed015722.b22218"]]},{"id":"50a066bd.db29b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1383.4497388203945,"y":1626.4636535644531,"z":"38cff129.fc152e","wires":[["a5c499d0.8c9ba8"]]},{"id":"a5c499d0.8c9ba8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":1549.4497388203945,"y":1628.4636535644531,"z":"38cff129.fc152e","wires":[]},{"id":"5487a9fc.903868","type":"switchNode","name":"switch network-level-oper-status","xml":"<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":1050.2513440450039,"y":1700.665023803711,"z":"38cff129.fc152e","wires":[["774c458d.4976ec","ff4fd639.391848","9d8f3da4.83f8"]]},{"id":"774c458d.4976ec","type":"outcome","name":"outcome PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1410.2513135274257,"y":1700.665054321289,"z":"38cff129.fc152e","wires":[["1d34f9a1.037d66"]]},{"id":"ff4fd639.391848","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1367.2512524922695,"y":1784.6650695800781,"z":"38cff129.fc152e","wires":[["8f2347ed.c81b08"]]},{"id":"8f2347ed.c81b08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />","comments":"","x":1558.5846722920742,"y":1783.3316984176636,"z":"38cff129.fc152e","wires":[]},{"id":"9d8f3da4.83f8","type":"outcome","name":"outcome PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1413.4815381368007,"y":1738.512222290039,"z":"38cff129.fc152e","wires":[["1d34f9a1.037d66"]]},{"id":"5ec79a58.8d5414","type":"other","name":"create","xml":"<outcome value='create'>\n","comments":"","outputs":1,"x":718.611083984375,"y":453.97518730163574,"z":"38cff129.fc152e","wires":[["5936e2cd.b6288c"]]},{"id":"5936e2cd.b6288c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":899.8492431640625,"y":454.97530937194824,"z":"38cff129.fc152e","wires":[["4a78d52c.c3db4c"]]},{"id":"4a78d52c.c3db4c","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-create","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-create' mode='sync' >\n","comments":"","outputs":1,"x":1265.7539520263672,"y":454.49903106689453,"z":"38cff129.fc152e","wires":[[]]},{"id":"fd3e4e18.0df77","type":"other","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":716.9444370269775,"y":615.6418466567993,"z":"38cff129.fc152e","wires":[["d1afc7c1.5f5188"]]},{"id":"d1afc7c1.5f5188","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":898.182596206665,"y":616.6419687271118,"z":"38cff129.fc152e","wires":[["c0792090.5b78d"]]},{"id":"430726d9.dbdaa8","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1285.5184936523438,"y":554.851884841919,"z":"38cff129.fc152e","wires":[[]]},{"id":"c0792090.5b78d","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-delete","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-delete' mode='sync' >\n","comments":"","outputs":1,"x":1275.1853427886963,"y":616.5185136795044,"z":"38cff129.fc152e","wires":[[]]},{"id":"5bc27941.d4f4f8","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1280.8518466949463,"y":673.8518400192261,"z":"38cff129.fc152e","wires":[[]]},{"id":"49265f59.4181d","type":"call","name":"call GENERIC-RESOURCE-API:security-zone-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1275.1851806640625,"y":495.851806640625,"z":"38cff129.fc152e","wires":[[]]},{"id":"ef47642e.ee9758","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n","comments":"","x":524.4444580078125,"y":855.873046875,"z":"38cff129.fc152e","wires":[]}]
+[
+    {
+        "id": "e4ebdff3.230ac",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 153.7037124633789,
+        "y": 150.37034606933594,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "b4010019.28c11"
+            ]
+        ]
+    },
+    {
+        "id": "b4010019.28c11",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 232.32273864746094,
+        "y": 190.60845851898193,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "d0b7800c.ff6ae"
+            ]
+        ]
+    },
+    {
+        "id": "d0b7800c.ff6ae",
+        "type": "method",
+        "name": "security-zone-topology-operation",
+        "xml": "<method rpc='security-zone-topology-operation' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 216.79901123046875,
+        "y": 250.3703441619873,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "5cabda26.cb2e34"
+            ]
+        ]
+    },
+    {
+        "id": "1d74440d.0be21c",
+        "type": "comment",
+        "name": "SECURITY-ZONE-TOPOLOGY-OPERATION ",
+        "info": "",
+        "comments": "",
+        "x": 544.7152328491211,
+        "y": 97.95668983459473,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "5cabda26.cb2e34",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 270.084716796875,
+        "y": 333.81380558013916,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "8572d942.568b08",
+                "a4dc8e17.f43eb",
+                "8f606133.785f7",
+                "b962e00e.873c9"
+            ]
+        ]
+    },
+    {
+        "id": "8572d942.568b08",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 494.4537658691406,
+        "y": 937.6564655303955,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "a4dc8e17.f43eb",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 491.0846405029297,
+        "y": 544.2275238037109,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "3b96ffc6.57b1a",
+                "2254507e.315a2",
+                "e31135d3.dc53d8",
+                "f3af2581.6384d8",
+                "928514d5.296ba8",
+                "5ec79a58.8d5414",
+                "fd3e4e18.0df77"
+            ]
+        ]
+    },
+    {
+        "id": "3b96ffc6.57b1a",
+        "type": "other",
+        "name": "assign",
+        "xml": "<outcome value='assign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 712.9894676208496,
+        "y": 405.0846047401428,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "aa516bcc.267f38"
+            ]
+        ]
+    },
+    {
+        "id": "aa516bcc.267f38",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 892.7989959716797,
+        "y": 407.51329612731934,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "f56f040a.9ba298"
+            ]
+        ]
+    },
+    {
+        "id": "8f606133.785f7",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:validate-security-zone-input",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-security-zone-input' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 625.6560668945312,
+        "y": 325.7989387512207,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f56f040a.9ba298",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-assign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-assign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1264.3702926635742,
+        "y": 407.37035179138184,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2254507e.315a2",
+        "type": "other",
+        "name": "activate",
+        "xml": "<outcome value='activate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 713.3703765869141,
+        "y": 494.37034606933594,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "2b87dbfe.7ba6e4"
+            ]
+        ]
+    },
+    {
+        "id": "2b87dbfe.7ba6e4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 897.6085357666016,
+        "y": 495.37046813964844,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "49265f59.4181d"
+            ]
+        ]
+    },
+    {
+        "id": "e8d2423f.a9142",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:network-topology-operation-activate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1830.1800549825039,
+        "y": 1470.5608215332031,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e31135d3.dc53d8",
+        "type": "other",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 722.3704166412354,
+        "y": 554.3704042434692,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "39e52589.68fa0a"
+            ]
+        ]
+    },
+    {
+        "id": "39e52589.68fa0a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 903.6085758209229,
+        "y": 555.3705263137817,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "430726d9.dbdaa8"
+            ]
+        ]
+    },
+    {
+        "id": "ed015722.b22218",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:network-topology-operation-deactivate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1836.6799634297695,
+        "y": 1586.3108215332031,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f3af2581.6384d8",
+        "type": "other",
+        "name": "unassign",
+        "xml": "<outcome value='unassign'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 720.370439529419,
+        "y": 672.7037439346313,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "5b1c51a7.e6aa7"
+            ]
+        ]
+    },
+    {
+        "id": "5b1c51a7.e6aa7",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 901.6085987091064,
+        "y": 673.7038660049438,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "5bc27941.d4f4f8"
+            ]
+        ]
+    },
+    {
+        "id": "1d34f9a1.037d66",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:network-topology-operation-unassign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-unassign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1843.4299634297695,
+        "y": 1699.0608215332031,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "928514d5.296ba8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 719.7037696838379,
+        "y": 732.7037267684937,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "4e2016c4.9e9208"
+            ]
+        ]
+    },
+    {
+        "id": "4e2016c4.9e9208",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
+        "comments": "",
+        "x": 901.7037658691406,
+        "y": 731.7037363052368,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "b962e00e.873c9",
+        "type": "set",
+        "name": "Set final indicator to Y",
+        "xml": "<set>\n<parameter name=\"ack-final\" value=\"Y\"/>",
+        "comments": "",
+        "x": 513.4814605712891,
+        "y": 896.8148040771484,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "970980ab.4166",
+        "type": "for",
+        "name": "for nidx..service-data.networks.network[]",
+        "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1732.1008466084804,
+        "y": 1364.465576171875,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "7c375e30.6abc8"
+            ]
+        ]
+    },
+    {
+        "id": "cec76c20.78cb4",
+        "type": "switchNode",
+        "name": "switch service-data.networks.network_length",
+        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1065.8149426778164,
+        "y": 1329.0369567871094,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "5fff2a9.d7e8dd4",
+                "94eadb3a.e3a458"
+            ]
+        ]
+    },
+    {
+        "id": "5fff2a9.d7e8dd4",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1308.81488164266,
+        "y": 1331.0369663238525,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "a0ca271a.2df248"
+            ]
+        ]
+    },
+    {
+        "id": "94eadb3a.e3a458",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1262.8149121602382,
+        "y": 1364.0369873046875,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "955a1867.ed1ea8"
+            ]
+        ]
+    },
+    {
+        "id": "7c375e30.6abc8",
+        "type": "switchNode",
+        "name": "switch networkid found",
+        "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2022.5293973286953,
+        "y": 1363.7156600952148,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "43582bb0.126264"
+            ]
+        ]
+    },
+    {
+        "id": "43582bb0.126264",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2211.4817517598476,
+        "y": 1364.6083984375,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "e72ed2b6.760d4"
+            ]
+        ]
+    },
+    {
+        "id": "e72ed2b6.760d4",
+        "type": "set",
+        "name": "set tmp.nidx and ctx.network-data",
+        "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\n",
+        "comments": "",
+        "x": 2445.0135205586757,
+        "y": 1363.3584060668945,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "1533495c.2f7d47",
+        "type": "comment",
+        "name": "Find the index to service data for this network - save id in tmp.nidx, save service-data",
+        "info": "",
+        "comments": "",
+        "x": 1188.9260266621914,
+        "y": 1298.036979675293,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "a0ca271a.2df248",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n",
+        "comments": "",
+        "x": 1500.592439015707,
+        "y": 1328.9259643554688,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "955a1867.ed1ea8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1430.0848782857265,
+        "y": 1363.5915641784668,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "970980ab.4166",
+                "a77bcb8b.e65188"
+            ]
+        ]
+    },
+    {
+        "id": "a77bcb8b.e65188",
+        "type": "switchNode",
+        "name": "switch tmp.nidx ",
+        "xml": "<switch test=\"`$tmp.nidx`\">\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1650.4022763570156,
+        "y": 1406.4487829208374,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "4037e2b3.df5d0c"
+            ]
+        ]
+    },
+    {
+        "id": "bbb7bbcb.e9d3e8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n",
+        "comments": "",
+        "x": 2003.25925954183,
+        "y": 1402.1630249023438,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "4037e2b3.df5d0c",
+        "type": "outcome",
+        "name": "NULL",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1821.8308118184414,
+        "y": 1405.0201683044434,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "bbb7bbcb.e9d3e8"
+            ]
+        ]
+    },
+    {
+        "id": "14c198e5.1cc677",
+        "type": "switchNode",
+        "name": "switch network-level-oper-status",
+        "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1043.1482861836757,
+        "y": 1470.512222290039,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "3c6c6eae.28e612",
+                "103089d1.c81916"
+            ]
+        ]
+    },
+    {
+        "id": "3c6c6eae.28e612",
+        "type": "outcome",
+        "name": "outcome PendingCreate",
+        "xml": "<outcome value='PendingCreate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1408.148265838623,
+        "y": 1470.51220703125,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "e8d2423f.a9142"
+            ]
+        ]
+    },
+    {
+        "id": "103089d1.c81916",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1358.1483128865566,
+        "y": 1510.5122375488281,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "e490ae22.d5bde"
+            ]
+        ]
+    },
+    {
+        "id": "e490ae22.d5bde",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
+        "comments": "",
+        "x": 1528.1483128865566,
+        "y": 1510.5122375488281,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "ab179e35.550b2",
+        "type": "switchNode",
+        "name": "switch network-level-oper-status",
+        "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1050.4497693379726,
+        "y": 1586.463623046875,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "9d407a50.6f42b8",
+                "50a066bd.db29b8"
+            ]
+        ]
+    },
+    {
+        "id": "9d407a50.6f42b8",
+        "type": "outcome",
+        "name": "outcome Created",
+        "xml": "<outcome value='Created'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1413.4497388203945,
+        "y": 1586.4636535644531,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "ed015722.b22218"
+            ]
+        ]
+    },
+    {
+        "id": "50a066bd.db29b8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1383.4497388203945,
+        "y": 1626.4636535644531,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "a5c499d0.8c9ba8"
+            ]
+        ]
+    },
+    {
+        "id": "a5c499d0.8c9ba8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
+        "comments": "",
+        "x": 1549.4497388203945,
+        "y": 1628.4636535644531,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "5487a9fc.903868",
+        "type": "switchNode",
+        "name": "switch network-level-oper-status",
+        "xml": "<switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1050.2513440450039,
+        "y": 1700.665023803711,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "774c458d.4976ec",
+                "ff4fd639.391848",
+                "9d8f3da4.83f8"
+            ]
+        ]
+    },
+    {
+        "id": "774c458d.4976ec",
+        "type": "outcome",
+        "name": "outcome PendingCreate",
+        "xml": "<outcome value='PendingCreate'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1410.2513135274257,
+        "y": 1700.665054321289,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "1d34f9a1.037d66"
+            ]
+        ]
+    },
+    {
+        "id": "ff4fd639.391848",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1367.2512524922695,
+        "y": 1784.6650695800781,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "8f2347ed.c81b08"
+            ]
+        ]
+    },
+    {
+        "id": "8f2347ed.c81b08",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network is not in appropriate state for unassign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`\" />",
+        "comments": "",
+        "x": 1558.5846722920742,
+        "y": 1783.3316984176636,
+        "z": "38cff129.fc152e",
+        "wires": []
+    },
+    {
+        "id": "9d8f3da4.83f8",
+        "type": "outcome",
+        "name": "outcome PendingDelete",
+        "xml": "<outcome value='PendingDelete'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1413.4815381368007,
+        "y": 1738.512222290039,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "1d34f9a1.037d66"
+            ]
+        ]
+    },
+    {
+        "id": "5ec79a58.8d5414",
+        "type": "other",
+        "name": "create",
+        "xml": "<outcome value='create'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 718.611083984375,
+        "y": 453.97518730163574,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "5936e2cd.b6288c"
+            ]
+        ]
+    },
+    {
+        "id": "5936e2cd.b6288c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 899.8492431640625,
+        "y": 454.97530937194824,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "4a78d52c.c3db4c"
+            ]
+        ]
+    },
+    {
+        "id": "4a78d52c.c3db4c",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-create",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-create' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1265.7539520263672,
+        "y": 454.49903106689453,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fd3e4e18.0df77",
+        "type": "other",
+        "name": "delete",
+        "xml": "<outcome value='delete'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 716.9444370269775,
+        "y": 615.6418466567993,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "d1afc7c1.5f5188"
+            ]
+        ]
+    },
+    {
+        "id": "d1afc7c1.5f5188",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 898.182596206665,
+        "y": 616.6419687271118,
+        "z": "38cff129.fc152e",
+        "wires": [
+            [
+                "c0792090.5b78d"
+            ]
+        ]
+    },
+    {
+        "id": "430726d9.dbdaa8",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-deactivate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-deactivate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1285.5184936523438,
+        "y": 554.851884841919,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c0792090.5b78d",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-delete",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-delete' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1275.1853427886963,
+        "y": 616.5185136795044,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "5bc27941.d4f4f8",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-unassign",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-unassign' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1280.8518466949463,
+        "y": 673.8518400192261,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "49265f59.4181d",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:security-zone-topology-operation-activate",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-activate' mode='sync' >\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1275.1851806640625,
+        "y": 495.851806640625,
+        "z": "38cff129.fc152e",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "ef47642e.ee9758",
+        "type": "set",
+        "name": "copy input to service-data",
+        "xml": "<set>\n<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />\n<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />\n",
+        "comments": "",
+        "x": 524.4444580078125,
+        "y": 855.873046875,
+        "z": "38cff129.fc152e",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.json
new file mode 100644 (file)
index 0000000..f45f3d6
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"3bcc1d3c.2e7f62","type":"dgstart","name":"DGSTART","outputs":1,"x":183.75,"y":77.5,"z":"87de2662.03c5d8","wires":[["f8f4f048.6fa07"]]},{"id":"f8f4f048.6fa07","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":462.75,"y":80.5,"z":"87de2662.03c5d8","wires":[["f890436a.4cb56"]]},{"id":"f890436a.4cb56","type":"method","name":"self-serve-aai-vfmodule-put","xml":"<method rpc='self-serve-aai-vfmodule-put' mode='sync'>\n","comments":"","outputs":1,"x":782.75,"y":86.5,"z":"87de2662.03c5d8","wires":[["a7805912.e54c08"]]},{"id":"a7805912.e54c08","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":294.75,"y":395.5,"z":"87de2662.03c5d8","wires":[["13fa00ca.d798ef","eacd37e7.f12328"]]},{"id":"13fa00ca.d798ef","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":507.75,"y":396.5,"z":"87de2662.03c5d8","wires":[["b00ffff3.acb6f","ba9ae715.865198"]]},{"id":"ba9ae715.865198","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":697.75,"y":286.5,"z":"87de2662.03c5d8","wires":[["6763195f.a1e3d8"]]},{"id":"b00ffff3.acb6f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":702.75,"y":414.5,"z":"87de2662.03c5d8","wires":[["60603a9e.40c824"]]},{"id":"6763195f.a1e3d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='vnf-index is required' />\n","comments":"","x":853.75,"y":287.5,"z":"87de2662.03c5d8","wires":[]},{"id":"60603a9e.40c824","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":847.75,"y":414.5,"z":"87de2662.03c5d8","wires":[["6913e72c.1d7f48","d4d282ea.1681c"]]},{"id":"6913e72c.1d7f48","type":"for","name":"for j","xml":"<for index=\"j\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\" >\n","comments":"","outputs":1,"x":974.75,"y":638.5,"z":"87de2662.03c5d8","wires":[["73d4d17b.fa237"]]},{"id":"73d4d17b.fa237","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1130.75,"y":640.5,"z":"87de2662.03c5d8","wires":[["60c50f6e.e6ca7"]]},{"id":"60c50f6e.e6ca7","type":"switchNode","name":"switch","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].name`'>\n","comments":"","outputs":1,"x":1279.75,"y":640.5,"z":"87de2662.03c5d8","wires":[["e5caa9f7.c09358","83438f88.62bba","d776d78b.b63e38","e0c70877.2cd778","5268f0ac.d7d17"]]},{"id":"e5caa9f7.c09358","type":"outcome","name":"vf-module-id","xml":"<outcome value='vf-module-id'>\n","comments":"","outputs":1,"x":1441.75,"y":596.5,"z":"87de2662.03c5d8","wires":[["a4aa2147.163b6"]]},{"id":"a4aa2147.163b6","type":"set","name":"set vf-module-id","xml":"<set>\n<parameter name='vf-module-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\n","comments":"","x":1650.75,"y":596.5,"z":"87de2662.03c5d8","wires":[]},{"id":"83438f88.62bba","type":"outcome","name":"vf-module-name","xml":"<outcome value='vf-module-name'>\n","comments":"","outputs":1,"x":1448.75,"y":632.5,"z":"87de2662.03c5d8","wires":[["b5e3f8de.e9a598"]]},{"id":"eacd37e7.f12328","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":495.75,"y":803.5,"z":"87de2662.03c5d8","wires":[["93f4e68b.5b6d98"]]},{"id":"d4d282ea.1681c","type":"for","name":"for k","xml":"<for index=\"k\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\" >\n","comments":"","outputs":1,"x":996.75,"y":362.5,"z":"87de2662.03c5d8","wires":[["a9c8b188.25031"]]},{"id":"a9c8b188.25031","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1138.75,"y":362.5,"z":"87de2662.03c5d8","wires":[["79139eb.37a506"]]},{"id":"79139eb.37a506","type":"switchNode","name":"switch","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\n","comments":"","outputs":1,"x":1288.75,"y":362.5,"z":"87de2662.03c5d8","wires":[["4fe5e9f0.e41a88","ad407b2f.5fcd38","8fb674c6.a20218","7adccb75.b058e4"]]},{"id":"4fe5e9f0.e41a88","type":"outcome","name":"vnf-id","xml":"<outcome value='vnf-id'>\n","comments":"","outputs":1,"x":1437.75,"y":296.5,"z":"87de2662.03c5d8","wires":[["4015b9c8.9d41c8"]]},{"id":"ad407b2f.5fcd38","type":"outcome","name":"ipv4-loopback0-address","xml":"<outcome value='ipv4-loopback0-address'>\n","comments":"","outputs":1,"x":1488.75,"y":336.5,"z":"87de2662.03c5d8","wires":[["11e0c62f.b5574a"]]},{"id":"4015b9c8.9d41c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1693.75,"y":298.5,"z":"87de2662.03c5d8","wires":[["9b6155f5.f4cc98"]]},{"id":"9b6155f5.f4cc98","type":"set","name":"set vnf-id","xml":"<set>\n<parameter name='vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\n\n","comments":"","x":1842.75,"y":297.5,"z":"87de2662.03c5d8","wires":[]},{"id":"11e0c62f.b5574a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1695.75,"y":336.5,"z":"87de2662.03c5d8","wires":[["ee096b07.cf8688"]]},{"id":"ee096b07.cf8688","type":"set","name":"set ipv4-loopback0-address","xml":"<set>\n<parameter name='ipv4-loopback0-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\n\n","comments":"","x":1903.75,"y":336.5,"z":"87de2662.03c5d8","wires":[]},{"id":"93f4e68b.5b6d98","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $vnf-id \"\n\tpfx=\"tmp.AnAI-data.vnf\" >\n<parameter name=\"ipv4-loopback0-address\" value='`$ipv4-loopback0-address`' />\n<parameter name=\"ipv4-oam-address\" value='`$ipv4-oam-address`' />\n<parameter name=\"as-number\" value='`$as-number`' />\n<parameter name=\"vlan-id-outer\" value='`$vlan-id-outer`' />\n","comments":"","outputs":1,"x":681.75,"y":804.5,"z":"87de2662.03c5d8","wires":[["95c5a79a.ddbdc8","f108819d.8bd34","4ac64e59.55cec"]]},{"id":"95c5a79a.ddbdc8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":884.75,"y":764.5,"z":"87de2662.03c5d8","wires":[["54b37c02.3f0a64"]]},{"id":"f108819d.8bd34","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":887.75,"y":801.5,"z":"87de2662.03c5d8","wires":[["54b37c02.3f0a64"]]},{"id":"54b37c02.3f0a64","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error for PUT in AAI for generic-vnf.\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":1036.75,"y":787.5,"z":"87de2662.03c5d8","wires":[[]]},{"id":"8fb674c6.a20218","type":"outcome","name":"as-number","xml":"<outcome value='as-number'>\n","comments":"","outputs":1,"x":1448.75,"y":377.5,"z":"87de2662.03c5d8","wires":[["66c640fa.36473"]]},{"id":"7adccb75.b058e4","type":"outcome","name":"vlan-id-outer","xml":"<outcome value='vlan-id-outer'>\n","comments":"","outputs":1,"x":1450.75,"y":417.5,"z":"87de2662.03c5d8","wires":[["457b683c.52d4b8"]]},{"id":"66c640fa.36473","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1694.75,"y":374.5,"z":"87de2662.03c5d8","wires":[["89c9f6aa.f93da8"]]},{"id":"89c9f6aa.f93da8","type":"set","name":"set as-number","xml":"<set>\n<parameter name='as-number' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\n\n","comments":"","x":1861.75,"y":375.5,"z":"87de2662.03c5d8","wires":[]},{"id":"457b683c.52d4b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1692.75,"y":413.5,"z":"87de2662.03c5d8","wires":[["aa7f4e1d.87e2b"]]},{"id":"aa7f4e1d.87e2b","type":"set","name":"set vlan-id-outer","xml":"<set>\n<parameter name='vlan-id-outer' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\n\n","comments":"","x":1866.75,"y":414.5,"z":"87de2662.03c5d8","wires":[]},{"id":"b5e3f8de.e9a598","type":"set","name":"set vf-module-name","xml":"<set>\n<parameter name='vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\n","comments":"","x":1662.75,"y":633.5,"z":"87de2662.03c5d8","wires":[]},{"id":"d776d78b.b63e38","type":"outcome","name":"volume-group-name","xml":"<outcome value='volume-group-name'>\n","comments":"","outputs":1,"x":1460.75,"y":729.5,"z":"87de2662.03c5d8","wires":[["3e549a42.e099b6"]]},{"id":"3e549a42.e099b6","type":"set","name":"set volume-group-name","xml":"<set>\n<parameter name='volume-group-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\n","comments":"","x":1678.75,"y":729.5,"z":"87de2662.03c5d8","wires":[]},{"id":"e0c70877.2cd778","type":"outcome","name":"cloud-region","xml":"<outcome value='cloud-region'>\n","comments":"","outputs":1,"x":1438.75,"y":798.5,"z":"87de2662.03c5d8","wires":[["1d906e7c.bb10b2"]]},{"id":"1d906e7c.bb10b2","type":"set","name":"set cloud-region","xml":"<set>\n<parameter name='cloud-region' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\n","comments":"","x":1653.75,"y":797.5,"z":"87de2662.03c5d8","wires":[]},{"id":"4ac64e59.55cec","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":868.75,"y":921.5,"z":"87de2662.03c5d8","wires":[["667cd992.349bc8"]]},{"id":"115b9def.8bc5b2","type":"comment","name":"PUT generic-vnf","info":"","comments":"","x":668.75,"y":765.5,"z":"87de2662.03c5d8","wires":[]},{"id":"f0a1b451.879598","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error for PUT in AAI for vf-module\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":1412.75,"y":903.5,"z":"87de2662.03c5d8","wires":[[]]},{"id":"6eb56e20.58186","type":"comment","name":"PUT vnf-module","info":"","comments":"","x":1049.75,"y":881.5,"z":"87de2662.03c5d8","wires":[]},{"id":"667cd992.349bc8","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"vf-module\"\n\t\tkey=\"vf-module.vf-module-id = $vf-module-id \"\n\tpfx=\"tmp.AnAI-data.vfmodule\" >\n<parameter name=\"vf-module-name\" value='`$vf-module-name`' />\n","comments":"","outputs":1,"x":1057.75,"y":920.5,"z":"87de2662.03c5d8","wires":[["5c3ff6c3.e9d0d8","12563170.8c5ebf","bd518e04.b96c1"]]},{"id":"5c3ff6c3.e9d0d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1260.75,"y":880.5,"z":"87de2662.03c5d8","wires":[["f0a1b451.879598"]]},{"id":"12563170.8c5ebf","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1263.75,"y":917.5,"z":"87de2662.03c5d8","wires":[["f0a1b451.879598"]]},{"id":"bd518e04.b96c1","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1246.75,"y":1044.5,"z":"87de2662.03c5d8","wires":[["e1266c78.1063b"]]},{"id":"e1266c78.1063b","type":"save","name":"update volume-group","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"volume-group\"\n\t\tkey=\"volume-group-id = $volume-group-id and \n\t\t\t\tcloud-region.cloud-owner = $prop.cloud-region.cloud-owner and\n\t\t\t\tcloud-region.cloud-region-id = $cloud-region \"\n\t\tpfx=\"tmp.AnAI-data.vnf\" >\n<parameter name=\"volume-group-name\" value='`$volume-group-name`' />\n","comments":"","outputs":1,"x":1429.7500228881836,"y":1048.500015258789,"z":"87de2662.03c5d8","wires":[["b7f2fc72.06776","875ccc41.ced81","354dd145.06fb5e"]]},{"id":"4fc5c62f.4f0428","type":"comment","name":"PUT volume-group-name","info":"","comments":"","x":1446.75,"y":996.5,"z":"87de2662.03c5d8","wires":[]},{"id":"b7f2fc72.06776","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1668.75,"y":996.5,"z":"87de2662.03c5d8","wires":[["1f904d5d.23af73"]]},{"id":"875ccc41.ced81","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1671.75,"y":1033.5,"z":"87de2662.03c5d8","wires":[["1f904d5d.23af73"]]},{"id":"354dd145.06fb5e","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1663.75,"y":1085.5,"z":"87de2662.03c5d8","wires":[["4269acd9.cb8be4"]]},{"id":"1f904d5d.23af73","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error Saving in AAI\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":1820.75,"y":1019.5,"z":"87de2662.03c5d8","wires":[[]]},{"id":"4269acd9.cb8be4","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n\n","comments":"","x":1835.75,"y":1088.5,"z":"87de2662.03c5d8","wires":[]},{"id":"5268f0ac.d7d17","type":"outcome","name":"volume-group-id","xml":"<outcome value='volume-group-id'>\n","comments":"","outputs":1,"x":1447.75,"y":696.5,"z":"87de2662.03c5d8","wires":[["1fa4e223.989e2e"]]},{"id":"1fa4e223.989e2e","type":"set","name":"set volume-group-id","xml":"<set>\n<parameter name='volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\n","comments":"","x":1680.75,"y":695.5,"z":"87de2662.03c5d8","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-alts-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-alts-assignment.json
new file mode 100644 (file)
index 0000000..9085309
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"538cd7ac.e4e838","type":"dgstart","name":"DGSTART","outputs":1,"x":121.66666412353516,"y":104.33333614189178,"z":"286c7310.cdd10c","wires":[["b6a60d0e.5122b"]]},{"id":"b6a60d0e.5122b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":400.66666412353516,"y":107.33333614189178,"z":"286c7310.cdd10c","wires":[["9b40f573.5fac28"]]},{"id":"9b40f573.5fac28","type":"method","name":"self-serve-alts-assignment","xml":"<method rpc='self-serve-alts-assignment' mode='sync'>\n","comments":"","outputs":1,"x":709.6666641235352,"y":108.33333614189178,"z":"286c7310.cdd10c","wires":[["212c8187.a7ba6e"]]},{"id":"212c8187.a7ba6e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":929.6666641235352,"y":108.33333614189178,"z":"286c7310.cdd10c","wires":[["48f24181.07d54","546451e2.2f0fa"]]},{"id":"48f24181.07d54","type":"switchNode","name":"switch","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":143.66668701171875,"y":726.333358076401,"z":"286c7310.cdd10c","wires":[["820fb9b3.290978","690f53f8.f0534c"]]},{"id":"820fb9b3.290978","type":"outcome","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":397.66668701171875,"y":691.333358076401,"z":"286c7310.cdd10c","wires":[["a9fcb058.2b2ab"]]},{"id":"ea8b54a3.deaa28","type":"comment","name":"ss.capability-name","info":"","comments":"","x":156.66668701171875,"y":681.333358076401,"z":"286c7310.cdd10c","wires":[]},{"id":"690f53f8.f0534c","type":"outcome","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":388.66668701171875,"y":856.333358076401,"z":"286c7310.cdd10c","wires":[["42c048a2.4cfe98"]]},{"id":"951615e6.14c858","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":792.6666793823242,"y":604.3333339691162,"z":"286c7310.cdd10c","wires":[["34ba4208.49815e"]]},{"id":"d55d5ccc.21ddd","type":"comment","name":"ss.capability-action","info":"","comments":"","x":598.6666793823242,"y":643.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"a9fcb058.2b2ab","type":"switchNode","name":"switch","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":591.6666793823242,"y":688.3333339691162,"z":"286c7310.cdd10c","wires":[["951615e6.14c858","55b05be5.bc2944"]]},{"id":"42c048a2.4cfe98","type":"switchNode","name":"switch","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":594.6666793823242,"y":860.3333339691162,"z":"286c7310.cdd10c","wires":[["19d57d07.ba97e3","88fb0f29.e3736"]]},{"id":"d737ce7f.e1949","type":"comment","name":"ss.capability-action","info":"","comments":"","x":600.6666793823242,"y":813.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"19d57d07.ba97e3","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":770.6666793823242,"y":867.3333339691162,"z":"286c7310.cdd10c","wires":[["18dfd4c5.b0971b"]]},{"id":"55b05be5.bc2944","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":782.6666793823242,"y":693.3333339691162,"z":"286c7310.cdd10c","wires":[["e89499eb.c02448"]]},{"id":"88fb0f29.e3736","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":768.6666793823242,"y":979.3333339691162,"z":"286c7310.cdd10c","wires":[["74e40d87.52a7f4"]]},{"id":"34ba4208.49815e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":957.6666793823242,"y":605.3333339691162,"z":"286c7310.cdd10c","wires":[["5f671562.c77cac","1657a887.c933a7"]]},{"id":"e89499eb.c02448","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":954.6666793823242,"y":695.3333339691162,"z":"286c7310.cdd10c","wires":[["5f671562.c77cac","2e0c3d6f.800742"]]},{"id":"18dfd4c5.b0971b","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":931.6666793823242,"y":859.3333339691162,"z":"286c7310.cdd10c","wires":[["5f671562.c77cac","302f4895.fbcbd8"]]},{"id":"74e40d87.52a7f4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":936.6666793823242,"y":977.3333339691162,"z":"286c7310.cdd10c","wires":[["5f671562.c77cac","e8d8c65a.364bb8"]]},{"id":"302f4895.fbcbd8","type":"execute","name":"execute: ALTS | acquireEntitlement","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.altsTools.AltsTools\" method=\"acquireEntitlement\" >\n\t<parameter name=\"error-prefix\" value=\"alts.error\" />\n\t<parameter name=\"prefix\" value=\"alts.resp\" />\n\t<parameter name=\"assignment-group\" value=\"`$alts.entitlement-assignment-group-uuid`\" />\n\t<parameter name=\"hostname\" value=\"`$alts.vnf-name`\" />\n\t<parameter name=\"vnf-id\" value=\"`$alts.vnf-id`\" />","comments":"","outputs":1,"x":1256.6666793823242,"y":1080.3333339691162,"z":"286c7310.cdd10c","wires":[["23d2ef2a.c5e44","b784e140.74b3c","346610a2.13765","c08c1860.7773e8"]]},{"id":"1657a887.c933a7","type":"execute","name":"execute: ALTS | acquireLicense","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.altsTools.AltsTools\" method=\"acquireLicense\" >\n\t<parameter name=\"error-prefix\" value=\"alts.error\" />\n\t<parameter name=\"prefix\" value=\"alts.resp\" />\n\t<parameter name=\"assignment-group\" value=\"`$alts.license-assignment-group-uuid`\" />\n\t<parameter name=\"hostname\" value=\"`$alts.vnf-name`\" />\n\t<parameter name=\"vnf-id\" value=\"`$alts.vnf-id`\" />","comments":"","outputs":1,"x":1242.6666793823242,"y":599.3333857329562,"z":"286c7310.cdd10c","wires":[["2b235696.f5cbca","6707d825.519d08","312d7131.c4857e","11bc7499.5addeb"]]},{"id":"2e0c3d6f.800742","type":"execute","name":"execute: ALTS | releaseLicense","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.altsTools.AltsTools\" method=\"releaseLicense\" >\n\t<parameter name=\"asset-uuid\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$license-key-index].value`\" />\n\t<parameter name=\"error-prefix\" value=\"alts.error\" />\n\t<parameter name=\"prefix\" value=\"alts.resp\" />\n\t<parameter name=\"assignment-group\" value=\"`$alts.license-assignment-group-uuid`\" />\n\t<parameter name=\"hostname\" value=\"`$alts.vnf-name`\" />\n\t<parameter name=\"vnf-id\" value=\"`$alts.vnf-id`\" />","comments":"","outputs":1,"x":1246.6666793823242,"y":831.3333339691162,"z":"286c7310.cdd10c","wires":[["cffb738f.d3e14","182f6475.71abbc","538cfad8.9862e4","f53e9824.4d5f38"]]},{"id":"e8d8c65a.364bb8","type":"execute","name":"execute: ALTS | releaseEntitlement","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.altsTools.AltsTools\" method=\"releaseEntitlement\" >\n\t<parameter name=\"asset-uuid\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$entitlement-key-index].value`\" />\n\t<parameter name=\"error-prefix\" value=\"alts.error\" />\n\t<parameter name=\"prefix\" value=\"alts.resp\" />\n\t<parameter name=\"assignment-group\" value=\"`$alts.entitlement-assignment-group-uuid`\" />\n\t<parameter name=\"hostname\" value=\"`$alts.vnf-name`\" />\n\t<parameter name=\"vnf-id\" value=\"`$alts.vnf-id`\" />","comments":"","outputs":1,"x":1252.6666793823242,"y":1342.3333339691162,"z":"286c7310.cdd10c","wires":[["8eb7dea7.c2113","a16410b2.8840c","d9970af0.ce0108","1112b9b6.25f546"]]},{"id":"ffa0d472.5ddc98","type":"for","name":"for i","xml":"<for index=\"i\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\" >\n","comments":"","outputs":1,"x":1824.6666793823242,"y":222.3333339691162,"z":"286c7310.cdd10c","wires":[["e47e95a0.80af78"]]},{"id":"5f671562.c77cac","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":1274.6666793823242,"y":200.3333339691162,"z":"286c7310.cdd10c","wires":[["45934292.a00acc","eb9392d7.fd3c3"]]},{"id":"eb9392d7.fd3c3","type":"outcome","name":"Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1439.6666793823242,"y":179.3333339691162,"z":"286c7310.cdd10c","wires":[["fea279cf.9530a8"]]},{"id":"45934292.a00acc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1446.6666793823242,"y":255.3333339691162,"z":"286c7310.cdd10c","wires":[["30a8c6cf.85beaa"]]},{"id":"fea279cf.9530a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='vnf-index is required' />\n","comments":"","x":1602.6666793823242,"y":179.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"e47e95a0.80af78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1976.6666793823242,"y":219.3333339691162,"z":"286c7310.cdd10c","wires":[["e270ca03.bda1a8"]]},{"id":"e270ca03.bda1a8","type":"switchNode","name":"switch","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name`'>\n","comments":"","outputs":1,"x":2127.666679382324,"y":217.3333339691162,"z":"286c7310.cdd10c","wires":[["52af8672.953498","d5ef0c5e.bd4cc"]]},{"id":"6cf56727.02a0b8","type":"comment","name":"set index of param where capability-name matched","info":"","comments":"","x":2669.666679382324,"y":43.33333396911621,"z":"286c7310.cdd10c","wires":[]},{"id":"52af8672.953498","type":"outcome","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":2387.666679382324,"y":157.3333339691162,"z":"286c7310.cdd10c","wires":[["1cf8bf64.00b6a1"]]},{"id":"1b525450.3e3aec","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2649.666778564453,"y":229.33333423454314,"z":"286c7310.cdd10c","wires":[["26874fa2.dfa36"]]},{"id":"30a8c6cf.85beaa","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1598.6666793823242,"y":254.3333339691162,"z":"286c7310.cdd10c","wires":[["ffa0d472.5ddc98","23230146.7736de","48988c01.f3fd04","aa39eb6c.c5e868"]]},{"id":"26874fa2.dfa36","type":"set","name":"set","xml":"<set>\n<parameter name='entitlement-param-index' value='`$i`' />\n\n","comments":"","x":2816.666893005371,"y":230.33333423454314,"z":"286c7310.cdd10c","wires":[]},{"id":"aa39eb6c.c5e868","type":"for","name":"for j","xml":"<for index=\"j\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key_length`\" >\n","comments":"","outputs":1,"x":1793.6672439575195,"y":455.3335764678195,"z":"286c7310.cdd10c","wires":[["c6d4b289.240f3"]]},{"id":"c6d4b289.240f3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1977.6674537658691,"y":458.3335974486545,"z":"286c7310.cdd10c","wires":[["34e115d8.bacada"]]},{"id":"34e115d8.bacada","type":"switchNode","name":"switch","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].name`'>\n","comments":"","outputs":1,"x":2177.667308807373,"y":470.33351543266326,"z":"286c7310.cdd10c","wires":[["ba6e0cb6.6cd38","9a7e702.850fb9","1d3892fe.00223d","9a3ea77b.bb92e8"]]},{"id":"ba6e0cb6.6cd38","type":"outcome","name":"vnf-id","xml":"<outcome value='vnf-id'>\n","comments":"","outputs":1,"x":2373.6671447753906,"y":419.3335593016818,"z":"286c7310.cdd10c","wires":[["4129aab8.79d774"]]},{"id":"4129aab8.79d774","type":"set","name":"set alts-vnf-id","xml":"<set>\n<parameter name='alts.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\n","comments":"","x":2701.6669883728027,"y":416.3335631163791,"z":"286c7310.cdd10c","wires":[]},{"id":"9a7e702.850fb9","type":"outcome","name":"license-assignment-group-uuid","xml":"<outcome value='license-assignment-group-uuid'>\n","comments":"","outputs":1,"x":2444.667064666748,"y":564.3336108000949,"z":"286c7310.cdd10c","wires":[["a67c843d.786048"]]},{"id":"a67c843d.786048","type":"set","name":"set alts.license-assignment-group-uuid","xml":"<set>\n<parameter name='alts.license-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\n","comments":"","x":2779.666946411133,"y":561.3336279662326,"z":"286c7310.cdd10c","wires":[]},{"id":"1d3892fe.00223d","type":"outcome","name":"entitlement-assignment-group-uuid","xml":"<outcome value='entitlement-assignment-group-uuid'>\n","comments":"","outputs":1,"x":2451.667064666748,"y":613.3336108000949,"z":"286c7310.cdd10c","wires":[["db6298b7.0a6e98"]]},{"id":"db6298b7.0a6e98","type":"set","name":"set alts.entitlement-assignment-group-uuid","xml":"<set>\n<parameter name='alts.entitlement-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\n","comments":"","x":2794.6669387817383,"y":614.3336127074435,"z":"286c7310.cdd10c","wires":[]},{"id":"2b235696.f5cbca","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1497.6666793823242,"y":548.3333339691162,"z":"286c7310.cdd10c","wires":[["994c2f16.8a1b1"]]},{"id":"6707d825.519d08","type":"failure","name":"failure","xml":"<outcome value=\"failure\">","comments":"","outputs":1,"x":1485.6666793823242,"y":639.3333339691162,"z":"286c7310.cdd10c","wires":[["a63676a3.61d498"]]},{"id":"11bc7499.5addeb","type":"outcome","name":"unsupported-method","xml":"<outcome value=\"unsupported-method\">","comments":"","outputs":1,"x":1528.6666793823242,"y":713.3333339691162,"z":"286c7310.cdd10c","wires":[["5638b6.12ee774c"]]},{"id":"312d7131.c4857e","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1493.6666793823242,"y":678.3333339691162,"z":"286c7310.cdd10c","wires":[["d15f0240.536"]]},{"id":"994c2f16.8a1b1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1695.6666793823242,"y":551.3333339691162,"z":"286c7310.cdd10c","wires":[["b09f5198.a8e09","c63d2fea.0f0b8"]]},{"id":"b09f5198.a8e09","type":"set","name":"set license-key and status SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$license-key-index].value' value='`$alts.resp.license-key`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='SUCCESS' />","comments":"","x":1943.6666793823242,"y":551.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"cffb738f.d3e14","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1481.6666793823242,"y":779.3333339691162,"z":"286c7310.cdd10c","wires":[["cdf928f9.cabf28"]]},{"id":"d5ef0c5e.bd4cc","type":"outcome","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":2374.666816711426,"y":233.33332183677703,"z":"286c7310.cdd10c","wires":[["1b525450.3e3aec"]]},{"id":"23230146.7736de","type":"for","name":"for k","xml":"<for index=\"k\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\" >\n","comments":"","outputs":1,"x":1831.6667404174805,"y":272.3333304198459,"z":"286c7310.cdd10c","wires":[["7693c154.165c8"]]},{"id":"7693c154.165c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1982.6669464111328,"y":271.3333437712863,"z":"286c7310.cdd10c","wires":[["ba173b93.aee018"]]},{"id":"ba173b93.aee018","type":"switchNode","name":"switch","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\n","comments":"","outputs":1,"x":2132.667022705078,"y":274.3333304198459,"z":"286c7310.cdd10c","wires":[["c33234f3.fe5878","b13767a2.79ad38"]]},{"id":"c33234f3.fe5878","type":"outcome","name":"license-key","xml":"<outcome value='license-key'>\n","comments":"","outputs":1,"x":2284.666976928711,"y":271.3333437712863,"z":"286c7310.cdd10c","wires":[["41a8f087.f3d15"]]},{"id":"b13767a2.79ad38","type":"outcome","name":"entitlement-key","xml":"<outcome value='entitlement-key'>\n","comments":"","outputs":1,"x":2294.667411804199,"y":312.3333246978,"z":"286c7310.cdd10c","wires":[["528e7d4f.db7234"]]},{"id":"41a8f087.f3d15","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2454.6667671203613,"y":278.3333380492404,"z":"286c7310.cdd10c","wires":[["a9c985a9.a26578"]]},{"id":"a9c985a9.a26578","type":"set","name":"set license-key-index","xml":"<set>\n<parameter name='license-key-index' value='`$k`' />\n\n","comments":"","x":2643.6670989990234,"y":280.33332279045135,"z":"286c7310.cdd10c","wires":[]},{"id":"8b5c7731.87ead8","type":"comment","name":"set index of param where name=license-key","info":"","comments":"","x":2444.666679382324,"y":117.33333396911621,"z":"286c7310.cdd10c","wires":[]},{"id":"528e7d4f.db7234","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2447.6668739318848,"y":330.33333995658904,"z":"286c7310.cdd10c","wires":[["ea3ae835.e585b8"]]},{"id":"9aef692e.8c4698","type":"comment","name":"set index of param where name=entitlement-key","info":"","comments":"","x":2428.666862487793,"y":196.3333485396579,"z":"286c7310.cdd10c","wires":[]},{"id":"ea3ae835.e585b8","type":"set","name":"set entitlement-key-index","xml":"<set>\n<parameter name='entitlement-key-index' value='`$k`' />\n\n","comments":"","x":2654.6668853759766,"y":324.3333266051486,"z":"286c7310.cdd10c","wires":[]},{"id":"cdf928f9.cabf28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1636.6666793823242,"y":777.3333339691162,"z":"286c7310.cdd10c","wires":[["b6e44c24.9fe6e","5068b14e.33c3c"]]},{"id":"a63676a3.61d498","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1697.6666793823242,"y":639.3333339691162,"z":"286c7310.cdd10c","wires":[["53a528f6.3cbc98"]]},{"id":"53a528f6.3cbc98","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1875.6666793823242,"y":639.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"d15f0240.536","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1697.6666793823242,"y":678.3333339691162,"z":"286c7310.cdd10c","wires":[["315477fc.f96578"]]},{"id":"5638b6.12ee774c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1699.6666793823242,"y":714.3333339691162,"z":"286c7310.cdd10c","wires":[["dc230fab.264cd"]]},{"id":"315477fc.f96578","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1872.6666793823242,"y":679.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"dc230fab.264cd","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1873.6666793823242,"y":716.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"b6e44c24.9fe6e","type":"set","name":"set status DELETED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='DELETED' />","comments":"","x":1861.6666793823242,"y":777.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"182f6475.71abbc","type":"failure","name":"failure","xml":"<outcome value=\"failure\">","comments":"","outputs":1,"x":1481.6666793823242,"y":844.3333339691162,"z":"286c7310.cdd10c","wires":[["15bfa05a.863f2"]]},{"id":"f53e9824.4d5f38","type":"outcome","name":"unsupported-method","xml":"<outcome value=\"unsupported-method\">","comments":"","outputs":1,"x":1524.6666793823242,"y":918.3333339691162,"z":"286c7310.cdd10c","wires":[["e5fc309.50a3dd"]]},{"id":"538cfad8.9862e4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1489.6666793823242,"y":883.3333339691162,"z":"286c7310.cdd10c","wires":[["8c3ff397.82f37"]]},{"id":"15bfa05a.863f2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1693.6666793823242,"y":844.3333339691162,"z":"286c7310.cdd10c","wires":[["f496709e.43fbc"]]},{"id":"8c3ff397.82f37","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1693.6666793823242,"y":883.3333339691162,"z":"286c7310.cdd10c","wires":[["f496709e.43fbc"]]},{"id":"e5fc309.50a3dd","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1695.6666793823242,"y":919.3333339691162,"z":"286c7310.cdd10c","wires":[["f496709e.43fbc"]]},{"id":"23d2ef2a.c5e44","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1514.6666793823242,"y":1005.3333339691162,"z":"286c7310.cdd10c","wires":[["5d069c48.2ab334"]]},{"id":"b784e140.74b3c","type":"failure","name":"failure","xml":"<outcome value=\"failure\">","comments":"","outputs":1,"x":1502.6666793823242,"y":1096.3333339691162,"z":"286c7310.cdd10c","wires":[["8a1f3c9d.c900c"]]},{"id":"c08c1860.7773e8","type":"outcome","name":"unsupported-method","xml":"<outcome value=\"unsupported-method\">","comments":"","outputs":1,"x":1545.6666793823242,"y":1170.3333339691162,"z":"286c7310.cdd10c","wires":[["cef74ef4.62edc"]]},{"id":"346610a2.13765","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1510.6666793823242,"y":1135.3333339691162,"z":"286c7310.cdd10c","wires":[["35807be9.3bb854"]]},{"id":"5d069c48.2ab334","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1712.6666793823242,"y":1008.3333339691162,"z":"286c7310.cdd10c","wires":[["98cc691b.1b1cb8","3729996d.4f1fc6"]]},{"id":"98cc691b.1b1cb8","type":"set","name":"set entitlement-key and status SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$entitlement-key-index].value' value='`$alts.resp.license-key`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='SUCCESS' />","comments":"","x":1960.6666793823242,"y":1008.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"8a1f3c9d.c900c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1714.6666793823242,"y":1096.3333339691162,"z":"286c7310.cdd10c","wires":[["eaeefe30.e1588"]]},{"id":"eaeefe30.e1588","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1892.6666793823242,"y":1096.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"35807be9.3bb854","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1714.6666793823242,"y":1135.3333339691162,"z":"286c7310.cdd10c","wires":[["5ede0e84.6c397"]]},{"id":"cef74ef4.62edc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1716.6666793823242,"y":1171.3333339691162,"z":"286c7310.cdd10c","wires":[["bd143db4.1d12c"]]},{"id":"5ede0e84.6c397","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1889.6666793823242,"y":1136.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"bd143db4.1d12c","type":"set","name":"set status FAILED","xml":"<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />","comments":"","x":1890.6666793823242,"y":1173.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"8eb7dea7.c2113","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1501.6666793823242,"y":1287.3333339691162,"z":"286c7310.cdd10c","wires":[["741ecc3f.a52134"]]},{"id":"741ecc3f.a52134","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1656.6666793823242,"y":1285.3333339691162,"z":"286c7310.cdd10c","wires":[["6efa3ca2.f58dd4","725a4ea7.5a349"]]},{"id":"6efa3ca2.f58dd4","type":"set","name":"set status DELETED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='DELETED' />","comments":"","x":1887.6666793823242,"y":1272.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"a16410b2.8840c","type":"failure","name":"failure","xml":"<outcome value=\"failure\">","comments":"","outputs":1,"x":1501.6666793823242,"y":1352.3333339691162,"z":"286c7310.cdd10c","wires":[["27a345c3.b0e27a"]]},{"id":"1112b9b6.25f546","type":"outcome","name":"unsupported-method","xml":"<outcome value=\"unsupported-method\">","comments":"","outputs":1,"x":1544.6666793823242,"y":1426.3333339691162,"z":"286c7310.cdd10c","wires":[["221f98aa.763e98"]]},{"id":"d9970af0.ce0108","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1509.6666793823242,"y":1391.3333339691162,"z":"286c7310.cdd10c","wires":[["9d83a296.d32f"]]},{"id":"27a345c3.b0e27a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1713.6666793823242,"y":1352.3333339691162,"z":"286c7310.cdd10c","wires":[["14a1ea70.6334f6"]]},{"id":"9d83a296.d32f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1713.6666793823242,"y":1391.3333339691162,"z":"286c7310.cdd10c","wires":[["14a1ea70.6334f6"]]},{"id":"221f98aa.763e98","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1715.6666793823242,"y":1427.3333339691162,"z":"286c7310.cdd10c","wires":[["14a1ea70.6334f6"]]},{"id":"c63d2fea.0f0b8","type":"save","name":"save license","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"license\"\n\t\tkey=\"generic-vnf.vnf-id = $alts.vnf-id \n\t\t\tAND license.group-uuid = $alts.license-assignment-group-uuid\n\t\t\tAND license.resource-uuid = $alts.resp.license-key\"\n\tpfx=\"tmp.AnAI.license\" >\n<parameter name=\"group-uuid\" value='`$alts.license-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$alts.resp.license-key`' />\n\n\n","comments":"","outputs":1,"x":1852.6666793823242,"y":597.3333339691162,"z":"286c7310.cdd10c","wires":[["57607efc.6152","ad59e806.0d76a8"]]},{"id":"5068b14e.33c3c","type":"update","name":"update AAI","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"license\"\nkey=\"generic-vnf.vnf-id = $alts.vnf-id \"\nforce=\"true\"\nlocal-only=\"false\"\npfx=\"tmp.AnAI-data.vnf\" >\n<parameter name=\"group-uuid\" value='' />\n<parameter name=\"resource-uuid\" value='' />","comments":"","outputs":1,"x":1831.6666793823242,"y":810.3333339691162,"z":"286c7310.cdd10c","wires":[["93df1a0b.5db988","db0cfc0a.61ce9"]]},{"id":"3729996d.4f1fc6","type":"save","name":"save entitlement","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"entitlement\"\n\t\tkey=\"generic-vnf.vnf-id = $alts.vnf-id  \n\t\t\tAND entitlement.group-uuid = $alts.entitlement-assignment-group-uuid \n\t\t\tAND entitlement.resource-uuid = $alts.resp.license-key \"\n\tpfx=\"tmp.AnAI.entitlement\" >\n<parameter name=\"group-uuid\" value='`$alts.entitlement-assignment-group-uuid`' />\n<parameter name=\"resource-uuid\" value='`$alts.resp.license-key`' />\n","comments":"","outputs":1,"x":1865.6666793823242,"y":1045.3333339691162,"z":"286c7310.cdd10c","wires":[["303fc7e2.a93c78","2a9836eb.3c164a"]]},{"id":"725a4ea7.5a349","type":"update","name":"update AAI","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\nresource=\"license\"\nkey=\"generic-vnf.vnf-id = $alts.vnf-id \"\nforce=\"true\"\nlocal-only=\"false\"\npfx=\"tmp.AnAI-data.vnf\" >\n<parameter name=\"group-uuid\" value='' />\n<parameter name=\"resource-uuid\" value='' />","comments":"","outputs":1,"x":1857.6666793823242,"y":1309.3333339691162,"z":"286c7310.cdd10c","wires":[["4ee49bdb.f1c9b4","aa45b607.0bd2d8"]]},{"id":"303fc7e2.a93c78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2083.666679382324,"y":1044.3333339691162,"z":"286c7310.cdd10c","wires":[["934c1276.49996"]]},{"id":"93df1a0b.5db988","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2061.666679382324,"y":793.3333339691162,"z":"286c7310.cdd10c","wires":[["5fc80ad3.aa6cb4"]]},{"id":"4ee49bdb.f1c9b4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2099.666679382324,"y":1306.3333339691162,"z":"286c7310.cdd10c","wires":[["b0c1f4fe.15e7d8"]]},{"id":"2a9836eb.3c164a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2099.666679382324,"y":1096.3333339691162,"z":"286c7310.cdd10c","wires":[["934c1276.49996"]]},{"id":"db0cfc0a.61ce9","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2072.666679382324,"y":843.3333339691162,"z":"286c7310.cdd10c","wires":[["5fc80ad3.aa6cb4"]]},{"id":"aa45b607.0bd2d8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2111.666679382324,"y":1347.3333339691162,"z":"286c7310.cdd10c","wires":[["b0c1f4fe.15e7d8"]]},{"id":"57607efc.6152","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2051.666679382324,"y":591.3333339691162,"z":"286c7310.cdd10c","wires":[["94104082.a6181"]]},{"id":"ad59e806.0d76a8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2064.666679382324,"y":643.3333339691162,"z":"286c7310.cdd10c","wires":[["94104082.a6181"]]},{"id":"94104082.a6181","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error Saving in AAI\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":2219.666679382324,"y":693.3333339691162,"z":"286c7310.cdd10c","wires":[[]]},{"id":"5fc80ad3.aa6cb4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error updating in AAI\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":2222.666679382324,"y":819.3333339691162,"z":"286c7310.cdd10c","wires":[[]]},{"id":"934c1276.49996","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error Saving in AAI\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":2267.666679382324,"y":1075.3333339691162,"z":"286c7310.cdd10c","wires":[[]]},{"id":"b0c1f4fe.15e7d8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n\t<parameter name=\"logger\" value=\"message-log\" />\n\t<parameter name=\"level\" value=\"error\" />\n\t<parameter name=\"field1\" value=\"Error updating in AAI\" />\n\t<parameter name=\"field2\" value=\"`$tmp.AnAI-data.vnf.error-code`\" />\n\t<parameter name=\"field3\" value=\"`$tmp.AnAI-data.vnf.error-message`\" />\n\t","comments":"","outputs":1,"x":2277.666679382324,"y":1307.3333339691162,"z":"286c7310.cdd10c","wires":[[]]},{"id":"f496709e.43fbc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='`$alts.error.error-code`' />\n<parameter name='error-message' value='`$alts.error.error-message`' />\n","comments":"","x":1874.6666793823242,"y":887.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"14a1ea70.6334f6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='`$alts.error.error-code`' />\n<parameter name='error-message' value='`$alts.error.error-message`' />\n","comments":"","x":1877.6666793823242,"y":1392.3333339691162,"z":"286c7310.cdd10c","wires":[]},{"id":"1cf8bf64.00b6a1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2703.2221908569336,"y":139.34375598747283,"z":"286c7310.cdd10c","wires":[["73096ece.dfece"]]},{"id":"73096ece.dfece","type":"set","name":"set","xml":"<set>\n<parameter name='license-param-index' value='`$i`' />\n\n","comments":"","x":2855.2221908569336,"y":139.34375598747283,"z":"286c7310.cdd10c","wires":[]},{"id":"b8d5f942.c9c318","type":"comment","name":"ss.capability-name","info":"","comments":"","x":1794.7779083251953,"y":316.5660155089572,"z":"286c7310.cdd10c","wires":[]},{"id":"48988c01.f3fd04","type":"switchNode","name":"switch","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":1806.7779541015625,"y":352.56604030448943,"z":"286c7310.cdd10c","wires":[["2bc1d7ad.046dc8","daf8b9ea.446278"]]},{"id":"2bc1d7ad.046dc8","type":"outcome","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":1979.7785301208496,"y":330.56602313835174,"z":"286c7310.cdd10c","wires":[["c6a95332.1a9ad"]]},{"id":"daf8b9ea.446278","type":"outcome","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":1981.7780227661133,"y":399.566066053696,"z":"286c7310.cdd10c","wires":[["9e711467.6d1118"]]},{"id":"c6a95332.1a9ad","type":"set","name":"set","xml":"<set>\n<parameter name='param-index' value='`$license-param-index`' />\n\n","comments":"","x":2155.667537689209,"y":338.45487048942596,"z":"286c7310.cdd10c","wires":[]},{"id":"9e711467.6d1118","type":"set","name":"set","xml":"<set>\n<parameter name='param-index' value='`$entitlement-param-index`' />\n\n","comments":"","x":2163.6671981811523,"y":398.45484760124236,"z":"286c7310.cdd10c","wires":[]},{"id":"9a3ea77b.bb92e8","type":"outcome","name":"vnf-name","xml":"<outcome value='vnf_name'>\n","comments":"","outputs":1,"x":2377.555595397949,"y":489.232645300217,"z":"286c7310.cdd10c","wires":[["f80891f0.cb6ff"]]},{"id":"f80891f0.cb6ff","type":"set","name":"set alts.vnf-name","xml":"<set>\n<parameter name='alts.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\n","comments":"","x":2705.55574798584,"y":485.2326929839328,"z":"286c7310.cdd10c","wires":[]},{"id":"546451e2.2f0fa","type":"call","name":"call","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n","comments":"","outputs":1,"x":1191.6665725708008,"y":110.34375598747283,"z":"286c7310.cdd10c","wires":[[]]},{"id":"7e527bb9.710cd4","type":"comment","name":"call self-serve-capability-param-resolution","info":"","comments":"","x":1205.6665725708008,"y":65.34374740440398,"z":"286c7310.cdd10c","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.json
new file mode 100644 (file)
index 0000000..d26c8a4
--- /dev/null
@@ -0,0 +1,1042 @@
+[\r
+    {\r
+        "id": "4744948b.ff4c4c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 141,\r
+        "y": 483,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "124ab7ec.a801c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f00af0b.9f7bd1",\r
+        "type": "method",\r
+        "name": "self-serve-capability-param-resolution",\r
+        "xml": "<method rpc='self-serve-capability-param-resolution' mode='sync'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 249.99998474121094,\r
+        "y": 547.2857217788696,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "65a0cd94.bdc594"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "124ab7ec.a801c",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 449,\r
+        "y": 483,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "1f00af0b.9f7bd1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "65a0cd94.bdc594",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 171.7142791748047,\r
+        "y": 611.1428604125977,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "66ae79cc.1d7e18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ed777ba.f198e8",\r
+        "type": "for",\r
+        "name": "for i in vnf-parameters-data.param[]",\r
+        "xml": "<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 645.2857437133789,\r
+        "y": 688.9999961853027,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "9f7a061a.9653b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9f7a061a.9653b",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 926.4286079406738,\r
+        "y": 689.5714192390442,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "746bea5c.ab0a0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "746bea5c.ab0a0c",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1131.4285583496094,\r
+        "y": 688.9999995231628,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "e0880a9e.98666"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0880a9e.98666",\r
+        "type": "for",\r
+        "name": "for j in resource-key[]",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 717.7142295837402,\r
+        "y": 801.1428470611572,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "81560eb8.deb4b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81560eb8.deb4b8",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 995.285717010498,\r
+        "y": 800.1428556442261,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "50303ac8.f7d374"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "50303ac8.f7d374",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1224.7142295837402,\r
+        "y": 799.1428470611572,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "b782a60f.f917f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "343ae815.d283b",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1175.4286346435547,\r
+        "y": 1006.7143096923828,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "78f989a4.59c0c8",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n   <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1112.7143630981445,\r
+        "y": 1078.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "39044a20.560d76",\r
+        "type": "execute",\r
+        "name": "split s2",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1114.7143630981445,\r
+        "y": 1149.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "728c9078.2610e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1494.7143630981445,\r
+        "y": 1241.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "f592e1dc.01e3b",\r
+                "47e441ee.3e69a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47e441ee.3e69a8",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1663.7143630981445,\r
+        "y": 1275.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1aa70d20.b73f4b",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1488.7143630981445,\r
+        "y": 1171.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c841ca3e.c379c",\r
+        "type": "execute",\r
+        "name": "concat",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n   <parameter name='source' value='`$tmp.s1`' />\n   <parameter name='target' value='`$tmp.resolved.var.value`' />\n   <parameter name='outputPath' value='tmp.result' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1106.5714263916016,\r
+        "y": 1400.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "1e80edf2.8f177a",\r
+        "type": "switchNode",\r
+        "name": "switch s2 length",\r
+        "xml": "<switch test='`$s2_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.7143630981445,\r
+        "y": 1213.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "74f5c20d.50dfdc",\r
+                "6e8493b1.d78f1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74f5c20d.50dfdc",\r
+        "type": "outcome",\r
+        "name": "1",\r
+        "xml": "<outcome value='1'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1328.7143630981445,\r
+        "y": 1171.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "1aa70d20.b73f4b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e8493b1.d78f1c",\r
+        "type": "outcome",\r
+        "name": "2",\r
+        "xml": "<outcome value='2'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1331.7143630981445,\r
+        "y": 1242.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "728c9078.2610e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f592e1dc.01e3b",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1659.7143630981445,\r
+        "y": 1206.4285774230957,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9fcf0455.6ca21",\r
+        "type": "execute",\r
+        "name": "concat",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n   <parameter name='source' value='`$tmp.result`' />\n   <parameter name='target' value='`$tmp.s2.s2`' />\n   <parameter name='outputPath' value='tmp.result' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1510.5714263916016,\r
+        "y": 1523.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a91a0fa.de357",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.s2.s2 exist",\r
+        "xml": "<switch test='`$tmp.s2.s2`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1153.5714263916016,\r
+        "y": 1492.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "bccddf67.4dce08",\r
+                "d0ec0616.2e66a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bccddf67.4dce08",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1355.5714263916016,\r
+        "y": 1459.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d0ec0616.2e66a8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1358.5714263916016,\r
+        "y": 1522.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "9fcf0455.6ca21"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c46d4ae4.e29dc",\r
+        "type": "set",\r
+        "name": "set result of resolution",\r
+        "xml": "<set>\n   <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1154.5714263916016,\r
+        "y": 1553.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6aad122a.5123ac",\r
+        "type": "for",\r
+        "name": "for cn in vnf-parameters-data.param[]",\r
+        "xml": "<for index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1200.5714263916016,\r
+        "y": 1333.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "365ad3d4.9975ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "365ad3d4.9975ec",\r
+        "type": "switchNode",\r
+        "name": "switch param[].name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1482.2857666015625,\r
+        "y": 1333.4285984039307,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "e4e67239.3278e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4e67239.3278e8",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1677.2857666015625,\r
+        "y": 1333.4285984039307,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "971e16c2.f735f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "971e16c2.f735f",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1827.2857666015625,\r
+        "y": 1333.4285984039307,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c50b2f87.5994a",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1181.5714263916016,\r
+        "y": 1630.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "d1841585.786d58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d1841585.786d58",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1410.5714263916016,\r
+        "y": 1630.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "c9c91cf2.f3c51"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c9c91cf2.f3c51",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value= \"`'Not able to resolve Capability ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + ':' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n    \n    \n",\r
+        "comments": "",\r
+        "x": 1599.5714263916016,\r
+        "y": 1631.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b782a60f.f917f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 881.5714263916016,\r
+        "y": 945.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "343ae815.d283b",\r
+                "78f989a4.59c0c8",\r
+                "39044a20.560d76",\r
+                "1e80edf2.8f177a",\r
+                "6aad122a.5123ac",\r
+                "c841ca3e.c379c",\r
+                "7a91a0fa.de357",\r
+                "c46d4ae4.e29dc",\r
+                "c50b2f87.5994a",\r
+                "a0e5ea6f.08636"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66ae79cc.1d7e18",\r
+        "type": "switchNode",\r
+        "name": "switch capability-type",\r
+        "xml": "<switch test=\"`$ss.capability-type`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 208.28570556640625,\r
+        "y": 688.2857093811035,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "b6866d1b.4d78a8",\r
+                "5a149c88.42d234"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6866d1b.4d78a8",\r
+        "type": "not-found",\r
+        "name": "vnf",\r
+        "xml": "<outcome value='vnf'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 409.9999694824219,\r
+        "y": 688.7143249511719,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "4ed777ba.f198e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a149c88.42d234",\r
+        "type": "not-found",\r
+        "name": "vf-module",\r
+        "xml": "<outcome value='vf-module'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 417.4285659790039,\r
+        "y": 1742.2857333421707,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "d6d9f5e.5ffcc88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6d9f5e.5ffcc88",\r
+        "type": "for",\r
+        "name": "for i in vf-parameters-data.param[]",\r
+        "xml": "<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 656.8571319580078,\r
+        "y": 1741.8570499420166,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "6fdf73e7.b0b8dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6fdf73e7.b0b8dc",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 938.8571319580078,\r
+        "y": 1741.8570499420166,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "923e19af.fe9dd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "923e19af.fe9dd",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1145.8571319580078,\r
+        "y": 1741.8570499420166,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "cf78f36.049c31"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf78f36.049c31",\r
+        "type": "for",\r
+        "name": "for j in respurce-key[]",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 784.71435546875,\r
+        "y": 1829.8572063446045,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "45bb1a10.5144f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45bb1a10.5144f4",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1061.71435546875,\r
+        "y": 1828.8572063446045,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "55948daf.742904"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55948daf.742904",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1291.71435546875,\r
+        "y": 1828.8572063446045,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "98294273.a5fb38"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9e46f22.08e988",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1215.0000457763672,\r
+        "y": 1993.7143115997314,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbe76270.f3408",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s1\" value='`$resource-resolution-split[0]`'/>\n   <parameter name=\"tmp.resolved.var.value\" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1152.2857360839844,\r
+        "y": 2054.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "32f65671.ec5b3a",\r
+        "type": "execute",\r
+        "name": "split s2",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1154.2857360839844,\r
+        "y": 2125.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "a04dbec6.3323e8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1534.2857360839844,\r
+        "y": 2217.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "bcb2f951.912cf8",\r
+                "b11ae880.afbd58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b11ae880.afbd58",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s2\" value='`$s2[1]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1703.2857360839844,\r
+        "y": 2251.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4c81ab97.3b7744",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1528.2857360839844,\r
+        "y": 2147.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d8df467f.8cad78",\r
+        "type": "execute",\r
+        "name": "concat",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n   <parameter name='source' value='`$tmp.s1`' />\n   <parameter name='target' value='`$tmp.resolved.var.value`' />\n   <parameter name='outputPath' value='tmp.result' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1157.5714263916016,\r
+        "y": 2373.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5906dad2.0e56dc",\r
+        "type": "switchNode",\r
+        "name": "switch s2 length",\r
+        "xml": "<switch test='`$s2_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182.2857360839844,\r
+        "y": 2189.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "bfbc7b03.3b9998",\r
+                "fbaf50ef.915158"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bfbc7b03.3b9998",\r
+        "type": "outcome",\r
+        "name": "1",\r
+        "xml": "<outcome value='1'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1368.2857360839844,\r
+        "y": 2147.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "4c81ab97.3b7744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fbaf50ef.915158",\r
+        "type": "outcome",\r
+        "name": "2",\r
+        "xml": "<outcome value='2'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1371.2857360839844,\r
+        "y": 2218.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "a04dbec6.3323e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bcb2f951.912cf8",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"tmp.s2.s1\" value='`$s2[0]`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1699.2857360839844,\r
+        "y": 2182.285650253296,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4a2214e3.1eb11c",\r
+        "type": "execute",\r
+        "name": "concat",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\n   <parameter name='source' value='`$tmp.result`' />\n   <parameter name='target' value='`$tmp.s2.s2`' />\n   <parameter name='outputPath' value='tmp.result' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1560.1429138183594,\r
+        "y": 2494.714319229126,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "335d0adc.5736e6",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.s2.s2 exist",\r
+        "xml": "<switch test='`$tmp.s2.s2`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1204.5714263916016,\r
+        "y": 2465.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "5ae49566.19b84c",\r
+                "99c6d4e3.206e28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ae49566.19b84c",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1405.1429138183594,\r
+        "y": 2431.714319229126,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "99c6d4e3.206e28",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1409.1429138183594,\r
+        "y": 2494.714319229126,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "4a2214e3.1eb11c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f99ad227.88187",\r
+        "type": "set",\r
+        "name": "set result of resolution",\r
+        "xml": "<set>\n   <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1205.5714263916016,\r
+        "y": 2526.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d0ce13d0.f3104",\r
+        "type": "for",\r
+        "name": "for cn in vf-parameters-data.param[]",\r
+        "xml": "<for index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1245.5714263916016,\r
+        "y": 2306.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "e3913f3f.a076e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3913f3f.a076e",\r
+        "type": "switchNode",\r
+        "name": "switch param[].name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].name == $tmp.s2.s1`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1534.5714263916016,\r
+        "y": 2305.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "3b5750da.a381d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b5750da.a381d",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1740.5714263916016,\r
+        "y": 2305.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "386b7833.6aba1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "386b7833.6aba1",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].value`'/>\n   \n\n",\r
+        "comments": "",\r
+        "x": 1893.5714263916016,\r
+        "y": 2305.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69f8e9bc.e255a",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1232.5714263916016,\r
+        "y": 2603.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "4d034e4b.48d61"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d034e4b.48d61",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1461.5714263916016,\r
+        "y": 2603.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "c2dd6cef.c6a32"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c2dd6cef.c6a32",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value= \"`'Not able to resolve Capability ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + ':' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n   \n",\r
+        "comments": "",\r
+        "x": 1635.5714111328125,\r
+        "y": 2604,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "98294273.a5fb38",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932.5714263916016,\r
+        "y": 1918.9999985694885,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            [\r
+                "f9e46f22.08e988",\r
+                "bbe76270.f3408",\r
+                "32f65671.ec5b3a",\r
+                "5906dad2.0e56dc",\r
+                "d0ce13d0.f3104",\r
+                "d8df467f.8cad78",\r
+                "335d0adc.5736e6",\r
+                "f99ad227.88187",\r
+                "69f8e9bc.e255a",\r
+                "108ba025.b40668"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0e5ea6f.08636",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1105.2856369018555,\r
+        "y": 945.4286179542542,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "108ba025.b40668",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\"/>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142.4285736083984,\r
+        "y": 1919.0000076293945,\r
+        "z": "6ed0daf1.5e6824",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.json
new file mode 100755 (executable)
index 0000000..7520400
--- /dev/null
@@ -0,0 +1,2328 @@
+[\r
+    {\r
+        "id": "4534b62a.0033c8",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 113,\r
+        "y": 45,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "7a05ead5.ce637c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a05ead5.ce637c",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 371.9403991699219,\r
+        "y": 45.32145690917969,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "2647e8ec.6a14c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2647e8ec.6a14c",\r
+        "type": "method",\r
+        "name": "method self-serve-create-vpe-pool",\r
+        "xml": "<method rpc='self-serve-create-vpe-pool' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 719,\r
+        "y": 46,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "503cee83.8176f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "503cee83.8176f8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 113,\r
+        "y": 100,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "de9c8b6c.c3b64",\r
+                "99fdb9f2.2f945",\r
+                "c13ead81.c0e778",\r
+                "eaf68797.b01bc",\r
+                "27117daa.dba1e2",\r
+                "13ecc592.3b82d2",\r
+                "546765f8.01c9d4",\r
+                "eb7cce81.86bd1",\r
+                "c8df7eb8.019278",\r
+                "f9bd328a.55cf5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5dbeb8a.df29948",\r
+        "type": "comment",\r
+        "name": "Validate inputs",\r
+        "info": "ss.capability-action should be \"ASSIGN\" or \"\"UNASSIGN\"",\r
+        "comments": "",\r
+        "x": 174,\r
+        "y": 144,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92bd17b7.0c46a8",\r
+        "type": "comment",\r
+        "name": "Call self-service-capability-param-resolution DG to resolve all resource-keys",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 357,\r
+        "y": 507,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "de9c8b6c.c3b64",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-name",\r
+        "xml": "<switch test=\"`$ss.capability-name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 211,\r
+        "y": 187,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3491d387.547e6c",\r
+                "890817a5.8f931",\r
+                "8e36d7b3.d9984",\r
+                "239e4d46.dfcafa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3491d387.547e6c",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 485,\r
+        "y": 160,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "9008977d.b80888"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "890817a5.8f931",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 475,\r
+        "y": 200,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8e36d7b3.d9984",\r
+        "type": "other",\r
+        "name": "create-vpe-pool",\r
+        "xml": "<outcome value='create-vpe-pool'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 504,\r
+        "y": 241,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "7cbc5e7f.dcaa08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d27f0dd0.d782b8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='ss.capability-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 778,\r
+        "y": 198,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7cbc5e7f.dcaa08",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: ss.capability-name is create-vpe-pool\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 686,\r
+        "y": 241,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c13ead81.c0e778",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 169,\r
+        "y": 553,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "46e56c5.9035194",\r
+                "85646572.de6908",\r
+                "c7b75a78.cb6188"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85646572.de6908",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: call self-service-capability-param-resolution DG\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 196,\r
+        "y": 612,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46e56c5.9035194",\r
+        "type": "set",\r
+        "name": "set variables for calling capability-param-resolution",\r
+        "xml": "<set>\n<!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->",\r
+        "comments": "",\r
+        "x": 332.6904296875,\r
+        "y": 656.3095703125,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c7b75a78.cb6188",\r
+        "type": "call",\r
+        "name": "call GR-API:self-serve-capability-param-resolution",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 329.023681640625,\r
+        "y": 702.976318359375,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "630eb235.4fcc04",\r
+                "d749593f.703798"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "630eb235.4fcc04",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 643.7379760742188,\r
+        "y": 679.83349609375,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "963fb7d6.2c2aa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d749593f.703798",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 647.0713259379067,\r
+        "y": 731.5001392364502,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "867349fd.5443f8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='402' />\n<parameter name='error-message' value='Failure calling self-service-capability-param-resolution' />\n",\r
+        "comments": "",\r
+        "x": 933,\r
+        "y": 702,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4e6b2cfc.9d7fb4",\r
+        "type": "comment",\r
+        "name": "Loop thru vf-module-params for first match with ss.capability-name",\r
+        "info": "Loop thru service-data.vnfs.vnf[].vnf-data.vf-modules.vf-module[].vf-module-data.vf-module-topology.vf-module-parameters.param_length \nto find the FIRST occurrence of resource-resolution-data.capability-name=$ss.capability-name",\r
+        "comments": "",\r
+        "x": 329,\r
+        "y": 827,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cdb056c2.bd8168",\r
+        "type": "for",\r
+        "name": "for each vf-module-parameters",\r
+        "xml": "<for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 298,\r
+        "y": 969,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "d3289bd.0ace4e8",\r
+                "f99cdaa9.49bcf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f99cdaa9.49bcf",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: vf-module-param-index\"/>\n<parameter name=\"field3\" value='`$vf-module-param-index`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 511,\r
+        "y": 969,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d3289bd.0ace4e8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 280,\r
+        "y": 1018,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "ff56c1ad.2c3698",\r
+                "78e47ce9.18fdd4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eaf68797.b01bc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 168,\r
+        "y": 873,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "bc4daf9c.37fce8",\r
+                "cdb056c2.bd8168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bc4daf9c.37fce8",\r
+        "type": "set",\r
+        "name": "set vf-module-parameters-length",\r
+        "xml": "<set>\n<parameter name='tmp.vf-module-parameters-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\n",\r
+        "comments": "",\r
+        "x": 305,\r
+        "y": 925,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ff56c1ad.2c3698",\r
+        "type": "set",\r
+        "name": "set vfModuleParamsCapabilityName",\r
+        "xml": "<set>\n<parameter name='vfModuleParamsCapabilityName' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.capability-name`'  />\n",\r
+        "comments": "",\r
+        "x": 392,\r
+        "y": 1061,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "78e47ce9.18fdd4",\r
+        "type": "switchNode",\r
+        "name": "switch compare vfModuleParamsCapabilityName and ss.capability-name",\r
+        "xml": "<switch test=\"`$ss.capability-name == $vfModuleParamsCapabilityName`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 500,\r
+        "y": 1107,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "5e15f413.886734",\r
+                "54889e93.08cfd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f851f72.ef71",\r
+        "type": "comment",\r
+        "name": "Loop thru vf-module-params for first match with ss.capability-name",\r
+        "info": "Loop thru service-data.vnfs.vnf[].vnf-data.vf-modules.vf-module[].vf-module-data.vf-module-topology.vf-module-parameters.param_length \nto find the FIRST occurrence of resource-resolution-data.capability-name=$ss.capability-name",\r
+        "comments": "",\r
+        "x": 795,\r
+        "y": 1062,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5e15f413.886734",\r
+        "type": "outcome",\r
+        "name": "outcome:ss.capability-name match",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 402,\r
+        "y": 1155,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "6251def8.2a4a3"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "54889e93.08cfd",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 312,\r
+        "y": 1196,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3af8c92.ef95d36",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: Found ss.capability-name MATCH\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 748,\r
+        "y": 1155,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6251def8.2a4a3",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 616,\r
+        "y": 1155,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3af8c92.ef95d36",\r
+                "ae5a5639.5744d8",\r
+                "5ed86630.38f02"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "935133ca.0f9a08",\r
+        "type": "comment",\r
+        "name": "Break the loop",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 638,\r
+        "y": 1249,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ae5a5639.5744d8",\r
+        "type": "set",\r
+        "name": "set resource-resolution-data",\r
+        "xml": "<set>\n<parameter name='tmp.resource-resolution-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.`'  />\n",\r
+        "comments": "",\r
+        "x": 684,\r
+        "y": 1203,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37bb96ea.400b92",\r
+        "type": "set",\r
+        "name": "set mac-address-assign test data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value='5' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value='vmxvpfe_sriov41_0_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value='vmxvpfe_sriov41_1_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value='vmxvpfe_sriov41_3_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value='vmxvpfe_sriov41_4_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key[0].value' value='vnfname' />",\r
+        "comments": "",\r
+        "x": 725,\r
+        "y": 590,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ed958c35.488fe8",\r
+        "type": "comment",\r
+        "name": "Set temporary test data * TEST-ONLY *",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 740,\r
+        "y": 549,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "28edf8b5.2c3db",\r
+        "type": "set",\r
+        "name": "set create-vpe-pool test data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value='create-vpe-pool' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value='somestatus' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.capability-name' value='create-vpe-pool' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key_length' value='19' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[0].name' value='vpe_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[0].value' value='test-vpe_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[1].name' value='ipv4_oam_address' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[1].value' value='tst-ipv4_oam_address' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[2].name' value='loopback0' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[2].value' value='test-loopback0' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[3].name' value='provisioning_status' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[3].value' value='tst-provst' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[4].name' value='aic_site_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[4].value' value='test-aic_site_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[5].name' value='avaiablity_zone' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[5].value' value='test-avaiablity_zone' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[6].name' value='vlan_id_outer' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[6].value' value='test-vlan_id_outer' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[7].name' value='vendor' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[7].value' value='test-vendor' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[8].name' value='physical_intf_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[8].value' value='test-physical_intf_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[9].name' value='phyiscal_intf_speed' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[9].value' value='tst-phyiscal_intf_sp' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[10].name' value='phyiscal_intf_units' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[10].value' value='tst-phyiscal_intf_un' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[11].name' value='vpe_uuid' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[11].value' value='test-vpe_uuid' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[12].name' value='vpe_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[12].value' value='test-vpe_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[13].name' value='image_filename' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[13].value' value='test-image_filename' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[14].name' value='as_number' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[14].value' value='test-as_number' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[15].name' value='loopback5000' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[15].value' value='tst-loopback5000' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[16].name' value='loopback10' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[16].value' value='test-loopback10' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[17].name' value='aic_version' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[17].value' value='test-aic_version' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[18].name' value='vpe_capacity' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[18].value' value='100' />\n",\r
+        "comments": "",\r
+        "x": 712,\r
+        "y": 631,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5ed86630.38f02",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 617,\r
+        "y": 1291,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "99fdb9f2.2f945",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-action",\r
+        "xml": "<switch test=\"`$ss.capability-action`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 208,\r
+        "y": 306,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "51a6f3d9.ba4064",\r
+                "bf226ecf.177898",\r
+                "804143e4.a2a6d",\r
+                "57a6057b.72faf4",\r
+                "4d204a31.38d4cc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "51a6f3d9.ba4064",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 474,\r
+        "y": 289,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bf226ecf.177898",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 481,\r
+        "y": 329,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "6e4e60bf.f142d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "804143e4.a2a6d",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 471,\r
+        "y": 369,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "57a6057b.72faf4",\r
+        "type": "other",\r
+        "name": "ASSIGN ",\r
+        "xml": "<outcome value='ASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 477,\r
+        "y": 410,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "b6205956.40afb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e432c299.0f0f28",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='ss.capability-action is not set' />\n",\r
+        "comments": "",\r
+        "x": 789,\r
+        "y": 364,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4d204a31.38d4cc",\r
+        "type": "other",\r
+        "name": "UNASSIGN ",\r
+        "xml": "<outcome value='UNASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 485,\r
+        "y": 453,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "8351b502.234138"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6205956.40afb",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: ss.capability-action is ASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 685,\r
+        "y": 410,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8351b502.234138",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: ss.capability-action is UNASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 686,\r
+        "y": 453,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "239e4d46.dfcafa",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 478,\r
+        "y": 120,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "91e411ed.601ec",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 254,\r
+        "y": 2710,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "20069b21.adf8ac",\r
+                "34555459.6b4624",\r
+                "ffb1fa3.6af7988"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b8a23aae.17bdd8",\r
+        "type": "comment",\r
+        "name": "Resolve VPE Pool values",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 284,\r
+        "y": 2667,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "20069b21.adf8ac",\r
+        "type": "set",\r
+        "name": "set resource-key-length and resource-names",\r
+        "xml": "<set>\n<parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\n<!-- String to build VPE_POOL table SQL insert statement -->\n<parameter name='tmp.resource-insert-columns' value='' />\n<parameter name='tmp.resource-insert-values' value='' />\n\n<!-- These are the resources to insert into VPE_POOL -->\n<parameter name='tmp.resource-names-length' value='19' />\n<parameter name='tmp.resource-names[0]' value='vpe_name' />\n<parameter name='tmp.resource-names[1]' value='ipv4_oam_address' />\n<parameter name='tmp.resource-names[2]' value='loopback0' />\n<parameter name='tmp.resource-names[3]' value='provisioning_status' />\n<parameter name='tmp.resource-names[4]' value='aic_site_id' />\n<parameter name='tmp.resource-names[5]' value='avaiablity_zone' />\n<parameter name='tmp.resource-names[6]' value='vlan_id_outer' />\n<parameter name='tmp.resource-names[7]' value='vendor' />\n<parameter name='tmp.resource-names[8]' value='physical_intf_name' />\n<parameter name='tmp.resource-names[9]' value='phyiscal_intf_speed' />\n<parameter name='tmp.resource-names[10]' value='phyiscal_intf_units' />\n<parameter name='tmp.resource-names[11]' value='vpe_uuid' />\n<parameter name='tmp.resource-names[12]' value='vpe_id' />\n<parameter name='tmp.resource-names[13]' value='image_filename' />\n<parameter name='tmp.resource-names[14]' value='as_number' />\n<parameter name='tmp.resource-names[15]' value='loopback5000' />\n<parameter name='tmp.resource-names[16]' value='loopback10' />\n<parameter name='tmp.resource-names[17]' value='aic_version' />\n<parameter name='tmp.resource-names[18]' value='vpe_capacity' />",\r
+        "comments": "",\r
+        "x": 418,\r
+        "y": 2756,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d02fec38.4a3bd8",\r
+        "type": "for",\r
+        "name": "for each resource-resolution-data.resource-key",\r
+        "xml": "<for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 488,\r
+        "y": 2890,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3e860650.abc54a",\r
+                "39809c07.8a4b44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e860650.abc54a",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: key-index, resource-key.name, resource-names\"/>\n<parameter name=\"field3\" value='`$key-index`'/>\n<parameter name=\"field4\" value='`$tmp.resource-resolution-data.resource-key[$key-index].name`'/>\n<parameter name=\"field5\" value='`$tmp.resource-names[$names-index]`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 755,\r
+        "y": 2890,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "39809c07.8a4b44",\r
+        "type": "switchNode",\r
+        "name": "switch compare resource-key.name and resource-names",\r
+        "xml": "<switch test=\"`$tmp.resource-resolution-data.resource-key[$key-index].name == $tmp.resource-names[$names-index]`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568,\r
+        "y": 2937,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "43368a98.e5b24c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e18888c7.6778b",\r
+        "type": "comment",\r
+        "name": "Build columns and values strings",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 397,\r
+        "y": 2847,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "34555459.6b4624",\r
+        "type": "for",\r
+        "name": "for each resource-names",\r
+        "xml": "<for index='names-index' start='0' end='`$tmp.resource-names-length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 354,\r
+        "y": 2799,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "d02fec38.4a3bd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1089c774.03e0b1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 569,\r
+        "y": 2985,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "b37957ef.f9d81",\r
+                "4078f5a8.f4aaa4",\r
+                "edf7fcc4.ef8d2",\r
+                "2cd22eed.f6755a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b37957ef.f9d81",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: resource-name MATCH: \"/>\n<parameter name=\"field3\" value='`$tmp.resource-names[$names-index]`'/>\n<parameter name=\"field4\" value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 701,\r
+        "y": 2985,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "27117daa.dba1e2",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 160,\r
+        "y": 1643,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "74720eac.e8091",\r
+                "1cce86c8.2baf29",\r
+                "7f26f3a2.7b72b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "84f2d99e.bebab",\r
+        "type": "comment",\r
+        "name": "Resolve vpe-name",\r
+        "info": "service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters[$vf-module-params-index].param.resource-resolution-data.resource-key[$key-index].value \nwhere its corresponding resource-key[$key-index].name=vnf-name",\r
+        "comments": "",\r
+        "x": 167,\r
+        "y": 1598,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "74720eac.e8091",\r
+        "type": "set",\r
+        "name": "set resource-key-length",\r
+        "xml": "<set>\n<parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\n",\r
+        "comments": "",\r
+        "x": 248,\r
+        "y": 1688,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1cce86c8.2baf29",\r
+        "type": "for",\r
+        "name": "for each resource-resolution-data.resource-key",\r
+        "xml": "<for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 321,\r
+        "y": 1733,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "99568978.f411d8",\r
+                "17d7d5e9.8d97ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "17d7d5e9.8d97ca",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: key-index\"/>\n<parameter name=\"field3\" value='`$key-index`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 588,\r
+        "y": 1733,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "99568978.f411d8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 251,\r
+        "y": 1782,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "bbf5f08d.176578"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbf5f08d.176578",\r
+        "type": "switchNode",\r
+        "name": "switch compare resource-key.name and \"vpe_name\"",\r
+        "xml": "<switch test=\"`$tmp.resource-resolution-data.resource-key[$key-index].name == 'vpe_name'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 420,\r
+        "y": 1829,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "de8dbfd6.ba15f8",\r
+                "9d54b52e.f1d638"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de8dbfd6.ba15f8",\r
+        "type": "outcome",\r
+        "name": "outcome:found vpe_name resource key",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 397,\r
+        "y": 1876,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "d44085fb.76d7b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d54b52e.f1d638",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 297,\r
+        "y": 1917,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d44085fb.76d7b8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617,\r
+        "y": 1876,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "7c52e694.0f96f8",\r
+                "c1b2f560.f3bbb8",\r
+                "483e4765.4f9ea8",\r
+                "5d97585d.b7677"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7c52e694.0f96f8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: Found resource-resolution-data.name = vpe_name\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 745,\r
+        "y": 1876,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c1b2f560.f3bbb8",\r
+        "type": "set",\r
+        "name": "set vpe_name",\r
+        "xml": "<set>\n<parameter name='tmp.vpe_name' value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'  />\n",\r
+        "comments": "",\r
+        "x": 639,\r
+        "y": 1924,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7f26f3a2.7b72b4",\r
+        "type": "switchNode",\r
+        "name": "switch validate resolved vpe_name",\r
+        "xml": "<switch test=\"`$tmp.vpe_name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 287,\r
+        "y": 2078,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "cc6e440.5c4294",\r
+                "5ca35655.03c278"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc6e440.5c4294",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 520,\r
+        "y": 2058,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "57d33721.74c88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ca35655.03c278",\r
+        "type": "other",\r
+        "name": "blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 522,\r
+        "y": 2098,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "57d33721.74c88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f026ea2a.ffec9",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='403' />\n<parameter name='error-message' value='vpe_name is not valid' />\n",\r
+        "comments": "",\r
+        "x": 804,\r
+        "y": 2116,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "483e4765.4f9ea8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: resolved vpe_name: \"/>\n<parameter name=\"field3\" value='`$tmp.vpe_name`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617,\r
+        "y": 1970,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "43368a98.e5b24c",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 444,\r
+        "y": 2985,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "1089c774.03e0b1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cbc54dd3.c3792",\r
+        "type": "set",\r
+        "name": "set columns and values",\r
+        "xml": "<set>\n<parameter name='tmp.insert-columns' value=\"`$tmp.insert-columns + ', ' + $tmp.resource-resolution-data.resource-key[$key-index].name`\"  />\n<parameter name='tmp.insert-values' value=\"`$tmp.insert-values + ', ' + $tmp.resource-resolution-data.resource-key[$key-index].value`\"  />",\r
+        "comments": "",\r
+        "x": 946,\r
+        "y": 3118,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "13ecc592.3b82d2",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/self-serve-create-vpe-pool.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 130,\r
+        "y": 3902,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "546765f8.01c9d4",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`\" value='SUCCESS'  />",\r
+        "comments": "",\r
+        "x": 138,\r
+        "y": 3955,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69595241.f29c74",\r
+        "type": "comment",\r
+        "name": "Check for existing data in VPE_POOL for vpe_name",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 275,\r
+        "y": 2142,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "294d3284.6857ee",\r
+        "type": "get-resource",\r
+        "name": "get data from VPE_POOL for vpe_name",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"select * FROM VPE_POOL WHERE vpe_name= $tmp.vpe_name\" pfx='tmp.vpe_pool_data'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 280,\r
+        "y": 2244,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "1da4e742.717111"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1da4e742.717111",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 529,\r
+        "y": 2244,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "cfb10318.efa7a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b3d7a743.ee6ad",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Unable to access VPE_POOL' />\n",\r
+        "comments": "",\r
+        "x": 847.5,\r
+        "y": 2283,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2098d78a.a044f",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 537.5,\r
+        "y": 2283,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "bde979aa.39f228"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f94b6f4b.d2e2d8",\r
+        "type": "outcome",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 548.5,\r
+        "y": 2323,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "bde979aa.39f228"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14105a75.20b366",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 528.5,\r
+        "y": 2363,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "2b9fef4a.a1e4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bde979aa.39f228",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: data not found in VPE_POOL for vpe_name: \"/>\n<parameter name=\"field3\" value='`$tmp.vpe_name`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 696,\r
+        "y": 2298,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1ea0821.6855a8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: data already found in VPE_POOL for vpe_name: \"/>\n<parameter name=\"field3\" value='`$tmp.vpe_name`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 700,\r
+        "y": 2414,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d97585d.b7677",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 613,\r
+        "y": 2016,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7b98ca0c.853304",\r
+        "type": "switchNode",\r
+        "name": "switch vpe_name exists",\r
+        "xml": "<switch test=\"`$tmp.vpe_pool_data.vpe-name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 226,\r
+        "y": 2295,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "2098d78a.a044f",\r
+                "f94b6f4b.d2e2d8",\r
+                "14105a75.20b366"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb7cce81.86bd1",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 159,\r
+        "y": 2185,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "294d3284.6857ee",\r
+                "7b98ca0c.853304"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c8df7eb8.019278",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-action (ASSIGN | UNASSIGN)",\r
+        "xml": "<switch test='`$ss.capability-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 270,\r
+        "y": 2572,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "99ac43a3.c1fae",\r
+                "359e81ed.5a47fe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "99ac43a3.c1fae",\r
+        "type": "outcome",\r
+        "name": "ASSIGN",\r
+        "xml": "<outcome value='ASSIGN'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 207.25006103515625,\r
+        "y": 2622.75,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "91e411ed.601ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "359e81ed.5a47fe",\r
+        "type": "outcome",\r
+        "name": "UNASSIGN",\r
+        "xml": "<outcome value='UNASSIGN'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 209,\r
+        "y": 3498,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "45cf3e66.241778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2b9fef4a.a1e4e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 657,\r
+        "y": 2363,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "f1ea0821.6855a8",\r
+                "ea2c03c3.b2fef8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea2c03c3.b2fef8",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-action ASSIGN",\r
+        "xml": "<switch test=\"`$ss.capability-action == 'ASSIGN'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 829,\r
+        "y": 2458,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "1c52eb95.b0c844"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22a167de.0964a8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Unable to create vpe-pool, data already exists in VPE_POOL for vpe_name' />\n",\r
+        "comments": "",\r
+        "x": 1099,\r
+        "y": 2540,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1c52eb95.b0c844",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 792,\r
+        "y": 2498,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "374c7d51.1a40c2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4078f5a8.f4aaa4",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 705,\r
+        "y": 3246,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "edf7fcc4.ef8d2",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.insert-columns",\r
+        "xml": "<switch test=\"`$tmp.insert-columns`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 763,\r
+        "y": 3032,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3ebba126.b9806e",\r
+                "ed0efd94.fd06d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ebba126.b9806e",\r
+        "type": "other",\r
+        "name": "blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 764,\r
+        "y": 3074,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3b572857.69d0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ed0efd94.fd06d8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 765,\r
+        "y": 3118,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "cbc54dd3.c3792"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b572857.69d0c",\r
+        "type": "set",\r
+        "name": "set first columns and values",\r
+        "xml": "<set>\n<parameter name='tmp.insert-columns' value=\"`$tmp.resource-resolution-data.resource-key[$key-index].name`\"  />\n<parameter name='tmp.insert-values' value=\"$tmp.resource-resolution-data.resource-key[$key-index].value`\"  />",\r
+        "comments": "",\r
+        "x": 960,\r
+        "y": 3074,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "89f81f53.517388",\r
+        "type": "comment",\r
+        "name": "Insert resolved values into VPE_POOL",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 371,\r
+        "y": 3329,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ffb1fa3.6af7988",\r
+        "type": "save",\r
+        "name": "save",\r
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" \nresource=\"SQL\" \nkey=\"INSERT INTO VPE_POOL ( vpe_name, ipv4_oam_address, loopback0_ipv4_address, provisioning_status, aic_site_id, availability_zone, vlan_id_outer, vendor, physical_intf_name, physical_intf_speed, physical_intf_units, vpe_uuid, vpe_id, image_filename, as_number, loopback5000, loopback10, aic_version, vpe_capacity ) \nVALUES ( $tmp.forInsert.vpe_name , $tmp.forInsert.ipv4_oam_address , $tmp.forInsert.loopback0_ipv4_address , $tmp.forInsert.provisioning_status , $tmp.forInsert.aic_site_id , $tmp.forInsert.availability_zone , $tmp.forInsert.vlan_id_outer , $tmp.forInsert.vendor , $tmp.forInsert.physical_intf_name , $tmp.forInsert.physical_intf_speed , $tmp.forInsert.physical_intf_units , $tmp.forInsert.vpe_uuid , $tmp.forInsert.vpe_id , $tmp.forInsert.image_filename , $tmp.forInsert.as_number , $tmp.forInsert.loopback5000 , $tmp.forInsert.loopback10 , $tmp.forInsert.aic_version , $tmp.forInsert.vpe_capacity )\" \nforce='true' pfx='save_val'>\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 278,\r
+        "y": 3381,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "b95bb1f3.324a48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b95bb1f3.324a48",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 412,\r
+        "y": 3381,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "d28ef98d.b2a44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de7ed095.f4a8f8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='406' />\n<parameter name='error-message' value='Unable to create VPE Pool in VPE_POOL' />\n",\r
+        "comments": "",\r
+        "x": 691,\r
+        "y": 3421,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9f8ca216.d79298",\r
+        "type": "save",\r
+        "name": "save",\r
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" \nresource=\"SQL\" \nkey=\"INSERT INTO VPE_POOL ( $tmp.insert-columns ) VALUES ( $tmp.insert-values )\" \nforce='true' pfx='save_val'>\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 278,\r
+        "y": 3430,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2cd22eed.f6755a",\r
+        "type": "set",\r
+        "name": "set tmp.resource-key.name",\r
+        "xml": "<set>\n<parameter name=\"`'tmp.forInsert.' + $tmp.resource-resolution-data.resource-key[$key-index].name`\" value=\"`$tmp.resource-resolution-data.resource-key[$key-index].value`\"  />",\r
+        "comments": "",\r
+        "x": 769,\r
+        "y": 3188,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "50e7ff75.38e8e",\r
+        "type": "delete",\r
+        "name": "delete",\r
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey='DELETE from VPE_POOL WHERE vpe_name = $tmp.vpe_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 711,\r
+        "y": 3797,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "8805f26.95ae01",\r
+                "361cc9e5.7908be"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45cf3e66.241778",\r
+        "type": "block",\r
+        "name": "block:atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 267,\r
+        "y": 3589,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "a7b7a82e.0ddd5",\r
+                "30f5b9b8.788d4e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdbd06b6.1319d",\r
+        "type": "comment",\r
+        "name": "DELETE from VPE_POOL",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 306.5,\r
+        "y": 3549,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7b7a82e.0ddd5",\r
+        "type": "get-resource",\r
+        "name": "get vpe_name from pool table",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"select * FROM VPE_POOL WHERE vpe_name= $tmp.vpe_name\" pfx='tmp.pool'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 355,\r
+        "y": 3632,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "4fe3bd5f.f807ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4fe3bd5f.f807ec",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 555,\r
+        "y": 3632,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "a011ef73.5c281"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "30f5b9b8.788d4e",\r
+        "type": "switchNode",\r
+        "name": "switch vpe_name exists",\r
+        "xml": "<switch test=\"`$tmp.pool.vpe-name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 339,\r
+        "y": 3737,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3b6ead82.52270a",\r
+                "5ef97d56.ec95c4",\r
+                "e3a81c03.b5c238",\r
+                "b82ac555.c7005"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b82ac555.c7005",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 557.5,\r
+        "y": 3677,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "a011ef73.5c281"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b6ead82.52270a",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 566.5,\r
+        "y": 3717,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "a011ef73.5c281"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ef97d56.ec95c4",\r
+        "type": "outcome",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577.5,\r
+        "y": 3757,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "a011ef73.5c281"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3a81c03.b5c238",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 557.5,\r
+        "y": 3797,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "50e7ff75.38e8e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1af82fe3.29d68",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='vpe_name not found in VPE_POOL on UNASSIGN operation' />\n",\r
+        "comments": "",\r
+        "x": 858,\r
+        "y": 3714,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "361cc9e5.7908be",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840,\r
+        "y": 3820,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "2ab614f1.660744"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8805f26.95ae01",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 841,\r
+        "y": 3760,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "c4913f09.63c2d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c258faf4.dff23",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Failure deleting from VPE_POOL on UNASSIGN operation' />\n",\r
+        "comments": "",\r
+        "x": 1131,\r
+        "y": 3802,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9008977d.b80888",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 622,\r
+        "y": 160,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "9d1d3472.daf75",\r
+                "d27f0dd0.d782b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9d1d3472.daf75",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: ss.capability-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 762,\r
+        "y": 119,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ccfd8640.725448",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 803,\r
+        "y": 157,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6e4e60bf.f142d8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 627,\r
+        "y": 329,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "bed57743.8cbc28",\r
+                "e432c299.0f0f28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bed57743.8cbc28",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: ss.capability-action is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 771,\r
+        "y": 287,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f42dc9c0.9c12d",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 812,\r
+        "y": 325,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "963fb7d6.2c2aa8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770,\r
+        "y": 680,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "867349fd.5443f8",\r
+                "1077b388.6815bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1077b388.6815bc",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: Failure calling self-service-capability-param-resolution\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 921,\r
+        "y": 660,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4bc9e9ef.c448b8",\r
+        "type": "comment",\r
+        "name": "Check that resource-resolution-data.status is PENDING",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 279,\r
+        "y": 1375,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f9bd328a.55cf5",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.resource-resolution-data = PENDING",\r
+        "xml": "<switch test=\"`$tmp.resource-resolution-data.status == 'PENDING'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 271,\r
+        "y": 1433,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "cedd9352.77b15"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4753dc3.c135a",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 739,\r
+        "y": 1433,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "fd3f2609.5162a8",\r
+                "57a3bfbb.33e0a",\r
+                "5b1bbbb2.7d9f7c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fd3f2609.5162a8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-create-vpe-pool: reseouce-resolution-data.status is not PENDING\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 879,\r
+        "y": 1393,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b1bbbb2.7d9f7c",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 920,\r
+        "y": 1432,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "57a3bfbb.33e0a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='reseouce-resolution-data.status is not PENDING' />\n",\r
+        "comments": "",\r
+        "x": 896,\r
+        "y": 1471,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cedd9352.77b15",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 575,\r
+        "y": 1433,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "b4753dc3.c135a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "57d33721.74c88",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 650,\r
+        "y": 2076,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "9eeec8b6.872078",\r
+                "b6aebe10.5b93c8",\r
+                "f026ea2a.ffec9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9eeec8b6.872078",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: hostname is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 786,\r
+        "y": 2037,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6aebe10.5b93c8",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 828,\r
+        "y": 2076,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cfb10318.efa7a8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 694,\r
+        "y": 2244,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "44af3fd2.4cc85",\r
+                "625ab694.effa98",\r
+                "b3d7a743.ee6ad"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "44af3fd2.4cc85",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Unable to access VPE_POOL\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 830,\r
+        "y": 2205,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "625ab694.effa98",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 872,\r
+        "y": 2244,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "374c7d51.1a40c2",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 945,\r
+        "y": 2498,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "af4cc180.28d64",\r
+                "c0442851.32aa2",\r
+                "22a167de.0964a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af4cc180.28d64",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Unable to create vpe-pool, data already exists in VPE_POOL for vpe_name\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1081,\r
+        "y": 2459,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "c0442851.32aa2",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1123,\r
+        "y": 2498,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d28ef98d.b2a44",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 538,\r
+        "y": 3381,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "3d595e87.2866c2",\r
+                "223ac79b.e692c8",\r
+                "de7ed095.f4a8f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3d595e87.2866c2",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Unable to create VPE Pool in VPE_POOL\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 674,\r
+        "y": 3343,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "223ac79b.e692c8",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 716,\r
+        "y": 3382,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a011ef73.5c281",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 706,\r
+        "y": 3675,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "f50e6005.530ab8",\r
+                "dd9f0de.8b146f",\r
+                "1af82fe3.29d68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f50e6005.530ab8",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: vpe_name not found in VPE_POOL on UNASSIGN operation\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 842,\r
+        "y": 3637,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd9f0de.8b146f",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 884,\r
+        "y": 3676,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2ab614f1.660744",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 877,\r
+        "y": 3863,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "8f32cb91.5f4af8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8f32cb91.5f4af8",\r
+        "type": "for",\r
+        "name": "for each resource-resolution-data.resource-key",\r
+        "xml": "<for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1034,\r
+        "y": 3910,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "b671c06.3447f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b671c06.3447f4",\r
+        "type": "set",\r
+        "name": "set vf-module-parameters.param.value to assigned mac address",\r
+        "xml": "<set>\n<parameter name=\"`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`\" value=\"DELETED\"  />\n",\r
+        "comments": "",\r
+        "x": 1121,\r
+        "y": 3955,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c4913f09.63c2d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 974,\r
+        "y": 3760,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            [\r
+                "102f419a.0ee6d6",\r
+                "e4417126.1af178",\r
+                "c258faf4.dff23"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "102f419a.0ee6d6",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Failure deleting from VPE_POOL on UNASSIGN operation\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1110,\r
+        "y": 3722,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e4417126.1af178",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1152,\r
+        "y": 3761,\r
+        "z": "9e5ae839.eee8f",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.json
new file mode 100644 (file)
index 0000000..f433c7c
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"dc01b183.1fa72","type":"dgstart","name":"DGSTART","outputs":1,"x":105.41667175292969,"y":33.749999046325684,"z":"51788ff0.f3f71","wires":[["a152feb6.8fce7"]]},{"id":"b1e86e52.e370d","type":"method","name":"method self-serve-eipam-create-pool","xml":"<method rpc='self-serve-eipam-create-pool' mode='sync'>\n","comments":"","outputs":1,"x":204.53573608398438,"y":84.2103157043457,"z":"51788ff0.f3f71","wires":[["39b3a748.bae198"]]},{"id":"39b3a748.bae198","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":155.98812103271484,"y":137.5952672958374,"z":"51788ff0.f3f71","wires":[["c88000c5.75118","bb85d61.7d03428","7169e0b8.10a35"]]},{"id":"a152feb6.8fce7","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":378.27381896972656,"y":33.178565979003906,"z":"51788ff0.f3f71","wires":[["b1e86e52.e370d"]]},{"id":"c88000c5.75118","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":390.41668701171875,"y":138.91666507720947,"z":"51788ff0.f3f71","wires":[["fadcb21e.98015"]]},{"id":"fadcb21e.98015","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":615.4167098999023,"y":139.416663646698,"z":"51788ff0.f3f71","wires":[["50c3bbc1.7a6874"]]},{"id":"50c3bbc1.7a6874","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-name is null\" />\n","comments":"","x":775.333381652832,"y":139.5277624130249,"z":"51788ff0.f3f71","wires":[]},{"id":"bb85d61.7d03428","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":391.6667060852051,"y":188.91666555404663,"z":"51788ff0.f3f71","wires":[["4fbc549.49c59ac","e9582bd7.483748","9ca683c5.67f9f"]]},{"id":"4fbc549.49c59ac","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":615.1667022705078,"y":189.16666555404663,"z":"51788ff0.f3f71","wires":[["de9ca627.80f978"]]},{"id":"de9ca627.80f978","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-action is null\" />\n","comments":"","x":775.0833740234375,"y":189.27776432037354,"z":"51788ff0.f3f71","wires":[]},{"id":"e9582bd7.483748","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":151.91668701171875,"y":392.1666717529297,"z":"51788ff0.f3f71","wires":[["c14e7948.5871c8"]]},{"id":"9fecfcc8.37d0a","type":"call","name":"call self-service-capability-param-resolution","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-service-capability-param-resolution' mode='sync' >\n","comments":"","outputs":1,"x":636.2499732971191,"y":392.33333683013916,"z":"51788ff0.f3f71","wires":[["369c4922.fba9e6"]]},{"id":"369c4922.fba9e6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":886.2499542236328,"y":392.3333330154419,"z":"51788ff0.f3f71","wires":[["9612ddfc.dd61b"]]},{"id":"9612ddfc.dd61b","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Not all assignments are resolved' + $error-message`\" />\n","comments":"","x":1044.9999351501465,"y":392.33332920074463,"z":"51788ff0.f3f71","wires":[]},{"id":"7a6639c0.d02f88","type":"call","name":"call process-generic-eipam-pools","xml":"<call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\n","comments":"","outputs":1,"x":583.5833702087402,"y":1191.0833625793457,"z":"51788ff0.f3f71","wires":[["3da13161.eb38de"]]},{"id":"3da13161.eb38de","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":802.5833511352539,"y":1191.0833587646484,"z":"51788ff0.f3f71","wires":[["4ab268ea.a41318"]]},{"id":"4ab268ea.a41318","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Error from process-generic-eipam-pools, ' + $error-message`\" />\n","comments":"","x":961.3333320617676,"y":1191.0833549499512,"z":"51788ff0.f3f71","wires":[]},{"id":"ae9159c2.133638","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1045.8610191345215,"y":450.97221851348877,"z":"51788ff0.f3f71","wires":[]},{"id":"2be8936c.2edadc","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":756.0752449035645,"y":451.0436887741089,"z":"51788ff0.f3f71","wires":[["680a659b.4465ac","ae9159c2.133638"]]},{"id":"680a659b.4465ac","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1057.8252449035645,"y":494.54369258880615,"z":"51788ff0.f3f71","wires":[["b2fdd2b7.4233f"]]},{"id":"b2fdd2b7.4233f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1296.575252532959,"y":494.29369258880615,"z":"51788ff0.f3f71","wires":[["34b48c65.80c2e4"]]},{"id":"21b877be.7c68d8","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1061.80570602417,"y":584.1111669540405,"z":"51788ff0.f3f71","wires":[["58605dad.80f494","d4c6324a.21574","a995f25f.cfffd","b950dbe.3e67c28","1d222098.25cc4f","b91a560f.b78d08"]]},{"id":"58605dad.80f494","type":"outcome","name":"plan-name","xml":"<outcome value='plan-name'>\n","comments":"","outputs":1,"x":1322.2223854064941,"y":663.6389665603638,"z":"51788ff0.f3f71","wires":[["1b9631b7.17571e"]]},{"id":"1b9631b7.17571e","type":"set","name":"set tmp.ss.plan-name","xml":"<set>\n<parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1584.7223892211914,"y":663.3889684677124,"z":"51788ff0.f3f71","wires":[]},{"id":"d4c6324a.21574","type":"outcome","name":"address-family","xml":"<outcome value='address-family'>\n","comments":"","outputs":1,"x":1337.7501182556152,"y":745.2223348617554,"z":"51788ff0.f3f71","wires":[["cd71bf2c.dd688"]]},{"id":"cd71bf2c.dd688","type":"set","name":"set tmp.ss.address-family","xml":"<set>\n<parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1600.0000839233398,"y":744.9723291397095,"z":"51788ff0.f3f71","wires":[]},{"id":"a995f25f.cfffd","type":"outcome","name":"service-instance-id","xml":"<outcome value='service-instance-id'>\n","comments":"","outputs":1,"x":1349.4168510437012,"y":704.0278997421265,"z":"51788ff0.f3f71","wires":[["d6b549f5.f82b28"]]},{"id":"d6b549f5.f82b28","type":"set","name":"set tmp.ss.service-instance-id","xml":"<set>\n<parameter name='tmp.ss.service-instance-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1609.6668586730957,"y":703.7778997421265,"z":"51788ff0.f3f71","wires":[]},{"id":"b950dbe.3e67c28","type":"outcome","name":"allocateSubnetFlag","xml":"<outcome value='allocateSubnetFlag'>\n","comments":"","outputs":1,"x":1346.3613090515137,"y":624.3057069778442,"z":"51788ff0.f3f71","wires":[["d05b3ad9.6899a8"]]},{"id":"d05b3ad9.6899a8","type":"set","name":"set tmp.ss.allocateSubnetFlag","xml":"<set>\n<parameter name='tmp.ss.allocateSubnetFlag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1606.6112480163574,"y":624.3056745529175,"z":"51788ff0.f3f71","wires":[]},{"id":"34b48c65.80c2e4","type":"break","name":"break","xml":"<break>\n","comments":"","x":1434.9721603393555,"y":494.61110496520996,"z":"51788ff0.f3f71","wires":[]},{"id":"ce1ceeb6.9028e","type":"for","name":"for kidx in resource-key_length","xml":"<for index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":782.6667823791504,"y":583.9722776412964,"z":"51788ff0.f3f71","wires":[["21b877be.7c68d8"]]},{"id":"47314a96.7dcd34","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":521.3332710266113,"y":451.1666555404663,"z":"51788ff0.f3f71","wires":[["2be8936c.2edadc","ce1ceeb6.9028e","4e97b759.5fc428"]]},{"id":"4e97b759.5fc428","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'SS: pidx: ' + $pidx`\"/>\n","comments":"","outputs":1,"x":707.5833015441895,"y":529.5833311080933,"z":"51788ff0.f3f71","wires":[[]]},{"id":"c14e7948.5871c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":317.5833168029785,"y":392.3333339691162,"z":"51788ff0.f3f71","wires":[["7a6639c0.d02f88","47314a96.7dcd34","2ee434f.fde96cc","2693a694.16aada","8c0e7f4b.2acf4"]]},{"id":"1d222098.25cc4f","type":"outcome","name":"mask","xml":"<outcome value='mask'>\n","comments":"","outputs":1,"x":1315.7777557373047,"y":784.1111936569214,"z":"51788ff0.f3f71","wires":[["f5bca4c2.a0a588"]]},{"id":"f5bca4c2.a0a588","type":"set","name":"set tmp.ss.mask","xml":"<set>\n<parameter name='tmp.ss.mask' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1569.0276947021484,"y":784.1111612319946,"z":"51788ff0.f3f71","wires":[]},{"id":"2693a694.16aada","type":"switchNode","name":"switch: tmp.ss.address-family","xml":"<switch test='`$tmp.ss.address-family`'>\n","comments":"","outputs":1,"x":585.0833320617676,"y":977.3333501815796,"z":"51788ff0.f3f71","wires":[["275c0da4.2622f2","9e47df3c.a8551"]]},{"id":"275c0da4.2622f2","type":"outcome","name":"ipv4","xml":"<outcome value='ipv4'>\n","comments":"","outputs":1,"x":806.3333168029785,"y":949.8333368301392,"z":"51788ff0.f3f71","wires":[["547697c6.ea0768"]]},{"id":"9e47df3c.a8551","type":"outcome","name":"ipv6","xml":"<outcome value='ipv6'>\n","comments":"","outputs":1,"x":808.8333320617676,"y":1002.3333501815796,"z":"51788ff0.f3f71","wires":[["525d923d.ffecec"]]},{"id":"547697c6.ea0768","type":"set","name":"set v4 variables for create-pool","xml":"<set>\n<parameter name='network-model.eipam-v4-address-plan' value='tmp.ss.plan-name' />\n<parameter name='network-model.use-ipv4' value='Y' />\n<parameter name='network-model.ipv4-ip-version' value='tmp.ss.address-family' />\n<parameter name='network-model.ipv4-cidr-mask' value='tmp.ss.mask' />\n","comments":"","x":1030.0833320617676,"y":949.5833520889282,"z":"51788ff0.f3f71","wires":[]},{"id":"525d923d.ffecec","type":"set","name":"set v6 variables for create-pool","xml":"<set>\n<parameter name='network-model.eipam-v6-address-plan' value='tmp.ss.plan-name' />\n<parameter name='network-model.use-ipv6' value='Y' />\n<parameter name='network-model.ipv6-ip-version' value='tmp.ss.address-family' />\n<parameter name='network-model.ipv6-cidr-mask' value='tmp.ss.mask' />\n","comments":"","x":1031.3333320617676,"y":1002.0833530426025,"z":"51788ff0.f3f71","wires":[]},{"id":"2ee434f.fde96cc","type":"set","name":"set skip-first-level, allocateSubnetFlag, group-flag","xml":"<set>\n<parameter name='tmp.skip-first-level' value='Y' />\n<parameter name='tmp.allocate-subnet-flag' value='`$tmp.ss.allocateSubnetFlag`' />\n<parameter name='eipam-ip-block.group-flag' value='`$tmp.ss.group-flag`' />","comments":"","x":648.6944313049316,"y":879.2778415679932,"z":"51788ff0.f3f71","wires":[]},{"id":"b91a560f.b78d08","type":"outcome","name":"group-flag","xml":"<outcome value='group-flag'>\n","comments":"","outputs":1,"x":1317.1667861938477,"y":584.638934135437,"z":"51788ff0.f3f71","wires":[["3132f2fb.e39d2e"]]},{"id":"3132f2fb.e39d2e","type":"set","name":"set tmp.ss.group-flag","xml":"<set>\n<parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1561.5277404785156,"y":584.7500457763672,"z":"51788ff0.f3f71","wires":[]},{"id":"7169e0b8.10a35","type":"set","name":"set create-pool test inputs","xml":"<set>\n<parameter name='vnf-index' value='0' />\n<parameter name='vf-module-index' value='0' />\n<parameter name='ss.capability-name' value='self-serve-eipam-create-pool' />\n<parameter name='ss.capability-action' value='assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources' \n\tvalue='true' />\n\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '1' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'ipv4-wan-address-pool' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = '${ipv4-wan-address-pool}' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value = 'eipam-create-pool' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value = 'group-flag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value = 'Y' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name' value = 'plan-name' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value' value = 'GMIS_V4_VPE_WAN' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name' value = 'service-instance-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value' value = '12345' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name' value = 'region' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value' value = 'mtn6' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].name' value = 'address-family' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].value' value = 'ipv4' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].name' value = 'equipment' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].value' value = 'VPE' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].name' value = 'mask' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].value' value = '32' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].name' value = 'allocateSubnetFlag' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].value' value = 'N' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].name' value = 'service-instance-id' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].value' value = '111222' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value = '9' />\n<parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value = 'PENDING' />\n\n","comments":"","x":871.111083984375,"y":53.33333206176758,"z":"51788ff0.f3f71","wires":[]},{"id":"9ca683c5.67f9f","type":"outcome","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":617.7777214050293,"y":239.9999876022339,"z":"51788ff0.f3f71","wires":[["813afab0.96b988"]]},{"id":"813afab0.96b988","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Invalid capability-action: '+ ss.capability-action + 'only assign is supported'`\" />\n","comments":"","x":773.3332633972168,"y":239.88888835906982,"z":"51788ff0.f3f71","wires":[]},{"id":"8c0e7f4b.2acf4","type":"set","name":"set aai.cloud-region.cloud-region-id","xml":"<set>\n<parameter name='aai.cloud-region.cloud-region-id' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\n","comments":"","x":603.7500076293945,"y":811.2500114440918,"z":"51788ff0.f3f71","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.json
new file mode 100644 (file)
index 0000000..d1bbfc1
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"36cbdd47.907f12","type":"dgstart","name":"DGSTART","outputs":1,"x":86.25,"y":36.249999046325684,"z":"4c8d51ee.aa222","wires":[["ab7df98.5f55e08"]]},{"id":"eb6941fe.a3dc3","type":"method","name":"method self-serve-eipam-ip-assignment","xml":"<method rpc='self-serve-eipam-ip-assignment' mode='sync'>\n","comments":"","outputs":1,"x":222.0357208251953,"y":93.37698745727539,"z":"4c8d51ee.aa222","wires":[["eba6dd8b.a603"]]},{"id":"eba6dd8b.a603","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":115.57144165039062,"y":179.6786060333252,"z":"4c8d51ee.aa222","wires":[["ac52a615.2fa078","aa4fc267.42cbf","aa62f0e2.738ae"]]},{"id":"ab7df98.5f55e08","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":359.1071472167969,"y":35.678565979003906,"z":"4c8d51ee.aa222","wires":[["eb6941fe.a3dc3"]]},{"id":"ac52a615.2fa078","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":350.00000762939453,"y":181.00000381469727,"z":"4c8d51ee.aa222","wires":[["cdddcc57.48471"]]},{"id":"cdddcc57.48471","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":575.0000305175781,"y":181.5000023841858,"z":"4c8d51ee.aa222","wires":[["d0165256.ff59c"]]},{"id":"d0165256.ff59c","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-name is null\" />\n","comments":"","x":734.9167022705078,"y":181.6111011505127,"z":"4c8d51ee.aa222","wires":[]},{"id":"aa4fc267.42cbf","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":351.25002670288086,"y":231.00000429153442,"z":"4c8d51ee.aa222","wires":[["2b9b3f1b.f936b","5819e76f.b5da38","daf1b63b.b15078"]]},{"id":"2b9b3f1b.f936b","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":574.7500228881836,"y":231.25000429153442,"z":"4c8d51ee.aa222","wires":[["472df614.2a4308"]]},{"id":"472df614.2a4308","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-action is null\" />\n","comments":"","x":734.6666946411133,"y":231.36110305786133,"z":"4c8d51ee.aa222","wires":[]},{"id":"5819e76f.b5da38","type":"outcome","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":573.5000190734863,"y":286.25000762939453,"z":"4c8d51ee.aa222","wires":[["e1772a21.436618"]]},{"id":"daf1b63b.b15078","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":472.00006103515625,"y":1390.750020980835,"z":"4c8d51ee.aa222","wires":[["dc1f776d.c14688"]]},{"id":"ad1036db.d18148","type":"call","name":"call self-service-capability-param-resolution","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-service-capability-param-resolution' mode='sync' >\n","comments":"","outputs":1,"x":1064.9166870117188,"y":286.5000114440918,"z":"4c8d51ee.aa222","wires":[["663dbb4b.9ceb64"]]},{"id":"663dbb4b.9ceb64","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1314.9166679382324,"y":286.50000762939453,"z":"4c8d51ee.aa222","wires":[["d1e6639e.fabbf"]]},{"id":"d1e6639e.fabbf","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Not all assignments are resolved' + $error-message`\" />\n","comments":"","x":1473.666648864746,"y":286.50000381469727,"z":"4c8d51ee.aa222","wires":[]},{"id":"f8a36f2.394259","type":"call","name":"call self-serve-generate-FQPN","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' >\n","comments":"","outputs":1,"x":1020.1667022705078,"y":731.6388759613037,"z":"4c8d51ee.aa222","wires":[["5220801a.87e0e"]]},{"id":"5220801a.87e0e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1239.1666831970215,"y":731.6388721466064,"z":"4c8d51ee.aa222","wires":[["cd1742f1.ebf3b"]]},{"id":"cd1742f1.ebf3b","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'Not all assignments are resolved' + $error-message`\" />\n","comments":"","x":1397.9166641235352,"y":731.6388683319092,"z":"4c8d51ee.aa222","wires":[]},{"id":"73c65e22.a53dc","type":"set","name":"set eipam-ip-block.plans[].plan-name, address-family. client-key","xml":"<set>\n<parameter name='eipam-ip-block.group-flag'\n    value='`$tmp.ss.group-flag`' />\n<parameter name='eipam-ip-block.plans[0].plan-name'\n    value='`$tmp.ss.plan-name`' />\n<parameter name='eipam-ip-block.plans[0].address-family'\n    value=\"`$tmp.ss.address-family`\" />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n\tvalue=\"`$tmp.ss.client-key`\" />","comments":"","x":1124.1665344238281,"y":845.4170045852661,"z":"4c8d51ee.aa222","wires":[]},{"id":"45d141fd.17d36","type":"set","name":"COPY eipam requests[] to self-serve-generate-FQPN-output","xml":"<set>\n<parameter name='eipam-ip-block.plans[0].requests[0].'\n    value='self-serve-generate-FQPN-output.' />\n","comments":"","x":1114.7501983642578,"y":797.7500114440918,"z":"4c8d51ee.aa222","wires":[]},{"id":"85b0cb2a.490cf8","type":"set","name":"set eipam-ip-block.plans[].requests_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\n","comments":"","x":1061.7501373291016,"y":888.784987449646,"z":"4c8d51ee.aa222","wires":[]},{"id":"6c29f2a9.9da9ac","type":"execute","name":"call EIPAM assignIPAddress","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">","comments":"","outputs":1,"x":1018.6908111572266,"y":935.2500143051147,"z":"4c8d51ee.aa222","wires":[["1f5aa5d3.b14cfa"]]},{"id":"1f5aa5d3.b14cfa","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1232.6908111572266,"y":935.2500143051147,"z":"4c8d51ee.aa222","wires":[["58629e8f.2d1c6"]]},{"id":"324ab707.ca85b8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`\" />\n","comments":"","x":1588.690818786621,"y":980.2500143051147,"z":"4c8d51ee.aa222","wires":[]},{"id":"5bb9029c.5669ec","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1474.527732849121,"y":345.1388931274414,"z":"4c8d51ee.aa222","wires":[]},{"id":"cb34ae7b.25f88","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1184.741958618164,"y":345.2103633880615,"z":"4c8d51ee.aa222","wires":[["fc904c6.826c3b","5bb9029c.5669ec"]]},{"id":"fc904c6.826c3b","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1486.491958618164,"y":388.7103672027588,"z":"4c8d51ee.aa222","wires":[["d90d2f22.779d1"]]},{"id":"d90d2f22.779d1","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1725.2419662475586,"y":388.4603672027588,"z":"4c8d51ee.aa222","wires":[["d0684089.46f85"]]},{"id":"80d803a3.c4cb2","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":1490.4724197387695,"y":478.27784156799316,"z":"4c8d51ee.aa222","wires":[["58068caa.35b4a4","b18f6739.6cac08","2eb14a8d.8ff0f6","def85b23.3778e8"]]},{"id":"58068caa.35b4a4","type":"outcome","name":"plan-name","xml":"<outcome value='plan-name'>\n","comments":"","outputs":1,"x":1739.7780113220215,"y":518.0278244018555,"z":"4c8d51ee.aa222","wires":[["e60db29f.5e4e4"]]},{"id":"e60db29f.5e4e4","type":"set","name":"set tmp.ss.plan-name","xml":"<set>\n<parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1956.2780151367188,"y":517.7778263092041,"z":"4c8d51ee.aa222","wires":[]},{"id":"74920e5b.b8e65","type":"outcome","name":"service-instance-id","xml":"<outcome value='service-instance-id'>\n","comments":"","outputs":1,"x":1765.8612899780273,"y":558.7500667572021,"z":"4c8d51ee.aa222","wires":[["c1898e3b.6c4b3"]]},{"id":"c1898e3b.6c4b3","type":"set","name":"set tmp.ss.service-instance-id","xml":"<set>\n<parameter name='tmp.ss.service-instance-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2022.1112976074219,"y":558.5000667572021,"z":"4c8d51ee.aa222","wires":[]},{"id":"b18f6739.6cac08","type":"outcome","name":"client-key","xml":"<outcome value='client-key'>\n","comments":"","outputs":1,"x":1741.944694519043,"y":681.3889102935791,"z":"4c8d51ee.aa222","wires":[["551a7376.0c67ac"]]},{"id":"551a7376.0c67ac","type":"set","name":"set tmp.ss.client-key","xml":"<set>\n<parameter name='tmp.ss.client-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1936.944694519043,"y":681.1389102935791,"z":"4c8d51ee.aa222","wires":[]},{"id":"8091eae9.40a578","type":"set","name":"set service-data...param[].value = ip-prefix","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \n\tvalue='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":1997.7500305175781,"y":1131.7500171661377,"z":"4c8d51ee.aa222","wires":[]},{"id":"5501cc03.78ecf4","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1002.9642486572266,"y":1131.5714282989502,"z":"4c8d51ee.aa222","wires":[["ae6c0260.65d4e"]]},{"id":"ae6c0260.65d4e","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\n","comments":"","outputs":1,"x":1250.9642486572266,"y":1131.3214282989502,"z":"4c8d51ee.aa222","wires":[["e78be6ce.3b8de8","eca02a25.601a98","cb1aaf87.aa51c"]]},{"id":"e78be6ce.3b8de8","type":"outcome","name":"vmxvre_oam_ip_0","xml":"<outcome value='vmxvre_oam_ip_0'>\n","comments":"","outputs":1,"x":1495.5,"y":1131.5000019073486,"z":"4c8d51ee.aa222","wires":[["c2896d41.167a9"]]},{"id":"eca02a25.601a98","type":"outcome","name":"vmxvre_oam_ip_prefix_0","xml":"<outcome value='vmxvre_oam_ip_prefix_0'>\n","comments":"","outputs":1,"x":1516.7500228881836,"y":1176.2500171661377,"z":"4c8d51ee.aa222","wires":[["a7f62458.93a518"]]},{"id":"cb1aaf87.aa51c","type":"outcome","name":"vmxvre_oam_gateway","xml":"<outcome value='vmxvre_oam_gateway'>\n","comments":"","outputs":1,"x":1509.2500228881836,"y":1220.2500190734863,"z":"4c8d51ee.aa222","wires":[["46c7f920.676b88"]]},{"id":"c2896d41.167a9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1726.7500267028809,"y":1131.5000171661377,"z":"4c8d51ee.aa222","wires":[["8091eae9.40a578","22fc13a4.ba8c9c"]]},{"id":"22fc13a4.ba8c9c","type":"set","name":"set resource-resolution-data.status = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \n\tvalue='SUCCESS' />\n","comments":"","x":2042.7500305175781,"y":1294.0000190734863,"z":"4c8d51ee.aa222","wires":[]},{"id":"1d153407.2962ac","type":"set","name":"set service-data...param[].value = ip-prefix-length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \n\tvalue='`$eipam-ip-block.plans[0].requests[0].ip-prefix-length`' />\n","comments":"","x":2019.5,"y":1176.5000019073486,"z":"4c8d51ee.aa222","wires":[]},{"id":"a7f62458.93a518","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1727.4999961853027,"y":1176.2500019073486,"z":"4c8d51ee.aa222","wires":[["1d153407.2962ac","22fc13a4.ba8c9c"]]},{"id":"7f6ae9a1.4b5088","type":"set","name":"set service-data...param[].value = ReservedKeyIPAddress","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \n\tvalue='`$eipam-ip-block.plans[0].requests[0].ReservedAssignments[0].ReservedAssignment[3].ReservedKeyIPAddress`' />\n","comments":"","x":2047,"y":1220.7500019073486,"z":"4c8d51ee.aa222","wires":[]},{"id":"46c7f920.676b88","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1729.9999961853027,"y":1220.5000019073486,"z":"4c8d51ee.aa222","wires":[["7f6ae9a1.4b5088","22fc13a4.ba8c9c"]]},{"id":"f027e8c7.f6b778","type":"update","name":"get-resource EIPAM_IP_ASSIGNMENTS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n\tkey='SELECT * from EIPAM_IP_ASSIGNMENTS \n\t\tWHERE service_instance_id = $tmp.ss.service-instance-id\n\t\tAND client_key = $tmp.ss.client-key'>","comments":"","outputs":1,"x":960.5000305175781,"y":1391.0000267028809,"z":"4c8d51ee.aa222","wires":[["5290489d.aa6bd8","ae6f46b.494f8b8"]]},{"id":"5290489d.aa6bd8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1242.0714683532715,"y":1390.57146525383,"z":"4c8d51ee.aa222","wires":[["85dea435.ec5a98"]]},{"id":"85dea435.ec5a98","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1412.2142769949778,"y":1391.0000430515834,"z":"4c8d51ee.aa222","wires":[[]]},{"id":"ae6f46b.494f8b8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1238.7856140136719,"y":1438.2857780456543,"z":"4c8d51ee.aa222","wires":[["b7457ade.ae78f8"]]},{"id":"dc1f776d.c14688","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":641.3214263916016,"y":1391.214376449585,"z":"4c8d51ee.aa222","wires":[["abaf443f.4c2828","f027e8c7.f6b778","21932b55.ea6a44"]]},{"id":"e1772a21.436618","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":746.2500305175781,"y":286.50000858306885,"z":"4c8d51ee.aa222","wires":[["ad1036db.d18148","f8a36f2.394259","45d141fd.17d36","73c65e22.a53dc","85b0cb2a.490cf8","abaf443f.4c2828","5501cc03.78ecf4","6c29f2a9.9da9ac"]]},{"id":"73859123.84533","type":"set","name":"set resource-resolution-data.status = FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\n","comments":"","x":1687.5000228881836,"y":935.2500143051147,"z":"4c8d51ee.aa222","wires":[]},{"id":"58629e8f.2d1c6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1394.5,"y":935.500002861023,"z":"4c8d51ee.aa222","wires":[["73859123.84533","324ab707.ca85b8"]]},{"id":"d0684089.46f85","type":"break","name":"break","xml":"<break>\n","comments":"","x":1863.638874053955,"y":387.7777795791626,"z":"4c8d51ee.aa222","wires":[]},{"id":"e5e862b9.d135f","type":"for","name":"for kidx in resource-key_length","xml":"<for index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1211.33349609375,"y":478.138952255249,"z":"4c8d51ee.aa222","wires":[["80d803a3.c4cb2"]]},{"id":"abaf443f.4c2828","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":949.9999847412109,"y":345.33333015441895,"z":"4c8d51ee.aa222","wires":[["cb34ae7b.25f88","e5e862b9.d135f","3b9d3ddc.c9b2f2"]]},{"id":"aa62f0e2.738ae","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss.eipam.log' />\n","comments":"","outputs":1,"x":307.50000762939453,"y":396.2500057220459,"z":"4c8d51ee.aa222","wires":[[]]},{"id":"8a1109d5.7e1748","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\n\tkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status \n\t\tWHERE service_instance_id = $tmp.ss.service-instance-id \n\t\tAND client_key = $tmp.ss.client-key\" >","comments":"","outputs":1,"x":1772.0476531982422,"y":1482.5001668930054,"z":"4c8d51ee.aa222","wires":[["888fe6c5.8eb528"]]},{"id":"773091ea.905b3","type":"set","name":"set status = PENDING_DELETE","xml":"<set>\n<parameter name='tmp.status' value=\"PENDING_DELETE\" />\n","comments":"","x":1681.5476455688477,"y":1439.583417892456,"z":"4c8d51ee.aa222","wires":[]},{"id":"888fe6c5.8eb528","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2078.047561645508,"y":1481.8334665298462,"z":"4c8d51ee.aa222","wires":[["e072f262.869e"]]},{"id":"e072f262.869e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Error updating EIPAM_IP_ASSIGNMENTS table to unassign ip with client_key=' + $tmp.ss.client-key + ' and service_instance_id=' + $tmp.ss.service-instance-id`\" />\n","comments":"","x":2237.0475883483887,"y":1481.643201828003,"z":"4c8d51ee.aa222","wires":[]},{"id":"7748f846.1995c8","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":1707.047622680664,"y":1527.500210762024,"z":"4c8d51ee.aa222","wires":[["d413898e.28ccd8"]]},{"id":"d413898e.28ccd8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1943.7142486572266,"y":1527.500153541565,"z":"4c8d51ee.aa222","wires":[["293953df.572a2c"]]},{"id":"293953df.572a2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Error in EIPAMPlugin.unassignIPAddress with client-key='+ $tmp.ss.client-key`\" />\n","comments":"","x":2105.7142753601074,"y":1527.3098888397217,"z":"4c8d51ee.aa222","wires":[]},{"id":"b7457ade.ae78f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1421.000015258789,"y":1439.0000228881836,"z":"4c8d51ee.aa222","wires":[["773091ea.905b3","8a1109d5.7e1748","7748f846.1995c8"]]},{"id":"3b9d3ddc.c9b2f2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'SS: pidx: ' + $pidx`\"/>\n","comments":"","outputs":1,"x":1136.250015258789,"y":423.7500057220459,"z":"4c8d51ee.aa222","wires":[[]]},{"id":"2eb14a8d.8ff0f6","type":"outcome","name":"group-flag","xml":"<outcome value='group-flag'>\n","comments":"","outputs":1,"x":1736.6666793823242,"y":477.77775382995605,"z":"4c8d51ee.aa222","wires":[["5c58e9be.2f7838"]]},{"id":"5c58e9be.2f7838","type":"set","name":"set tmp.ss.group-flag","xml":"<set>\n<parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1981.0276336669922,"y":477.88886547088623,"z":"4c8d51ee.aa222","wires":[]},{"id":"def85b23.3778e8","type":"outcome","name":"address-family","xml":"<outcome value='address-family'>\n","comments":"","outputs":1,"x":1754.4443893432617,"y":599.9999828338623,"z":"4c8d51ee.aa222","wires":[["ffb8feff.1d662"]]},{"id":"ffb8feff.1d662","type":"set","name":"set tmp.ss.address-family","xml":"<set>\n<parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2016.6943550109863,"y":599.7499771118164,"z":"4c8d51ee.aa222","wires":[]},{"id":"b96082bd.2df27","type":"outcome","name":"mask","xml":"<outcome value='mask'>\n","comments":"","outputs":1,"x":1732.2222213745117,"y":639.9999828338623,"z":"4c8d51ee.aa222","wires":[["59d3e4c6.50166c"]]},{"id":"59d3e4c6.50166c","type":"set","name":"set tmp.ss.mask","xml":"<set>\n<parameter name='tmp.ss.mask' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":1985.4721603393555,"y":639.9999504089355,"z":"4c8d51ee.aa222","wires":[]},{"id":"21932b55.ea6a44","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":908.75,"y":1629.8214111328125,"z":"4c8d51ee.aa222","wires":[["2de84f0a.a0893"]]},{"id":"2de84f0a.a0893","type":"switchNode","name":"switch: param[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\n","comments":"","outputs":1,"x":1156.75,"y":1629.5714111328125,"z":"4c8d51ee.aa222","wires":[["3b2d7861.ac7dc8","f774c02.497b44","bb3127bc.024528"]]},{"id":"3b2d7861.ac7dc8","type":"outcome","name":"vmxvre_oam_ip_0","xml":"<outcome value='vmxvre_oam_ip_0'>\n","comments":"","outputs":1,"x":1401.2857513427734,"y":1629.749984741211,"z":"4c8d51ee.aa222","wires":[["3be95976.0ed0e6"]]},{"id":"f774c02.497b44","type":"outcome","name":"vmxvre_oam_ip_prefix_0","xml":"<outcome value='vmxvre_oam_ip_prefix_0'>\n","comments":"","outputs":1,"x":1422.535774230957,"y":1674.5,"z":"4c8d51ee.aa222","wires":[["3be95976.0ed0e6"]]},{"id":"bb3127bc.024528","type":"outcome","name":"vmxvre_oam_gateway","xml":"<outcome value='vmxvre_oam_gateway'>\n","comments":"","outputs":1,"x":1415.035774230957,"y":1718.5000019073486,"z":"4c8d51ee.aa222","wires":[["3be95976.0ed0e6"]]},{"id":"3be95976.0ed0e6","type":"set","name":"set resource-resolution-data.status = DELETED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \n\tvalue='DELETED' />\n","comments":"","x":1812.0357971191406,"y":1674.250023841858,"z":"4c8d51ee.aa222","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-FQPN.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-FQPN.json
new file mode 100644 (file)
index 0000000..ad1481c
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"6b55c686.e98f58","type":"dgstart","name":"DGSTART","outputs":1,"x":95,"y":30,"z":"58ac4a51.14cfa4","wires":[["13afa36f.3e613d"]]},{"id":"118353f8.b3b67c","type":"method","name":"method self-serve-generate-FQPN","xml":"<method rpc='self-serve-generate-FQPN' mode='sync'>\n","comments":"","outputs":1,"x":197.0357208251953,"y":78.37698745727539,"z":"58ac4a51.14cfa4","wires":[["e5d7247c.e78aa8"]]},{"id":"e5d7247c.e78aa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":171.26589965820312,"y":154.1230583190918,"z":"58ac4a51.14cfa4","wires":[["faf52f6a.0694f","fb8a9cf8.8fbb2","7ad4d33c.188b7c","bcc69e94.ad89d","dcc749b9.569fe8","dab61149.8cd06"]]},{"id":"dab61149.8cd06","type":"execute","name":"call EIPAM getPlanTopology","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"getPlanTopology\">","comments":"","outputs":1,"x":456.9287567138672,"y":326.93658924102783,"z":"58ac4a51.14cfa4","wires":[["7742e4f5.24469c"]]},{"id":"7742e4f5.24469c","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":673.309814453125,"y":326.66322231292725,"z":"58ac4a51.14cfa4","wires":[["1000bf31.b1f1f1"]]},{"id":"1000bf31.b1f1f1","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while getting Keyname and Keyvalue for address plan, '+ $eipam-ip-block.planName + ', from EIPAM'`\" />\n","comments":"","x":829.2025604248047,"y":326.77045154571533,"z":"58ac4a51.14cfa4","wires":[]},{"id":"fb8a9cf8.8fbb2","type":"switchNode","name":"switch: TopologyDetails_length","xml":"<switch test='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`'>\n","comments":"","outputs":1,"x":459.14695739746094,"y":394.82542276382446,"z":"58ac4a51.14cfa4","wires":[["7a5942e6.6691dc"]]},{"id":"7a5942e6.6691dc","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":679.4643402099609,"y":394.8254346847534,"z":"58ac4a51.14cfa4","wires":[["a12111ef.55246"]]},{"id":"a12111ef.55246","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"eipam-ip-block.getPlanTopologyResponse.TopologyDetails is null\" />\n","comments":"","x":839.3810119628906,"y":394.9365334510803,"z":"58ac4a51.14cfa4","wires":[]},{"id":"5c649a99.441c74","type":"set","name":"set pool-index","xml":"<set>\n<parameter name='pool-index'\n   value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />\n","comments":"","x":737.7975540161133,"y":496.81360149383545,"z":"58ac4a51.14cfa4","wires":[]},{"id":"faf52f6a.0694f","type":"set","name":"set eipam-ip-block.plan-name = tmp.ss.plan-name","xml":"<set>\n<parameter name='eipam-ip-block.plan-name' value='`$tmp.ss.plan-name`' />\n","comments":"","x":527.6468505859375,"y":209.23416805267334,"z":"58ac4a51.14cfa4","wires":[]},{"id":"affb505f.7eaa3","type":"switchNode","name":"switch: Response.planName vs eipam-ip-block..plan-name","xml":"<switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>\n","comments":"","outputs":1,"x":875.4127349853516,"y":448.74602794647217,"z":"58ac4a51.14cfa4","wires":[["519f260d.88c578"]]},{"id":"519f260d.88c578","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1190.1429557800293,"y":448.95237159729004,"z":"58ac4a51.14cfa4","wires":[["baab19da.004908"]]},{"id":"baab19da.004908","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'eipam response plan-name ['+ $eipam-ip-block.getPlanTopologyResponse.PlanName + ' is not the same as input '+$eipam-ip-block.planName`\" />\n","comments":"","x":1355.5715103149414,"y":448.9523649215698,"z":"58ac4a51.14cfa4","wires":[]},{"id":"30eb4248.61be8e","type":"set","name":"set self-serve-generate-FQPN-output.pools[]","xml":"<set>\n<parameter name='self-serve-generate-FQPN-output.pools[$pool-index].key-name'\n   value='`$tmp.getPlanTopologyResponse.key-name`' />\n<parameter name='self-serve-generate-FQPN-output.pools[$pool-index].key-value'\n\tvalue='`$tmp.ss.final.key-value`' />","comments":"","x":818.6666412353516,"y":1116.5592398643494,"z":"58ac4a51.14cfa4","wires":[]},{"id":"ea1157ef.5c36d8","type":"comment","name":"Change History","info":"iTrack 8790\n- add validation for network-role in input for null\n- change query of ROUTING_CHARATERISTIC table with network-role from input.\n- Return generate-FQPN-output.pools[]\n- set pools_length to .getPlanTopologyResponse.TopologyDetails_length separately at the end of the call.\niTrack 10846\n- node 35, fixed error-message, generate-FQPN-input.network-role\niTrack 11310\n- changed ADDRESS_PLAN_POLICIES  cloud_region_id from using vnfapi nodestring for cloud-region-id\n- added AddressPlanPolicyDG-Network_Role and AddressPlanPolicyDG-Network_Id to ADDRESS_PLAN_POLICIES  query and resolution\n- updated vrf-name resolution to use tosca data if not found in ADDRESS_PLAN_POLICIES\n- support compound key-name\niTrack 11945\n- added network-collection and zone \n- remove validation of all input except plan-name\n","comments":"","x":93.75003051757812,"y":455.8928623199463,"z":"58ac4a51.14cfa4","wires":[]},{"id":"bcc69e94.ad89d","type":"for","name":"for resp-index: TopologyDetails[]","xml":"<for index=\"resp-index\" start=\"0\" end=\"`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`\">","comments":"","outputs":1,"x":463.52381896972656,"y":448.80959367752075,"z":"58ac4a51.14cfa4","wires":[["affb505f.7eaa3","5c649a99.441c74","12042b26.6ec7e5","30eb4248.61be8e","bf20cb6a.689cc8","5543f869.2b4cb8","b0808369.33c33","60f9abd6.9b1864"]]},{"id":"7ad4d33c.188b7c","type":"set","name":"empty self-serve-generate-FQPN-output.","xml":"<set>\n<parameter name='self-serve-generate-FQPN-output.' value='' />\n","comments":"","x":498.5357666015625,"y":271.57149744033813,"z":"58ac4a51.14cfa4","wires":[]},{"id":"c32b1831.2dfd38","type":"comment","name":"OUTPUT","info":"generate-FQPN-output.pools[]\ngenerate-FQPN-output.pools_length","comments":"","x":117.67855072021484,"y":360.5357151031494,"z":"58ac4a51.14cfa4","wires":[]},{"id":"dcc749b9.569fe8","type":"set","name":"set self-serve-generate-FQPN-output.pools_length","xml":"<set>\n<parameter name='self-serve-generate-FQPN-output.pools_length' \n\tvalue='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />\n","comments":"","x":526.1072235107422,"y":1193.0357995033264,"z":"58ac4a51.14cfa4","wires":[]},{"id":"13afa36f.3e613d","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":367.8571472167969,"y":29.428566932678223,"z":"58ac4a51.14cfa4","wires":[["118353f8.b3b67c"]]},{"id":"12042b26.6ec7e5","type":"set","name":"set tmp.getPlanTopologyResponse.key-name","xml":"<set>\n<parameter name='tmp.getPlanTopologyResponse.key-name' \n\tvalue='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />\n","comments":"","x":835.4643020629883,"y":547.1429715156555,"z":"58ac4a51.14cfa4","wires":[]},{"id":"5543f869.2b4cb8","type":"execute","name":"split tmp.getPlanTopologyResponse.key-value-format","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n\t<parameter name=\"original_string\" value=\"`$tmp.getPlanTopologyResponse.key-value-format`\" />\n\t<parameter name=\"regex\" value=\":\" />\n\t<parameter name=\"ctx_memory_result_key\" value=\"tmp.split.key-value-format\" />\n","comments":"","outputs":1,"x":864.6071395874023,"y":646.9643845558167,"z":"58ac4a51.14cfa4","wires":[[]]},{"id":"b0808369.33c33","type":"for","name":"for split-index: tmp.split.key-value-format","xml":"<for index=\"split-index\" start=\"0\" end=\"`$tmp.split.key-value-format_length`\">","comments":"","outputs":1,"x":821.7858352661133,"y":747.6786179542542,"z":"58ac4a51.14cfa4","wires":[["ee7b415f.68d5","98cc0ef6.2af94","d4d77014.0c4b3","ce214f8a.35d6c","2d190b10.073a64"]]},{"id":"85e1b3d.faf545","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1453.4524307250977,"y":891.1786241531372,"z":"58ac4a51.14cfa4","wires":[]},{"id":"246bb255.6cc33e","type":"set","name":"set tmp.ss.final.key-value","xml":"<set>\n<parameter name='tmp.ss.final.key-value' value=\"`$tmp.ss.partial.key-value`\" />\n","comments":"","x":1538.130729675293,"y":1022.166757106781,"z":"58ac4a51.14cfa4","wires":[]},{"id":"d4d77014.0c4b3","type":"switchNode","name":"switch: split-index == 0","xml":"<switch test='`$split-index == 0`'>\n","comments":"","outputs":1,"x":1135.1308288574219,"y":1022.5953135490417,"z":"58ac4a51.14cfa4","wires":[["1630c64f.a0ee7a","dab38bb.6e09578"]]},{"id":"1630c64f.a0ee7a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1331.8451538085938,"y":1022.5952353477478,"z":"58ac4a51.14cfa4","wires":[["246bb255.6cc33e"]]},{"id":"dab38bb.6e09578","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1333.7022094726562,"y":1074.0238242149353,"z":"58ac4a51.14cfa4","wires":[["521825ba.41010c"]]},{"id":"521825ba.41010c","type":"set","name":"set tmp.final.key-value with :","xml":"<set>\n<parameter name='tmp.ss.final.key-value' \n\tvalue=\"`$tmp.ss.final.key-value + ':' + $tmp.ss.partial.key-value`\" />\n","comments":"","x":1546.9880065917969,"y":1074.2144198417664,"z":"58ac4a51.14cfa4","wires":[]},{"id":"60f9abd6.9b1864","type":"set","name":"set tmp.final.key-value NULL","xml":"<set>\n<parameter name='tmp.final.key-value' value=\"\" />\n","comments":"","x":788.285774230957,"y":695.3572058677673,"z":"58ac4a51.14cfa4","wires":[]},{"id":"bf20cb6a.689cc8","type":"set","name":"set tmp.getPlanTopologyResponse.key-value-format","xml":"<set>\n<parameter name='tmp.getPlanTopologyResponse.key-value-format' \n\tvalue='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyValueFormat`' />\n","comments":"","x":858.9999923706055,"y":598.7500195503235,"z":"58ac4a51.14cfa4","wires":[]},{"id":"ee7b415f.68d5","type":"execute","name":"replace ${ with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.split.key-value-format[$split-index]`\" />\n\t<parameter name=\"target\" value=\"${\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.split-value\"/>\n","comments":"","outputs":1,"x":1118.0000076293945,"y":747.5000290870667,"z":"58ac4a51.14cfa4","wires":[[]]},{"id":"98cc0ef6.2af94","type":"execute","name":"replace } with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.split-value`\" />\n\t<parameter name=\"target\" value=\"}\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.ss.split-value\"/>\n","comments":"","outputs":1,"x":1115.500015258789,"y":791.2500309944153,"z":"58ac4a51.14cfa4","wires":[[]]},{"id":"2d190b10.073a64","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1143.6666564941406,"y":891.2500944137573,"z":"58ac4a51.14cfa4","wires":[["6595219f.ab227","85e1b3d.faf545"]]},{"id":"6595219f.ab227","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1465.4166564941406,"y":934.7500982284546,"z":"58ac4a51.14cfa4","wires":[["5a38343a.825c9c"]]},{"id":"5a38343a.825c9c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1704.1666641235352,"y":934.5000982284546,"z":"58ac4a51.14cfa4","wires":[["83308cd8.3dce"]]},{"id":"59c5ed43.c15bb4","type":"set","name":"set tmp.ss.partial.key-value","xml":"<set>\n<parameter name='tmp.ss.partial.key-value' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2700.750030517578,"y":979.8333764076233,"z":"58ac4a51.14cfa4","wires":[]},{"id":"83308cd8.3dce","type":"for","name":"for kidx in resource-key_length","xml":"<for index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param-index].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1921.9166564941406,"y":933.7500371932983,"z":"58ac4a51.14cfa4","wires":[["56ff67f7.37df58","fcb1624d.05791"]]},{"id":"56ff67f7.37df58","type":"set","name":"set tmp.ss.resource-key.name","xml":"<set>\n<parameter name='tmp.ss.resource-key.name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`' />\n","comments":"","x":2213.416778564453,"y":933.7500643730164,"z":"58ac4a51.14cfa4","wires":[]},{"id":"fcb1624d.05791","type":"switchNode","name":"switch: split-value == resource-key.name","xml":"<switch test='`$tmp.ss.split-value == $tmp.ss.resource-key.name`'>\n","comments":"","outputs":1,"x":2244.6666564941406,"y":980.5000371932983,"z":"58ac4a51.14cfa4","wires":[["a79fe216.cb8bd"]]},{"id":"a79fe216.cb8bd","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2495,"y":980.0833649635315,"z":"58ac4a51.14cfa4","wires":[["59c5ed43.c15bb4"]]},{"id":"98155a12.d97fc8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss.eipam.log' />\n","comments":"","outputs":1,"x":403.19444274902344,"y":1307.6388483047485,"z":"58ac4a51.14cfa4","wires":[[]]},{"id":"ce214f8a.35d6c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'SS: tmp.ss.split-value: ' + $tmp.ss.split-value`\"/>\n","comments":"","outputs":1,"x":1090.4166564941406,"y":838.3333268165588,"z":"58ac4a51.14cfa4","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-name.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-generate-name.json
new file mode 100644 (file)
index 0000000..4033111
--- /dev/null
@@ -0,0 +1,2072 @@
+[\r
+    {\r
+        "id": "83c4c357.9dc39",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 130,\r
+        "y": 90,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "9604180f.cb4db8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9604180f.cb4db8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 388,\r
+        "y": 90,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "af8f1e4c.cfc74"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "af8f1e4c.cfc74",\r
+        "type": "method",\r
+        "name": "self-serve-generate-name",\r
+        "xml": "<method rpc='self-serve-generate-name' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 693,\r
+        "y": 90,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "2086f0e1.00b83"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2086f0e1.00b83",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 192,\r
+        "y": 176,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "62037e9a.ca2458",\r
+                "b9bbc864.527688",\r
+                "3b7aed1.23a8c12",\r
+                "60e850da.d148d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f59e3ac.5bbea48",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',}' />\n   <parameter name='replacement' value='}' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1422,\r
+        "y": 915,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "62037e9a.ca2458",\r
+        "type": "set",\r
+        "name": "set capability-name",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value='{&quot;elements&quot;:[' />\n",\r
+        "comments": "",\r
+        "x": 391,\r
+        "y": 177,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b9bbc864.527688",\r
+        "type": "call",\r
+        "name": "call capability-param-resolution",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 429,\r
+        "y": 242,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "9a7984f8.d045a",\r
+                "a106fa43.728e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a7d01c46.7ed298",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 731.5,\r
+        "y": 452,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "79cbdffb.5625c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "79cbdffb.5625c",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961.5,\r
+        "y": 452,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "b56a34bf.677dd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b56a34bf.677dd",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1146.5,\r
+        "y": 452,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "6f944674.7628e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f2156d5.7eee6",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1391.5,\r
+        "y": 716,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "605bf355.cd218c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a7984f8.d045a",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 652,\r
+        "y": 210,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "81307ed2.8a94a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a106fa43.728e6",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 661,\r
+        "y": 276,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "81307ed2.8a94a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "81307ed2.8a94a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from capability-param-resolution\" />\n",\r
+        "comments": "",\r
+        "x": 854,\r
+        "y": 210,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8477c998.03573",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name=\"tmp.naming-data-payload\" value=\"`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`\"/>",\r
+        "comments": "",\r
+        "x": 1994,\r
+        "y": 714,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6f944674.7628e",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 726,\r
+        "y": 524,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "acd997c.8f22fe8",\r
+                "19f72049.c5871"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f3fa18cc.0c1d8",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '{'`\" />",\r
+        "comments": "",\r
+        "x": 1389,\r
+        "y": 639,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3ee20a3c.f8edd6",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '},'`\" />",\r
+        "comments": "",\r
+        "x": 1389,\r
+        "y": 778,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "69cbbbed.9fa5e4",\r
+        "type": "set",\r
+        "name": "set close payload list",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + ']}'`\" />",\r
+        "comments": "",\r
+        "x": 1395,\r
+        "y": 843,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e881059.2f2cd8",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',]' />\n   <parameter name='replacement' value=']' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1425,\r
+        "y": 969,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea1ca046.5e2668",\r
+        "type": "execute",\r
+        "name": "execute NameGenerationNode-unassign",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.prov.namegeneration.node.UnAssignNameNode' method='process'>\n   <parameter name='payload' value='`$tmp.naming-data-payload`' />\n   <parameter name=\"prifix\" value=\"nameGenResponse\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1451,\r
+        "y": 1026,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "eee95f1a.f9e658",\r
+                "c109cce2.3819c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eee95f1a.f9e658",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1726,\r
+        "y": 976,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1f694574.fea8db"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21b3a902.2a28e6",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from NameGenerationNode Unassign\" />\n",\r
+        "comments": "",\r
+        "x": 2091,\r
+        "y": 1076,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c109cce2.3819c8",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1731,\r
+        "y": 1075,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1f694574.fea8db"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1f694574.fea8db",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1889,\r
+        "y": 1020,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "cf5a56b9.ac4db",\r
+                "21b3a902.2a28e6"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cf5a56b9.ac4db",\r
+        "type": "set",\r
+        "name": "set status as FAILED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />",\r
+        "comments": "",\r
+        "x": 2105,\r
+        "y": 967,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "acd997c.8f22fe8",\r
+        "type": "switchNode",\r
+        "name": "switch capability action unassign",\r
+        "xml": "<switch test=\"`$ss.capability-action == 'unassign'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 972,\r
+        "y": 580,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "e07fb5f3.783d08"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e07fb5f3.783d08",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1180,\r
+        "y": 580,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "f1c3c9fd.f1c5a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "19f72049.c5871",\r
+        "type": "switchNode",\r
+        "name": "switch capability action assign",\r
+        "xml": "<switch test=\"`$ss.capability-action == 'assign'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 960,\r
+        "y": 1796,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1345f4df.4b6d6b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1345f4df.4b6d6b",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1189,\r
+        "y": 1796,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "55135596.9d3dbc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1c3375c5.7f4eb2",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1637,\r
+        "y": 1271,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "e358340b.c7c068"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "77b166f5.05823",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1840,\r
+        "y": 1489,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "88f003e2.c6bad"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88f003e2.c6bad",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2050,\r
+        "y": 1489,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "95192879.db03b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95192879.db03b",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' value=\"`$jsonContextPrefix.elements[$n].resource-value`\" />\n",\r
+        "comments": "",\r
+        "x": 2246.5,\r
+        "y": 1490,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fa36f91.4e88208",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"nameGenResponse.response-payload\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1406,\r
+        "y": 1174,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c2ddcd0.83c2b4",\r
+        "type": "for",\r
+        "name": "for response elements",\r
+        "xml": "<for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1399,\r
+        "y": 1270,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1c3375c5.7f4eb2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e358340b.c7c068",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1941,\r
+        "y": 1271,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "4de47180.92ccc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4de47180.92ccc",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2181,\r
+        "y": 1270,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "f9db83bf.c14658"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6382d7ef.87d61",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1848,\r
+        "y": 1341,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "54d8508a.81b1b8",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-split-1",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1863,\r
+        "y": 1424,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9db83bf.c14658",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1632,\r
+        "y": 1341,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "6382d7ef.87d61",\r
+                "54d8508a.81b1b8",\r
+                "77b166f5.05823"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f1c3c9fd.f1c5a",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1182,\r
+        "y": 642,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "f3fa18cc.0c1d8",\r
+                "4f2156d5.7eee6",\r
+                "3ee20a3c.f8edd6",\r
+                "69cbbbed.9fa5e4",\r
+                "f59e3ac.5bbea48",\r
+                "ea1ca046.5e2668",\r
+                "fa36f91.4e88208",\r
+                "d9e65974.b749d8",\r
+                "3c2ddcd0.83c2b4",\r
+                "3e881059.2f2cd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d9e65974.b749d8",\r
+        "type": "set",\r
+        "name": "set status as DELETED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='DELETED' />",\r
+        "comments": "",\r
+        "x": 1404,\r
+        "y": 1224,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ead23b8b.faf658",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',}' />\n   <parameter name='replacement' value='}' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1435,\r
+        "y": 2155,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "47f1f7bb.12786",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1404.5,\r
+        "y": 1956,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "9a68b04e.73523"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9a68b04e.73523",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name=\"tmp.naming-data-payload\" value=\"`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`\"/>",\r
+        "comments": "",\r
+        "x": 1675,\r
+        "y": 1957,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "fe45dbf4.302c3",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '{'`\" />",\r
+        "comments": "",\r
+        "x": 1402,\r
+        "y": 1879,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3b628590.b42b3a",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '},'`\" />",\r
+        "comments": "",\r
+        "x": 1402,\r
+        "y": 2018,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "397bc60e.b881a2",\r
+        "type": "set",\r
+        "name": "set close payload list",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + ']}'`\" />",\r
+        "comments": "",\r
+        "x": 1408,\r
+        "y": 2083,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a2dff58c.13be1",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',]' />\n   <parameter name='replacement' value=']' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1438,\r
+        "y": 2209,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7262b464.b9e4ec",\r
+        "type": "execute",\r
+        "name": "execute NameGenerationNode-assign",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>\n   <parameter name='payload' value='`$tmp.naming-data-payload`' />\n   <parameter name=\"prifix\" value=\"nameGenResponse\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1464,\r
+        "y": 2266,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "f84348e6.228948",\r
+                "45baba32.3a97c4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f84348e6.228948",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1739,\r
+        "y": 2216,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "64e193dd.dfac0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "515ae124.29a79",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from NameGenerationNode Assign\" />\n",\r
+        "comments": "",\r
+        "x": 2104,\r
+        "y": 2316,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "45baba32.3a97c4",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1744,\r
+        "y": 2315,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "64e193dd.dfac0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "64e193dd.dfac0c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1902,\r
+        "y": 2260,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "169a3304.a1a2e5",\r
+                "515ae124.29a79"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "169a3304.a1a2e5",\r
+        "type": "set",\r
+        "name": "set status as FAILED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />",\r
+        "comments": "",\r
+        "x": 2118,\r
+        "y": 2207,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "228e3f19.57aaa8",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1650,\r
+        "y": 2511,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "60984fa4.b1e438"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fce4ad1.85e74c",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1853,\r
+        "y": 2729,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "cc8bc379.37b0b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cc8bc379.37b0b",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2063,\r
+        "y": 2729,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "29b45c41.435534"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "29b45c41.435534",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' value=\"`$jsonContextPrefix.elements[$n].resource-value`\" />\n",\r
+        "comments": "",\r
+        "x": 2259.5,\r
+        "y": 2730,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d9cbff6.ababf",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"nameGenResponse.response-payload\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1419,\r
+        "y": 2414,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7a82e27d.2c3424",\r
+        "type": "for",\r
+        "name": "for response elements",\r
+        "xml": "<for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1412,\r
+        "y": 2510,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "228e3f19.57aaa8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60984fa4.b1e438",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1954,\r
+        "y": 2511,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "a9536dd8.3e0148"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9536dd8.3e0148",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2194,\r
+        "y": 2510,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "eeae6477.d0694"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9658edf.b87da8",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1861,\r
+        "y": 2581,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "79a86e40.517d48",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-split-1",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1876,\r
+        "y": 2664,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "eeae6477.d0694",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1645,\r
+        "y": 2581,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "f9658edf.b87da8",\r
+                "79a86e40.517d48",\r
+                "7fce4ad1.85e74c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55135596.9d3dbc",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1195,\r
+        "y": 1882,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "fe45dbf4.302c3",\r
+                "47f1f7bb.12786",\r
+                "3b628590.b42b3a",\r
+                "397bc60e.b881a2",\r
+                "ead23b8b.faf658",\r
+                "7262b464.b9e4ec",\r
+                "1d9cbff6.ababf",\r
+                "7ff20590.e25864",\r
+                "7a82e27d.2c3424",\r
+                "a2dff58c.13be1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ff20590.e25864",\r
+        "type": "set",\r
+        "name": "set status as SUCCESS",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='SUCCESS' />",\r
+        "comments": "",\r
+        "x": 1417,\r
+        "y": 2464,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "605bf355.cd218c",\r
+        "type": "switchNode",\r
+        "name": "switch external-key",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name == 'external-key'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1630,\r
+        "y": 715,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1ac238ba.38c8cf"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ac238ba.38c8cf",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1814,\r
+        "y": 715,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "8477c998.03573"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ede9fa35.b00548",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',}' />\n   <parameter name='replacement' value='}' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1449,\r
+        "y": 3248,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "57b3571e.19cb88",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data",\r
+        "xml": "<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 758.5,\r
+        "y": 2785,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "7d63d6cd.c98e48"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7d63d6cd.c98e48",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 988.5,\r
+        "y": 2785,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "93dde06c.d3bc28"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "93dde06c.d3bc28",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1173.5,\r
+        "y": 2785,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "8d654101.f172b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ed0b2b5.e662b4",\r
+        "type": "for",\r
+        "name": "for vf-module-parameters",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1418.5,\r
+        "y": 3049,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "6b561ade.3e62fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b15b1561.90f45",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name=\"tmp.naming-data-payload\" value=\"`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`\"/>",\r
+        "comments": "",\r
+        "x": 2021,\r
+        "y": 3047,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8d654101.f172b",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 753,\r
+        "y": 2857,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "818b77b7.ae2798",\r
+                "2acf0683.7c50ba"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4c1ecc65.8266dc",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '{'`\" />",\r
+        "comments": "",\r
+        "x": 1416,\r
+        "y": 2972,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e850e38.1def12",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '},'`\" />",\r
+        "comments": "",\r
+        "x": 1416,\r
+        "y": 3111,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "35f073d1.ba7aa4",\r
+        "type": "set",\r
+        "name": "set close payload list",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + ']}'`\" />",\r
+        "comments": "",\r
+        "x": 1422,\r
+        "y": 3176,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "529fefee.dbc64",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',]' />\n   <parameter name='replacement' value=']' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1452,\r
+        "y": 3302,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6e69306.f9efc5",\r
+        "type": "execute",\r
+        "name": "execute NameGenerationNode-unassign",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.prov.namegeneration.node.UnAssignNameNode' method='process'>\n   <parameter name='payload' value='`$tmp.naming-data-payload`' />\n   <parameter name=\"prifix\" value=\"nameGenResponse\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1478,\r
+        "y": 3359,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "cd75df1e.730f",\r
+                "ed490565.9f3ba8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cd75df1e.730f",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1753,\r
+        "y": 3309,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "4cb7581c.cb3dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a53ab2d.04c074",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from NameGenerationNode Unassign\" />\n",\r
+        "comments": "",\r
+        "x": 2118,\r
+        "y": 3409,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ed490565.9f3ba8",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1758,\r
+        "y": 3408,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "4cb7581c.cb3dc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4cb7581c.cb3dc",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1916,\r
+        "y": 3353,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "23af7bb1.7f209c",\r
+                "4a53ab2d.04c074"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "23af7bb1.7f209c",\r
+        "type": "set",\r
+        "name": "set status as FAILED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />",\r
+        "comments": "",\r
+        "x": 2132,\r
+        "y": 3300,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "818b77b7.ae2798",\r
+        "type": "switchNode",\r
+        "name": "switch capability action unassign",\r
+        "xml": "<switch test=\"`$ss.capability-action == 'unassign'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 999,\r
+        "y": 2913,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "9881c026.6d7e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9881c026.6d7e",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1207,\r
+        "y": 2913,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "1538055c.946ffb"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2acf0683.7c50ba",\r
+        "type": "switchNode",\r
+        "name": "switch capability action assign",\r
+        "xml": "<switch test=\"`$ss.capability-action == 'assign'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 987,\r
+        "y": 4129,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "3f383b83.fe4da4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3f383b83.fe4da4",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1216,\r
+        "y": 4129,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "c01355fc.047ae8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55f1fd23.af2894",\r
+        "type": "for",\r
+        "name": "for vf-module-parameters",\r
+        "xml": "<for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1664,\r
+        "y": 3604,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "cdf4a4f1.7cbd5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5291bedf.b4c34",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1867,\r
+        "y": 3822,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "2e4a7581.ea6382"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2e4a7581.ea6382",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2077,\r
+        "y": 3822,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "4a99e293.704f1c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4a99e293.704f1c",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' value=\"`$jsonContextPrefix.elements[$n].resource-value`\" />\n",\r
+        "comments": "",\r
+        "x": 2273.5,\r
+        "y": 3823,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d90cbda1.ab8598",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"nameGenResponse.response-payload\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1433,\r
+        "y": 3507,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d6564825.875ba8",\r
+        "type": "for",\r
+        "name": "for response elements",\r
+        "xml": "<for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1426,\r
+        "y": 3603,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "55f1fd23.af2894"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "cdf4a4f1.7cbd5",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1968,\r
+        "y": 3604,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "80b3324.fa11ed"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "80b3324.fa11ed",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2208,\r
+        "y": 3603,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "7fc56707.0572e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b215066e.bf6d78",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1875,\r
+        "y": 3674,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "79e3e1e0.edca3",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-split-1",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1890,\r
+        "y": 3757,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7fc56707.0572e8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1659,\r
+        "y": 3674,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "b215066e.bf6d78",\r
+                "79e3e1e0.edca3",\r
+                "5291bedf.b4c34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1538055c.946ffb",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1209,\r
+        "y": 2975,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "4c1ecc65.8266dc",\r
+                "7ed0b2b5.e662b4",\r
+                "3e850e38.1def12",\r
+                "35f073d1.ba7aa4",\r
+                "ede9fa35.b00548",\r
+                "6e69306.f9efc5",\r
+                "d90cbda1.ab8598",\r
+                "1484c014.0b63d8",\r
+                "d6564825.875ba8",\r
+                "529fefee.dbc64"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1484c014.0b63d8",\r
+        "type": "set",\r
+        "name": "set status as DELETED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='DELETED' />",\r
+        "comments": "",\r
+        "x": 1431,\r
+        "y": 3557,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "cc07bd7d.2ebad8",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',}' />\n   <parameter name='replacement' value='}' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1462,\r
+        "y": 4488,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "af1739a6.c3e33",\r
+        "type": "for",\r
+        "name": "for vf-module-parameters",\r
+        "xml": "<for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1431.5,\r
+        "y": 4289,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "7f75e4e.daf2d9c",\r
+                "4f414ac6.1c4adc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f75e4e.daf2d9c",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name=\"tmp.naming-data-payload\" value=\"`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`\"/>",\r
+        "comments": "",\r
+        "x": 1702,\r
+        "y": 4290,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a230d379.a03f1",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '{'`\" />",\r
+        "comments": "",\r
+        "x": 1429,\r
+        "y": 4212,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c324f948.bab3c",\r
+        "type": "set",\r
+        "name": "set payload data",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + '},'`\" />",\r
+        "comments": "",\r
+        "x": 1429,\r
+        "y": 4351,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dd94b5e2.e4de4",\r
+        "type": "set",\r
+        "name": "set close payload list",\r
+        "xml": "<set>\n<parameter name='tmp.naming-data-payload' value=\"`$tmp.naming-data-payload + ']}'`\" />",\r
+        "comments": "",\r
+        "x": 1435,\r
+        "y": 4416,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "abbbbd7e.d06118",\r
+        "type": "execute",\r
+        "name": "execute replace extra comma",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\n   <parameter name='outputPath' value='tmp.naming-data-payload' />\n   <parameter name='source' value='`$tmp.naming-data-payload`' />\n   <parameter name='target' value=',]' />\n   <parameter name='replacement' value=']' />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1465,\r
+        "y": 4542,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe683bd5.6243a8",\r
+        "type": "execute",\r
+        "name": "execute NameGenerationNode-assign",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>\n   <parameter name='payload' value='`$tmp.naming-data-payload`' />\n   <parameter name=\"prifix\" value=\"nameGenResponse\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1491,\r
+        "y": 4599,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "91c16bd6.61a5c",\r
+                "146eff5.d60eb01"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "91c16bd6.61a5c",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1766,\r
+        "y": 4549,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "d4a5b4e0.8baeb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ff75d57.380c84",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from NameGenerationNode Assign\" />\n",\r
+        "comments": "",\r
+        "x": 2131,\r
+        "y": 4649,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "146eff5.d60eb01",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1771,\r
+        "y": 4648,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "d4a5b4e0.8baeb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4a5b4e0.8baeb8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1929,\r
+        "y": 4593,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "dc98c503.2f291",\r
+                "7ff75d57.380c84"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc98c503.2f291",\r
+        "type": "set",\r
+        "name": "set status as FAILED",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />",\r
+        "comments": "",\r
+        "x": 2145,\r
+        "y": 4540,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "37661303.714934",\r
+        "type": "for",\r
+        "name": "for vf-module-parameters",\r
+        "xml": "<for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1677,\r
+        "y": 4844,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "983598ab.10f78"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7f9e3fb.9e7de",\r
+        "type": "switchNode",\r
+        "name": "switch capability-name",\r
+        "xml": "<switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1880,\r
+        "y": 5062,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "3c1df4f4.c8cb54"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c1df4f4.c8cb54",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2090,\r
+        "y": 5062,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "55908959.6e6d7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "55908959.6e6d7",\r
+        "type": "set",\r
+        "name": "set set payload data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' value=\"`$jsonContextPrefix.elements[$n].resource-value`\" />\n",\r
+        "comments": "",\r
+        "x": 2286.5,\r
+        "y": 5063,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a7100ceb.e2c178",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"nameGenResponse.response-payload\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1446,\r
+        "y": 4747,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb6d80d4.d85da8",\r
+        "type": "for",\r
+        "name": "for response elements",\r
+        "xml": "<for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1439,\r
+        "y": 4843,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "37661303.714934"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "983598ab.10f78",\r
+        "type": "execute",\r
+        "name": "slistringUtils - check value for $",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1981,\r
+        "y": 4844,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "98402a17.631798"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "98402a17.631798",\r
+        "type": "outcomeTrue",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2221,\r
+        "y": 4843,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "320e20df.29f5d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d43b7f49.e6a1b8",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-data",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\n   <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' />\n   <parameter name='regex' value='\\$\\{' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1888,\r
+        "y": 4914,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4d03e536.108c3c",\r
+        "type": "execute",\r
+        "name": "split resource-resolution-split-1",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='s2' />\n   <parameter name='original_string' value='`$resource-resolution-split[1]`' />\n   <parameter name='regex' value='\\}' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1903,\r
+        "y": 4997,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "320e20df.29f5d8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1672,\r
+        "y": 4914,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "d43b7f49.e6a1b8",\r
+                "4d03e536.108c3c",\r
+                "e7f9e3fb.9e7de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c01355fc.047ae8",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1222,\r
+        "y": 4215,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "a230d379.a03f1",\r
+                "af1739a6.c3e33",\r
+                "c324f948.bab3c",\r
+                "dd94b5e2.e4de4",\r
+                "cc07bd7d.2ebad8",\r
+                "fe683bd5.6243a8",\r
+                "a7100ceb.e2c178",\r
+                "1ed9f122.3e69f7",\r
+                "eb6d80d4.d85da8",\r
+                "abbbbd7e.d06118"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1ed9f122.3e69f7",\r
+        "type": "set",\r
+        "name": "set status as SUCCESS",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='SUCCESS' />",\r
+        "comments": "",\r
+        "x": 1444,\r
+        "y": 4797,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6b561ade.3e62fc",\r
+        "type": "switchNode",\r
+        "name": "switch external-key",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name == 'external-key'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1657,\r
+        "y": 3048,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "ff11e5eb.0359"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ff11e5eb.0359",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1841,\r
+        "y": 3048,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "b15b1561.90f45"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b7aed1.23a8c12",\r
+        "type": "switchNode",\r
+        "name": "switch capability-type. vnf",\r
+        "xml": "<switch test=\"`$ss.capability-type == 'vnf'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 401,\r
+        "y": 347,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "833ca28a.1746b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "833ca28a.1746b8",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 573,\r
+        "y": 392,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "a7d01c46.7ed298"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "60e850da.d148d8",\r
+        "type": "switchNode",\r
+        "name": "switch capability-type vf-module",\r
+        "xml": "<switch test=\"`$ss.capability-type == 'vf-module'`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 507,\r
+        "y": 2647,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "eee0343f.f1beb8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eee0343f.f1beb8",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 664,\r
+        "y": 2707,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            [\r
+                "57b3571e.19cb88"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f414ac6.1c4adc",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\" /> \n<parameter name=\"level\" value=\"info\" /> \n<parameter name=\"field1\" value=\"`'AJJJ13' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name`\" />\n<parameter name=\"field2\" value=\"`'AJJJ14' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`\" />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1650,\r
+        "y": 4204,\r
+        "z": "d296ce47.7642e8",\r
+        "wires": [\r
+            []\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mac-address-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-mac-address-assign.json
new file mode 100755 (executable)
index 0000000..f750e77
--- /dev/null
@@ -0,0 +1,2368 @@
+[\r
+    {\r
+        "id": "7b3db2b.16a914c",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 111,\r
+        "y": 34,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "722a79fa.ee98a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "722a79fa.ee98a8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 369.9403991699219,\r
+        "y": 34.32145690917969,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "7bdb539a.4e997c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bdb539a.4e997c",\r
+        "type": "method",\r
+        "name": "method self-serve-mac-address-assign",\r
+        "xml": "<method rpc='self-serve-mac-address-assign' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 722,\r
+        "y": 35,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "b7d5ae1c.27c7f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7d5ae1c.27c7f",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 111,\r
+        "y": 89,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "f32b01d.959fe",\r
+                "188b9fef.4e6a1",\r
+                "5cb1f10c.2bf088",\r
+                "a0e7cbd7.aa0c78",\r
+                "81728a4c.575408",\r
+                "46b1ac07.04040c",\r
+                "48725b1e.f26bb4",\r
+                "e9c063b8.f3fb18",\r
+                "1e311aa8.b5db05"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ddda0b39.003b2",\r
+        "type": "comment",\r
+        "name": "Validate inputs",\r
+        "info": "ss.capability-action should be \"ASSIGN\" or \"\"UNASSIGN\"",\r
+        "comments": "",\r
+        "x": 240,\r
+        "y": 128,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e9c063b8.f3fb18",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-action (ASSIGN | UNASSIGN)",\r
+        "xml": "<switch test='`$ss.capability-action`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 332,\r
+        "y": 2079,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "22932efc.96ddd2",\r
+                "2bef6dfc.593592"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "22932efc.96ddd2",\r
+        "type": "outcome",\r
+        "name": "ASSIGN",\r
+        "xml": "<outcome value='ASSIGN'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 269.25006103515625,\r
+        "y": 2129.75,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "8b185ab9.cef45"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2bef6dfc.593592",\r
+        "type": "outcome",\r
+        "name": "UNASSIGN",\r
+        "xml": "<outcome value='UNASSIGN'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 277,\r
+        "y": 3187,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "c4cdc2fe.75772"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8b185ab9.cef45",\r
+        "type": "block",\r
+        "name": "block:atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 329,\r
+        "y": 2227,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "1cbf83ce.6fd96c",\r
+                "b2bdf447.c207c",\r
+                "964b8c29.bf00b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1cbf83ce.6fd96c",\r
+        "type": "get-resource",\r
+        "name": "get hostname from map table",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"select * FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE HOSTNAME= $tmp.hostname\" pfx='tmp.map'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 578,\r
+        "y": 2227,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "a2ca1b80.01b34"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b2bdf447.c207c",\r
+        "type": "switchNode",\r
+        "name": "switch hostname exists",\r
+        "xml": "<switch test=\"`$tmp.map.hostname`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 562,\r
+        "y": 2333,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "9c793e6f.08fbd8",\r
+                "7bd7486c.3fac4",\r
+                "7b3e1088.744e7",\r
+                "b37eb6ee.9d9b7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bd7486c.3fac4",\r
+        "type": "outcome",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 800.5,\r
+        "y": 2352,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6082ab09.7da05c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c793e6f.08fbd8",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 789.5,\r
+        "y": 2312,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6082ab09.7da05c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e3977c74.5a06d8",\r
+        "type": "get-resource",\r
+        "name": "get-resource MIN Val",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"SELECT MIN(pool.id) as pool_id, pool.mac_address FROM VPE_MAC_ADDRESS_POOL pool WHERE NOT EXISTS(SELECT ID FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map where pool.ID = map.ID)\" pfx='tmp.availid'>\n\n<!--\ntmp.availid.mac_address is the mac_address we need to have finally.\n-->\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1275,\r
+        "y": 2270,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "5b6e46a4.15d6c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7b3e1088.744e7",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.5,\r
+        "y": 2392,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "12f06794.3cccd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6082ab09.7da05c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1049.5,\r
+        "y": 2310,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "e3977c74.5a06d8",\r
+                "bbb30cb3.20aaf",\r
+                "5dde5db.d378da4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbb30cb3.20aaf",\r
+        "type": "save",\r
+        "name": "save",\r
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" \nresource=\"SQL\" \nkey=\"INSERT INTO VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING ( id , hostname , assigned_user, assigned_date ) VALUES ( $tmp.availid.pool-id , $tmp.hostname , 'SDNC' , NOW())\" \nforce='true' pfx='save_val'>\n\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1229.5,\r
+        "y": 2310,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "5b6e46a4.15d6c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "12f06794.3cccd",\r
+        "type": "get-resource",\r
+        "name": "get-Hostname : tmp.mac_address",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"SELECT pool.mac_address FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map, VPE_MAC_ADDRESS_POOL pool WHERE pool.ID = map.ID AND map.HOSTNAME = $tmp.hostname\" pfx=\"tmp.mac-address\">\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1047,\r
+        "y": 2392,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "4ecab657.7eb6b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b37eb6ee.9d9b7",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 780.5,\r
+        "y": 2272,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6082ab09.7da05c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5dde5db.d378da4",\r
+        "type": "set",\r
+        "name": "set tmp.mac_address",\r
+        "xml": "<set>\n<parameter name=\"tmp.mac-address.mac-address\" value=\"`$tmp.availid.mac-address`\" />\n",\r
+        "comments": "",\r
+        "x": 1276.5,\r
+        "y": 2350,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "67c352d4.f2ba3c",\r
+        "type": "comment",\r
+        "name": "SQL hostname and mac address",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 388.5,\r
+        "y": 2181,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4ecab657.7eb6b",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1280.5,\r
+        "y": 2392,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "53838908.a977d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5b6e46a4.15d6c8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1444.5,\r
+        "y": 2310,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "53838908.a977d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bac47969.c95e9",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='406' />\n<parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\n",\r
+        "comments": "",\r
+        "x": 1726.5,\r
+        "y": 2354,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "22640dee.10e3ca",\r
+        "type": "comment",\r
+        "name": "Call self-service-capability-param-resolution DG to resolve all resource-keys",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 423,\r
+        "y": 491,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f32b01d.959fe",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-name",\r
+        "xml": "<switch test=\"`$ss.capability-name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 277,\r
+        "y": 171,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "dea84652.e6b318",\r
+                "87691bd0.ee014",\r
+                "9100f4c8.68c2e8",\r
+                "c248349.697d948"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dea84652.e6b318",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 551,\r
+        "y": 144,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "b15ff9d7.9a3c1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "87691bd0.ee014",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 541,\r
+        "y": 184,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "b15ff9d7.9a3c1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9100f4c8.68c2e8",\r
+        "type": "other",\r
+        "name": "mac-address-assign ",\r
+        "xml": "<outcome value='mac-address-assign'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 583,\r
+        "y": 225,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6f33d7d2.1ff818"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1fcf9155.035647",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='ss.capability-name is not set' />\n",\r
+        "comments": "",\r
+        "x": 853,\r
+        "y": 180,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c248349.697d948",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 544,\r
+        "y": 104,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "b15ff9d7.9a3c1"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f33d7d2.1ff818",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: ss.capability-name is mac-address-assign\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 752,\r
+        "y": 225,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "188b9fef.4e6a1",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 235,\r
+        "y": 537,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "b6717fcb.f01288",\r
+                "bb06b386.8e2478",\r
+                "b95886d5.e932"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bb06b386.8e2478",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: call self-service-capability-param-resolution DG\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 262,\r
+        "y": 596,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6717fcb.f01288",\r
+        "type": "set",\r
+        "name": "set variables for calling capability-param-resolution",\r
+        "xml": "<set>\n<!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->",\r
+        "comments": "",\r
+        "x": 398.6904296875,\r
+        "y": 640.3095703125,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b95886d5.e932",\r
+        "type": "call",\r
+        "name": "call GR-API:self-serve-capability-param-resolution",\r
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 395.023681640625,\r
+        "y": 686.976318359375,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "553519e.fe13668",\r
+                "bdbbd9e5.28642"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "553519e.fe13668",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 709.7379760742188,\r
+        "y": 663.83349609375,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "ab23ec9f.544cd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bdbbd9e5.28642",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 713.0713259379067,\r
+        "y": 715.5001392364502,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6f606b3.379d2",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='402' />\n<parameter name='error-message' value='Failure calling self-service-capability-param-resolution' />\n",\r
+        "comments": "",\r
+        "x": 996,\r
+        "y": 686,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4a562b3.6cf2",\r
+        "type": "comment",\r
+        "name": "If MAC address assign was success, set output",\r
+        "info": "parameters.param.resource-resolution-data.status to SUCCESS \nor FAILED depending on the SqlResource outcome",\r
+        "comments": "",\r
+        "x": 641,\r
+        "y": 2447,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "964b8c29.bf00b8",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.mac_address",\r
+        "xml": "<switch test=\"`$tmp.mac-address.mac-address`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 568,\r
+        "y": 2497,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "36850663.0d746a",\r
+                "f93f2718.007a1",\r
+                "7e4aa79f.ee1fd8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "36850663.0d746a",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 765,\r
+        "y": 2495,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "75c48b23.e37de4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f93f2718.007a1",\r
+        "type": "outcome",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 776,\r
+        "y": 2535,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "75c48b23.e37de4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7e4aa79f.ee1fd8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 756,\r
+        "y": 2575,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "385bd99d.9d7cfe"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2ca1b80.01b34",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 778,\r
+        "y": 2227,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "1901da34.2587de"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e155c31.bc775c",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Unable to access VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\n",\r
+        "comments": "",\r
+        "x": 1056.5,\r
+        "y": 2272,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "7381c11d.1d7698",\r
+        "type": "comment",\r
+        "name": "Get next available ID",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1270,\r
+        "y": 2223,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "244fa4d9.2f420c",\r
+        "type": "comment",\r
+        "name": "Loop thru vf-module-params for first match with ss.capability-name",\r
+        "info": "Loop thru service-data.vnfs.vnf[].vnf-data.vf-modules.vf-module[].vf-module-data.vf-module-topology.vf-module-parameters.param_length \nto find the FIRST occurrence of resource-resolution-data.capability-name=$ss.capability-name",\r
+        "comments": "",\r
+        "x": 395,\r
+        "y": 811,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b6393e49.ffd1b8",\r
+        "type": "for",\r
+        "name": "for each vf-module-parameters",\r
+        "xml": "<for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 364,\r
+        "y": 953,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "ea03c473.c1c2f",\r
+                "42d7c2fc.34b0ec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42d7c2fc.34b0ec",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: vf-module-param-index\"/>\n<parameter name=\"field3\" value='`$vf-module-param-index`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 577,\r
+        "y": 953,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ea03c473.c1c2f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 346,\r
+        "y": 1002,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "df53b68b.6e9ab",\r
+                "14a66a1b.462eae"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5cb1f10c.2bf088",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 234,\r
+        "y": 857,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "7bcbb724.38cb58",\r
+                "b6393e49.ffd1b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7bcbb724.38cb58",\r
+        "type": "set",\r
+        "name": "set vf-module-parameters-length",\r
+        "xml": "<set>\n<parameter name='tmp.vf-module-parameters-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\n",\r
+        "comments": "",\r
+        "x": 371,\r
+        "y": 909,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "df53b68b.6e9ab",\r
+        "type": "set",\r
+        "name": "set vfModuleParamsCapabilityName",\r
+        "xml": "<set>\n<parameter name='vfModuleParamsCapabilityName' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.capability-name`'  />\n",\r
+        "comments": "",\r
+        "x": 458,\r
+        "y": 1045,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14a66a1b.462eae",\r
+        "type": "switchNode",\r
+        "name": "switch compare vfModuleParamsCapabilityName and ss.capability-name",\r
+        "xml": "<switch test=\"`$ss.capability-name == $vfModuleParamsCapabilityName`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 569,\r
+        "y": 1091,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "8667f599.216ea",\r
+                "dd592add.a79168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a0e7cbd7.aa0c78",\r
+        "type": "execute",\r
+        "name": "printContext",\r
+        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/self-serv-mac-address-assign.log' />\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 165,\r
+        "y": 3748,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "81728a4c.575408",\r
+        "type": "returnSuccess",\r
+        "name": "return success",\r
+        "xml": "<return status='success'>\n<parameter name=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`\" value='SUCCESS'  />",\r
+        "comments": "",\r
+        "x": 172,\r
+        "y": 3803,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f0f51d16.559f48",\r
+        "type": "comment",\r
+        "name": "Loop thru vf-module-params for first match with ss.capability-name",\r
+        "info": "Loop thru service-data.vnfs.vnf[].vnf-data.vf-modules.vf-module[].vf-module-data.vf-module-topology.vf-module-parameters.param_length \nto find the FIRST occurrence of resource-resolution-data.capability-name=$ss.capability-name",\r
+        "comments": "",\r
+        "x": 861,\r
+        "y": 1046,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "8667f599.216ea",\r
+        "type": "outcome",\r
+        "name": "outcome:ss.capability-name match",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 468,\r
+        "y": 1139,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "e1f12455.b89928"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dd592add.a79168",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 378,\r
+        "y": 1180,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "27d76d2.8fc6c12",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Found ss.capability-name MATCH\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 814,\r
+        "y": 1139,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1f12455.b89928",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 682,\r
+        "y": 1139,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "27d76d2.8fc6c12",\r
+                "89f1badd.aab03",\r
+                "2895f95.030ce86"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9e99981.6f75a",\r
+        "type": "comment",\r
+        "name": "Break the loop",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 704,\r
+        "y": 1233,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "89f1badd.aab03",\r
+        "type": "set",\r
+        "name": "set resource-resolution-data",\r
+        "xml": "<set>\n<parameter name='tmp.resource-resolution-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.`'  />\n",\r
+        "comments": "",\r
+        "x": 750,\r
+        "y": 1187,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "48725b1e.f26bb4",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 246,\r
+        "y": 1528,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "80868c75.dfbb6",\r
+                "c8049951.6c3498",\r
+                "489490ac.5987f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fe3507b.b7e70f8",\r
+        "type": "comment",\r
+        "name": "Resolve hostname",\r
+        "info": "service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters[$vf-module-params-index].param.resource-resolution-data.resource-key[$key-index].value \nwhere its corresponding resource-key[$key-index].name=vnf-name",\r
+        "comments": "",\r
+        "x": 234,\r
+        "y": 1484,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "80868c75.dfbb6",\r
+        "type": "set",\r
+        "name": "set resource-key-length",\r
+        "xml": "<set>\n<parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\n",\r
+        "comments": "",\r
+        "x": 320,\r
+        "y": 1574,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8049951.6c3498",\r
+        "type": "for",\r
+        "name": "for each resource-resolution-data.resource-key",\r
+        "xml": "<for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 393,\r
+        "y": 1619,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "f83cd8e.7e8a728",\r
+                "7f7a1b7b.df5804"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7f7a1b7b.df5804",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: key-index\"/>\n<parameter name=\"field3\" value='`$key-index`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 660,\r
+        "y": 1619,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f83cd8e.7e8a728",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 323,\r
+        "y": 1668,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "76d2d19d.4c1f68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76d2d19d.4c1f68",\r
+        "type": "switchNode",\r
+        "name": "switch compare resource-key.name and \"vnf-name\"",\r
+        "xml": "<switch test=\"`$tmp.resource-resolution-data.resource-key[$key-index].name == 'vnf-name'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 492,\r
+        "y": 1715,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6f9eef6b.1b76b",\r
+                "abcbec45.dae73"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6f9eef6b.1b76b",\r
+        "type": "outcome",\r
+        "name": "outcome:found vnf-name resource key",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 469,\r
+        "y": 1762,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "ee3cf2a8.37536"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "abcbec45.dae73",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 369,\r
+        "y": 1803,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ee3cf2a8.37536",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 685,\r
+        "y": 1762,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6000bcf7.22066c",\r
+                "dc8d5223.f469d8",\r
+                "d14bad56.e3a97"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "6000bcf7.22066c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Found resource-resolution-data.name = vnf-name\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 817,\r
+        "y": 1762,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc8d5223.f469d8",\r
+        "type": "set",\r
+        "name": "set hostname",\r
+        "xml": "<set>\n<parameter name='tmp.hostname' value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'  />\n",\r
+        "comments": "",\r
+        "x": 711,\r
+        "y": 1810,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "489490ac.5987f",\r
+        "type": "switchNode",\r
+        "name": "switch validate resolved hostname",\r
+        "xml": "<switch test=\"`$tmp.hostname`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 363,\r
+        "y": 1921,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "4e567960.877258",\r
+                "9bac31a3.d241b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4e567960.877258",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 596,\r
+        "y": 1901,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "c1e2450e.9ab788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9bac31a3.d241b",\r
+        "type": "other",\r
+        "name": "blank",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 598,\r
+        "y": 1941,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "c1e2450e.9ab788"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1a5a80ca.68dab7",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='403' />\n<parameter name='error-message' value='hostname is not set' />\n",\r
+        "comments": "",\r
+        "x": 883,\r
+        "y": 1961,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a12685e3.9f9a98",\r
+        "type": "comment",\r
+        "name": "Set resource-resolution-data.status based on successful value assignement",\r
+        "info": "Set service-data.vnfs.vnf[].vnf-data.vf-modules.vf-module[].vf-module-data.vf-module-topology.vf-module-parameters.param.resource-resolution-data.status\n to SUCCESS or FAILED depending on the SqlResource outcome",\r
+        "comments": "",\r
+        "x": 1143,\r
+        "y": 2446,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2f76749a.2b83b4",\r
+        "type": "set",\r
+        "name": "set resource-resolution-data.status to SUCCESS",\r
+        "xml": "<set>\n<parameter name=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`\" value='SUCCESS'  />\n",\r
+        "comments": "",\r
+        "x": 1011,\r
+        "y": 3124,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3f416124.1e15c6",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='tmp.mac_address not set' />\n",\r
+        "comments": "",\r
+        "x": 1073,\r
+        "y": 2566,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "75c48b23.e37de4",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 930,\r
+        "y": 2527,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3f416124.1e15c6",\r
+                "1ff13884.4c2d17",\r
+                "f7617ae2.7df4d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3741be1b.15fc72",\r
+        "type": "comment",\r
+        "name": "Find vf-module-parameters.name = vmxvpfe_sriov41_*",\r
+        "info": "Once those hardcoded names are found, set assigned mac-address to .value \nfor those 4 .names to the resolved mac-address.  Don’t set status to success until .values are set. ",\r
+        "comments": "",\r
+        "x": 1008,\r
+        "y": 2728,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6998db76.d8596c",\r
+        "type": "comment",\r
+        "name": "Set address for vf-module-parameters to resolved MAC Address",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1038,\r
+        "y": 2685,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "385bd99d.9d7cfe",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 819,\r
+        "y": 2629,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "95d963db.2ca348",\r
+                "2f76749a.2b83b4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "95d963db.2ca348",\r
+        "type": "for",\r
+        "name": "for each vf-module-parameters",\r
+        "xml": "<for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 940,\r
+        "y": 2781,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "33aef370.8e201c",\r
+                "d8ab3c37.8ebc18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d8ab3c37.8ebc18",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: vf-module-param-index\"/>\n<parameter name=\"field3\" value='`$vf-module-param-index`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1152,\r
+        "y": 2781,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "33aef370.8e201c",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 924,\r
+        "y": 2830,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "e1067dc2.b7ce18"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1d349e54.52f84a",\r
+        "type": "set",\r
+        "name": "set mac-address-assign test data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value='5' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value='vmxvpfe_sriov41_0_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].name' value='vmxvpfe_sriov41_1_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[1].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].name' value='vmxvpfe_sriov41_3_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[2].resource-resolution-data.resource-key[0].value' value='vnfname' />\n\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].name' value='vmxvpfe_sriov41_4_port_mac' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].value' value='somevalue' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.capability-name' value='mac-address-assign' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key_length' value='1' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key[0].name' value='vnf-name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[3].resource-resolution-data.resource-key[0].value' value='vnfname' />",\r
+        "comments": "",\r
+        "x": 791,\r
+        "y": 574,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "df22b093.43a4d8",\r
+        "type": "comment",\r
+        "name": "Set temporary test data * TEST-ONLY *",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 806,\r
+        "y": 533,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a1c3aa1f.631768",\r
+        "type": "set",\r
+        "name": "set create-vpe-pool test data",\r
+        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].name' value='create-vpe-pool' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].value' value='somestatus' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.status' value='PENDING' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.capability-name' value='create-vpe-pool' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key_length' value='19' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[0].name' value='vpe_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[0].value' value='vpe_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[1].name' value='ipv4_oam_address' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[1].value' value='ipv4_oam_address' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[2].name' value='loopback0' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[2].value' value='loopback0' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[3].name' value='provisioning_status' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[3].value' value='provisioning_status' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[4].name' value='aic_site_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[4].value' value='aic_site_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[5].name' value='avaiablity_zone' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[5].value' value='avaiablity_zone' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[6].name' value='vlan_id_outer' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[6].value' value='vlan_id_outer' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[7].name' value='vendor' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[7].value' value='vendor' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[8].name' value='physical_intf_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[8].value' value='physical_intf_name' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[9].name' value='phyiscal_intf_speed' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[9].value' value='phyiscal_intf_speed' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[10].name' value='phyiscal_intf_units' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[10].value' value='phyiscal_intf_units' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[11].name' value='vpe_uuid' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[11].value' value='vpe_uuid' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[12].name' value='vpe_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[12].value' value='vpe_id' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[13].name' value='image_filename' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[13].value' value='image_filename' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[14].name' value='as_number' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[14].value' value='as_number' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[15].name' value='loopback5000' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[15].value' value='loopback5000' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[16].name' value='loopback10' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[16].value' value='loopback10' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[17].name' value='aic_version' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[17].value' value='aic_version' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[18].name' value='vpe_capacity' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[4].resource-resolution-data.resource-key[18].value' value='vpe_capacity' />\n",\r
+        "comments": "",\r
+        "x": 778,\r
+        "y": 615,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2895f95.030ce86",\r
+        "type": "break",\r
+        "name": "break",\r
+        "xml": "<break>\n",\r
+        "comments": "",\r
+        "x": 683,\r
+        "y": 1275,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d14bad56.e3a97",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: resolved hostname: \"/>\n<parameter name=\"field3\" value='`$tmp.hostname`'/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 689,\r
+        "y": 1856,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "46b1ac07.04040c",\r
+        "type": "switchNode",\r
+        "name": "switch ss.capability-action",\r
+        "xml": "<switch test=\"`$ss.capability-action`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 274,\r
+        "y": 290,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "fa52f336.c892e8",\r
+                "4524de5f.8c7d28",\r
+                "270b2726.356e6",\r
+                "74e5990a.ea8258",\r
+                "1cf1b5aa.7b40da"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fa52f336.c892e8",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 540,\r
+        "y": 273,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "4524de5f.8c7d28",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 547,\r
+        "y": 313,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "dfd0d6f3.9529f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "270b2726.356e6",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 537,\r
+        "y": 353,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "74e5990a.ea8258",\r
+        "type": "other",\r
+        "name": "ASSIGN ",\r
+        "xml": "<outcome value='ASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 543,\r
+        "y": 394,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "11245c61.36b96c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e9d93e1a.8dbad8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='ss.capability-action is not set' />\n",\r
+        "comments": "",\r
+        "x": 863,\r
+        "y": 349,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1cf1b5aa.7b40da",\r
+        "type": "other",\r
+        "name": "UNASSIGN ",\r
+        "xml": "<outcome value='UNASSIGN'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 551,\r
+        "y": 437,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "204b47e4.6ce83"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "11245c61.36b96c",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: ss.capability-action is ASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 747,\r
+        "y": 394,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "204b47e4.6ce83",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: ss.capability-action is UNASSIGN\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 748,\r
+        "y": 437,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "e1067dc2.b7ce18",\r
+        "type": "switchNode",\r
+        "name": "switch vf-module-parameters.param.name",\r
+        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].name`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1073,\r
+        "y": 2881,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3ab7fa6a.76762e",\r
+                "2837aaed.d6930e",\r
+                "db0bc1db.6591e8",\r
+                "2928eec7.a6840a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3ab7fa6a.76762e",\r
+        "type": "other",\r
+        "name": "vmxvpfe_sriov41_0_port_mac",\r
+        "xml": "<outcome value='vmxvpfe_sriov41_0_port_mac'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1102,\r
+        "y": 2929,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3e244c5c.acd454"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2837aaed.d6930e",\r
+        "type": "other",\r
+        "name": "vmxvpfe_sriov41_1_port_mac",\r
+        "xml": "<outcome value='vmxvpfe_sriov41_1_port_mac'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1102,\r
+        "y": 2975,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3e244c5c.acd454"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db0bc1db.6591e8",\r
+        "type": "other",\r
+        "name": "vmxvpfe_sriov41_3_port_mac",\r
+        "xml": "<outcome value='vmxvpfe_sriov41_3_port_mac'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1101,\r
+        "y": 3020,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3e244c5c.acd454"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2928eec7.a6840a",\r
+        "type": "other",\r
+        "name": "vmxvpfe_sriov41_4_port_mac",\r
+        "xml": "<outcome value='vmxvpfe_sriov41_4_port_mac'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1099,\r
+        "y": 3066,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3e244c5c.acd454"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3e244c5c.acd454",\r
+        "type": "set",\r
+        "name": "set vf-module-parameters.param.value to assigned mac address",\r
+        "xml": "<set>\n<parameter name=\"`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].value`\" value=\"`$tmp.mac-address.mac-address`\"  />\n",\r
+        "comments": "",\r
+        "x": 1508,\r
+        "y": 2993,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3896f610.780a82",\r
+        "type": "delete",\r
+        "name": "delete",\r
+        "xml": "<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey='DELETE from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE hostname = $tmp.hostname'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 762,\r
+        "y": 3488,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "41e3c659.c4bda8",\r
+                "14d1b5c.99457ca"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c4cdc2fe.75772",\r
+        "type": "block",\r
+        "name": "block:atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 318,\r
+        "y": 3280,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "52060e3b.f84528",\r
+                "4b6a08ac.7e91d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "93e77d0e.b6347",\r
+        "type": "comment",\r
+        "name": "DELETE from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 475.5,\r
+        "y": 3239,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "52060e3b.f84528",\r
+        "type": "get-resource",\r
+        "name": "get hostname from map table",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \nkey=\"select * FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE HOSTNAME= $tmp.hostname\" pfx='tmp.map'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 406,\r
+        "y": 3323,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "5011ad08.9c6f44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5011ad08.9c6f44",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 606,\r
+        "y": 3323,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "66a0310.f5e39d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4b6a08ac.7e91d8",\r
+        "type": "switchNode",\r
+        "name": "switch hostname exists",\r
+        "xml": "<switch test=\"`$tmp.map.hostname`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 390,\r
+        "y": 3428,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "88f047ec.35cd08",\r
+                "e7acab38.93eee",\r
+                "62ed770e.70ae2",\r
+                "76caa25e.72ecdc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "76caa25e.72ecdc",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 608.5,\r
+        "y": 3368,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "66a0310.f5e39d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "88f047ec.35cd08",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value=''>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 617.5,\r
+        "y": 3408,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "66a0310.f5e39d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e7acab38.93eee",\r
+        "type": "outcome",\r
+        "name": "outcome Null",\r
+        "xml": "<outcome value='null'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 628.5,\r
+        "y": 3448,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "66a0310.f5e39d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "62ed770e.70ae2",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 608.5,\r
+        "y": 3488,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3896f610.780a82"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b6bba451.a5d3e8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\n",\r
+        "comments": "",\r
+        "x": 909,\r
+        "y": 3389,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "e1cf1dc7.b690f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932,\r
+        "y": 3552,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "96370836.88ef9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "14d1b5c.99457ca",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 891,\r
+        "y": 3511,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "e1cf1dc7.b690f"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "41e3c659.c4bda8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 892,\r
+        "y": 3451,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "2c07581.42c3228"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "acb31915.6f33c8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='405' />\n<parameter name='error-message' value='Failure deleting from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\n",\r
+        "comments": "",\r
+        "x": 1173,\r
+        "y": 3493,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "96370836.88ef9",\r
+        "type": "for",\r
+        "name": "for each resource-resolution-data.resource-key",\r
+        "xml": "<for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1089,\r
+        "y": 3599,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "74a2b3b3.a1c03c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "74a2b3b3.a1c03c",\r
+        "type": "set",\r
+        "name": "set vf-module-parameters.param.value to assigned mac address",\r
+        "xml": "<set>\n<parameter name=\"`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`\" value=\"DELETED\"  />\n",\r
+        "comments": "",\r
+        "x": 1192,\r
+        "y": 3645,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "590fe198.9154e8",\r
+        "type": "comment",\r
+        "name": "Check that resource-resolution-data.status is PENDING",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 353,\r
+        "y": 1343,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b15ff9d7.9a3c1",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 696,\r
+        "y": 143,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "4826c96c.1ff9a",\r
+                "1fcf9155.035647"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4826c96c.1ff9a",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: ss.capability-name is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836,\r
+        "y": 102,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "9c475485.4de01",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 877,\r
+        "y": 140,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f3b2c664.2dc58",\r
+        "type": "comment",\r
+        "name": "resrouce-resolution-data is not yet set",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 1135,\r
+        "y": 138,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "dfd0d6f3.9529f",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 696,\r
+        "y": 313,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "3c1237ec.e8508",\r
+                "e9d93e1a.8dbad8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3c1237ec.e8508",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: ss.capability-action is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 840,\r
+        "y": 271,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "f23ac007.f78d8",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='resource-resolution-data.status' value='FAILURE'  />",\r
+        "comments": "",\r
+        "x": 881,\r
+        "y": 309,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ab23ec9f.544cd8",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 836,\r
+        "y": 664,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "bbb25e19.75576",\r
+                "b6f606b3.379d2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "bbb25e19.75576",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Failure calling self-service-capability-param-resolution\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 980,\r
+        "y": 643,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "ee559ebe.72a07",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: hostname is not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 864,\r
+        "y": 1879,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "54db7014.b4c078",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 906,\r
+        "y": 1918,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c1e2450e.9ab788",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 728,\r
+        "y": 1918,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "ee559ebe.72a07",\r
+                "54db7014.b4c078",\r
+                "1a5a80ca.68dab7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1e311aa8.b5db05",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.resource-resolution-data = PENDING",\r
+        "xml": "<switch test=\"`$tmp.resource-resolution-data.status == 'PENDING'`\">",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 345,\r
+        "y": 1401,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "6c8d8704.121a98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "df09c09a.47719",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 813,\r
+        "y": 1401,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "de049043.5ecd4",\r
+                "ae73d569.da404",\r
+                "6cc693a5.ea118c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "de049043.5ecd4",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 953,\r
+        "y": 1361,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "6cc693a5.ea118c",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 994,\r
+        "y": 1400,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ae73d569.da404",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n<parameter name='error-code' value='401' />\n<parameter name='error-message' value='reseouce-resolution-data.status is not PENDING' />\n",\r
+        "comments": "",\r
+        "x": 970,\r
+        "y": 1439,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "6c8d8704.121a98",\r
+        "type": "outcomeFalse",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 649,\r
+        "y": 1401,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "df09c09a.47719"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f75c37d8.0bea6",\r
+        "type": "comment",\r
+        "name": "Assign / Unassign MAC address in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING",\r
+        "info": "",\r
+        "comments": "",\r
+        "x": 437,\r
+        "y": 2028,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1b82acb5.6564eb",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1708,\r
+        "y": 2271,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "13a4606e.a26088",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1749,\r
+        "y": 2311,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "53838908.a977d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1571,\r
+        "y": 2310,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "1b82acb5.6564eb",\r
+                "13a4606e.a26088",\r
+                "bac47969.c95e9"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f7617ae2.7df4d8",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1099,\r
+        "y": 2527,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1ff13884.4c2d17",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: tmp.mac_address not set\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1058,\r
+        "y": 2488,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "bd286ea.4da711",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 893,\r
+        "y": 3309,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "8948f92d.f38658",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 934,\r
+        "y": 3348,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "66a0310.f5e39d",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 764,\r
+        "y": 3377,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "bd286ea.4da711",\r
+                "8948f92d.f38658",\r
+                "b6bba451.a5d3e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f47c4e2d.cdfed",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Failure deleting from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1155,\r
+        "y": 3412,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "7692b063.86ed98",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1196,\r
+        "y": 3451,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2c07581.42c3228",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1024,\r
+        "y": 3451,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "7692b063.86ed98",\r
+                "f47c4e2d.cdfed",\r
+                "acb31915.6f33c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1901da34.2587de",\r
+        "type": "block",\r
+        "name": "block",\r
+        "xml": "<block>\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 902,\r
+        "y": 2227,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            [\r
+                "2501b87c.cdcb38",\r
+                "350b82ae.f02db6",\r
+                "3e155c31.bc775c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2501b87c.cdcb38",\r
+        "type": "record",\r
+        "name": "record",\r
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"self-serve-mac-address-assign: Unable to access VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING\"/>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1038,\r
+        "y": 2188,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "350b82ae.f02db6",\r
+        "type": "set",\r
+        "name": "set status to FAILED",\r
+        "xml": "<set>\n<parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />",\r
+        "comments": "",\r
+        "x": 1080,\r
+        "y": 2227,\r
+        "z": "79c4dcde.151f74",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.json
new file mode 100644 (file)
index 0000000..0f08cf5
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"c4d98d57.5eaa","type":"dgstart","name":"DGSTART","outputs":1,"x":123.75,"y":31.25,"z":"d1ebb284.fbe55","wires":[["4d9508e5.5c5ce8"]]},{"id":"125acdba.93a952","type":"method","name":"method self-serve-unresolved-composite-data","xml":"<method rpc='self-serve-unresolved-composite-data' mode='sync'>\n","comments":"","outputs":1,"x":259.5357208251953,"y":88.3769884109497,"z":"d1ebb284.fbe55","wires":[["f5bcc04e.ca7ac"]]},{"id":"f5bcc04e.ca7ac","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":204.4999885559082,"y":153.25003004074097,"z":"d1ebb284.fbe55","wires":[["fb381734.9cb508","66c7bc67.056a74","bd9853b2.20cca","461e6611.b6aeb8"]]},{"id":"4d9508e5.5c5ce8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":396.6071472167969,"y":30.678566932678223,"z":"d1ebb284.fbe55","wires":[["125acdba.93a952"]]},{"id":"fb381734.9cb508","type":"switchNode","name":"switch: ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":462.9285545349121,"y":153.57142782211304,"z":"d1ebb284.fbe55","wires":[["ba9591dd.f019e"]]},{"id":"ba9591dd.f019e","type":"outcome","name":"NULL","xml":"<outcome value=''>","outputs":1,"x":687.9285774230957,"y":154.07142639160156,"z":"d1ebb284.fbe55","wires":[["5c6b2fb5.0487"]]},{"id":"5c6b2fb5.0487","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-name is null\" />\n","comments":"","x":847.8452491760254,"y":154.18252515792847,"z":"d1ebb284.fbe55","wires":[]},{"id":"66c7bc67.056a74","type":"switchNode","name":"switch: ss.capability-action","xml":"<switch test='`$ss.capability-action`'>\n","comments":"","outputs":1,"x":464.17857360839844,"y":203.5714282989502,"z":"d1ebb284.fbe55","wires":[["6e203304.a09bbc"]]},{"id":"6e203304.a09bbc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":687.6785697937012,"y":203.8214282989502,"z":"d1ebb284.fbe55","wires":[["1ba29e0b.c70212"]]},{"id":"1ba29e0b.c70212","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-action is null\" />\n","comments":"","x":847.5952415466309,"y":203.9325270652771,"z":"d1ebb284.fbe55","wires":[]},{"id":"a75f7611.54b5e8","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1191.8571395874023,"y":422.750039100647,"z":"d1ebb284.fbe55","wires":[]},{"id":"abddfc44.f59a2","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":902.0713653564453,"y":422.8215093612671,"z":"d1ebb284.fbe55","wires":[["c127a681.efaf98","a75f7611.54b5e8"]]},{"id":"c127a681.efaf98","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1203.8213653564453,"y":466.32151317596436,"z":"d1ebb284.fbe55","wires":[["e18ed568.3b3018"]]},{"id":"e18ed568.3b3018","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1442.5713729858398,"y":466.07151317596436,"z":"d1ebb284.fbe55","wires":[["d9a19f79.07d6d"]]},{"id":"7fbcb1b8.08ea5","type":"set","name":"set tmp.ss.composite","xml":"<set>\n<parameter name='tmp.ss.composite' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\n","comments":"","x":1820.500087738037,"y":465.6071786880493,"z":"d1ebb284.fbe55","wires":[]},{"id":"b3820bcc.e4a328","type":"execute","name":"replace [ in param[].value with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss.composite`\" />\n\t<parameter name=\"target\" value=\"[\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.ss.composite-0\"/>\n","comments":"","outputs":1,"x":494.8730049133301,"y":928.2658996582031,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"da5dabd3.0e0a28","type":"execute","name":"replace ] in param[].value with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss.composite-0`\" />\n\t<parameter name=\"target\" value=\"]\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.ss.composite-1\"/>\n","comments":"","outputs":1,"x":494.8730049133301,"y":968.2658996582031,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"ac7282f.bfbb08","type":"execute","name":"split , input=tmp.ss.composite-2, output=splits","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\n    <parameter name=\"original_string\" value=\"`$tmp.ss.composite-2`\" />\n\t<parameter name=\"regex\" value=\",\"/>\n\t<parameter name=\"ctx_memory_result_key\" value=\"splits\" />\n","comments":"","outputs":1,"x":536.9563484191895,"y":1097.9881687164307,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"9cb6a2e4.3d46f","type":"for","name":"for split-index in splits","xml":"<for index=\"split-index\" start=\"0\" end=\"`$splits_length`\">","comments":"","outputs":1,"x":463.62306213378906,"y":1186.0992221832275,"z":"d1ebb284.fbe55","wires":[["cb1cb330.6c8ea","ff9023bd.c2d2b","abbad41f.2a4dc8","4440d332.dd6aac","e67092db.2c994","b58b95cc.d8d288","8d4d20db.0044d"]]},{"id":"e3723eee.f336","type":"set","name":"set tmp.ss.final.resolved-value (end) = NULL","xml":"<set>\n<parameter name='tmp.ss.final.resolved-value' value=\"\" />\n<parameter name='tmp.ss.final.resolved-value.end' value=\"\" />\n\n","comments":"","x":529.5952644348145,"y":782.0992431640625,"z":"d1ebb284.fbe55","wires":[]},{"id":"4418320a.8cf3ec","type":"set","name":"set tmp.ss.final.resolved-value","xml":"<set>\n<parameter name='tmp.ss.final.resolved-value' \n\tvalue=\"`$tmp.ss.final.resolved-value + $tmp.ss.partial.resolved-value`\" />\n","comments":"","x":1129.5713005065918,"y":1718.6312065124512,"z":"d1ebb284.fbe55","wires":[]},{"id":"cb1cb330.6c8ea","type":"switchNode","name":"switch: split-index == 0","xml":"<switch test='`$split-index == 0`'>\n","comments":"","outputs":1,"x":726.5713996887207,"y":1719.059762954712,"z":"d1ebb284.fbe55","wires":[["ae95c6b8.e092f8","51fc0c9b.7e23f4"]]},{"id":"ae95c6b8.e092f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":923.2857246398926,"y":1719.059684753418,"z":"d1ebb284.fbe55","wires":[["4418320a.8cf3ec"]]},{"id":"51fc0c9b.7e23f4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":925.1427803039551,"y":1770.4882736206055,"z":"d1ebb284.fbe55","wires":[["b8ab18a4.aecb28"]]},{"id":"b8ab18a4.aecb28","type":"set","name":"set tmp.ss.final.resolved-value ,","xml":"<set>\n<parameter name='tmp.ss.final.resolved-value' \n\tvalue=\"`$tmp.ss.final.resolved-value + ',' + $tmp.ss.partial.resolved-value`\" />\n","comments":"","x":1137.1785469055176,"y":1771.9288549423218,"z":"d1ebb284.fbe55","wires":[]},{"id":"b393628e.7211c","type":"for","name":"for i in param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\">","comments":"","outputs":1,"x":1138.8572578430176,"y":1580.9644975662231,"z":"d1ebb284.fbe55","wires":[["646772a6.f2a91c","9cdb77cb.7ed498"]]},{"id":"c8ba3f96.05dd8","type":"set","name":"set tmp.ss.partial.resolved-value","xml":"<set>\n<parameter name='tmp.ss.partial.resolved-value' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\n","comments":"","x":2180.440731048584,"y":1621.7977981567383,"z":"d1ebb284.fbe55","wires":[]},{"id":"9cdb77cb.7ed498","type":"switchNode","name":"switch: tmp.ss.partial.composite-value  vs tmp.ss.param-name","xml":"<switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\n","comments":"","outputs":1,"x":1498.3572578430176,"y":1622.4644374847412,"z":"d1ebb284.fbe55","wires":[["90c18a2.a953c78"]]},{"id":"90c18a2.a953c78","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1813.6906471252441,"y":1622.0477514266968,"z":"d1ebb284.fbe55","wires":[["abdbcfcb.921af"]]},{"id":"3cc5d9a5.0eb3e6","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'SS: tmp.ss.composite-2: ' + $tmp.ss.composite-2`\"/>\n","comments":"","outputs":1,"x":417.92858505249023,"y":1053.476203918457,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"646772a6.f2a91c","type":"set","name":"set tmp.ss.param-name","xml":"<set>\n<parameter name='tmp.ss.param-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`' />\n","comments":"","x":1380.3572578430176,"y":1580.6430253982544,"z":"d1ebb284.fbe55","wires":[]},{"id":"ad4cfd0b.d672b","type":"execute","name":"trim","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\n    <parameter name=\"source\" value=\"`$tmp.ss.composite-1`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.ss.composite-2\"/>\n","comments":"","outputs":1,"x":416.67858505249023,"y":1010.0714807510376,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"abdbcfcb.921af","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1948.107234954834,"y":1622.393014907837,"z":"d1ebb284.fbe55","wires":[["c8ba3f96.05dd8","94ed095d.8a1368"]]},{"id":"94ed095d.8a1368","type":"break","name":"break","xml":"<break>\n","comments":"","x":2103.357234954834,"y":1663.6430139541626,"z":"d1ebb284.fbe55","wires":[]},{"id":"2dccf775.6c8f18","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":242.67858123779297,"y":781.8214797973633,"z":"d1ebb284.fbe55","wires":[["b3820bcc.e4a328","da5dabd3.0e0a28","ad4cfd0b.d672b","3cc5d9a5.0eb3e6","ac7282f.bfbb08","e3723eee.f336","9cb6a2e4.3d46f","2a9c6e9b.138ef2","3e5675f1.ea0eba","40099c0.838c864"]]},{"id":"2a9c6e9b.138ef2","type":"set","name":"concat tmp.ss.final.resolved-value.end","xml":"<set>\n<parameter name='tmp.ss.final.resolved-value' \n\tvalue='`$tmp.ss.final.resolved-value + $tmp.ss.final.resolved-value.end`' />\n\t\n","comments":"","x":523.2857704162598,"y":1867.5715646743774,"z":"d1ebb284.fbe55","wires":[]},{"id":"461e6611.b6aeb8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-composite.log' />\n","comments":"","outputs":1,"x":411.4285583496094,"y":561.0714292526245,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"ff9023bd.c2d2b","type":"execute","name":"trim to tmp.ss.trim","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\n    <parameter name=\"source\" value=\"`$splits[$split-index]`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.ss.trim\"/>","comments":"","outputs":1,"x":714.0000114440918,"y":1185.1429114341736,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"abbad41f.2a4dc8","type":"execute","name":"replace ${ with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss.trim`\" />\n\t<parameter name=\"target\" value=\"${\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.ss.trim-0\"/>\n","comments":"","outputs":1,"x":712.7500076293945,"y":1226.1429133415222,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"4440d332.dd6aac","type":"execute","name":"replace }  with \"\"","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss.trim-0`\" />\n\t<parameter name=\"target\" value=\"}\"/>\n\t<parameter name=\"replacement\" value=\"\"/>\n\t<parameter name=\"outputPath\" value=\"tmp.ss.trim-1\"/>\n","comments":"","outputs":1,"x":709.0000076293945,"y":1266.1429152488708,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"b58b95cc.d8d288","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"`'SS: tmp.ss.partial.composite-value: ' + $tmp.ss.partial.composite-value`\"/>\n","comments":"","outputs":1,"x":680.8056106567383,"y":1346.3532423973083,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"e67092db.2c994","type":"execute","name":"trim to tmp.ss.partial.composite-value","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\n    <parameter name=\"source\" value=\"`$tmp.ss.trim-1`\" />\n\t<parameter name=\"outputPath\" value=\"tmp.ss.partial.composite-value\"/>\n","comments":"","outputs":1,"x":777.055606842041,"y":1305.4485182762146,"z":"d1ebb284.fbe55","wires":[[]]},{"id":"3e5675f1.ea0eba","type":"execute","name":"tmp.ss.composite startsWith [","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$tmp.ss.composite`\" />\n\t<parameter name=\"target\" value=\"[\"/>\n","comments":"","outputs":1,"x":484.6785774230957,"y":876.0714721679688,"z":"d1ebb284.fbe55","wires":[["f17324ed.61c568"]]},{"id":"f17324ed.61c568","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":694.9285774230957,"y":876.3214721679688,"z":"d1ebb284.fbe55","wires":[["c18b2a23.3f59b8"]]},{"id":"c18b2a23.3f59b8","type":"set","name":"set tmp.ss.final.resolved-value (end) = [ ]","xml":"<set>\n<parameter name='tmp.ss.final.resolved-value' value=\"[\" />\n<parameter name='tmp.ss.final.resolved-value.end' value=\"]\" />\n","comments":"","x":948.1785774230957,"y":876.3214721679688,"z":"d1ebb284.fbe55","wires":[]},{"id":"a9a1d847.7acaf8","type":"set","name":"set param[].value = tmp.ss.final.resolved-value and status = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \n\tvalue='`$tmp.ss.final.resolved-value`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \n\tvalue='SUCCESS' />\t\n","comments":"","x":1556.5357818603516,"y":2404.822057723999,"z":"d1ebb284.fbe55","wires":[]},{"id":"bd9853b2.20cca","type":"switchNode","name":"switch: ss.capability-type","xml":"<switch test='`$ss.capability-type`'>\n","comments":"","outputs":1,"x":458.5357131958008,"y":254.28571319580078,"z":"d1ebb284.fbe55","wires":[["cadb73a8.8075e","f93f664.a242998","d9deb500.79c198"]]},{"id":"cadb73a8.8075e","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":688.0357093811035,"y":254.53571319580078,"z":"d1ebb284.fbe55","wires":[["fc445e27.e29c7"]]},{"id":"fc445e27.e29c7","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"ss.capability-type is null\" />\n","comments":"","x":841.9523811340332,"y":254.64681196212769,"z":"d1ebb284.fbe55","wires":[]},{"id":"f93f664.a242998","type":"outcome","name":"vnf","xml":"<outcome value='vnf'>","comments":"","outputs":1,"x":686.7857246398926,"y":326.78571796417236,"z":"d1ebb284.fbe55","wires":[["acd6b9b1.d8fcf8"]]},{"id":"d9deb500.79c198","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>","comments":"","outputs":1,"x":693.7857131958008,"y":423.03573513031006,"z":"d1ebb284.fbe55","wires":[["abddfc44.f59a2"]]},{"id":"a076f12f.91f12","type":"set","name":"set tmp.ss.param.capability-name","xml":"<set>\n<parameter name='tmp.ss.param.capability-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1189.2857360839844,"y":326.785719871521,"z":"d1ebb284.fbe55","wires":[]},{"id":"acd6b9b1.d8fcf8","type":"for","name":"for pidx in param_length","xml":"<for index=\"pidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\">","comments":"","outputs":1,"x":899.4999618530273,"y":326.8571901321411,"z":"d1ebb284.fbe55","wires":[["e802238f.8b245","a076f12f.91f12"]]},{"id":"e802238f.8b245","type":"switchNode","name":"switch: capability-name - ss vs param","xml":"<switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\n","comments":"","outputs":1,"x":1201.2499618530273,"y":370.3571939468384,"z":"d1ebb284.fbe55","wires":[["2aca4e1c.6f6122"]]},{"id":"2aca4e1c.6f6122","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1439.9999694824219,"y":370.1071939468384,"z":"d1ebb284.fbe55","wires":[["a83291f5.b56cf"]]},{"id":"d9a19f79.07d6d","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1592.2857284545898,"y":465.7857370376587,"z":"d1ebb284.fbe55","wires":[["7fbcb1b8.08ea5","9b78ea9b.98caf8"]]},{"id":"a83291f5.b56cf","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1591.7857131958008,"y":370.2857131958008,"z":"d1ebb284.fbe55","wires":[["e1948659.fa8808","9b78ea9b.98caf8"]]},{"id":"e1948659.fa8808","type":"set","name":"set tmp.ss.composite","xml":"<set>\n<parameter name='tmp.ss.composite' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value`' />\n","comments":"","x":1820.2857131958008,"y":370.2857131958008,"z":"d1ebb284.fbe55","wires":[]},{"id":"8d4d20db.0044d","type":"switchNode","name":"switch: ss.capability-type","xml":"<switch test='`$ss.capability-type`'>\n","comments":"","outputs":1,"x":736.5357093811035,"y":1453.0357580184937,"z":"d1ebb284.fbe55","wires":[["bd7d3608.3d5a08","4fa53f4c.f446c"]]},{"id":"4fa53f4c.f446c","type":"outcome","name":"vnf","xml":"<outcome value='vnf'>","comments":"","outputs":1,"x":946.0357246398926,"y":1452.5357847213745,"z":"d1ebb284.fbe55","wires":[["fa0a15ee.e4e5f8"]]},{"id":"bd7d3608.3d5a08","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>","comments":"","outputs":1,"x":950.5357246398926,"y":1581.2857866287231,"z":"d1ebb284.fbe55","wires":[["b393628e.7211c"]]},{"id":"fa0a15ee.e4e5f8","type":"for","name":"for i in param_length","xml":"<for index=\"i\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`\">","comments":"","outputs":1,"x":1136.5357093811035,"y":1452.5357580184937,"z":"d1ebb284.fbe55","wires":[["2bb57d6a.df9ac2","d5d6f7bc.599898"]]},{"id":"b09e8532.2c3028","type":"set","name":"set tmp.ss.partial.resolved-value","xml":"<set>\n<parameter name='tmp.ss.partial.resolved-value' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\n","comments":"","x":2178.11918258667,"y":1493.3690586090088,"z":"d1ebb284.fbe55","wires":[]},{"id":"d5d6f7bc.599898","type":"switchNode","name":"switch: tmp.ss.partial.composite-value  vs tmp.ss.param-name","xml":"<switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\n","comments":"","outputs":1,"x":1496.0357093811035,"y":1494.0356979370117,"z":"d1ebb284.fbe55","wires":[["66e00a78.a279a4"]]},{"id":"66e00a78.a279a4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1811.36909866333,"y":1493.6190118789673,"z":"d1ebb284.fbe55","wires":[["c0fdb200.2df4c"]]},{"id":"2bb57d6a.df9ac2","type":"set","name":"set tmp.ss.param-name","xml":"<set>\n<parameter name='tmp.ss.param-name' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`' />\n","comments":"","x":1378.0357093811035,"y":1452.214285850525,"z":"d1ebb284.fbe55","wires":[]},{"id":"c0fdb200.2df4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1945.78568649292,"y":1493.9642753601074,"z":"d1ebb284.fbe55","wires":[["b09e8532.2c3028","5ef90369.adcfec"]]},{"id":"5ef90369.adcfec","type":"break","name":"break","xml":"<break>\n","comments":"","x":2101.03568649292,"y":1535.214274406433,"z":"d1ebb284.fbe55","wires":[]},{"id":"40099c0.838c864","type":"switchNode","name":"switch: ss.capability-type","xml":"<switch test='`$ss.capability-type`'>\n","comments":"","outputs":1,"x":474.78570556640625,"y":2230.0359230041504,"z":"d1ebb284.fbe55","wires":[["e8cd3541.e0d898","8d194039.4ae3f"]]},{"id":"8d194039.4ae3f","type":"outcome","name":"vnf","xml":"<outcome value='vnf'>","comments":"","outputs":1,"x":704.5357131958008,"y":2093.5359230041504,"z":"d1ebb284.fbe55","wires":[["476988b5.1eda78"]]},{"id":"e8cd3541.e0d898","type":"outcome","name":"vf-module","xml":"<outcome value='vf-module'>","comments":"","outputs":1,"x":712.785758972168,"y":2354.2859230041504,"z":"d1ebb284.fbe55","wires":[["b8ab672c.b5d0c8"]]},{"id":"30c0bc99.74e354","type":"set","name":"set param[].value = tmp.ss.final.resolved-value, status = SUCCESS","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' \n\tvalue='`$tmp.ss.final.resolved-value`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' \n\tvalue='SUCCESS' />","comments":"","x":1522.2859191894531,"y":2143.5359230041504,"z":"d1ebb284.fbe55","wires":[]},{"id":"9b78ea9b.98caf8","type":"switchNode","name":"switch: tmp.ss.composite = NULL","xml":"<switch test=\"`$tmp.ss.composite == ''`\">\n","comments":"","outputs":1,"x":1858.0000305175781,"y":526.2500076293945,"z":"d1ebb284.fbe55","wires":[["6c456607.ed3258"]]},{"id":"6c456607.ed3258","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2070.500030517578,"y":526.7500076293945,"z":"d1ebb284.fbe55","wires":[["2dccf775.6c8f18"]]},{"id":"a0aff366.5f4c6","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1362.2500076293945,"y":2039.7502765655518,"z":"d1ebb284.fbe55","wires":[["5410e7be.6cfe48","43628404.33602c"]]},{"id":"476988b5.1eda78","type":"execute","name":"tmp.ss.final.resolved-value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$tmp.ss.final.resolved-value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n","comments":"","outputs":1,"x":953.5,"y":2094.25,"z":"d1ebb284.fbe55","wires":[["922483c5.cb6fa","373602ae.33609e"]]},{"id":"922483c5.cb6fa","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1188.750015258789,"y":2039.5000305175781,"z":"d1ebb284.fbe55","wires":[["a0aff366.5f4c6"]]},{"id":"43628404.33602c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`\" />\n","comments":"","x":1559.2500228881836,"y":2088.0000324249268,"z":"d1ebb284.fbe55","wires":[]},{"id":"5410e7be.6cfe48","type":"set","name":"set status as FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />","comments":"","x":1581.7500228881836,"y":2039.2500305175781,"z":"d1ebb284.fbe55","wires":[]},{"id":"373602ae.33609e","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1187.2500190734863,"y":2143.7500324249268,"z":"d1ebb284.fbe55","wires":[["30c0bc99.74e354"]]},{"id":"511e7ed4.11fc7","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1378.499984741211,"y":2299.5000019073486,"z":"d1ebb284.fbe55","wires":[["8323bab3.f3e0c8","3bb3b6fd.445e9a"]]},{"id":"b8ab672c.b5d0c8","type":"execute","name":"tmp.ss.final.resolved-value contains $","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\n    <parameter name=\"source\" value=\"`$tmp.ss.final.resolved-value`\" />\n    <parameter name=\"target\" value=\"$\"/>\n  \n","comments":"","outputs":1,"x":969.7499771118164,"y":2353.999725341797,"z":"d1ebb284.fbe55","wires":[["750bb424.cfb9ec","d3f81cfe.787c"]]},{"id":"750bb424.cfb9ec","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1204.9999923706055,"y":2299.249755859375,"z":"d1ebb284.fbe55","wires":[["511e7ed4.11fc7"]]},{"id":"3bb3b6fd.445e9a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`\" />\n","comments":"","x":1575.5,"y":2347.7497577667236,"z":"d1ebb284.fbe55","wires":[]},{"id":"8323bab3.f3e0c8","type":"set","name":"set status as FAILED","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />","comments":"","x":1598,"y":2298.999755859375,"z":"d1ebb284.fbe55","wires":[]},{"id":"d3f81cfe.787c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1203.4999961853027,"y":2405.4997577667236,"z":"d1ebb284.fbe55","wires":[["a9a1d847.7acaf8"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-assign.json
new file mode 100644 (file)
index 0000000..a493201
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"3560e515.54c98a","type":"dgstart","name":"DGSTART","outputs":1,"x":92.5,"y":37.5,"z":"a1447ddc.1baaf","wires":[["70c13e37.da2a2"]]},{"id":"403234e5.5ff69c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":128.69049072265625,"y":152.34921646118164,"z":"a1447ddc.1baaf","wires":[["6175d91c.80a228","22313775.627058","4ac1cccf.0fbdf4","5f632565.5703cc","48c02c45.2af764","1debefb9.6eb29","1b7280ea.37dc5f","b1c04da3.0bbee","61714731.eb3998"]]},{"id":"b6f03bb7.965918","type":"method","name":"method self-serve-vf-module-assign","xml":"<method rpc='self-serve-vf-module-assign' mode='sync'>\n","comments":"","outputs":1,"x":209.26190948486328,"y":92.20635509490967,"z":"a1447ddc.1baaf","wires":[["403234e5.5ff69c"]]},{"id":"70c13e37.da2a2","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":367.73819732666016,"y":37.69049263000488,"z":"a1447ddc.1baaf","wires":[["b6f03bb7.965918"]]},{"id":"22313775.627058","type":"switchNode","name":"switch vf-module-parameters.param_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`'>\n","comments":"","outputs":1,"x":443.7500305175781,"y":1354.8691635131836,"z":"a1447ddc.1baaf","wires":[["f52f2d81.7f35b"]]},{"id":"f52f2d81.7f35b","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":703.7500610351562,"y":1354.8691635131836,"z":"a1447ddc.1baaf","wires":[["9eaaad06.c49f4"]]},{"id":"a2c86795.41e7b8","type":"call","name":"call GENERIC-RESOURCE-API:self-serve-vfmodule-ra-assignment","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vfmodule-ra-assignment' mode='sync' >\n","comments":"","outputs":1,"x":1245.4643096923828,"y":1402.1549139022827,"z":"a1447ddc.1baaf","wires":[["23b5a1bc.c2aeae"]]},{"id":"a1932a98.076d38","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get RA assignments: ' + $error-message`\" />\n","comments":"","x":1726.1785507202148,"y":1401.7263174057007,"z":"a1447ddc.1baaf","wires":[]},{"id":"7932bb94.260364","type":"for","name":"foreach vf-module-parameters.param[]","xml":"<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":717.6073913574219,"y":1780.7620267868042,"z":"a1447ddc.1baaf","wires":[["c92ff5c8.4909a8","8cf53757.b98dc8"]]},{"id":"6175d91c.80a228","type":"set","name":"set ss.capability.execution-order[]","xml":"<set>\n<parameter name='ss.capability.execution-order[0]' value='generate-name' />\n<parameter name='ss.capability.execution-order[1]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[2]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[3]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[4]' value='eipam-ip-assign' />\n<parameter name='ss.capability.execution-order[5]' value='eipam-create-pool\"' />\n<parameter name='ss.capability.execution-order[6]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[7]' value='create-vpe-pool' />\n<parameter name='ss.capability.execution-order[8]' value='unresolved-composite-data' />\n<parameter name='ss.capability.execution-order_length' value='9' />\n","comments":"","x":415.91666412353516,"y":1216.9286432266235,"z":"a1447ddc.1baaf","wires":[]},{"id":"4ac1cccf.0fbdf4","type":"for","name":"foreach capability-order[]","xml":"<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n","comments":"","outputs":1,"x":384.6786193847656,"y":1520.8690433502197,"z":"a1447ddc.1baaf","wires":[["c84bbb7a.0d8378","b065b955.288328","761ccae1.c8c314","7932bb94.260364"]]},{"id":"c92ff5c8.4909a8","type":"switchNode","name":"switch capability-name param vs. execution","xml":"<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n","comments":"","outputs":1,"x":1084.0002136230469,"y":1826.4048194885254,"z":"a1447ddc.1baaf","wires":[["95873838.1ada78"]]},{"id":"95873838.1ada78","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1347.5002136230469,"y":1826.6548194885254,"z":"a1447ddc.1baaf","wires":[["125e2acd.452975"]]},{"id":"23b5a1bc.c2aeae","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1572.0356559753418,"y":1401.5835075378418,"z":"a1447ddc.1baaf","wires":[["a1932a98.076d38"]]},{"id":"c84bbb7a.0d8378","type":"set","name":"set ss.capability-name","xml":"<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order\n-->","comments":"","x":676.0356750488281,"y":1520.8214950561523,"z":"a1447ddc.1baaf","wires":[]},{"id":"8cf53757.b98dc8","type":"set","name":"tmp.param.capability-name","xml":"<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1033.3572387695312,"y":1781.0120296478271,"z":"a1447ddc.1baaf","wires":[]},{"id":"761ccae1.c8c314","type":"set","name":"set ss.capability.action = assign","xml":"<set>\n<parameter name='ss.capability-action' value='assign' />\n","comments":"","x":706.7498168945312,"y":1567.738079071045,"z":"a1447ddc.1baaf","wires":[]},{"id":"7a2cad24.827b84","type":"set","name":"set capability-dg with 'self-serve-' + capability-name","xml":"<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n","comments":"","x":1210.5118865966797,"y":1714.9643115997314,"z":"a1447ddc.1baaf","wires":[]},{"id":"b065b955.288328","type":"switchNode","name":"switch ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":690.0118865966797,"y":1616.714319229126,"z":"a1447ddc.1baaf","wires":[["d589a10f.56259","d6f310d8.7ba42","b20bfee0.7f91"]]},{"id":"d589a10f.56259","type":"other","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":972.7620086669922,"y":1617.2143115997314,"z":"a1447ddc.1baaf","wires":[["f3917c17.f9b9d"]]},{"id":"d6f310d8.7ba42","type":"other","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":962.0120086669922,"y":1664.9643115997314,"z":"a1447ddc.1baaf","wires":[["f3917c17.f9b9d"]]},{"id":"b20bfee0.7f91","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":926.0119705200195,"y":1715.2143020629883,"z":"a1447ddc.1baaf","wires":[["7a2cad24.827b84"]]},{"id":"f3917c17.f9b9d","type":"set","name":"set capability-dg to self-serve-alts-assignment","xml":"<set>\n<parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\n","comments":"","x":1311.5118865966797,"y":1616.7143115997314,"z":"a1447ddc.1baaf","wires":[]},{"id":"208a43c2.0e1adc","type":"set","name":"set sdnc-generated-cloud-resources = true","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.sdnc-generated-cloud-resources' \n\tvalue='true' />\n","comments":"","x":1037.452392578125,"y":1103.3573188781738,"z":"a1447ddc.1baaf","wires":[]},{"id":"125e2acd.452975","type":"switchNode","name":"switch resource-resolution-data.status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\n","comments":"","outputs":1,"x":475.0121765136719,"y":2239.4723148345947,"z":"a1447ddc.1baaf","wires":[["5afbede0.2e5544","30979fb2.cc18a","bb92d52.d88da28"]]},{"id":"5afbede0.2e5544","type":"other","name":"PENDING","xml":"<outcome value='PENDING'>\n","comments":"","outputs":1,"x":744.3693923950195,"y":2239.472270965576,"z":"a1447ddc.1baaf","wires":[["dcf4c9cf.035d78"]]},{"id":"30979fb2.cc18a","type":"other","name":"SUCCESS","xml":"<outcome value='SUCCESS'>\n","comments":"","outputs":1,"x":747.7978820800781,"y":2190.9365549087524,"z":"a1447ddc.1baaf","wires":[["12260e8d.8fd3c1"]]},{"id":"bb92d52.d88da28","type":"other","name":"FAILED","xml":"<outcome value='FAILED'>\n","comments":"","outputs":1,"x":737.9052085876465,"y":2290.436601638794,"z":"a1447ddc.1baaf","wires":[["dcf4c9cf.035d78"]]},{"id":"dcf4c9cf.035d78","type":"call","name":"call ss.capability-dg","xml":"<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n","comments":"","outputs":1,"x":953.0239410400391,"y":2291.198452949524,"z":"a1447ddc.1baaf","wires":[["129c459b.19b80a","a5a5795e.0fdfd8"]]},{"id":"3da967a9.06f7a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n","comments":"","x":1530.5715065002441,"y":2699.1750926971436,"z":"a1447ddc.1baaf","wires":[]},{"id":"129c459b.19b80a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1148.9165229797363,"y":2345.198519706726,"z":"a1447ddc.1baaf","wires":[["165a93a8.65436c"]]},{"id":"165a93a8.65436c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1312.1906394958496,"y":2344.5080604553223,"z":"a1447ddc.1baaf","wires":[["3da967a9.06f7a8","2753423d.a3875e","43819fdb.e95ef","b2d88241.cc91f","310af886.0bf138","86f5aff8.0a00c"]]},{"id":"2753423d.a3875e","type":"execute","name":"execute RestApiCallNode - PUT vf-module","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vfmodule\" />\n\n","comments":"","outputs":1,"x":1627.738079071045,"y":2600.882019996643,"z":"a1447ddc.1baaf","wires":[["abef3b2b.025c98","6985b2c8.f2f7bc","65c63d4e.d39434"]]},{"id":"abef3b2b.025c98","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1902.331745147705,"y":2654.8801736831665,"z":"a1447ddc.1baaf","wires":[["a54a9d48.c66c8"]]},{"id":"6985b2c8.f2f7bc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1894.7603797912598,"y":2601.380193710327,"z":"a1447ddc.1baaf","wires":[["a54a9d48.c66c8"]]},{"id":"65c63d4e.d39434","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1898.5103721618652,"y":2547.7372913360596,"z":"a1447ddc.1baaf","wires":[["6fb122d8.ceb48c"]]},{"id":"6fb122d8.ceb48c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2074.880603790283,"y":2547.6437726020813,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"a54a9d48.c66c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2096.8927040100098,"y":2601.0244483947754,"z":"a1447ddc.1baaf","wires":[["4b2a8851.25ac88"]]},{"id":"4b2a8851.25ac88","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve vf-module assignments during assign in MD-SAL\" />\n","comments":"","outputs":1,"x":2315.1784706115723,"y":2601.167311668396,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"1b7280ea.37dc5f","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vf-assign.log' />\n","comments":"","outputs":1,"x":341.54361724853516,"y":4025.90918636322,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"5f632565.5703cc","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":381.7022895812988,"y":271.7619981765747,"z":"a1447ddc.1baaf","wires":[["b758ef1f.14be1","5ba4ce6.5287c3","f1296022.df39e"]]},{"id":"b758ef1f.14be1","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":594.3332595825195,"y":201.15478897094727,"z":"a1447ddc.1baaf","wires":[["15568bd1.4655e4"]]},{"id":"4f3bc7f9.cc1898","type":"set","name":"set vf-module-index=0","xml":"<set>\n<parameter name='vf-module-index' value='0' />\n","comments":"","x":933.4522895812988,"y":212.0715742111206,"z":"a1447ddc.1baaf","wires":[]},{"id":"5ba4ce6.5287c3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":593.5118522644043,"y":339.9406490325928,"z":"a1447ddc.1baaf","wires":[["286a7c53.0dbc64"]]},{"id":"dfd62a4a.a5a6a8","type":"set","name":"set vf-module-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\n   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n","comments":"","x":949.7379302978516,"y":494.1816177368164,"z":"a1447ddc.1baaf","wires":[]},{"id":"d95df464.79fc48","type":"set","name":"set vf-module-parameters","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.'\n  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\n","comments":"","x":1114.4285278320312,"y":1354.0244059562683,"z":"a1447ddc.1baaf","wires":[]},{"id":"ec68163d.860598","type":"set","name":"set order-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":1010.0121002197266,"y":1056.0448169708252,"z":"a1447ddc.1baaf","wires":[]},{"id":"43819fdb.e95ef","type":"set","name":"set vf data for restapi-call-node","xml":"<set>\n<parameter name='vf.vf-module-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='vf.vf-module-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\n<parameter name='vf.vf-module-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\n<parameter name='vf.vf-module-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\n<parameter name='vf.vf-module-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\n<parameter name='vf.vf-module-data.vf-module-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\n<parameter name='vf.vf-module-data.vf-module-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\n<parameter name='vf.vf-module-data.vf-module-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.request-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.tenant'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />","comments":"","x":1589.2501029968262,"y":2345.0000371932983,"z":"a1447ddc.1baaf","wires":[]},{"id":"b2d88241.cc91f","type":"execute","name":"generate ss-vfmodule url replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vfmodule-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1655.5000495910645,"y":2393.000082015991,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"310af886.0bf138","type":"execute","name":"generate ss-vfmodule url - replace vnf-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`\"/>\n","comments":"","outputs":1,"x":1619.7857475280762,"y":2441.0589990615845,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"86f5aff8.0a00c","type":"execute","name":"generate ss-vfmodule url - replace vf-module-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vf-module-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\"/>\n","comments":"","outputs":1,"x":1641.7264213562012,"y":2490.975499153137,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"802f4199.221d9","type":"for","name":"for i in vf-module-parameters.param[]","xml":"<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":1144.8215103149414,"y":3482.250153541565,"z":"a1447ddc.1baaf","wires":[["63bbdf3.ba3e92"]]},{"id":"63bbdf3.ba3e92","type":"switchNode","name":"switch param[$i].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`'>\n","comments":"","outputs":1,"x":1423.5715103149414,"y":3482.7501249313354,"z":"a1447ddc.1baaf","wires":[["f2c0e742.0e6348"]]},{"id":"3d984290.7ab9be","type":"save","name":"save VNFC object","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vnfc\" \n\t\tkey=\"vnfc.vnfc-name = $tmp.ss.vnfc-name\" >\n\t<parameter name=\"nfc-function\" value=\"`$tmp.ss.nfc-function`\" />\n\t<parameter name=\"nfc-naming-code\" value=\"`$tmp.ss.nfc-naming-code`\" />\n\t<parameter name=\"orchestration-status\" value=\"pending-create\" />","comments":"","outputs":1,"x":2346.6788787841797,"y":3712.2860794067383,"z":"a1447ddc.1baaf","wires":[["854ac898.930b48"]]},{"id":"f6d62d80.b5987","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":861.6786270141602,"y":3399.071201324463,"z":"a1447ddc.1baaf","wires":[["802f4199.221d9","24c71d4a.b584e2","6c9147d0.5fe2f8"]]},{"id":"854ac898.930b48","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2523.4288635253906,"y":3711.78604888916,"z":"a1447ddc.1baaf","wires":[["69c887d6.9b5348"]]},{"id":"f2c0e742.0e6348","type":"other","name":"vnfc-name","xml":"<outcome value='vnfc-name'>\n<!--\n<outcome value='vmxvre_name_0'>\n-->\n","comments":"","outputs":1,"x":1628.1072387695312,"y":3483.2501068115234,"z":"a1447ddc.1baaf","wires":[["262e2f9.8717ed"]]},{"id":"c5bffeb9.14b6f","type":"switchNode","name":"switch: resource-key[].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].name`'>\n","comments":"","outputs":1,"x":2094.357452392578,"y":3585.3220615386963,"z":"a1447ddc.1baaf","wires":[["812edad6.13e978","74178c18.aed7c4"]]},{"id":"812edad6.13e978","type":"outcome","name":"nfc-function","xml":"<outcome value='nfc-function'>\n","comments":"","outputs":1,"x":2324.663101196289,"y":3633.8219709396362,"z":"a1447ddc.1baaf","wires":[["c973f219.41108"]]},{"id":"c973f219.41108","type":"set","name":"set tmp.ss.nfc-function","xml":"<set>\n<parameter name='tmp.ss.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2535.163101196289,"y":3633.5719709396362,"z":"a1447ddc.1baaf","wires":[]},{"id":"4c5fac31.d6e484","type":"for","name":"for kidx in resource-key_length","xml":"<for index=\"kidx\" start=\"0\" end=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`\">","comments":"","outputs":1,"x":1809.2185516357422,"y":3585.182762145996,"z":"a1447ddc.1baaf","wires":[["c5bffeb9.14b6f"]]},{"id":"74178c18.aed7c4","type":"outcome","name":"nfc-naming-code","xml":"<outcome value='nfc-naming-code'>\n<!--\n<outcome value='NFC_NAMING_CODE'>\n-->\n","comments":"","outputs":1,"x":2340.80171585083,"y":3584.8220434188843,"z":"a1447ddc.1baaf","wires":[["b4ec70ef.8ec99"]]},{"id":"b4ec70ef.8ec99","type":"set","name":"set tmp.ss.nfc-naming-code","xml":"<set>\n<parameter name='tmp.ss.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].value`' />\n","comments":"","x":2579.912666320801,"y":3584.9330854415894,"z":"a1447ddc.1baaf","wires":[]},{"id":"24c71d4a.b584e2","type":"set","name":"set tmp.ss.nfc-naming-code, nfc-function, vnf-name = null","xml":"<set>\n<parameter name='tmp.ss.nfc-naming-code' value='' />\n<parameter name='tmp.ss.nfc-function' value='' />\n<parameter name='tmp.ss.vnfc-name' value='' />\n","comments":"","x":1210.0195693969727,"y":3398.9684133529663,"z":"a1447ddc.1baaf","wires":[]},{"id":"a404bb90.d05e78","type":"break","name":"break","xml":"<break>\n","comments":"","x":1926.9644317626953,"y":3528.535895347595,"z":"a1447ddc.1baaf","wires":[]},{"id":"262e2f9.8717ed","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1769.8215599060059,"y":3482.8216800689697,"z":"a1447ddc.1baaf","wires":[["2ca06e6a.58e632","a404bb90.d05e78"]]},{"id":"2ca06e6a.58e632","type":"set","name":"set tmp.ss.vnfc-name","xml":"<set>\n<parameter name='tmp.ss.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\n","comments":"","x":1973.9643325805664,"y":3482.82168674469,"z":"a1447ddc.1baaf","wires":[]},{"id":"48c02c45.2af764","type":"set","name":"set ss.capability-type = vf-module","xml":"<set>\n<parameter name='ss.capability-type' value='vf-module' />\n","comments":"","x":416.8214569091797,"y":1173.9286012649536,"z":"a1447ddc.1baaf","wires":[]},{"id":"9eaaad06.c49f4","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":879.107153756278,"y":1354.749975476946,"z":"a1447ddc.1baaf","wires":[["d95df464.79fc48","a2c86795.41e7b8"]]},{"id":"a5a5795e.0fdfd8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1152.2500915527344,"y":2291.500045776367,"z":"a1447ddc.1baaf","wires":[["e93974be.fb0998"]]},{"id":"e93974be.fb0998","type":"set","name":"set capability-dg to ASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='ASSIGNED' />\n","comments":"","x":1378.0000762939453,"y":2291.250018119812,"z":"a1447ddc.1baaf","wires":[]},{"id":"1debefb9.6eb29","type":"switchNode","name":"switch self-serve-generate-name == ASSIGNED","xml":"<switch test=\"`$self-serve-generate-name == 'ASSIGNED'`\">\n","comments":"","outputs":1,"x":449.5,"y":2859.75,"z":"a1447ddc.1baaf","wires":[["717a357f.ca120c","e2958e1c.63763"]]},{"id":"717a357f.ca120c","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":734.2499542236328,"y":2884.7499980926514,"z":"a1447ddc.1baaf","wires":[["2f2598c9.3bca08"]]},{"id":"6c9147d0.5fe2f8","type":"switchNode","name":"switch tmp.ss.vnfc-name != null","xml":"<switch test=\"`$tmp.ss.vnfc-name != ''`\">\n","comments":"","outputs":1,"x":1128.0000762939453,"y":3585.75000667572,"z":"a1447ddc.1baaf","wires":[["1df4e001.bd26c","85198951.816258"]]},{"id":"8b1364a3.1a14f8","type":"switchNode","name":"switch tmp.ss.vnfc-name && nfc-function != null","xml":"<switch test=\"`$tmp.ss.nfc-naming-code != '' and $tmp.ss.nfc-function != ''`\">\n","comments":"","outputs":1,"x":1861.6786193847656,"y":3712.2857913970947,"z":"a1447ddc.1baaf","wires":[["162ae374.daed9d","2aa9bfaa.32c2d"]]},{"id":"1df4e001.bd26c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1363.5000457763672,"y":3585.999917984009,"z":"a1447ddc.1baaf","wires":[["7ca55b40.817d94"]]},{"id":"162ae374.daed9d","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2146.928642272949,"y":3712.535834312439,"z":"a1447ddc.1baaf","wires":[["3d984290.7ab9be"]]},{"id":"e2958e1c.63763","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":732.3571815490723,"y":2834.5714950561523,"z":"a1447ddc.1baaf","wires":[["7ada8395.66332c"]]},{"id":"b68e8e50.8a80e","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`\"/>","comments":"","outputs":1,"x":1081.7857627868652,"y":2834.5716676712036,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"7ada8395.66332c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":898.2143058776855,"y":2834.571613584246,"z":"a1447ddc.1baaf","wires":[["b68e8e50.8a80e","315e6329.e71c3c"]]},{"id":"315e6329.e71c3c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`\" />\n","comments":"","x":1103.0714530944824,"y":2878.0002212524414,"z":"a1447ddc.1baaf","wires":[]},{"id":"36d24104.b53f7e","type":"call","name":"call self-serve-aai-vfmodule-put","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-aai-vfmodule-put' mode='sync' >\n","comments":"","outputs":1,"x":1809.9643249511719,"y":3832.381055831909,"z":"a1447ddc.1baaf","wires":[["c4c4e4d8.5cb1c8"]]},{"id":"12260e8d.8fd3c1","type":"set","name":"set capability-dg to ASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='ASSIGNED' />\n","comments":"","x":989.7500457763672,"y":2191.1665811538696,"z":"a1447ddc.1baaf","wires":[]},{"id":"ada601a5.8a40a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'vnfc object not updated because param.value of vnfc-name is null; '+ $error-message`\" />\n","comments":"","x":2298.6785278320312,"y":3770.61900806427,"z":"a1447ddc.1baaf","wires":[]},{"id":"c4c4e4d8.5cb1c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2032.34521484375,"y":3832.285635948181,"z":"a1447ddc.1baaf","wires":[["39f87abf.ed25d6"]]},{"id":"39f87abf.ed25d6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf and vf-module not updated; '+ $error-message`\" />\n","comments":"","x":2202.34521484375,"y":3831.619132041931,"z":"a1447ddc.1baaf","wires":[]},{"id":"69c887d6.9b5348","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"Failed to save vnfc object in AAI\" />\n","comments":"","x":2699.0120010375977,"y":3711.2860021591187,"z":"a1447ddc.1baaf","wires":[]},{"id":"2aa9bfaa.32c2d","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2147.3453102111816,"y":3771.28600025177,"z":"a1447ddc.1baaf","wires":[["ada601a5.8a40a"]]},{"id":"b1c04da3.0bbee","type":"set","name":"set is-new-vfmodule = true","xml":"<set>\n<parameter name='is-new-vfmodule' value='true' />\n","comments":"","x":388.5239715576172,"y":152.17872047424316,"z":"a1447ddc.1baaf","wires":[]},{"id":"6b6c11c5.bbcc5","type":"for","name":"for each existing VF module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":952.3452301025391,"y":339.6309871673584,"z":"a1447ddc.1baaf","wires":[["45969b2a.6b64b4"]]},{"id":"45969b2a.6b64b4","type":"switchNode","name":"switch vf-module-id: input vs service-data","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\n","comments":"","outputs":1,"x":1263.4643630981445,"y":340.20240211486816,"z":"a1447ddc.1baaf","wires":[["fb49eccc.f39ab"]]},{"id":"fb49eccc.f39ab","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1517.3333930969238,"y":340.02385902404785,"z":"a1447ddc.1baaf","wires":[["5b21c603.229ee8"]]},{"id":"575f26c9.68a1f8","type":"set","name":"set is-new-vfmodule = false","xml":"<set>\n<parameter name='is-new-vfmodule' value='false' />\n","comments":"","x":1889.5001335144043,"y":339.2857475280762,"z":"a1447ddc.1baaf","wires":[]},{"id":"5b21c603.229ee8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1658.7501373291016,"y":339.5357437133789,"z":"a1447ddc.1baaf","wires":[["575f26c9.68a1f8","3271f964.6c61a6","61ab060.a0d1efc"]]},{"id":"3271f964.6c61a6","type":"break","name":"break","xml":"<break>\n","comments":"","x":1826.6429252624512,"y":425.53572177886963,"z":"a1447ddc.1baaf","wires":[]},{"id":"61ab060.a0d1efc","type":"set","name":"set vf-module-index = idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1882.4644470214844,"y":382.57140254974365,"z":"a1447ddc.1baaf","wires":[]},{"id":"892cfa62.321a88","type":"set","name":"set new vf-module_length = vf-module-index + 1","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\n","comments":"","x":1014.8097114562988,"y":253.3930025100708,"z":"a1447ddc.1baaf","wires":[]},{"id":"286a7c53.0dbc64","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":730.6667671203613,"y":340.3215112686157,"z":"a1447ddc.1baaf","wires":[["c463b747.cd19a8","6b6c11c5.bbcc5"]]},{"id":"c42f064a.cdd3c8","type":"set","name":"set new vf-module_length++","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' \n\tvalue='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length + 1`' />\n","comments":"","x":1499.916790008545,"y":452.0715160369873,"z":"a1447ddc.1baaf","wires":[]},{"id":"c463b747.cd19a8","type":"switchNode","name":"switch is-new-vfmodule","xml":"<switch test='`$is-new-vfmodule`'>\n","comments":"","outputs":1,"x":938.1667633056641,"y":409.8928909301758,"z":"a1447ddc.1baaf","wires":[["123ca523.aacc6b"]]},{"id":"123ca523.aacc6b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1136.0239181518555,"y":409.4643383026123,"z":"a1447ddc.1baaf","wires":[["f4d13fa0.d9dfe"]]},{"id":"15568bd1.4655e4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":737.1667633056641,"y":232.82150554656982,"z":"a1447ddc.1baaf","wires":[["892cfa62.321a88","4f3bc7f9.cc1898"]]},{"id":"f1296022.df39e","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":595.5,"y":271.25,"z":"a1447ddc.1baaf","wires":[["15568bd1.4655e4"]]},{"id":"61714731.eb3998","type":"switchNode","name":"switch is-new-vfmodule","xml":"<switch test='`$is-new-vfmodule`'>\n","comments":"","outputs":1,"x":381.25,"y":495,"z":"a1447ddc.1baaf","wires":[["6dde9203.b0507c"]]},{"id":"6dde9203.b0507c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":579.1071548461914,"y":494.5714473724365,"z":"a1447ddc.1baaf","wires":[["771aa93b.561358"]]},{"id":"1d3ab61a.e18f5a","type":"set","name":"Copy vf-module-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id' \n    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name' \n    value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-type' \n    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.tenant' \n    value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-cloud-region' \n    value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\n    value='`$vf-module-topology-operation-input.vf-module-request-input.aic-clli`' />","comments":"","x":995.0000152587891,"y":540.0000696182251,"z":"a1447ddc.1baaf","wires":[]},{"id":"ca9fe248.88f72","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-module-model.invariant-uuid`' />\n","comments":"","x":1360.011775970459,"y":592.443510055542,"z":"a1447ddc.1baaf","wires":[]},{"id":"912e5e00.2ffd3","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":1003.8688507080078,"y":615.2679538726807,"z":"a1447ddc.1baaf","wires":[["1f0bf384.3cfa7c","34632141.e1364e"]]},{"id":"1f0bf384.3cfa7c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1209.5355224609375,"y":592.4109172821045,"z":"a1447ddc.1baaf","wires":[["ca9fe248.88f72"]]},{"id":"34632141.e1364e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1210.9641189575195,"y":636.6965084075928,"z":"a1447ddc.1baaf","wires":[["b26573bb.feb6c"]]},{"id":"b26573bb.feb6c","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":1365.249855041504,"y":636.1250805854797,"z":"a1447ddc.1baaf","wires":[]},{"id":"b7d78e8f.3cf72","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-uuid'\n  value='`$db.vf-module-model.uuid`' />\n","comments":"","x":1360.9640464782715,"y":680.9821863174438,"z":"a1447ddc.1baaf","wires":[]},{"id":"31b701d0.46d05e","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":976.4878692626953,"y":703.8066911697388,"z":"a1447ddc.1baaf","wires":[["1ddbea64.7c38e6","4bbbc5b5.84966c"]]},{"id":"1ddbea64.7c38e6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1210.4878425598145,"y":680.9496231079102,"z":"a1447ddc.1baaf","wires":[["b7d78e8f.3cf72"]]},{"id":"4bbbc5b5.84966c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1211.9164390563965,"y":725.2352142333984,"z":"a1447ddc.1baaf","wires":[["f955a171.cd5f1"]]},{"id":"f955a171.cd5f1","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\n","comments":"","x":1366.2021751403809,"y":724.6637864112854,"z":"a1447ddc.1baaf","wires":[]},{"id":"aaeae203.515b6","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-version'\n  value='`$db.vf-module-model.version`' />\n","comments":"","x":1358.1069793701172,"y":769.8393936157227,"z":"a1447ddc.1baaf","wires":[]},{"id":"38e5d316.76192c","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":984.6307411193848,"y":792.6638383865356,"z":"a1447ddc.1baaf","wires":[["d6205c9d.2aac","d18f0ce3.6531f"]]},{"id":"d6205c9d.2aac","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1207.6307258605957,"y":769.8068008422852,"z":"a1447ddc.1baaf","wires":[["aaeae203.515b6"]]},{"id":"d18f0ce3.6531f","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1209.0593223571777,"y":814.0923919677734,"z":"a1447ddc.1baaf","wires":[["8e07d522.c43898"]]},{"id":"8e07d522.c43898","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-version'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n","comments":"","x":1363.345058441162,"y":813.5209641456604,"z":"a1447ddc.1baaf","wires":[]},{"id":"1997e93d.cc3677","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-name'\n  value='`$db.vf-module-model.name`' />\n","comments":"","x":1358.1069793701172,"y":856.9822158813477,"z":"a1447ddc.1baaf","wires":[]},{"id":"c0bb4f1d.bf76d","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":979.6307411193848,"y":879.8066606521606,"z":"a1447ddc.1baaf","wires":[["44a8e6d8.ab32b8","d6832860.ddc3b8"]]},{"id":"44a8e6d8.ab32b8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1207.6307258605957,"y":856.9496231079102,"z":"a1447ddc.1baaf","wires":[["1997e93d.cc3677"]]},{"id":"d6832860.ddc3b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1209.0593223571777,"y":901.2352142333984,"z":"a1447ddc.1baaf","wires":[["8e86e3c7.3bf47"]]},{"id":"8e86e3c7.3bf47","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-name'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\n","comments":"","x":1363.345058441162,"y":900.6637864112854,"z":"a1447ddc.1baaf","wires":[]},{"id":"b0cee3eb.0748c","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":993.0830993652344,"y":953.7441453933716,"z":"a1447ddc.1baaf","wires":[]},{"id":"bbf33715.8b52f8","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.' \n    value='$vf-module-topology-operation-input.vf-module-request-input.' />","comments":"","x":951.7381744384766,"y":1008.4288482666016,"z":"a1447ddc.1baaf","wires":[]},{"id":"771aa93b.561358","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":735.2024154663086,"y":494.3491916656494,"z":"a1447ddc.1baaf","wires":[["912e5e00.2ffd3","31b701d0.46d05e","38e5d316.76192c","c0bb4f1d.bf76d","b0cee3eb.0748c","bbf33715.8b52f8","1d3ab61a.e18f5a","dfd62a4a.a5a6a8","ec68163d.860598","208a43c2.0e1adc"]]},{"id":"9cca684a.cb85c8","type":"set","name":"set vf-module-index = vf-module_length","xml":"<set>\n<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n","comments":"","x":1532.5000190734863,"y":408.25000762939453,"z":"a1447ddc.1baaf","wires":[]},{"id":"f4d13fa0.d9dfe","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1279.0000190734863,"y":409.00000762939453,"z":"a1447ddc.1baaf","wires":[["9cca684a.cb85c8","c42f064a.cdd3c8"]]},{"id":"ed2436d.8afa0c8","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1102.9999656677246,"y":3270.5000371932983,"z":"a1447ddc.1baaf","wires":[["f6d62d80.b5987"]]},{"id":"4ce50370.4b324c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1101.107192993164,"y":3220.3215341567993,"z":"a1447ddc.1baaf","wires":[["ff80399e.60d2b8"]]},{"id":"dc91f5c6.0f3388","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`\"/>","comments":"","outputs":1,"x":1450.535774230957,"y":3220.3217067718506,"z":"a1447ddc.1baaf","wires":[[]]},{"id":"ff80399e.60d2b8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1266.9643173217773,"y":3220.321652684893,"z":"a1447ddc.1baaf","wires":[["dc91f5c6.0f3388","8fd1491d.594388"]]},{"id":"8fd1491d.594388","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`\" />\n","comments":"","x":1471.8214645385742,"y":3263.7502603530884,"z":"a1447ddc.1baaf","wires":[]},{"id":"2f2598c9.3bca08","type":"switchNode","name":"switch self-serve-unresolved-composite-data == ASSIGNED or NULL","xml":"<switch test=\"`$self-serve-unresolved-composite-data == 'ASSIGNED' or $self-serve-unresolved-composite-data == ''`\">\n","comments":"","outputs":1,"x":753.0000305175781,"y":3243.25,"z":"a1447ddc.1baaf","wires":[["4ce50370.4b324c","ed2436d.8afa0c8"]]},{"id":"7ca55b40.817d94","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1541.9285278320312,"y":3586.285789489746,"z":"a1447ddc.1baaf","wires":[["4c5fac31.d6e484","8b1364a3.1a14f8","36d24104.b53f7e"]]},{"id":"85198951.816258","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1367.1428146362305,"y":3928.571466445923,"z":"a1447ddc.1baaf","wires":[["971ad69f.2bddc8"]]},{"id":"971ad69f.2bddc8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: vnfc-name: ' + $tmp.ss.vnfc-name`\"/>","comments":"","outputs":1,"x":1517.142822265625,"y":3928.571533203125,"z":"a1447ddc.1baaf","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.json
new file mode 100644 (file)
index 0000000..7264477
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"59c8eddd.d351d4","type":"dgstart","name":"DGSTART","outputs":1,"x":115,"y":47.5,"z":"e707a2eb.031dc","wires":[["3fa7b3b2.14694c"]]},{"id":"7094f80c.f334a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":158.72620391845703,"y":160.27779006958008,"z":"e707a2eb.031dc","wires":[["e9626c7d.713ca","669839ba.56b488","4b0a760.f121c8c","c4d10211.0d483","bd7013b7.21885"]]},{"id":"8f7300f3.a1d57","type":"method","name":"method self-serve-vf-module-unassign","xml":"<method rpc='self-serve-vf-module-unassign' mode='sync'>\n","comments":"","outputs":1,"x":231.76190948486328,"y":102.20635509490967,"z":"e707a2eb.031dc","wires":[["7094f80c.f334a8"]]},{"id":"3fa7b3b2.14694c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":390.23819732666016,"y":47.69049263000488,"z":"e707a2eb.031dc","wires":[["8f7300f3.a1d57"]]},{"id":"88e4ca0d.4b82e8","type":"switchNode","name":"switch resource-resolution-data.status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\n","comments":"","outputs":1,"x":483.5361022949219,"y":760.1786985397339,"z":"e707a2eb.031dc","wires":[["2e842ad6.b13196","6f51aecc.4c371","81b87eaf.eec99"]]},{"id":"2e842ad6.b13196","type":"other","name":"SUCCESS","xml":"<outcome value='SUCCESS'>\n","comments":"","outputs":1,"x":761.2386436462402,"y":760.547661781311,"z":"e707a2eb.031dc","wires":[["a18437e.11876c8"]]},{"id":"e9626c7d.713ca","type":"for","name":"foreach capability-order[]","xml":"<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n","comments":"","outputs":1,"x":409.1786346435547,"y":247.53568077087402,"z":"e707a2eb.031dc","wires":[["5cc84364.d00a7c","52fc6783.b27a48","60c0d544.1395bc","1f5f6357.bb701d"]]},{"id":"a18437e.11876c8","type":"call","name":"call ss.capability-dg","xml":"<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n","comments":"","outputs":1,"x":966.3573760986328,"y":760.309513092041,"z":"e707a2eb.031dc","wires":[["83cd0b73.a2d968","e01eeb11.ffdd28"]]},{"id":"5cc84364.d00a7c","type":"set","name":"ss.capability-name","xml":"<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order\n-->","comments":"","x":677.5356903076172,"y":247.48813247680664,"z":"e707a2eb.031dc","wires":[]},{"id":"60c0d544.1395bc","type":"set","name":"set ss.capability.action = unassign","xml":"<set>\n<parameter name='ss.capability-action' value='unassign' />\n","comments":"","x":726.2498321533203,"y":294.4047164916992,"z":"e707a2eb.031dc","wires":[]},{"id":"83cd0b73.a2d968","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1151.249885559082,"y":760.3095741271973,"z":"e707a2eb.031dc","wires":[["b3347c0d.511cc"]]},{"id":"99396b28.795028","type":"set","name":"set capability-dg","xml":"<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n","comments":"","x":1130.0119018554688,"y":441.63094902038574,"z":"e707a2eb.031dc","wires":[]},{"id":"52fc6783.b27a48","type":"switchNode","name":"switch ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":701.5119018554688,"y":343.3809566497803,"z":"e707a2eb.031dc","wires":[["89609b9d.832be8","bb8dbf03.25222","3e252dd8.99cbe2"]]},{"id":"89609b9d.832be8","type":"other","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":995.2620239257812,"y":343.88094902038574,"z":"e707a2eb.031dc","wires":[["71970fc.f01b7f"]]},{"id":"bb8dbf03.25222","type":"other","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":984.5120239257812,"y":391.63094902038574,"z":"e707a2eb.031dc","wires":[["71970fc.f01b7f"]]},{"id":"3e252dd8.99cbe2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":950.5119857788086,"y":441.8809394836426,"z":"e707a2eb.031dc","wires":[["99396b28.795028"]]},{"id":"71970fc.f01b7f","type":"set","name":"set capability-dg","xml":"<set>\n<parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\n","comments":"","x":1254.0119018554688,"y":343.38094902038574,"z":"e707a2eb.031dc","wires":[]},{"id":"c4d10211.0d483","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vf-unassign.log' />\n","comments":"","outputs":1,"x":413.53592681884766,"y":1625.226125717163,"z":"e707a2eb.031dc","wires":[[]]},{"id":"669839ba.56b488","type":"set","name":"set ss.capability.execution-order[]","xml":"<set>\n<parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='eipam-ip-assign' />\n<parameter name='ss.capability.execution-order[2]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[4]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[5]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='6' />","comments":"","x":434.25003814697266,"y":160.50000381469727,"z":"e707a2eb.031dc","wires":[]},{"id":"ecc91ea3.fdc65","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n","comments":"","x":1533.75,"y":1115.5,"z":"e707a2eb.031dc","wires":[]},{"id":"b3347c0d.511cc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1315.3691329956055,"y":760.8329677581787,"z":"e707a2eb.031dc","wires":[["ecc91ea3.fdc65","f80cfa5f.ec5538","f9478e50.da1ab","b33b6f0d.9741b","a62aae18.246a5","9cf116cc.5d7c88"]]},{"id":"f80cfa5f.ec5538","type":"execute","name":"execute RestApiCallNode - PUT vf-module","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vfmodule\" />\n\n","comments":"","outputs":1,"x":1630.9165725708008,"y":1017.2069272994995,"z":"e707a2eb.031dc","wires":[["5a81dded.44b2c4","2b7e4172.d9466e","9c94c0a8.8a6b6"]]},{"id":"5a81dded.44b2c4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1905.510238647461,"y":1071.205080986023,"z":"e707a2eb.031dc","wires":[["144bf243.c5cf4e"]]},{"id":"2b7e4172.d9466e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1897.9388732910156,"y":1017.7051010131836,"z":"e707a2eb.031dc","wires":[["144bf243.c5cf4e"]]},{"id":"9c94c0a8.8a6b6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1901.688865661621,"y":964.062198638916,"z":"e707a2eb.031dc","wires":[["9b806219.d57b1"]]},{"id":"9b806219.d57b1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2078.059097290039,"y":963.9686799049377,"z":"e707a2eb.031dc","wires":[[]]},{"id":"144bf243.c5cf4e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2100.0711975097656,"y":1017.3493556976318,"z":"e707a2eb.031dc","wires":[["a8a3bda2.3a4e7"]]},{"id":"a8a3bda2.3a4e7","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve vf-module assignments during unassign in MD-SAL\" />\n","comments":"","outputs":1,"x":2318.356964111328,"y":1017.4922189712524,"z":"e707a2eb.031dc","wires":[[]]},{"id":"f9478e50.da1ab","type":"set","name":"set vf data for restapi-call-node","xml":"<set>\n<parameter name='vf.vf-module-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='vf.vf-module-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\n<parameter name='vf.vf-module-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\n<parameter name='vf.vf-module-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\n<parameter name='vf.vf-module-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\n<parameter name='vf.vf-module-data.vf-module-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\n<parameter name='vf.vf-module-data.vf-module-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\n<parameter name='vf.vf-module-data.vf-module-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.request-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.tenant'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\n<parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />","comments":"","x":1592.428596496582,"y":761.3249444961548,"z":"e707a2eb.031dc","wires":[]},{"id":"b33b6f0d.9741b","type":"execute","name":"generate ss-vfmodule url replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vfmodule-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1658.6785430908203,"y":809.3249893188477,"z":"e707a2eb.031dc","wires":[[]]},{"id":"a62aae18.246a5","type":"execute","name":"generate ss-vfmodule url - replace vnf-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`\"/>\n","comments":"","outputs":1,"x":1622.964241027832,"y":857.3839063644409,"z":"e707a2eb.031dc","wires":[[]]},{"id":"9cf116cc.5d7c88","type":"execute","name":"generate ss-vfmodule url - replace vf-module-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vfmodule-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vfmodule-url\"/>\n    <parameter name=\"target\" value=\"{vf-module-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\"/>\n","comments":"","outputs":1,"x":1644.904914855957,"y":907.3004064559937,"z":"e707a2eb.031dc","wires":[[]]},{"id":"4b0a760.f121c8c","type":"set","name":"set ss.capability-type = vf-module","xml":"<set>\n<parameter name='ss.capability-type' value='vf-module' />\n","comments":"","x":434.8571319580078,"y":203.50001049041748,"z":"e707a2eb.031dc","wires":[]},{"id":"e01eeb11.ffdd28","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1153.75,"y":711.25,"z":"e707a2eb.031dc","wires":[["70f15cdb.b52454"]]},{"id":"70f15cdb.b52454","type":"set","name":"set capability-dg to UNASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\n","comments":"","x":1379.499984741211,"y":710.9999723434448,"z":"e707a2eb.031dc","wires":[]},{"id":"6f51aecc.4c371","type":"other","name":"DELETED","xml":"<outcome value='DELETED'>\n","comments":"","outputs":1,"x":760,"y":857.1428833007812,"z":"e707a2eb.031dc","wires":[["31a0085.606c5f8"]]},{"id":"383dc66d.17f72a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vf-module assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`\"/>","comments":"","x":1110.7380447387695,"y":1024.6905918121338,"z":"e707a2eb.031dc","wires":[]},{"id":"31a0085.606c5f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":916.4999923706055,"y":857.1428718566895,"z":"e707a2eb.031dc","wires":[["df136536.ec6fa8","296bd731.42cef8"]]},{"id":"81b87eaf.eec99","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":750.0713958740234,"y":989.3571853637695,"z":"e707a2eb.031dc","wires":[["74d32650.e89458"]]},{"id":"df136536.ec6fa8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>\n","comments":"","outputs":1,"x":1090.3572616577148,"y":948.6905670166016,"z":"e707a2eb.031dc","wires":[[]]},{"id":"74d32650.e89458","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":917.7856903076172,"y":989.3572368621826,"z":"e707a2eb.031dc","wires":[["df136536.ec6fa8","383dc66d.17f72a"]]},{"id":"1f5f6357.bb701d","type":"for","name":"foreach vf-module-parameters.param[]","xml":"<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":733.9999732971191,"y":511.4285945892334,"z":"e707a2eb.031dc","wires":[["842a7679.474c78","ff70ed31.3b468"]]},{"id":"842a7679.474c78","type":"switchNode","name":"switch capability-name param vs. execution","xml":"<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n","comments":"","outputs":1,"x":1106.3927955627441,"y":557.0713872909546,"z":"e707a2eb.031dc","wires":[["e83762f2.ee222"]]},{"id":"e83762f2.ee222","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1369.8927955627441,"y":557.3213872909546,"z":"e707a2eb.031dc","wires":[["88e4ca0d.4b82e8"]]},{"id":"ff70ed31.3b468","type":"set","name":"tmp.param.capability-name","xml":"<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1055.7498207092285,"y":511.67859745025635,"z":"e707a2eb.031dc","wires":[]},{"id":"1b981df9.eea952","type":"for","name":"for i in vnf-parameters-data.param[]","xml":"<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":1211.8215026855469,"y":1353.5238590240479,"z":"e707a2eb.031dc","wires":[["2955f79d.d9f148"]]},{"id":"2955f79d.d9f148","type":"switchNode","name":"switch param[$i].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`'>\n","comments":"","outputs":1,"x":1490.5715026855469,"y":1354.0238304138184,"z":"e707a2eb.031dc","wires":[["21118528.d17aba"]]},{"id":"5b3c9b0.4a95764","type":"save","name":"DELETE VNFC object","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vnfc\" \n\t\tkey=\"vnfc.vnfc-name = $tmp.ss.vnfc-name\" >","comments":"","outputs":1,"x":2052.3216857910156,"y":1412.4880809783936,"z":"e707a2eb.031dc","wires":[["8f720052.82f16","c7b9a17c.70b3a"]]},{"id":"3da72337.12504c","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":948.6785659790039,"y":1353.0116090774536,"z":"e707a2eb.031dc","wires":[["1b981df9.eea952"]]},{"id":"8f720052.82f16","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2264.0716705322266,"y":1412.9880504608154,"z":"e707a2eb.031dc","wires":[["19415073.afd87"]]},{"id":"19415073.afd87","type":"set","name":"set error-message","xml":"<set>\n<parameter name='error-message' value='Failed to delete vnfc object in AnAI' />\n","comments":"","x":2454.0716705322266,"y":1412.7380504608154,"z":"e707a2eb.031dc","wires":[]},{"id":"c7b9a17c.70b3a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2270.3216819763184,"y":1464.7380847930908,"z":"e707a2eb.031dc","wires":[["920b3ae7.9a1678"]]},{"id":"21118528.d17aba","type":"other","name":"vnfc-name","xml":"<outcome value='vnfc-name'>\n<!--\n<outcome value='vmxvre_name_0'>\n-->\n","comments":"","outputs":1,"x":1695.1072311401367,"y":1354.5238122940063,"z":"e707a2eb.031dc","wires":[["a6da92f.e11037"]]},{"id":"e5273bc6.236098","type":"break","name":"break","xml":"<break>\n","comments":"","x":2006.8215789794922,"y":1496.9524536132812,"z":"e707a2eb.031dc","wires":[]},{"id":"a6da92f.e11037","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1836.8215522766113,"y":1354.0953855514526,"z":"e707a2eb.031dc","wires":[["ebb79471.77e198","e5273bc6.236098","5b3c9b0.4a95764"]]},{"id":"ebb79471.77e198","type":"set","name":"set tmp.ss.vnfc-name","xml":"<set>\n<parameter name='tmp.ss.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\n","comments":"","x":2047.9643249511719,"y":1354.0953922271729,"z":"e707a2eb.031dc","wires":[]},{"id":"bd7013b7.21885","type":"switchNode","name":"switch self-serve-generate-name  == UNASSIGNED","xml":"<switch test=\"`$self-serve-generate-name == 'UNASSIGNED'`\">\n","comments":"","outputs":1,"x":518.5713958740234,"y":1205.3806629180908,"z":"e707a2eb.031dc","wires":[["60911edd.fbec9","dbc995c8.389a48"]]},{"id":"60911edd.fbec9","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":823.4999198913574,"y":1255.5235767364502,"z":"e707a2eb.031dc","wires":[["3da72337.12504c"]]},{"id":"dbc995c8.389a48","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":821.6071472167969,"y":1205.3450736999512,"z":"e707a2eb.031dc","wires":[["2732c8d4.650e48"]]},{"id":"76c0b009.2d7e4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`\"/>\n<parameter name=\"field2\" value=\"`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`\"/>","comments":"","outputs":1,"x":1171.0357284545898,"y":1205.3452463150024,"z":"e707a2eb.031dc","wires":[[]]},{"id":"2732c8d4.650e48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":987.4642715454102,"y":1205.3451922280447,"z":"e707a2eb.031dc","wires":[["76c0b009.2d7e4","f27b027f.fa36"]]},{"id":"f27b027f.fa36","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`\" />\n","comments":"","x":1192.321418762207,"y":1248.7737998962402,"z":"e707a2eb.031dc","wires":[]},{"id":"920b3ae7.9a1678","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2423.333251953125,"y":1464.333251953125,"z":"e707a2eb.031dc","wires":[[]]},{"id":"296bd731.42cef8","type":"set","name":"set capability-dg to UNASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\n","comments":"","x":1171.3333129882812,"y":857.333263669695,"z":"e707a2eb.031dc","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.json
new file mode 100644 (file)
index 0000000..b15f2be
--- /dev/null
@@ -0,0 +1,1038 @@
+[\r
+    {\r
+        "id": "c9662316.ac32e",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 140,\r
+        "y": 71,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "21b107f1.c4e3d"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "21b107f1.c4e3d",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 416,\r
+        "y": 72,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "d31bcb5e.2d5ca8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d31bcb5e.2d5ca8",\r
+        "type": "method",\r
+        "name": "self-serve-vfmodule-ra-assignment",\r
+        "xml": "<method rpc='self-serve-vfmodule-ra-assignment' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 767,\r
+        "y": 72,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "9ca2bb77.96bf4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9ca2bb77.96bf4",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 152.5,\r
+        "y": 154,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "2c0fae33.03506a",\r
+                "596beaf0.87988c",\r
+                "7ef17c42.39d2c4",\r
+                "32736a18.7a6e3e",\r
+                "73f5ad8e.f8c2b4",\r
+                "1ce514a9.9e4f13",\r
+                "1d654029.0ef398",\r
+                "bfb02940.6bc4e",\r
+                "ddd3f7c.3d06a88",\r
+                "2a15b80c.c3724"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "596beaf0.87988c",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"request-id\" value=\"`$tmp.return.generate.vnf-se-serv-uuid`\"/>\n   <parameter name=\"resource-type\" value=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-type`\" />  \n   <parameter name=\"resource-id\" value=\"`$vf-module-topology-operation-input.vf-module-information.vf-module-id`\" />   \n   <parameter name=\"action-name\" value=\"resource-assignment-action\"/> \n   <parameter name=\"responsePrefix\" value=\"sriovAssign\" />\n",\r
+        "comments": "",\r
+        "x": 337,\r
+        "y": 200,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3343905.7d2db7",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 615.714241027832,\r
+        "y": 583.7142734527588,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "5ca9b35e.48b424"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "32736a18.7a6e3e",\r
+        "type": "for",\r
+        "name": "for vf-module-topology-operation-input",\r
+        "xml": "<for index='i' start='0' end='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 436.71431732177734,\r
+        "y": 417.7143135070801,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "608765da.d64014"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1a3d4f4.dab168",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\n",\r
+        "comments": "",\r
+        "x": 1183.428565979004,\r
+        "y": 350.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9432ab6d.80ccd8",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_name",\r
+        "xml": "<outcome value='sdnc_model_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 929.4285659790039,\r
+        "y": 350.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "b1a3d4f4.dab168"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "608765da.d64014",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 691.4285659790039,\r
+        "y": 417.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "9432ab6d.80ccd8",\r
+                "16c88141.7648bf",\r
+                "a413dd31.e3a578",\r
+                "4598c824.2fd3b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "16c88141.7648bf",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_version",\r
+        "xml": "<outcome value='sdnc_model_version'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 932.4285659790039,\r
+        "y": 396.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "326cbf96.c3fe8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a413dd31.e3a578",\r
+        "type": "outcome",\r
+        "name": "vf_module_label",\r
+        "xml": "<outcome value='vf_module_label'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 917.4285659790039,\r
+        "y": 445.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "2dac59d5.d60f76"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "326cbf96.c3fe8",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-version",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-version' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1187.428565979004,\r
+        "y": 396.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2dac59d5.d60f76",\r
+        "type": "set",\r
+        "name": "set tmp.vf-module-label",\r
+        "xml": "<set>\n<parameter name='tmp.vf-module-label' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1169.428565979004,\r
+        "y": 445.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c56fc5e4.f56c68",\r
+        "type": "set",\r
+        "name": "set name-value other JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-other-payload\" value=\"`$tmp.config-name-value-other-payload + '&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name + '&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value + '&quot;,'`\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1187.428565979004,\r
+        "y": 496.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4598c824.2fd3b8",\r
+        "type": "outcome",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 889.4285659790039,\r
+        "y": 496.1428813934326,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "c56fc5e4.f56c68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "73f5ad8e.f8c2b4",\r
+        "type": "set",\r
+        "name": "set configAssignment JsonString",\r
+        "xml": "<set>\n\t<parameter name=\"tmp.config-name-value-payload4\" value=\"`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $vf-module-topology-operation-input.service-information.service-instance-id + '&quot;,'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload5\" value=\"`$tmp.config-name-value-payload4 + '&quot;vnf-id&quot;:&quot;' + $vf-module-topology-operation-input.vnf-information.vnf-id + '&quot;,'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload6\" value=\"`$tmp.config-name-value-payload5 + '&quot;vf-module-model-customization-uuid&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid + '&quot;,'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload7\" value=\"`$tmp.config-name-value-payload6 + '&quot;vnf-model-customization-uuid&quot;:&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid + '&quot;,'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload8\" value=\"`$tmp.config-name-value-payload7 + '&quot;vf-module-id&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + '&quot;,'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload9\" value=\"`$tmp.config-name-value-payload8 + '&quot;aic-cloud-region&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region + '&quot;'`\"/>\n\t<parameter name=\"tmp.config-name-value-payload91\" value=\"`'{' + $tmp.config-name-value-payload9 + '}'`\" />\n\t\n",\r
+        "comments": "",\r
+        "x": 408,\r
+        "y": 710,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1ce514a9.9e4f13",\r
+        "type": "execute",\r
+        "name": "execute ConfigAssignment",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.config.assignment.service.ConfigAssignmentNode' method='process'>\n\t<parameter name=\"request-id\" value='`$request-id`' />\n\t<parameter name=\"resource-id\" value='`$resource-id`' />         \n\t<parameter name=\"resource-type\" value='`$resource-type`' />\n\t<parameter name=\"action-name\" value='`$action-name`' />\n\t<parameter name=\"template-names\" value=\"`'[&quot;' + $tmp.vf-module-label + '&quot;]'`\" />\n\t<parameter name=\"service-template-name\" value='`$tmp.sdnc-model-name`' />\n\t<parameter name=\"service-template-version\" value='`$tmp.sdnc-model-version`' />\n\t<parameter name='input-data' value='`$tmp.config-name-value-payload91`' />\n\t<parameter name=\"prifix\" value=\"sriovAssign\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 394,\r
+        "y": 788,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "e80696e3.2921b",\r
+                "5b41a4d9.9a6094"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e80696e3.2921b",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 584,\r
+        "y": 764,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f656773c.1942a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f656773c.1942a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from ConfigAssignmentNode\" />\n",\r
+        "comments": "",\r
+        "x": 782,\r
+        "y": 764,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "bfb02940.6bc4e",\r
+        "type": "for",\r
+        "name": "for resource-accumulator-resolved-data loop",\r
+        "xml": "<for index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 440,\r
+        "y": 947,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "db7d4151.0bea98"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ab9a8a47.e5b7a",\r
+        "type": "set",\r
+        "name": "set from resource-accumulator-resolved-data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='highnum' value='`$highnum + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1472,\r
+        "y": 999,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "ddd3f7c.3d06a88",\r
+        "type": "for",\r
+        "name": "for capability-data",\r
+        "xml": "<for index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 359,\r
+        "y": 1210,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f9174c91.e66bd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "45ea44cc.7145e4",\r
+        "type": "for",\r
+        "name": "for key-mapping",\r
+        "xml": "<for index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 749,\r
+        "y": 1250,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "3a33ccb3.6e1eec"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f9174c91.e66bd",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 536,\r
+        "y": 1210,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "5d4b471e.9a6278",\r
+                "45ea44cc.7145e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5d4b471e.9a6278",\r
+        "type": "set",\r
+        "name": "set counter",\r
+        "xml": "<set>\n<parameter name='num' value='0' />",\r
+        "comments": "",\r
+        "x": 710,\r
+        "y": 1186,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1d654029.0ef398",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"`'sriovAssign.mashed-data.' + $tmp.vf-module-label`\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 384,\r
+        "y": 868,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "2c0fae33.03506a",\r
+        "type": "execute",\r
+        "name": "execute generateUUID",\r
+        "xml": " <execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" > \n <parameter name=\"ctx-destination\" value=\"tmp.return.generate.vnf-se-serv-uuid\" /> \n ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 382,\r
+        "y": 154,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "1479b86b.88bcf8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1479b86b.88bcf8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 587,\r
+        "y": 154,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "85890471.7922f8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "85890471.7922f8",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"generateUUID is failed\" />\n",\r
+        "comments": "",\r
+        "x": 751,\r
+        "y": 153,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "299a7a59.42e276",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data.param",\r
+        "xml": "<for index='cnt' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1413,\r
+        "y": 947,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "1e59b282.7615bd"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "db7d4151.0bea98",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 719,\r
+        "y": 948,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "494eddf.a3c6824",\r
+                "84e97247.edaa68",\r
+                "a43a651a.cb999"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7ef17c42.39d2c4",\r
+        "type": "switchNode",\r
+        "name": "switch vf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 454,\r
+        "y": 255,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "fb6f83cb.1cddd8",\r
+                "5a450db0.8182fc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fb6f83cb.1cddd8",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 717.1428833007812,\r
+        "y": 222.85715293884277,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "756afc2e.e2ed0c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5a450db0.8182fc",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 716.1428833007812,\r
+        "y": 286.8571529388428,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f1c2e566.b878b"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "756afc2e.e2ed0c",\r
+        "type": "set",\r
+        "name": "set pre service param len as 0",\r
+        "xml": "<set>\n   <parameter name='highnum' value='0' />\n   <parameter name='prehighnum' value='0'/>\n",\r
+        "comments": "",\r
+        "x": 930.1428833007812,\r
+        "y": 222.85715293884277,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "f1c2e566.b878b",\r
+        "type": "set",\r
+        "name": "set pre service param len",\r
+        "xml": "<set>\n   <parameter name='highnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\n   <parameter name='prehighnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />",\r
+        "comments": "",\r
+        "x": 915.1428833007812,\r
+        "y": 286.8571529388428,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "1e59b282.7615bd",\r
+        "type": "switchNode",\r
+        "name": "switch input vnf-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1671,\r
+        "y": 947,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f957b9e3.d73258"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f957b9e3.d73258",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1851,\r
+        "y": 947,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "9990f366.a5d44"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9990f366.a5d44",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='tmp.mso.param.found' value='true' />\n",\r
+        "comments": "",\r
+        "x": 2061,\r
+        "y": 948,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a43a651a.cb999",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.mso.param.not-found",\r
+        "xml": "<switch test='`$tmp.mso.param.found`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 961,\r
+        "y": 1000,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "3b81a77e.2652c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3b81a77e.2652c8",\r
+        "type": "not-found",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1195,\r
+        "y": 999,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "ab9a8a47.e5b7a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "494eddf.a3c6824",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='tmp.mso.param.found' value='false' />\n",\r
+        "comments": "",\r
+        "x": 945,\r
+        "y": 889,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "84e97247.edaa68",\r
+        "type": "switchNode",\r
+        "name": "switch check length > 0",\r
+        "xml": "<switch test='`$prehighnum &gt; 0`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 937.5,\r
+        "y": 948,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "69b58dbb.69cf14"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "69b58dbb.69cf14",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1184.5,\r
+        "y": 948,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "299a7a59.42e276"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c7550dfb.7c233",\r
+        "type": "for",\r
+        "name": "for payload",\r
+        "xml": "<for index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1980,\r
+        "y": 1301,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "4fe60d9.7cf3174"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f16717f0.87dca",\r
+        "type": "set",\r
+        "name": "set resource-key",\r
+        "xml": "<set>\n\t<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\n\t<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\n\t\n",\r
+        "comments": "",\r
+        "x": 2381,\r
+        "y": 1298,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "2781e088.ca7918",\r
+        "type": "set",\r
+        "name": "set output-data ",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.status`' value='PENDING'/>",\r
+        "comments": "",\r
+        "x": 1558,\r
+        "y": 1203,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3b54118e.faf90e",\r
+        "type": "for",\r
+        "name": "for output-key-mapping",\r
+        "xml": "<for index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1166,\r
+        "y": 1250,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "a9d3248b.7f1778"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "3a33ccb3.6e1eec",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 967,\r
+        "y": 1251,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "3b54118e.faf90e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a9d3248b.7f1778",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1361,\r
+        "y": 1249,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "2781e088.ca7918",\r
+                "4ee85384.52e0fc",\r
+                "c974039b.190718"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c974039b.190718",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' value='`$highnum + 1`'/>\n<parameter name='highnum' value='`$highnum + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1557,\r
+        "y": 1301,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5b41a4d9.9a6094",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 589,\r
+        "y": 826,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f656773c.1942a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ee85384.52e0fc",\r
+        "type": "switchNode",\r
+        "name": "switch payload_length",\r
+        "xml": "<switch test=\"`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1587,\r
+        "y": 1250,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "4707dd6b.5ca8dc",\r
+                "b4417e84.e898c8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4707dd6b.5ca8dc",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1802,\r
+        "y": 1182,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "b4417e84.e898c8",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1811,\r
+        "y": 1301,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "c7550dfb.7c233"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2a15b80c.c3724",\r
+        "type": "switchNode",\r
+        "name": "switch: model info == NULL",\r
+        "xml": "<switch test=\"`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.vf-module-label == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 404.2856979370117,\r
+        "y": 583.8571634292603,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "3343905.7d2db7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b7aa9106.9bd0c8",\r
+        "type": "get-resource",\r
+        "name": "get VF_MODEL.sdnc_model_name",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db1.vf-model'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1082.4285278320312,\r
+        "y": 584.7142745256424,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "7239169c.68f35",\r
+                "d4787498.b5b308"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7239169c.68f35",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1325.6427459716797,\r
+        "y": 585.0951337814331,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "403c103e.67045"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "403c103e.67045",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1506.6427268981934,\r
+        "y": 585.2380409240723,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "feba8980.827e58",\r
+        "type": "get-resource",\r
+        "name": "get VF_MODULE_MODEL.vf-module-label",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT vf_module_label from VF_MODULE_MODEL WHERE vf_customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db1.vf-module-model'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1106.380844116211,\r
+        "y": 674.8095637559891,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "9cd72e61.04e98",\r
+                "53281c4d.8fc69c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9cd72e61.04e98",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1385.1664276123047,\r
+        "y": 675.1903877258301,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "5e04ead0.dcafdc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5e04ead0.dcafdc",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1560.166358947754,\r
+        "y": 675.333288192749,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "53281c4d.8fc69c",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1390.380874633789,\r
+        "y": 722.0952731370926,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "a6aee77a.fe795"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ca9b35e.48b424",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "true",\r
+        "outputs": 1,\r
+        "x": 791.2380218505859,\r
+        "y": 584.0952693223953,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "b7aa9106.9bd0c8",\r
+                "feba8980.827e58"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9facc6ca.2e06a",\r
+        "type": "set",\r
+        "name": "set sdnc-model-name, sdnc-model-version",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\n<parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 1602.4285888671875,\r
+        "y": 627.7143096923828,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "d4787498.b5b308",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1331.0000610351562,\r
+        "y": 627.9999847412109,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "9facc6ca.2e06a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a6aee77a.fe795",\r
+        "type": "set",\r
+        "name": "set vf-module-label",\r
+        "xml": "<set>\n<parameter name='tmp.vf-module-label' value='`$db1.vf-module-model.vf-module-label`' />\n\n\n\n",\r
+        "comments": "",\r
+        "x": 1658.5714111328125,\r
+        "y": 722.4286041259766,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4fe60d9.7cf3174",\r
+        "type": "block",\r
+        "name": "block : atomic",\r
+        "xml": "<block atomic='true'>",\r
+        "atomic": "true",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 2157,\r
+        "y": 1300,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": [\r
+            [\r
+                "f16717f0.87dca",\r
+                "a2fc5423.e959a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "a2fc5423.e959a",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n\t<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\n\t<parameter name='num' value='`$num + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2388,\r
+        "y": 1373,\r
+        "z": "ef8bfa93.df0a88",\r
+        "wires": []\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.json
new file mode 100755 (executable)
index 0000000..7b44c0f
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"2e5dca9.d7da736","type":"execute","name":"send service-capacity-reserve-operation","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.capreserve.templatefile`\" />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='post' />\n    <parameter name='responsePrefix' value='tmp.sscapres-response' />\n\n","comments":"","outputs":1,"x":1044.2146587371826,"y":952.6428833007812,"z":"3766be45.1340f2","wires":[["feeb287f.b56f78","406afb5f.817d14"]]},{"id":"feeb287f.b56f78","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1299.7858600616455,"y":954.9288215637207,"z":"3766be45.1340f2","wires":[["975320c7.41878"]]},{"id":"975320c7.41878","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1422.6347904205322,"y":958.0361442565918,"z":"3766be45.1340f2","wires":[["6e616bf9.a673e4","31434e9e.02c892","6463f94e.c389a8"]]},{"id":"6e616bf9.a673e4","type":"record","name":"record failure","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: restapi reserve execution failed\"/>","comments":"","outputs":1,"x":1570.2149143218994,"y":926.21457862854,"z":"3766be45.1340f2","wires":[[]]},{"id":"f4369358.b0cfc","type":"dgstart","name":"DGSTART","outputs":1,"x":121,"y":83,"z":"3766be45.1340f2","wires":[["a5341348.6734f"]]},{"id":"a5341348.6734f","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":221.44043731689453,"y":138.32146644592285,"z":"3766be45.1340f2","wires":[["cfec7332.50833"]]},{"id":"cfec7332.50833","type":"method","name":"method self-serve-vlan-tag-assign","xml":"<method rpc='self-serve-vlan-tag-assign' mode='sync'>\n","comments":"","outputs":1,"x":196.607177734375,"y":211.89287757873535,"z":"3766be45.1340f2","wires":[["de0a5681.1c3af8"]]},{"id":"7f547845.02f9d8","type":"execute","name":"send service-capacity-release-operation","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.caprelease.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='post' />\n    <parameter name='responsePrefix' value='tmp.sscaprel-response' />\n\n","comments":"","outputs":1,"x":997.3574523925781,"y":1592.0001258850098,"z":"3766be45.1340f2","wires":[["45e5cee1.a617a","b66bc7e0.1aa058"]]},{"id":"57679e70.00d77","type":"for","name":"for each vnf-module param","xml":"<for index='capIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >","comments":"","outputs":1,"x":404.14276123046875,"y":486.6073303222656,"z":"3766be45.1340f2","wires":[["5d287582.a0cf4c"]]},{"id":"de0a5681.1c3af8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":194.64290618896484,"y":298.75003242492676,"z":"3766be45.1340f2","wires":[["8b719dcb.07fdf","94c4fb1b.c56528","993da09.d6dd36","57679e70.00d77"]]},{"id":"8b719dcb.07fdf","type":"execute","name":"execute readProperties","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":520.357177734375,"y":225.41665649414062,"z":"3766be45.1340f2","wires":[["fd63e71a.dbbaf8","2288fca9.491bb4"]]},{"id":"fd63e71a.dbbaf8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":730.9286346435547,"y":186.75000381469727,"z":"3766be45.1340f2","wires":[["a8be424b.ae295"]]},{"id":"2288fca9.491bb4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":725.7143783569336,"y":258.8214416503906,"z":"3766be45.1340f2","wires":[["e9c92d46.4e05a"]]},{"id":"e9c92d46.4e05a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":859.1427993774414,"y":257.2500057220459,"z":"3766be45.1340f2","wires":[["b950922e.2b5ef","6b1cbea6.7e424"]]},{"id":"a8be424b.ae295","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: read properties file.\" />","comments":"","outputs":1,"x":885.5356750488281,"y":187.6428508758545,"z":"3766be45.1340f2","wires":[[]]},{"id":"b950922e.2b5ef","type":"GenericXML","name":"record","xml":"<record  plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: failed to read properties file.\" />\n<parameter name=\"field4\" value=\"generic-resource-api-dg.properties\"/>","comments":"","outputs":1,"x":1063.4286422729492,"y":225.4285945892334,"z":"3766be45.1340f2","wires":[[]]},{"id":"6b1cbea6.7e424","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='self-serve-vlan-tag-assign: could not read generic-resource-api properties' />\n","comments":"","x":1068.1428833007812,"y":274.3928737640381,"z":"3766be45.1340f2","wires":[]},{"id":"31434e9e.02c892","type":"set","name":"set FAILED in service-data","xml":"<set>\n<parameter name='sscap.reserve.response-code' value='500' />\n<parameter name='sscap.reserve.response-message' value='Self Serve Capacity Api restapi reserve execution failed' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />\n","comments":"","x":1613.3574676513672,"y":971.6075496673584,"z":"3766be45.1340f2","wires":[]},{"id":"406afb5f.817d14","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1316.1071529388428,"y":1100.7144680023193,"z":"3766be45.1340f2","wires":[["96a8ccf3.28f77"]]},{"id":"80bbdace.317538","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1839.1434726715088,"y":1100.0003108978271,"z":"3766be45.1340f2","wires":[["986ced70.9f262","e0fef4b9.588998","31e3cce8.0d9774"]]},{"id":"e0fef4b9.588998","type":"record","name":"record success","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: reserve successful\"/>\n<parameter name=\"field4\" value='`$tmp.sscapres-response.response-code`'/>\n<parameter name=\"field5\" value='`$tmp.sscapres-response.response-message`'/>\n<parameter name=\"field6\" value='`$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].allocated`' />\n<parameter name=\"field7\" value='`$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].end-point-position`' />\n","comments":"","outputs":1,"x":1984.4017333984375,"y":1037.4644775390625,"z":"3766be45.1340f2","wires":[[]]},{"id":"986ced70.9f262","type":"set","name":"set SUCCESS in service-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='SUCCESS' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pmIdx].value' value='$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].allocated' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pmIdx].name' value='$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].end-point-position' />\n","comments":"","x":2026.6513214111328,"y":1112.3215341567993,"z":"3766be45.1340f2","wires":[]},{"id":"45e5cee1.a617a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1246.2858581542969,"y":1568.5715713500977,"z":"3766be45.1340f2","wires":[["c4ad509b.c0ede"]]},{"id":"b66bc7e0.1aa058","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1236.7147827148438,"y":1674.1788568496704,"z":"3766be45.1340f2","wires":[["c5c6312c.a01b7"]]},{"id":"c4ad509b.c0ede","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1363.420467376709,"y":1570.785846710205,"z":"3766be45.1340f2","wires":[["6309df91.77d2f","b44511ae.bf575","55fe953b.9fcd0c"]]},{"id":"e6278d71.397a4","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1771.715087890625,"y":1594.7143058776855,"z":"3766be45.1340f2","wires":[["e9013f35.6380e","6f5a407a.3f11e"]]},{"id":"6309df91.77d2f","type":"record","name":"record failure","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: restapi release execution failed\"/>","comments":"","outputs":1,"x":1509.3932075500488,"y":1529.6788539886475,"z":"3766be45.1340f2","wires":[[]]},{"id":"b44511ae.bf575","type":"set","name":"set FAILED in service-data","xml":"<set>\n<parameter name='sscap.release.response-code' value='500' />\n<parameter name='sscap.release.response-message' value='Self Serve Capacity Api restapi release execution failed' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />\n\n","comments":"","x":1560.7505340576172,"y":1573.107078552246,"z":"3766be45.1340f2","wires":[]},{"id":"e9013f35.6380e","type":"record","name":"record success","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: release successful\"/>\n<parameter name=\"field4\" value='`$tmp.sscaprel-response.response-code`'/>\n<parameter name=\"field5\" value='`$tmp.sscaprel-response.response-message`'/>\n","comments":"","outputs":1,"x":1924.6520080566406,"y":1557.8927221298218,"z":"3766be45.1340f2","wires":[[]]},{"id":"fd646403.afecc8","type":"switchNode","name":"switch capability action","xml":"<switch test=\"`$ss.capability-action`\">\n","comments":"","outputs":1,"x":397.1429138183594,"y":1095.7144794464111,"z":"3766be45.1340f2","wires":[["82183726.67eb28","444c2480.e1ccbc"]]},{"id":"82183726.67eb28","type":"other","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":627.9764823913574,"y":733.7142839431763,"z":"3766be45.1340f2","wires":[["2d01afd8.87d8f"]]},{"id":"444c2480.e1ccbc","type":"other","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":611.4287796020508,"y":1365.7144298553467,"z":"3766be45.1340f2","wires":[["cbdf7c42.0b938"]]},{"id":"94c4fb1b.c56528","type":"call","name":"call self-serve-capabilty-param-resolution","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >","comments":"","outputs":1,"x":533.7501220703125,"y":360.35711669921875,"z":"3766be45.1340f2","wires":[[]]},{"id":"800e2b0e.618c48","type":"set","name":"set rel-entity-id","xml":"<set>\n<parameter name='sscap.rel-entity-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1631.4285430908203,"y":1362.8568964004517,"z":"3766be45.1340f2","wires":[]},{"id":"2d01afd8.87d8f","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":789.4643783569336,"y":731.2500267028809,"z":"3766be45.1340f2","wires":[["2e5dca9.d7da736","7ff997e7.61cb38","d7f90361.864ba","15d5c5ea.944a4a"]]},{"id":"cbdf7c42.0b938","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":791.4287109375,"y":1417.1429481506348,"z":"3766be45.1340f2","wires":[["7f547845.02f9d8","9576e42b.872ea8","1a2b41b4.0bac5e"]]},{"id":"5d287582.a0cf4c","type":"switchNode","name":"switch resource-resolution-data = ss.capability-name","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module.param[$capIdx].resource-resolution-data.capability-name == $ss.capability-name`\">","comments":"","outputs":1,"x":353.57135009765625,"y":582.2500610351562,"z":"3766be45.1340f2","wires":[["867edb26.b838c8"]]},{"id":"c5c6312c.a01b7","type":"switchNode","name":"switch response code","xml":"<switch test=\"`$tmp.sscaprel-response.response-code`\">\n","comments":"","outputs":1,"x":1417.9646911621094,"y":1674.8930168151855,"z":"3766be45.1340f2","wires":[["65171ccb.28dbb4","3696a26c.a660fe"]]},{"id":"96a8ccf3.28f77","type":"switchNode","name":"switch response code","xml":"<switch test=\"`$tmp.sscapres-response.response-code`\">\n","comments":"","outputs":1,"x":1515.8218479156494,"y":1129.0002269744873,"z":"3766be45.1340f2","wires":[["613ef895.7834c8","ca2896da.2f3628"]]},{"id":"613ef895.7834c8","type":"other","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1711.7140789031982,"y":1101.142861366272,"z":"3766be45.1340f2","wires":[["80bbdace.317538"]]},{"id":"65171ccb.28dbb4","type":"other","name":"200","xml":"<outcome value='200'>\n","comments":"","outputs":1,"x":1636.714500427246,"y":1652.928563117981,"z":"3766be45.1340f2","wires":[["e6278d71.397a4"]]},{"id":"752cd1d6.40da9","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1773.1430206298828,"y":1699.5359859466553,"z":"3766be45.1340f2","wires":[["70e8f618.3b6998","bbd58db3.9c973","990090e6.ae127"]]},{"id":"70e8f618.3b6998","type":"record","name":"record failure","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: release failed\"/>\n<parameter name=\"field4\" value='`$tmp.sscaprel-response.response-code`'/>\n<parameter name=\"field5\" value='`$tmp.sscaprel-response.response-message`'/>\n","comments":"","outputs":1,"x":1937.3299407958984,"y":1684.857666015625,"z":"3766be45.1340f2","wires":[[]]},{"id":"8d191674.7b4368","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1851.7143993377686,"y":1178.571415901184,"z":"3766be45.1340f2","wires":[["aad48243.a2c27","6a3a1d2b.9f2594"]]},{"id":"aad48243.a2c27","type":"record","name":"record failure","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: reserve failed\"/>\n<parameter name=\"field4\" value='`$tmp.sscapres-response.response-code`'/>\n<parameter name=\"field5\" value='`$tmp.sscapres-response.response-message`'/>\n","comments":"","outputs":1,"x":2006.615665435791,"y":1163.1787090301514,"z":"3766be45.1340f2","wires":[[]]},{"id":"ca2896da.2f3628","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1718.5713939666748,"y":1179.1431674957275,"z":"3766be45.1340f2","wires":[["8d191674.7b4368"]]},{"id":"3696a26c.a660fe","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1634.5000457763672,"y":1693.7859859466553,"z":"3766be45.1340f2","wires":[["752cd1d6.40da9"]]},{"id":"867edb26.b838c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":330.1071434020996,"y":672.39284324646,"z":"3766be45.1340f2","wires":[["fd646403.afecc8"]]},{"id":"9576e42b.872ea8","type":"for","name":"for each resource key","xml":"<for index='rkIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key_length`' >","comments":"","outputs":1,"x":1017.1429290771484,"y":1423.4284057617188,"z":"3766be45.1340f2","wires":[["cb19edd3.f7eca"]]},{"id":"cb19edd3.f7eca","type":"switchNode","name":"switch resource key name","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].name`\">\n","comments":"","outputs":1,"x":1257.1429138183594,"y":1428.000015258789,"z":"3766be45.1340f2","wires":[["8697da6f.c8ae48","61ce5ca.55305a4","69787ca9.214c84"]]},{"id":"8697da6f.c8ae48","type":"other","name":"vnf-name","xml":"<outcome value='vnf-name'>\n","comments":"","outputs":1,"x":1461.428596496582,"y":1358.0001373291016,"z":"3766be45.1340f2","wires":[["800e2b0e.618c48"]]},{"id":"69787ca9.214c84","type":"other","name":"nf-role","xml":"<outcome value='nf-role'>\n","comments":"","outputs":1,"x":1467.1428451538086,"y":1400.8570976257324,"z":"3766be45.1340f2","wires":[["d288cf3.e768b3"]]},{"id":"61ce5ca.55305a4","type":"other","name":"vlan-tag-type","xml":"<outcome value='vlan-tag-type'>\n","comments":"","outputs":1,"x":1480.0000228881836,"y":1442.2857456207275,"z":"3766be45.1340f2","wires":[["969a9d1c.4858b"]]},{"id":"d288cf3.e768b3","type":"set","name":"set rel-entity-type","xml":"<set>\n<parameter name='sscap.rel-entity-type' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1628.571533203125,"y":1403.7142333984375,"z":"3766be45.1340f2","wires":[]},{"id":"969a9d1c.4858b","type":"set","name":"set rel-endpoint-position","xml":"<set>\n<parameter name='sscap.rel-endpoint-position' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1668.5714111328125,"y":1446.5715618133545,"z":"3766be45.1340f2","wires":[]},{"id":"7ff997e7.61cb38","type":"for","name":"for each resource key","xml":"<for index='rkIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key_length`' >","comments":"","outputs":1,"x":996.5356750488281,"y":708.0357646942139,"z":"3766be45.1340f2","wires":[["2bb15b3.0f680a4"]]},{"id":"2bb15b3.0f680a4","type":"switchNode","name":"switch resource key name","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].name`\">\n","comments":"","outputs":1,"x":1225.2856826782227,"y":708.1430397033691,"z":"3766be45.1340f2","wires":[["59f7ea26.4a1e04","db8ed527.405a78","ad6405c8.bf6b98","cfc08671.cb24b8","122b1ec8.a072f1"]]},{"id":"59f7ea26.4a1e04","type":"other","name":"vnf-name","xml":"<outcome value='vnf-name'>\n","comments":"","outputs":1,"x":1449.750144958496,"y":675.6431837081909,"z":"3766be45.1340f2","wires":[["c5534768.1726f8"]]},{"id":"ad6405c8.bf6b98","type":"other","name":"aic-site-id","xml":"<outcome value='aic-site-id'>\n","comments":"","outputs":1,"x":1451.8926239013672,"y":767.071605682373,"z":"3766be45.1340f2","wires":[["22b48e8b.a805c2"]]},{"id":"db8ed527.405a78","type":"other","name":"vlan-tag-type","xml":"<outcome value='vlan-tag-type'>\n","comments":"","outputs":1,"x":1458.5000457763672,"y":817.071704864502,"z":"3766be45.1340f2","wires":[["4b7b97b2.2d0078"]]},{"id":"c5534768.1726f8","type":"set","name":"set res-entity-id","xml":"<set>\n<parameter name='sscap.res-entity-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1629.0355987548828,"y":674.0713577270508,"z":"3766be45.1340f2","wires":[]},{"id":"22b48e8b.a805c2","type":"set","name":"set res-target-id","xml":"<set>\n<parameter name='sscap.res-target-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1634.571922302246,"y":766.8930892944336,"z":"3766be45.1340f2","wires":[]},{"id":"4b7b97b2.2d0078","type":"set","name":"set res-endpoint-position","xml":"<set>\n<parameter name='sscap.res-endpoint-position' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1664.928565979004,"y":819.036060333252,"z":"3766be45.1340f2","wires":[]},{"id":"d7f90361.864ba","type":"set","name":"set res-target-type","xml":"<set>\n<parameter name='sscap.res-target-type' value='`$prop.restapi.ss.capreserve.targettype`' />","comments":"","x":997.0715103149414,"y":643.2143783569336,"z":"3766be45.1340f2","wires":[]},{"id":"122b1ec8.a072f1","type":"other","name":"vlan-recipe","xml":"<outcome value='vlan-recipe'>\n","comments":"","outputs":1,"x":1446.8928146362305,"y":622.857195854187,"z":"3766be45.1340f2","wires":[["29007a85.cf4516"]]},{"id":"29007a85.cf4516","type":"set","name":"set res-service-model","xml":"<set>\n<parameter name='sscap.res-service-model' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1627.249855041504,"y":621.9996271133423,"z":"3766be45.1340f2","wires":[]},{"id":"cfc08671.cb24b8","type":"other","name":"nf-role","xml":"<outcome value='nf-role'>\n","comments":"","outputs":1,"x":1442.607566833496,"y":722.6786842346191,"z":"3766be45.1340f2","wires":[["a8aa861e.5b9688"]]},{"id":"a8aa861e.5b9688","type":"set","name":"set res-entity-type","xml":"<set>\n<parameter name='sscap.res-entity-type' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />\n","comments":"","x":1634.3931198120117,"y":723.2495822906494,"z":"3766be45.1340f2","wires":[]},{"id":"6a3a1d2b.9f2594","type":"set","name":"set FAILED in service-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />\n","comments":"","x":2043.0356063842773,"y":1218.714391708374,"z":"3766be45.1340f2","wires":[]},{"id":"6f5a407a.3f11e","type":"set","name":"set DELETED in service-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='DELETED' />\n","comments":"","x":1972.8570709228516,"y":1605.7143592834473,"z":"3766be45.1340f2","wires":[]},{"id":"bbd58db3.9c973","type":"set","name":"set FAILED in service-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />\n","comments":"","x":1971.4289627075195,"y":1730.178565979004,"z":"3766be45.1340f2","wires":[]},{"id":"31e3cce8.0d9774","type":"set","name":"set pmIdx","xml":"<set>\n<parameter name='pmIdx' value='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length' />\n","comments":"","x":2005.7142868041992,"y":1071.642807006836,"z":"3766be45.1340f2","wires":[]},{"id":"990090e6.ae127","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='self-serve-vlan-tag-assign: release failed' />\n","comments":"","x":1930.000057220459,"y":1776.750051498413,"z":"3766be45.1340f2","wires":[]},{"id":"55fe953b.9fcd0c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='self-serve-vlan-tag-assign: release failed' />\n","comments":"","x":1510.75,"y":1621.25,"z":"3766be45.1340f2","wires":[]},{"id":"6463f94e.c389a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='self-serve-vlan-tag-assign: reserve failed' />\n","comments":"","x":1577.5357151031494,"y":1017.607159614563,"z":"3766be45.1340f2","wires":[]},{"id":"15d5c5ea.944a4a","type":"record","name":"record reserve params","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: reserve params\"/>\n<parameter name=\"field4\" value='`$sscap.res-service-model`'/>\n<parameter name=\"field5\" value='`$sscap.res-entity-type`'/>\n<parameter name=\"field6\" value='`$sscap.res-entity-id`'/>\n<parameter name=\"field7\" value='`$sscap.res-target-type.`' />\n<parameter name=\"field8\" value='`$sscap.res-target-id`'/>\n<parameter name=\"field9\" value='`$sscap.res.endpoint-position`' />\n","comments":"","outputs":1,"x":1020.5000305175781,"y":795.5000267028809,"z":"3766be45.1340f2","wires":[[]]},{"id":"1a2b41b4.0bac5e","type":"record","name":"record release params","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API\"/>\n<parameter name=\"field3\" value=\"self-serve-vlan-tag-assign: release params\"/>\n<parameter name=\"field4\" value='`$sscap.res-entity-type`'/>\n<parameter name=\"field5\" value='`$sscap.res-entity-id`'/>\n<parameter name=\"field6\" value='`$sscap.res.endpoint-position`' />\n","comments":"","outputs":1,"x":1026.75,"y":1505,"z":"3766be45.1340f2","wires":[[]]},{"id":"993da09.d6dd36","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":226.25000762939453,"y":900.7500457763672,"z":"3766be45.1340f2","wires":[]}]
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-assign.json
new file mode 100644 (file)
index 0000000..7df418c
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"b0b96588.229f48","type":"dgstart","name":"DGSTART","outputs":1,"x":142.5,"y":46.25,"z":"a47d3f62.0db2a","wires":[["e90fc91d.4cb818"]]},{"id":"1514d1ed.4c979e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":172.9761962890625,"y":168.5277862548828,"z":"a47d3f62.0db2a","wires":[["7b27a78e.ba8dc8","80ae9411.82a148","25697284.5cbf8e","13a7d2a7.9e0a2d","796ecfd8.ad192","1e8fbb14.957dd5","8a4e3013.de936","326845e9.15749a","15906be0.23cf64","574274d.1ac608c"]]},{"id":"6b266014.a5448","type":"method","name":"method self-serve-vnf-assign","xml":"<method rpc='self-serve-vnf-assign' mode='sync'>\n","comments":"","outputs":1,"x":259.2619094848633,"y":100.95635509490967,"z":"a47d3f62.0db2a","wires":[["1514d1ed.4c979e"]]},{"id":"e90fc91d.4cb818","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":417.73819732666016,"y":46.44049263000488,"z":"a47d3f62.0db2a","wires":[["6b266014.a5448"]]},{"id":"80ae9411.82a148","type":"switchNode","name":"switch vnf-parameters-data.param_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`'>\n","comments":"","outputs":1,"x":461.1786575317383,"y":1388.7620058059692,"z":"a47d3f62.0db2a","wires":[["63678a61.0670d4"]]},{"id":"63678a61.0670d4","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":723.1786880493164,"y":1388.7620058059692,"z":"a47d3f62.0db2a","wires":[["451745db.c8b2dc"]]},{"id":"220cb46a.85a42c","type":"call","name":"call GENERIC-RESOURCE-API:self-serve-ra-assignment","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-ra-assignment' mode='sync' >\n","comments":"","outputs":1,"x":1238.4643478393555,"y":1438.3334369659424,"z":"a47d3f62.0db2a","wires":[["73d82327.4c165c"]]},{"id":"a26b7aab.bc2f18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get RA assignments: ' + $error-message`\" />\n","comments":"","x":1710.1785888671875,"y":1437.9048404693604,"z":"a47d3f62.0db2a","wires":[]},{"id":"14838ac6.319735","type":"for","name":"foreach vnf-parameters-data.param[]","xml":"<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":686.3574600219727,"y":1756.2620840072632,"z":"a47d3f62.0db2a","wires":[["b75f8daf.b163f","616a141.af79fec"]]},{"id":"7b27a78e.ba8dc8","type":"set","name":"set ss.capability.execution-order[]","xml":"<set>\n<parameter name='ss.capability.execution-order[0]' value='generate-name' />\n<parameter name='ss.capability.execution-order[1]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[2]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[3]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[4]' value='eipam-ip-assign' />\n<parameter name='ss.capability.execution-order[5]' value='eipam-create-pool\"' />\n<parameter name='ss.capability.execution-order[6]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[7]' value='create-vpe-pool' />\n<parameter name='ss.capability.execution-order[8]' value='unresolved-composite-data' />\n<parameter name='ss.capability.execution-order_length' value='9' />\n","comments":"","x":435.02384185791016,"y":1227.2501401901245,"z":"a47d3f62.0db2a","wires":[]},{"id":"25697284.5cbf8e","type":"for","name":"foreach capability[]","xml":"<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n","comments":"","outputs":1,"x":390.4286880493164,"y":1496.3691005706787,"z":"a47d3f62.0db2a","wires":[["2c03690.5bf2198","689e80c6.f5962","49b693f1.c7362c","14838ac6.319735"]]},{"id":"616a141.af79fec","type":"switchNode","name":"switch capability-name","xml":"<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n","comments":"","outputs":1,"x":990.7502822875977,"y":1801.9048767089844,"z":"a47d3f62.0db2a","wires":[["29d63c92.b13e14"]]},{"id":"29d63c92.b13e14","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1254.2502822875977,"y":1802.1548767089844,"z":"a47d3f62.0db2a","wires":[["bc5fb402.9e3c18"]]},{"id":"73d82327.4c165c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1556.0356941223145,"y":1437.7620306015015,"z":"a47d3f62.0db2a","wires":[["a26b7aab.bc2f18"]]},{"id":"2c03690.5bf2198","type":"set","name":"set ss.capability-name","xml":"<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n<!--\nss.capability.execution-order[]\n-->","comments":"","x":646.7857437133789,"y":1496.3215522766113,"z":"a47d3f62.0db2a","wires":[]},{"id":"b75f8daf.b163f","type":"set","name":"tmp.param.capability-name","xml":"<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1002.107307434082,"y":1756.5120868682861,"z":"a47d3f62.0db2a","wires":[]},{"id":"49b693f1.c7362c","type":"set","name":"set ss.capability.action = assign","xml":"<set>\n<parameter name='ss.capability-action' value='assign' />\n","comments":"","x":675.499885559082,"y":1543.238136291504,"z":"a47d3f62.0db2a","wires":[]},{"id":"5a2f26a9.cbeda8","type":"set","name":"set capability-dg with 'self-serve-' + capability-name","xml":"<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n","comments":"","x":1179.2619552612305,"y":1690.4643688201904,"z":"a47d3f62.0db2a","wires":[]},{"id":"689e80c6.f5962","type":"switchNode","name":"switch ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":658.7619552612305,"y":1592.214376449585,"z":"a47d3f62.0db2a","wires":[["4eea8376.d97c2c","b908a428.6a8ed8","d0be0742.b21258"]]},{"id":"4eea8376.d97c2c","type":"other","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":941.512077331543,"y":1592.7143688201904,"z":"a47d3f62.0db2a","wires":[["9880d30d.acfe4"]]},{"id":"b908a428.6a8ed8","type":"other","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":930.762077331543,"y":1640.4643688201904,"z":"a47d3f62.0db2a","wires":[["9880d30d.acfe4"]]},{"id":"d0be0742.b21258","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":894.7620391845703,"y":1690.7143592834473,"z":"a47d3f62.0db2a","wires":[["5a2f26a9.cbeda8"]]},{"id":"9880d30d.acfe4","type":"set","name":"set capability-dg to self-serve-alts-assignment","xml":"<set>\n<parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\n","comments":"","x":1280.2619552612305,"y":1592.2143688201904,"z":"a47d3f62.0db2a","wires":[]},{"id":"13a7d2a7.9e0a2d","type":"set","name":"set sdnc-generated-cloud-resources = true","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\n","comments":"","x":463.9881362915039,"y":1281.0001487731934,"z":"a47d3f62.0db2a","wires":[]},{"id":"9e98c03e.e81b8","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":720.428539276123,"y":561.7143030166626,"z":"a47d3f62.0db2a","wires":[["86c51bf7.a16728","4d067e36.b96bd","17269762.5ea849","c820210.4d230e","1ce6e283.bfbe5d","74ecb476.0b143c","578440a1.1ac38","1728506c.9c203","1400bb2c.323765"]]},{"id":"86c51bf7.a16728","type":"set","name":"set vnf-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\n value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\n value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\n value='`$db.vf-model.nf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\n value='`$db.vf-model.nf-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\n value='`$db.vf-model.nf-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\n value='`$db.vf-model.nf-code`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\n value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\n value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\n \n","comments":"","x":935.9284820556641,"y":562.773811340332,"z":"a47d3f62.0db2a","wires":[]},{"id":"e543e5f2.e32d38","type":"set","name":"set vnf-parameters-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\n  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\n","comments":"","x":1129.4645767211914,"y":1388.6308345794678,"z":"a47d3f62.0db2a","wires":[]},{"id":"17269762.5ea849","type":"set","name":"set vnf-level-oper-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":1001.2184371948242,"y":1136.754020690918,"z":"a47d3f62.0db2a","wires":[]},{"id":"4d067e36.b96bd","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' \n\tvalue='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' \n\tvalue='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' \n\tvalue='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' \n\tvalue='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' \n\tvalue='$vnf-topology-operation-input.vnf-request-input.' />\n","comments":"","x":918.5953521728516,"y":1086.5596599578857,"z":"a47d3f62.0db2a","wires":[]},{"id":"5d74706f.90119","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-model.invariant-uuid`' />\n","comments":"","x":1332.9286727905273,"y":675.1310405731201,"z":"a47d3f62.0db2a","wires":[]},{"id":"c820210.4d230e","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":973.7857475280762,"y":697.9554843902588,"z":"a47d3f62.0db2a","wires":[["b9245b9c.3ecc98","9b989b17.260bb8"]]},{"id":"b9245b9c.3ecc98","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1182.4524192810059,"y":675.0984477996826,"z":"a47d3f62.0db2a","wires":[["5d74706f.90119"]]},{"id":"9b989b17.260bb8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1183.881015777588,"y":719.3840389251709,"z":"a47d3f62.0db2a","wires":[["673b70f8.38a61"]]},{"id":"673b70f8.38a61","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":1338.1667518615723,"y":718.8126111030579,"z":"a47d3f62.0db2a","wires":[]},{"id":"3b9bd317.7be8dc","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$db.vf-model.uuid`' />\n","comments":"","x":1333.8809432983398,"y":763.669716835022,"z":"a47d3f62.0db2a","wires":[]},{"id":"1ce6e283.bfbe5d","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":943.4047660827637,"y":786.4942216873169,"z":"a47d3f62.0db2a","wires":[["e64d40cc.f329","fa3552c6.1d4ac"]]},{"id":"e64d40cc.f329","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1183.4047393798828,"y":763.6371536254883,"z":"a47d3f62.0db2a","wires":[["3b9bd317.7be8dc"]]},{"id":"fa3552c6.1d4ac","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1184.8333358764648,"y":807.9227447509766,"z":"a47d3f62.0db2a","wires":[["cef60287.97713"]]},{"id":"cef60287.97713","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n","comments":"","x":1339.1190719604492,"y":807.3513169288635,"z":"a47d3f62.0db2a","wires":[]},{"id":"8fa2366.cacb1c8","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$db.vf-model.version`' />\n","comments":"","x":1331.0238761901855,"y":852.5269241333008,"z":"a47d3f62.0db2a","wires":[]},{"id":"74ecb476.0b143c","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":954.5476379394531,"y":875.3513689041138,"z":"a47d3f62.0db2a","wires":[["5b83f3e8.984ebc","7461e31a.fbf8bc"]]},{"id":"5b83f3e8.984ebc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1180.547622680664,"y":852.4943313598633,"z":"a47d3f62.0db2a","wires":[["8fa2366.cacb1c8"]]},{"id":"7461e31a.fbf8bc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1181.976219177246,"y":896.7799224853516,"z":"a47d3f62.0db2a","wires":[["2cdf59a1.805126"]]},{"id":"2cdf59a1.805126","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\n","comments":"","x":1336.2619552612305,"y":896.2084946632385,"z":"a47d3f62.0db2a","wires":[]},{"id":"f2ffca70.21e538","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$db.vf-model.name`' />\n","comments":"","x":1331.0238761901855,"y":939.6697463989258,"z":"a47d3f62.0db2a","wires":[]},{"id":"578440a1.1ac38","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":949.5476379394531,"y":962.4941911697388,"z":"a47d3f62.0db2a","wires":[["45b802b6.259d6c","7394350e.76bcec"]]},{"id":"45b802b6.259d6c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1180.547622680664,"y":939.6371536254883,"z":"a47d3f62.0db2a","wires":[["f2ffca70.21e538"]]},{"id":"7394350e.76bcec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1181.976219177246,"y":983.9227447509766,"z":"a47d3f62.0db2a","wires":[["93da4ccc.16b56"]]},{"id":"93da4ccc.16b56","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\n","comments":"","x":1336.2619552612305,"y":983.3513169288635,"z":"a47d3f62.0db2a","wires":[]},{"id":"1728506c.9c203","type":"set","name":"set vnf-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\n   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n","comments":"","x":899.9047088623047,"y":614.2888488769531,"z":"a47d3f62.0db2a","wires":[]},{"id":"1400bb2c.323765","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":962.3332252502441,"y":1035.3363952636719,"z":"a47d3f62.0db2a","wires":[]},{"id":"326845e9.15749a","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":446.58329010009766,"y":248.67850017547607,"z":"a47d3f62.0db2a","wires":[["dfa50f80.31a11","393306bc.2d4d9a","380e8ac4.4fe806"]]},{"id":"dfa50f80.31a11","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":688.7976760864258,"y":187.23793125152588,"z":"a47d3f62.0db2a","wires":[["32deb3a2.50313c"]]},{"id":"7bff0459.171e4c","type":"set","name":"set vnf-index=0","xml":"<set>\n<parameter name='vnf-index' value='0' />\n","comments":"","x":1024.083381652832,"y":186.73800563812256,"z":"a47d3f62.0db2a","wires":[]},{"id":"393306bc.2d4d9a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":689.976203918457,"y":308.857120513916,"z":"a47d3f62.0db2a","wires":[["21bb1e8e.d3c9a2"]]},{"id":"bc5fb402.9e3c18","type":"switchNode","name":"switch resource-resolution-data.status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n","comments":"","outputs":1,"x":525.5122108459473,"y":2058.7222986221313,"z":"a47d3f62.0db2a","wires":[["83a70f8.89ae6f","99909353.18ed6","695fcfa4.a0172"]]},{"id":"83a70f8.89ae6f","type":"other","name":"PENDING","xml":"<outcome value='PENDING'>\n","comments":"","outputs":1,"x":794.8694267272949,"y":2058.722254753113,"z":"a47d3f62.0db2a","wires":[["c1e48e20.efc4d"]]},{"id":"99909353.18ed6","type":"other","name":"SUCCESS","xml":"<outcome value='SUCCESS'>\n","comments":"","outputs":1,"x":798.2979164123535,"y":2010.186538696289,"z":"a47d3f62.0db2a","wires":[["4b6bc0ee.44eac"]]},{"id":"695fcfa4.a0172","type":"other","name":"FAILED","xml":"<outcome value='FAILED'>\n","comments":"","outputs":1,"x":788.4052429199219,"y":2109.6865854263306,"z":"a47d3f62.0db2a","wires":[["c1e48e20.efc4d"]]},{"id":"c1e48e20.efc4d","type":"call","name":"call ss.capability-dg","xml":"<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n","comments":"","outputs":1,"x":1003.5239753723145,"y":2110.4484367370605,"z":"a47d3f62.0db2a","wires":[["1575afdc.e8231","48d48b0b.9b7ee4"]]},{"id":"28de7c64.1baa14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`\" />\n","comments":"","x":1571.0714149475098,"y":2364.424892425537,"z":"a47d3f62.0db2a","wires":[]},{"id":"1575afdc.e8231","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1188.4164848327637,"y":2110.448497772217,"z":"a47d3f62.0db2a","wires":[["9c3b5da5.9473a"]]},{"id":"9c3b5da5.9473a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1351.690601348877,"y":2109.758038520813,"z":"a47d3f62.0db2a","wires":[["28de7c64.1baa14","5fadc36e.101b7c","2edac9b3.9fc286","4db4623.d5e639c","db1dc49b.785d58"]]},{"id":"2edac9b3.9fc286","type":"execute","name":"generate ss-vnf url replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1675.0236930847168,"y":2163.274598121643,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"db1dc49b.785d58","type":"execute","name":"execute RestApiCallNode - PUT vnf","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vnf\" />\n\n","comments":"","outputs":1,"x":1644.4879875183105,"y":2266.1318197250366,"z":"a47d3f62.0db2a","wires":[["6bcc6185.dd18f","2c2d6146.b2bf7e","e7baf82a.d9d548"]]},{"id":"6bcc6185.dd18f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1919.0816535949707,"y":2320.12997341156,"z":"a47d3f62.0db2a","wires":[["a87af8d7.91b3f8"]]},{"id":"2c2d6146.b2bf7e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1911.5102882385254,"y":2266.6299934387207,"z":"a47d3f62.0db2a","wires":[["a87af8d7.91b3f8"]]},{"id":"e7baf82a.d9d548","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1915.2602806091309,"y":2212.987091064453,"z":"a47d3f62.0db2a","wires":[["a92b899d.04d118"]]},{"id":"a92b899d.04d118","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2091.630512237549,"y":2212.893572330475,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"a87af8d7.91b3f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2113.6426124572754,"y":2266.274248123169,"z":"a47d3f62.0db2a","wires":[["ae1e1153.3000a"]]},{"id":"ae1e1153.3000a","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed to persist self-serve vnf assignments during assign in MD-SAL\" />\n","comments":"","outputs":1,"x":2331.928379058838,"y":2266.4171113967896,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"5fadc36e.101b7c","type":"set","name":"set vf data for restapi-call-node","xml":"<set>\n<parameter name='vf.vnf-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n<parameter name='vf.vnf-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\n<parameter name='vf.vnf-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\n<parameter name='vf.vnf-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\n<parameter name='vf.vnf-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\n<parameter name='vf.vnf-data.vnf-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\n<parameter name='vf.vnf-data.vnf-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />\n<parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\n<parameter name='vf.vnf-data.vnf-request-input.request-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.request-version`' />\n<parameter name='vf.vnf-data.vnf-request-input.vnf-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-name`' />\n<parameter name='vf.vnf-data.vnf-request-input.tenant'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.tenant`' />\n<parameter name='vf.vnf-data.vnf-request-input.aic-cloud-region'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-cloud-region`' />\n<parameter name='vf.vnf-data.vnf-request-input.aic-clli'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-clli`' />","comments":"","x":1627.4759941101074,"y":2109.369110107422,"z":"a47d3f62.0db2a","wires":[]},{"id":"4db4623.d5e639c","type":"execute","name":"generate ss-vnf url - replace vnf-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\"/>\n","comments":"","outputs":1,"x":1639.309398651123,"y":2214.083366394043,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"1e8fbb14.957dd5","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\n","comments":"","outputs":1,"x":362.2816848754883,"y":3317.170946121216,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"875bd0b4.df5c","type":"for","name":"foreach vnf-parameters-data.param[]","xml":"<for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":858.5358200073242,"y":3005.7977294921875,"z":"a47d3f62.0db2a","wires":[["2a050b6.e7060f4"]]},{"id":"2a050b6.e7060f4","type":"switchNode","name":"switch param[$i].name","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`'>\n","comments":"","outputs":1,"x":1137.2858200073242,"y":3005.297700881958,"z":"a47d3f62.0db2a","wires":[["f47fbb0e.df1e88"]]},{"id":"f47fbb0e.df1e88","type":"other","name":"vnf_name","xml":"<outcome value='vnf_name'>\n","comments":"","outputs":1,"x":1337.2858352661133,"y":3005.0477294921875,"z":"a47d3f62.0db2a","wires":[["5dbfb083.b9606"]]},{"id":"2e791445.a4035c","type":"save","name":"update generic-vnf.vnf-name","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n\tresource=\"generic-vnf\"\n\t\tkey=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id \"\n\tpfx=\"tmp.aai.update.vnf\" >\n<parameter name=\"vnf-name\" value='`$tmp.ss.vnf-name`' />\n\n","comments":"","outputs":1,"x":1759.6191101074219,"y":3055.880904197693,"z":"a47d3f62.0db2a","wires":[["bd7d2fe0.b68fb","5ba61c06.ee5304"]]},{"id":"56e25424.f8ca1c","type":"set","name":"set tmp.ss.vnf-name","xml":"<set>\n<parameter name='tmp.ss.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\n","comments":"","x":1732.5357627868652,"y":3004.3809814453125,"z":"a47d3f62.0db2a","wires":[]},{"id":"f23e2f70.045a1","type":"break","name":"break","xml":"<break>\n","comments":"","x":1698.3690567016602,"y":3158.797571182251,"z":"a47d3f62.0db2a","wires":[]},{"id":"5dbfb083.b9606","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1504.035831451416,"y":3005.0477294921875,"z":"a47d3f62.0db2a","wires":[["56e25424.f8ca1c","f23e2f70.045a1","2e791445.a4035c"]]},{"id":"bd7d2fe0.b68fb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1978.3690948486328,"y":3055.3808736801147,"z":"a47d3f62.0db2a","wires":[["666e99a.b660b68"]]},{"id":"5ba61c06.ee5304","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1984.6191062927246,"y":3107.13090801239,"z":"a47d3f62.0db2a","wires":[["8bd36bfb.9ea288"]]},{"id":"796ecfd8.ad192","type":"set","name":"set ss.capability-type = vnf","xml":"<set>\n<parameter name='ss.capability-type' value='vnf' />\n","comments":"","x":414.89292907714844,"y":1331.7857942581177,"z":"a47d3f62.0db2a","wires":[]},{"id":"451745db.c8b2dc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":888.0356597900391,"y":1389.142903327942,"z":"a47d3f62.0db2a","wires":[["e543e5f2.e32d38","220cb46a.85a42c"]]},{"id":"48d48b0b.9b7ee4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1200.0000343322754,"y":2435.0000381469727,"z":"a47d3f62.0db2a","wires":[["df8ea433.364878"]]},{"id":"df8ea433.364878","type":"set","name":"set capability-dg to ASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='ASSIGNED' />\n","comments":"","x":1425.7500190734863,"y":2434.7500104904175,"z":"a47d3f62.0db2a","wires":[]},{"id":"ef4a1f4a.908b2","type":"for","name":"for each existing VNF","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1037.0357284545898,"y":309.03579807281494,"z":"a47d3f62.0db2a","wires":[["ff270dd8.c9dc7"]]},{"id":"ff270dd8.c9dc7","type":"switchNode","name":"switch vnf-id: input vs service-data","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n","comments":"","outputs":1,"x":1314.321434020996,"y":309.10728549957275,"z":"a47d3f62.0db2a","wires":[["55ebd166.33405"]]},{"id":"55ebd166.33405","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1537.1072006225586,"y":308.6787576675415,"z":"a47d3f62.0db2a","wires":[["6806b14.a8f845"]]},{"id":"6806b14.a8f845","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1669.5714530944824,"y":308.71431827545166,"z":"a47d3f62.0db2a","wires":[["99d81dc8.57193","7326f640.324808","d315c462.672bf8"]]},{"id":"99d81dc8.57193","type":"break","name":"break","xml":"<break>\n","comments":"","x":1837.464241027832,"y":394.7142963409424,"z":"a47d3f62.0db2a","wires":[]},{"id":"2dfd6f3f.b7eec","type":"set","name":"set new vnf_length = 1","xml":"<set>\n<parameter name='service-data.vnfs.vnf_length' value='1' />\n","comments":"","x":1047.642951965332,"y":232.07148838043213,"z":"a47d3f62.0db2a","wires":[]},{"id":"7326f640.324808","type":"set","name":"set vnf-index = idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1868.0357971191406,"y":351.4999752044678,"z":"a47d3f62.0db2a","wires":[]},{"id":"4b6bc0ee.44eac","type":"set","name":"set capability-dg to ASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='ASSIGNED' />\n","comments":"","x":1038.0000228881836,"y":2009.666543006897,"z":"a47d3f62.0db2a","wires":[]},{"id":"14fdb51a.9d237b","type":"switchNode","name":"switch tmp.ss.vnf-name","xml":"<switch test='`$tmp.ss.vnf-name`'>\n","comments":"","outputs":1,"x":817.1666412353516,"y":3220.166880607605,"z":"a47d3f62.0db2a","wires":[["47de36e9.927748"]]},{"id":"47de36e9.927748","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1025.4999313354492,"y":3220.1669340133667,"z":"a47d3f62.0db2a","wires":[["de2efbc5.075dd8"]]},{"id":"de2efbc5.075dd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'generic-vnf not updated because vnf-name param.value is null; '+ $error-message`\" />\n","comments":"","x":1198.8332443237305,"y":3220.1669340133667,"z":"a47d3f62.0db2a","wires":[]},{"id":"992c0810.0b6c48","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":573.0000152587891,"y":3006.1667919158936,"z":"a47d3f62.0db2a","wires":[["875bd0b4.df5c","14fdb51a.9d237b"]]},{"id":"666e99a.b660b68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $tmp.ss.vnf-name`\" />\n","comments":"","x":2154.66646194458,"y":3055.1666402816772,"z":"a47d3f62.0db2a","wires":[]},{"id":"8bd36bfb.9ea288","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to update generic-vnf.vnf-name because generic-vnf with vnf-name=' + $tmp.ss.vnf-name + ' is not found in AAI'`\" />\n","comments":"","x":2156.6666259765625,"y":3106.833394050598,"z":"a47d3f62.0db2a","wires":[]},{"id":"8a4e3013.de936","type":"set","name":"set is-new-vnf = true","xml":"<set>\n<parameter name='is-new-vnf' value='true' />\n","comments":"","x":400.8929214477539,"y":168.57144355773926,"z":"a47d3f62.0db2a","wires":[]},{"id":"d315c462.672bf8","type":"set","name":"set is-new-vnf = false","xml":"<set>\n<parameter name='is-new-vnf' value='false' />\n","comments":"","x":1876.0714836120605,"y":308.2143201828003,"z":"a47d3f62.0db2a","wires":[]},{"id":"21bb1e8e.d3c9a2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":827.2500228881836,"y":308.5000162124634,"z":"a47d3f62.0db2a","wires":[["ef4a1f4a.908b2","f5b48b2f.928b28"]]},{"id":"f5b48b2f.928b28","type":"switchNode","name":"switch is-new-vnf","xml":"<switch test='`$is-new-vnf`'>\n","comments":"","outputs":1,"x":1024.750015258789,"y":395.0714178085327,"z":"a47d3f62.0db2a","wires":[["59f7b302.99346c"]]},{"id":"59f7b302.99346c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1204.6071701049805,"y":394.64286518096924,"z":"a47d3f62.0db2a","wires":[["cb7228e9.c3b608"]]},{"id":"32deb3a2.50313c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":842.7499923706055,"y":187.24999713897705,"z":"a47d3f62.0db2a","wires":[["7bff0459.171e4c","2dfd6f3f.b7eec"]]},{"id":"380e8ac4.4fe806","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":687.2499923706055,"y":246.99999904632568,"z":"a47d3f62.0db2a","wires":[["32deb3a2.50313c"]]},{"id":"15906be0.23cf64","type":"switchNode","name":"switch is-new-vnf","xml":"<switch test='`$is-new-vnf`'>\n","comments":"","outputs":1,"x":388.75000381469727,"y":562.5000057220459,"z":"a47d3f62.0db2a","wires":[["c442a590.9cb608"]]},{"id":"c442a590.9cb608","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":568.6071586608887,"y":562.0714530944824,"z":"a47d3f62.0db2a","wires":[["9e98c03e.e81b8"]]},{"id":"2b3368f9.1b3888","type":"set","name":"set new vnf_length++","xml":"<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$service-data.vnfs.vnf_length + 1`' />\n","comments":"","x":1552.5,"y":441.25,"z":"a47d3f62.0db2a","wires":[]},{"id":"cb7228e9.c3b608","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1350.4999771118164,"y":394.24996185302734,"z":"a47d3f62.0db2a","wires":[["2b3368f9.1b3888","af062a27.b8c7e8"]]},{"id":"af062a27.b8c7e8","type":"set","name":"set vnf-index = vnf_length","xml":"<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n","comments":"","x":1561.9999809265137,"y":393.74996185302734,"z":"a47d3f62.0db2a","wires":[]},{"id":"574274d.1ac608c","type":"switchNode","name":"switch self-serve-generate-name == ASSIGNED","xml":"<switch test=\"`$self-serve-generate-name == 'ASSIGNED'`\">\n","comments":"","outputs":1,"x":491.21429443359375,"y":2597.6785287857056,"z":"a47d3f62.0db2a","wires":[["9d0fc53f.b5f228","4c3d2164.0dd89"]]},{"id":"9d0fc53f.b5f228","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":768.2499542236328,"y":2624.1070976257324,"z":"a47d3f62.0db2a","wires":[["4f301fb0.3f124"]]},{"id":"4c3d2164.0dd89","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":766.3571815490723,"y":2573.9285945892334,"z":"a47d3f62.0db2a","wires":[["98f98654.967378"]]},{"id":"397fc91b.0a2766","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`\"/>","comments":"","outputs":1,"x":1115.7857627868652,"y":2573.9287672042847,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"98f98654.967378","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":932.2143058776855,"y":2573.928713117327,"z":"a47d3f62.0db2a","wires":[["397fc91b.0a2766","73893e1f.6bae3"]]},{"id":"73893e1f.6bae3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`\" />\n","comments":"","x":1137.0714530944824,"y":2617.3573207855225,"z":"a47d3f62.0db2a","wires":[]},{"id":"8fa8f758.5db488","type":"success","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1088.1428184509277,"y":2779.5713834762573,"z":"a47d3f62.0db2a","wires":[["992c0810.0b6c48"]]},{"id":"7fc34b4c.c5b9b4","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1086.2500457763672,"y":2729.3928804397583,"z":"a47d3f62.0db2a","wires":[["f8c43567.d4b9a8"]]},{"id":"b1b00e7f.817be","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`\"/>","comments":"","outputs":1,"x":1435.6786270141602,"y":2729.3930530548096,"z":"a47d3f62.0db2a","wires":[[]]},{"id":"f8c43567.d4b9a8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1252.1071701049805,"y":2729.392998967852,"z":"a47d3f62.0db2a","wires":[["b1b00e7f.817be","e43776b3.667168"]]},{"id":"e43776b3.667168","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`\" />\n","comments":"","x":1456.9643173217773,"y":2772.8216066360474,"z":"a47d3f62.0db2a","wires":[]},{"id":"4f301fb0.3f124","type":"switchNode","name":"switch self-serve-unresolved-composite-data == ASSIGNED or NULL","xml":"<switch test=\"`$self-serve-unresolved-composite-data == 'ASSIGNED' or $self-serve-unresolved-composite-data == ''`\">\n","comments":"","outputs":1,"x":738.1428833007812,"y":2752.321346282959,"z":"a47d3f62.0db2a","wires":[["7fc34b4c.c5b9b4","8fa8f758.5db488"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.json
new file mode 100644 (file)
index 0000000..63a391d
--- /dev/null
@@ -0,0 +1,966 @@
+[\r
+    {\r
+        "id": "3b1aba17.7c1826",\r
+        "type": "dgstart",\r
+        "name": "DGSTART",\r
+        "outputs": 1,\r
+        "x": 115,\r
+        "y": 68,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "e99264a4.25e6a8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e99264a4.25e6a8",\r
+        "type": "service-logic",\r
+        "name": "GENERIC-RESOURCE-API ${project.version}",\r
+        "module": "GENERIC-RESOURCE-API",\r
+        "version": "${project.version}",\r
+        "comments": "",\r
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",\r
+        "outputs": 1,\r
+        "x": 391,\r
+        "y": 69,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "c338772a.5e1888"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c338772a.5e1888",\r
+        "type": "method",\r
+        "name": "self-serve-vnf-ra-assignment",\r
+        "xml": "<method rpc='self-serve-vnf-ra-assignment' mode='sync'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 708,\r
+        "y": 69,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "971bd94.0992328"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "971bd94.0992328",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">\n",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 127.5,\r
+        "y": 151,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "10097b0c.be147d",\r
+                "b1b46c68.863f28",\r
+                "f0185691.279e7",\r
+                "47b3200f.608d6",\r
+                "3a4ad1c4.38fc2e",\r
+                "c842e06b.8ab228",\r
+                "be0316b4.790d2",\r
+                "59d0a06.3503f6",\r
+                "559fb17c.e49a68",\r
+                "70263817.6abee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b1b46c68.863f28",\r
+        "type": "set",\r
+        "name": "set",\r
+        "xml": "<set>\n   <parameter name=\"request-id\" value=\"`$tmp.return.generate.vnf-se-serv-uuid`\"/>\n   <parameter name=\"resource-type\" value=\"`$vnf-topology-operation-input.vnf-information.vnf-type`\" />  \n   <parameter name=\"resource-id\" value=\"`$vnf-topology-operation-input.vnf-information.vnf-id`\" />   \n   <parameter name=\"action-name\" value=\"resource-assignment-action\"/> \n   <parameter name=\"responsePrefix\" value=\"sriovAssign\" />\n",\r
+        "comments": "",\r
+        "x": 312,\r
+        "y": 197,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71b23404.02121c",\r
+        "type": "get-resource",\r
+        "name": "get-resource VF_MODEL",\r
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db1.vf-model'>\n  \n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 852.142822265625,\r
+        "y": 587.2856521606445,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "7502b307.1af5a4",\r
+                "d915743.fe9bf08",\r
+                "2bba7cf3.b8c2bc"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7502b307.1af5a4",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1097.142921447754,\r
+        "y": 536.5713758468628,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "481c5f0.afa62a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "481c5f0.afa62a",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1270.142921447754,\r
+        "y": 535.5713758468628,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "14e34196.659ba6",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name, tmp.sdnc-model-version, tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\n<parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\n<parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\n\n\n\n\n",\r
+        "comments": "",\r
+        "x": 1472.5714225769043,\r
+        "y": 636.7141799926758,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "a4fe9c9.fb5b0e",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n",\r
+        "comments": "",\r
+        "x": 1272.142921447754,\r
+        "y": 584.5713758468628,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3a4ad1c4.38fc2e",\r
+        "type": "switchNode",\r
+        "name": "switch: model info == NULL",\r
+        "xml": "<switch test=\"`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 373.142822265625,\r
+        "y": 588.2856521606445,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "f4c0f536.df7df8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "d915743.fe9bf08",\r
+        "type": "not-found",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1103.142921447754,\r
+        "y": 585.5713758468628,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "a4fe9c9.fb5b0e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f4c0f536.df7df8",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 622.142822265625,\r
+        "y": 588.2856521606445,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "71b23404.02121c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "47b3200f.608d6",\r
+        "type": "for",\r
+        "name": "for vnf-topology-operation-input",\r
+        "xml": "<for index='i' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 389,\r
+        "y": 388,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "eb6b4120.147a5"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "eb6b4120.147a5",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 611,\r
+        "y": 387,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "7392a8a6.2a47a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "66c14820.f9c39",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\n",\r
+        "comments": "",\r
+        "x": 1262,\r
+        "y": 320,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c8da9580.2b1fc8",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_name",\r
+        "xml": "<outcome value='sdnc_model_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1008,\r
+        "y": 320,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "66c14820.f9c39"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "7392a8a6.2a47a",\r
+        "type": "switchNode",\r
+        "name": "switch",\r
+        "xml": "<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].name`'>\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 770,\r
+        "y": 387,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "c8da9580.2b1fc8",\r
+                "e8bd2d0c.947458",\r
+                "9fbb1f79.e96eb",\r
+                "9ea74ab3.987f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e8bd2d0c.947458",\r
+        "type": "outcome",\r
+        "name": "sdnc_model_version",\r
+        "xml": "<outcome value='sdnc_model_version'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1011,\r
+        "y": 366,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "354f425a.791bee"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9fbb1f79.e96eb",\r
+        "type": "outcome",\r
+        "name": "sdnc_artifact_name",\r
+        "xml": "<outcome value='sdnc_artifact_name'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1010,\r
+        "y": 415,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "71247184.8b77d8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "354f425a.791bee",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-model-version",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-model-version' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1266,\r
+        "y": 366,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "71247184.8b77d8",\r
+        "type": "set",\r
+        "name": "set tmp.sdnc-artifact-name",\r
+        "xml": "<set>\n<parameter name='tmp.sdnc-artifact-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\n\n",\r
+        "comments": "",\r
+        "x": 1262,\r
+        "y": 415,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "4dd91492.f93cac",\r
+        "type": "set",\r
+        "name": "set name-value other JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-other-payload\" value=\"`$tmp.config-name-value-other-payload + '&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].name + '&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value + '&quot;,'`\"/>\n\n",\r
+        "comments": "",\r
+        "x": 1278,\r
+        "y": 464,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "9ea74ab3.987f4",\r
+        "type": "outcome",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 970.0000076293945,\r
+        "y": 464.57142066955566,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "4dd91492.f93cac"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "c842e06b.8ab228",\r
+        "type": "set",\r
+        "name": "set configAssignment JsonString",\r
+        "xml": "<set>\n<parameter name=\"tmp.config-name-value-payload4\" value=\"`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $vnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload5\" value=\"`$tmp.config-name-value-payload4 + '&quot;vnf-model-customization-uuid&quot;:&quot;' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload6\" value=\"`$tmp.config-name-value-payload5 + '&quot;vnf-id&quot;:&quot;' + $vnf-topology-operation-input.vnf-information.vnf-id + '&quot;,'`\"/>\n<parameter name=\"tmp.config-name-value-payload7\" value=\"`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + '&quot;'`\"/>\n<parameter name=\"tmp.json-payload\" value=\"`'{' + $tmp.config-name-value-payload7 + '}'`\" />",\r
+        "comments": "",\r
+        "x": 383,\r
+        "y": 707,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "be0316b4.790d2",\r
+        "type": "execute",\r
+        "name": "execute ConfigAssignment",\r
+        "xml": "<execute plugin='org.openecomp.sdnc.config.assignment.service.ConfigAssignmentNode' method='process'>\n\t<parameter name=\"request-id\" value='`$request-id`' />\n\t<parameter name=\"resource-id\" value='`$resource-id`' />         \n\t<parameter name=\"resource-type\" value='`$resource-type`' />\n\t<parameter name=\"action-name\" value='`$action-name`' />\n\t<parameter name=\"template-names\" value=\"`'[&quot;' + $tmp.sdnc-artifact-name + '&quot;]'`\" />\n\t<parameter name=\"service-template-name\" value='`$tmp.sdnc-model-name`' />\n\t<parameter name=\"service-template-version\" value='`$tmp.sdnc-model-version`' />\n\t<parameter name='input-data' value='`$tmp.json-payload`' />\n\t<parameter name=\"prifix\" value=\"sriovAssign\" />",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 369,\r
+        "y": 785,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "42110e18.f45af8",\r
+                "3e7b87d6.7041e8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "42110e18.f45af8",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 559,\r
+        "y": 761,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "ad545491.7c2e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "ad545491.7c2e4",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error from ConfigAssignmentNode\" />\n",\r
+        "comments": "",\r
+        "x": 741,\r
+        "y": 782,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "559fb17c.e49a68",\r
+        "type": "for",\r
+        "name": "for resource-accumulator-resolved-data loop",\r
+        "xml": "<for index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 415,\r
+        "y": 944,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "649757ec.4297e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8124e534.e1fe7",\r
+        "type": "set",\r
+        "name": "set from resource-accumulator-resolved-data",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='highnum' value='`$highnum + 1`' />\n",\r
+        "comments": "",\r
+        "x": 1447,\r
+        "y": 996,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "70263817.6abee",\r
+        "type": "for",\r
+        "name": "for capability-data",\r
+        "xml": "<for index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 334,\r
+        "y": 1207,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "fdd77be.4778888"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "75f41ec9.a2806",\r
+        "type": "for",\r
+        "name": "for key-mapping",\r
+        "xml": "<for index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 722,\r
+        "y": 1286,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "9acad820.b00a68"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "fdd77be.4778888",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 511,\r
+        "y": 1207,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "f4f12ffc.4952c8",\r
+                "75f41ec9.a2806"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f4f12ffc.4952c8",\r
+        "type": "set",\r
+        "name": "set counter",\r
+        "xml": "<set>\n<parameter name='num' value='0' />",\r
+        "comments": "",\r
+        "x": 685,\r
+        "y": 1183,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59d0a06.3503f6",\r
+        "type": "execute",\r
+        "name": "execute jsonStringToCtx",\r
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"jsonStringToCtx\">\n\t<parameter name=\"source\" value=\"`'sriovAssign.mashed-data.' + $tmp.sdnc-artifact-name`\" />\n\t<parameter name=\"outputPath\" value=\"jsonContextPrefix\" />\n\t<parameter name=\"isEscaped\" value=\"false\" />\n\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 359,\r
+        "y": 865,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "10097b0c.be147d",\r
+        "type": "execute",\r
+        "name": "execute generateUUID",\r
+        "xml": " <execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils\" method=\"generateUUID\" > \n <parameter name=\"ctx-destination\" value=\"tmp.return.generate.vnf-se-serv-uuid\" /> \n ",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 365,\r
+        "y": 151,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "4ac47d0.68ec704"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4ac47d0.68ec704",\r
+        "type": "failure",\r
+        "name": "failure",\r
+        "xml": "<outcome value='failure'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 543,\r
+        "y": 149,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "8083b3a2.780248"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "8083b3a2.780248",\r
+        "type": "returnFailure",\r
+        "name": "return failure",\r
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"generateUUID is failed\" />\n",\r
+        "comments": "",\r
+        "x": 690,\r
+        "y": 150,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "92f17a3f.155768",\r
+        "type": "for",\r
+        "name": "for vnf-parameters-data.param",\r
+        "xml": "<for index='cnt' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1388,\r
+        "y": 944,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "b4d343.7109c4c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "649757ec.4297e",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 694,\r
+        "y": 945,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "9365408f.c6c6f",\r
+                "c132e8f7.e921d8",\r
+                "390d84cf.f48204"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "f0185691.279e7",\r
+        "type": "switchNode",\r
+        "name": "switch vnf-parameters-data.param_length",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 417,\r
+        "y": 249,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "780eea64.1a2b0c",\r
+                "4f86be8a.a5a418"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "780eea64.1a2b0c",\r
+        "type": "outcome",\r
+        "name": "null",\r
+        "xml": "<outcome value=''>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 655,\r
+        "y": 217,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "32c872b.35a408e"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4f86be8a.a5a418",\r
+        "type": "other",\r
+        "name": "other",\r
+        "xml": "<outcome value='Other'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 654,\r
+        "y": 281,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "5d2b28ad.0645b8"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "32c872b.35a408e",\r
+        "type": "set",\r
+        "name": "set pre service param len as 0",\r
+        "xml": "<set>\n   <parameter name='highnum' value='0' />\n   <parameter name='prehighnum' value='0'/>\n",\r
+        "comments": "",\r
+        "x": 868,\r
+        "y": 217,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "5d2b28ad.0645b8",\r
+        "type": "set",\r
+        "name": "set pre service param len",\r
+        "xml": "<set>\n   <parameter name='highnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' />\n   <parameter name='prehighnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' />",\r
+        "comments": "",\r
+        "x": 853,\r
+        "y": 281,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "b4d343.7109c4c",\r
+        "type": "switchNode",\r
+        "name": "switch input vnf-name",\r
+        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1646,\r
+        "y": 944,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "4c134771.683f4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "4c134771.683f4",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1826,\r
+        "y": 944,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "2ddabbac.2ec004"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2ddabbac.2ec004",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\n<parameter name='tmp.mso.param.found' value='true' />\n",\r
+        "comments": "",\r
+        "x": 2036,\r
+        "y": 945,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "390d84cf.f48204",\r
+        "type": "switchNode",\r
+        "name": "switch tmp.mso.param.not-found",\r
+        "xml": "<switch test='`$tmp.mso.param.found`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 936,\r
+        "y": 997,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "63764524.6435d4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63764524.6435d4",\r
+        "type": "not-found",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1170,\r
+        "y": 996,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "8124e534.e1fe7"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9365408f.c6c6f",\r
+        "type": "set",\r
+        "name": "set for existing param name",\r
+        "xml": "<set>\n<parameter name='tmp.mso.param.found' value='false' />\n",\r
+        "comments": "",\r
+        "x": 920,\r
+        "y": 886,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "c132e8f7.e921d8",\r
+        "type": "switchNode",\r
+        "name": "switch check length > 0",\r
+        "xml": "<switch test='`$prehighnum &gt; 0`'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 912.5,\r
+        "y": 945,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "63049a42.ba9d8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "63049a42.ba9d8c",\r
+        "type": "not-found",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1159.5,\r
+        "y": 945,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "92f17a3f.155768"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "1dd72859.ea109",\r
+        "type": "for",\r
+        "name": "for payload",\r
+        "xml": "<for index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1981,\r
+        "y": 1329,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "dc69327e.e35f2"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "dc69327e.e35f2",\r
+        "type": "set",\r
+        "name": "set resource-key",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\n<parameter name='num' value='`$num + 1`' />\n",\r
+        "comments": "",\r
+        "x": 2168,\r
+        "y": 1328,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "59eb3d70.39851c",\r
+        "type": "set",\r
+        "name": "set output-data ",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>",\r
+        "comments": "",\r
+        "x": 1554,\r
+        "y": 1209,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3dd7f604.27aa1a",\r
+        "type": "for",\r
+        "name": "for output-key-mapping",\r
+        "xml": "<for index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1142,\r
+        "y": 1285,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "5ce3bd4f.7b2c8c"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "9acad820.b00a68",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 928,\r
+        "y": 1286,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "3dd7f604.27aa1a"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "5ce3bd4f.7b2c8c",\r
+        "type": "block",\r
+        "name": "block atomic",\r
+        "xml": "<block atomic=\"true\">",\r
+        "atomic": "false",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1357,\r
+        "y": 1285,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "59eb3d70.39851c",\r
+                "b435769d.e12fb8",\r
+                "37c4ce28.952daa"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "b435769d.e12fb8",\r
+        "type": "set",\r
+        "name": "set length",\r
+        "xml": "<set>\n<parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' value='`$highnum + 1`'/>\n<parameter name='highnum' value='`$highnum + 1`' />\n\n",\r
+        "comments": "",\r
+        "x": 1542,\r
+        "y": 1347,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": []\r
+    },\r
+    {\r
+        "id": "3e7b87d6.7041e8",\r
+        "type": "failure",\r
+        "name": "not-found",\r
+        "xml": "<outcome value='not-found'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 564,\r
+        "y": 823,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "ad545491.7c2e4"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "37c4ce28.952daa",\r
+        "type": "switchNode",\r
+        "name": "switch payload_length",\r
+        "xml": "<switch test=\"`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`\">\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1578,\r
+        "y": 1280,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "e0a4762d.f7835",\r
+                "d4c7fb38.1af79"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "e0a4762d.f7835",\r
+        "type": "outcome",\r
+        "name": "true",\r
+        "xml": "<outcome value='true'>",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1799,\r
+        "y": 1211,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            []\r
+        ]\r
+    },\r
+    {\r
+        "id": "d4c7fb38.1af79",\r
+        "type": "other",\r
+        "name": "false",\r
+        "xml": "<outcome value='false'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1806,\r
+        "y": 1329,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "1dd72859.ea109"\r
+            ]\r
+        ]\r
+    },\r
+    {\r
+        "id": "2bba7cf3.b8c2bc",\r
+        "type": "success",\r
+        "name": "success",\r
+        "xml": "<outcome value='success'>\n",\r
+        "comments": "",\r
+        "outputs": 1,\r
+        "x": 1099.2857246398926,\r
+        "y": 636.5713481903076,\r
+        "z": "f71f1d7.b5adf6",\r
+        "wires": [\r
+            [\r
+                "14e34196.659ba6"\r
+            ]\r
+        ]\r
+    }\r
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-unassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_self-serve-vnf-unassign.json
new file mode 100644 (file)
index 0000000..2ac8de8
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"265c832a.f5cfbc","type":"dgstart","name":"DGSTART","outputs":1,"x":115,"y":38.75,"z":"fd58ae68.836fa","wires":[["653d3555.5792dc"]]},{"id":"16b8762a.13cc5a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":158.72620391845703,"y":157.52779006958008,"z":"fd58ae68.836fa","wires":[["921c901.432aa7","a7d755ef.e8eb38","70e601d5.4ada9","2ef22046.3c4f6"]]},{"id":"4969f8c5.953108","type":"method","name":"method self-serve-vnf-unassign","xml":"<method rpc='self-serve-vnf-unassign' mode='sync'>\n","comments":"","outputs":1,"x":231.76190948486328,"y":93.45635509490967,"z":"fd58ae68.836fa","wires":[["16b8762a.13cc5a"]]},{"id":"653d3555.5792dc","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":390.23819732666016,"y":38.94049263000488,"z":"fd58ae68.836fa","wires":[["4969f8c5.953108"]]},{"id":"866b94c8.dd9848","type":"for","name":"foreach vnf-parameters-data.param[]","xml":"<for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":744.1312026977539,"y":533.4523887634277,"z":"fd58ae68.836fa","wires":[["c16b8018.42fc2","edb4d199.2281b"]]},{"id":"af5fdc25.c5d8b","type":"switchNode","name":"switch resource-resolution-data.status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\n","comments":"","outputs":1,"x":484.17897033691406,"y":780.25013256073,"z":"fd58ae68.836fa","wires":[["3b550fad.ec11c","e3f296cc.e715b8","f3d7eee7.30b7"]]},{"id":"3b550fad.ec11c","type":"other","name":"SUCCESS","xml":"<outcome value='SUCCESS'>\n","comments":"","outputs":1,"x":759.5719718933105,"y":780.9643878936768,"z":"fd58ae68.836fa","wires":[["4df5d1db.a40f6"]]},{"id":"921c901.432aa7","type":"for","name":"foreach capability-order[]","xml":"<for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\n","comments":"","outputs":1,"x":413.0357894897461,"y":238.64282417297363,"z":"fd58ae68.836fa","wires":[["68c2afb3.11397","c6abc7.56f42438","e7eb32f7.2606b","866b94c8.dd9848"]]},{"id":"c16b8018.42fc2","type":"switchNode","name":"switch param capability-name == execution","xml":"<switch test='`$ss.capability-name == $tmp.param.capability-name`'>\n","comments":"","outputs":1,"x":1100.024024963379,"y":533.8452081680298,"z":"fd58ae68.836fa","wires":[["505a26f.1f5efd8"]]},{"id":"505a26f.1f5efd8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1363.524024963379,"y":534.0952081680298,"z":"fd58ae68.836fa","wires":[["af5fdc25.c5d8b"]]},{"id":"4df5d1db.a40f6","type":"call","name":"call ss.capability-dg","xml":"<call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\n","comments":"","outputs":1,"x":964.6907043457031,"y":780.7262392044067,"z":"fd58ae68.836fa","wires":[["c6f47da0.0f373","dd980216.42d38"]]},{"id":"68c2afb3.11397","type":"set","name":"ss.capability-name","xml":"<set>\n<parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\n\n<!--\nss.capability.execution-order[]\n-->\n","comments":"","x":691.3928451538086,"y":238.59527587890625,"z":"fd58ae68.836fa","wires":[]},{"id":"edb4d199.2281b","type":"set","name":"tmp.param.capability-name","xml":"<set>\n<parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\n","comments":"","x":1049.3810501098633,"y":488.45241832733154,"z":"fd58ae68.836fa","wires":[]},{"id":"e7eb32f7.2606b","type":"set","name":"set ss.capability.action = unassign","xml":"<set>\n<parameter name='ss.capability-action' value='unassign' />\n","comments":"","x":740.1069869995117,"y":285.5118598937988,"z":"fd58ae68.836fa","wires":[]},{"id":"c6f47da0.0f373","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1149.5832138061523,"y":780.726300239563,"z":"fd58ae68.836fa","wires":[["307bb657.9e848a"]]},{"id":"71758b14.465cf4","type":"set","name":"set capability-dg","xml":"<set>\n<parameter name='ss.capability-dg' value=\"`'self-serve-' + $ss.capability.execution-order[$cidx]`\" />\n","comments":"","x":1132.8690567016602,"y":432.73809242248535,"z":"fd58ae68.836fa","wires":[]},{"id":"c6abc7.56f42438","type":"switchNode","name":"switch ss.capability-name","xml":"<switch test='`$ss.capability-name`'>\n","comments":"","outputs":1,"x":715.3690567016602,"y":334.4881000518799,"z":"fd58ae68.836fa","wires":[["79a97e33.1370c","34b852b1.9da43e","5e67013a.6bc83"]]},{"id":"79a97e33.1370c","type":"other","name":"alts-entitlement-assign","xml":"<outcome value='alts-entitlement-assign'>\n","comments":"","outputs":1,"x":998.1191787719727,"y":334.98809242248535,"z":"fd58ae68.836fa","wires":[["c4c2f7b4.7641d8"]]},{"id":"34b852b1.9da43e","type":"other","name":"alts-license-assign","xml":"<outcome value='alts-license-assign'>\n","comments":"","outputs":1,"x":987.3691787719727,"y":382.73809242248535,"z":"fd58ae68.836fa","wires":[["c4c2f7b4.7641d8"]]},{"id":"5e67013a.6bc83","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":953.369140625,"y":432.9880828857422,"z":"fd58ae68.836fa","wires":[["71758b14.465cf4"]]},{"id":"c4c2f7b4.7641d8","type":"set","name":"set capability-dg","xml":"<set>\n<parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\n","comments":"","x":1256.8690567016602,"y":334.48809242248535,"z":"fd58ae68.836fa","wires":[]},{"id":"b83de260.2209e","type":"execute","name":"generate ss-vnf url replace service-instance-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.ss-vnf-assignments`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`\"/>\n","comments":"","outputs":1,"x":1632.4405975341797,"y":834.6080255508423,"z":"fd58ae68.836fa","wires":[[]]},{"id":"45669e55.1a95","type":"execute","name":"execute RestApiCallNode - PUT vnf","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ss-vnf\" />\n\n","comments":"","outputs":1,"x":1601.9048919677734,"y":937.4652471542358,"z":"fd58ae68.836fa","wires":[["6a25a838.b89808","6385a97e.ee45e8","28036de8.2897e2"]]},{"id":"6a25a838.b89808","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1876.4985580444336,"y":991.4634008407593,"z":"fd58ae68.836fa","wires":[["d889fcc3.1ce5a"]]},{"id":"6385a97e.ee45e8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1868.9271926879883,"y":937.9634208679199,"z":"fd58ae68.836fa","wires":[["d889fcc3.1ce5a"]]},{"id":"28036de8.2897e2","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1872.6771850585938,"y":884.3205184936523,"z":"fd58ae68.836fa","wires":[["7b8b1e58.88c6d"]]},{"id":"7b8b1e58.88c6d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2049.0474166870117,"y":884.2269997596741,"z":"fd58ae68.836fa","wires":[[]]},{"id":"d889fcc3.1ce5a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2071.0595169067383,"y":937.6076755523682,"z":"fd58ae68.836fa","wires":[["47577c8a.088694"]]},{"id":"47577c8a.088694","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Error persisting self-serve vnf assignments in MD-SAL during unassign\" />\n","comments":"","outputs":1,"x":2289.345283508301,"y":937.7505388259888,"z":"fd58ae68.836fa","wires":[[]]},{"id":"d4392346.c91d5","type":"set","name":"set vf data for restapi-call-node","xml":"<set>\n<parameter name='vf.vnf-id'\n    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n<parameter name='vf.vnf-data.sdnc-request-header.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\n<parameter name='vf.vnf-data.request-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\n<parameter name='vf.vnf-data.service-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\n<parameter name='vf.vnf-data.vnf-information.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\n<parameter name='vf.vnf-data.vnf-request-input.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.`' />\n<parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\n<parameter name='vf.vnf-data.vnf-topology.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\n<parameter name='vf.vnf-data.vnf-level-oper-status.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />","comments":"","x":1584.8928985595703,"y":780.7025375366211,"z":"fd58ae68.836fa","wires":[]},{"id":"16673b2e.a31d15","type":"execute","name":"generate ss-vnf url - replace vnf-id","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.ss-vnf-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ss-vnf-url\"/>\n    <parameter name=\"target\" value=\"{vnf-id}\"/>\n    <parameter name=\"replacement\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\"/>\n","comments":"","outputs":1,"x":1596.726303100586,"y":885.4167938232422,"z":"fd58ae68.836fa","wires":[[]]},{"id":"307bb657.9e848a","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1310.535888671875,"y":780.4644117355347,"z":"fd58ae68.836fa","wires":[["b83de260.2209e","45669e55.1a95","d4392346.c91d5","16673b2e.a31d15","7f6d0abe.2057e4"]]},{"id":"7f6d0abe.2057e4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`\" />\n","comments":"","x":1531.4408569335938,"y":1065.238195180893,"z":"fd58ae68.836fa","wires":[]},{"id":"2ef22046.3c4f6","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\n","comments":"","outputs":1,"x":372.4526596069336,"y":363.14298248291016,"z":"fd58ae68.836fa","wires":[[]]},{"id":"a7d755ef.e8eb38","type":"set","name":"set ss.capability.execution-order[]","xml":"<set>\n<parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\n<parameter name='ss.capability.execution-order[1]' value='eipam-ip-assign' />\n<parameter name='ss.capability.execution-order[2]' value='vlan-tag-assign' />\n<parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\n<parameter name='ss.capability.execution-order[4]' value='alts-entitlement-assign' />\n<parameter name='ss.capability.execution-order[5]' value='generate-name' />\n<parameter name='ss.capability.execution-order_length' value='6' />","comments":"","x":438.25003814697266,"y":157.75000381469727,"z":"fd58ae68.836fa","wires":[]},{"id":"e3f296cc.e715b8","type":"other","name":"DELETED","xml":"<outcome value='DELETED'>\n","comments":"","outputs":1,"x":760.0714416503906,"y":847.4999847412109,"z":"fd58ae68.836fa","wires":[["65e72d4e.a402b4"]]},{"id":"70e601d5.4ada9","type":"set","name":"set ss.capability-type = vnf","xml":"<set>\n<parameter name='ss.capability-type' value='vnf' />\n","comments":"","x":417.85713958740234,"y":197.3214340209961,"z":"fd58ae68.836fa","wires":[]},{"id":"dd980216.42d38","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1151.25,"y":725,"z":"fd58ae68.836fa","wires":[["1097874e.d2d249"]]},{"id":"1097874e.d2d249","type":"set","name":"set capability-dg to UNASSIGNED","xml":"<set>\n<parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\n","comments":"","x":1376.999984741211,"y":724.7499723434448,"z":"fd58ae68.836fa","wires":[]},{"id":"f221686f.d189a8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to unassign self-serve vnf assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`\"/>","comments":"","x":1142.1428833007812,"y":957.7143857138499,"z":"fd58ae68.836fa","wires":[]},{"id":"65e72d4e.a402b4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":916.5714340209961,"y":847.4999732971191,"z":"fd58ae68.836fa","wires":[[]]},{"id":"f3d7eee7.30b7","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":751.1428375244141,"y":905.7142868041992,"z":"fd58ae68.836fa","wires":[["fe6afcfd.d977d"]]},{"id":"277ee929.a0ea46","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`\"/>\n<parameter name=\"field2\" value=\"`'SS: ss.capability-name: ' + $ss.capability-name`\"/>","comments":"","outputs":1,"x":1121.4285888671875,"y":905.7143923895701,"z":"fd58ae68.836fa","wires":[[]]},{"id":"fe6afcfd.d977d","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":937.8571319580078,"y":905.7143383026123,"z":"fd58ae68.836fa","wires":[["277ee929.a0ea46","f221686f.d189a8"]]}]
\ No newline at end of file
index 8e2fb7c..95c97aa 100644 (file)
@@ -1,881 +1 @@
-[
-    {
-        "id": "295b7d63.10c692",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 112,
-        "y": 86,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "70e80e39.fe45"
-            ]
-        ]
-    },
-    {
-        "id": "70e80e39.fe45",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 187.28570556640625,
-        "y": 126.23811149597168,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "9baf2a8b.239b88"
-            ]
-        ]
-    },
-    {
-        "id": "9baf2a8b.239b88",
-        "type": "method",
-        "name": "method service-topology-operation-assign",
-        "xml": "<method rpc='service-topology-operation-assign' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 216.42862701416016,
-        "y": 166,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "5cbbf27f.ee281c"
-            ]
-        ]
-    },
-    {
-        "id": "b98518f1.2eb928",
-        "type": "comment",
-        "name": "service-topology-operation-assign",
-        "info": "",
-        "comments": "",
-        "x": 506.34485626220703,
-        "y": 33.58634376525879,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "5cbbf27f.ee281c",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 228.85712432861328,
-        "y": 756.7619457244873,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "fd3525bb.e6b178",
-                "3fc365e1.b2b29a",
-                "80294281.2295d",
-                "6dc77130.ebecc",
-                "ec3c304f.7f733",
-                "3d90af09.6137c",
-                "da5ddc08.e7611",
-                "e78ecd27.54c89",
-                "b5b6afcf.5fa1",
-                "dd72f866.d6cb28"
-            ]
-        ]
-    },
-    {
-        "id": "fd3525bb.e6b178",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$service-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 511.2381134033203,
-        "y": 267.7142915725708,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "d0d2c5a2.a2fa38",
-                "fbf77054.7e3f7"
-            ]
-        ]
-    },
-    {
-        "id": "d0d2c5a2.a2fa38",
-        "type": "outcome",
-        "name": "CreateServiceInstance",
-        "xml": "<outcome value='CreateServiceInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 748.3809280395508,
-        "y": 242,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "c3e09ac6.b0a468"
-            ]
-        ]
-    },
-    {
-        "id": "fbf77054.7e3f7",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 698.3809509277344,
-        "y": 286.04763889312744,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "14ef825f.a8bece"
-            ]
-        ]
-    },
-    {
-        "id": "c3e09ac6.b0a468",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 926.9523849487305,
-        "y": 242.0000352859497,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "14ef825f.a8bece",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateServiceInstance'\" />\n",
-        "comments": "",
-        "x": 905.7618980407715,
-        "y": 286.04765033721924,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "3fc365e1.b2b29a",
-        "type": "get-resource",
-        "name": "get-resource SERVICE_MODEL",
-        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='db.service-model'>\n\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 547.7856292724609,
-        "y": 490.80957984924316,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "42c43d09.6995e4",
-                "141523e4.26033c"
-            ]
-        ]
-    },
-    {
-        "id": "74dca068.1349",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n",
-        "comments": "",
-        "x": 962.0712966918945,
-        "y": 515.6666297912598,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "80294281.2295d",
-        "type": "switchNode",
-        "name": "switch input service-instance-name",
-        "xml": "<switch test='`$service-topology-operation-input.service-request-input.service-instance-name`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 555.1903610229492,
-        "y": 787.1190090179443,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "2dc0c3ae.1f5c3c",
-                "8c204a35.ee8d38"
-            ]
-        ]
-    },
-    {
-        "id": "2dc0c3ae.1f5c3c",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 776.3569221496582,
-        "y": 712.4761533737183,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "8ca23910.bba748"
-            ]
-        ]
-    },
-    {
-        "id": "36a8a72c.e67fa8",
-        "type": "switchNode",
-        "name": "switch ecomp-naming",
-        "xml": "<switch test='`$db.service-model.ecomp-naming`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1155.6429824829102,
-        "y": 604.8572378158569,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "e46351c0.e65fe",
-                "e2444120.96641",
-                "b83f5b84.1194c8"
-            ]
-        ]
-    },
-    {
-        "id": "8ca23910.bba748",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 922.0714225769043,
-        "y": 712.4762706756592,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "11216bc9.793f94",
-                "730225bd.4a385c",
-                "36a8a72c.e67fa8"
-            ]
-        ]
-    },
-    {
-        "id": "e2444120.96641",
-        "type": "outcome",
-        "name": "N",
-        "xml": "<outcome value='N'>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1404.9286422729492,
-        "y": 606.7619466781616,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "e6cfdf66.2d46c"
-            ]
-        ]
-    },
-    {
-        "id": "e6cfdf66.2d46c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No service-instance-name was received but ecomp-naming is not Y\" />\n",
-        "comments": "",
-        "x": 1559.214427947998,
-        "y": 625.3333911895752,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "e46351c0.e65fe",
-        "type": "outcome",
-        "name": "Y",
-        "xml": "<outcome value='Y'>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1404.9286079406738,
-        "y": 562.4762678146362,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "c74d5ad9.510bf8"
-            ]
-        ]
-    },
-    {
-        "id": "b83f5b84.1194c8",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1404.9285697937012,
-        "y": 652.4762659072876,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "e6cfdf66.2d46c"
-            ]
-        ]
-    },
-    {
-        "id": "c74d5ad9.510bf8",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 1542.0715522766113,
-        "y": 562.4762678146362,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "8c204a35.ee8d38",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 778.9286041259766,
-        "y": 858.7618923187256,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "7dd34c72.469dd4"
-            ]
-        ]
-    },
-    {
-        "id": "6c3ec4cc.7720cc",
-        "type": "set",
-        "name": "set tmp.service-instance-name",
-        "xml": "<set>\n<parameter name='tmp.service-instance-name' value=\"`$service-topology-operation-input.service-request-input.service-instance-name`\" />\n",
-        "comments": "",
-        "x": 1820.6428756713867,
-        "y": 906.1905384063721,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "ec3c304f.7f733",
-        "type": "update",
-        "name": "update AAI service instance",
-        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-instance\" \n\t\tkey=\"customer.global-customer-id = $service-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"service-instance-name\" value=\"`$tmp.service-instance-name`\" />\n\t<parameter name=\"selflink\" value=\"`$service-object-path`\" />\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 529.4524154663086,
-        "y": 1013.5237646102905,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "52adc0d3.8b42e",
-                "e75df5d6.b27108"
-            ]
-        ]
-    },
-    {
-        "id": "52adc0d3.8b42e",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 741.214282989502,
-        "y": 988.7619190216064,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "633d341.6a482cc"
-            ]
-        ]
-    },
-    {
-        "id": "633d341.6a482cc",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
-        "comments": "",
-        "x": 891.2142486572266,
-        "y": 988.7619972229004,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "dd72f866.d6cb28",
-        "type": "set",
-        "name": "set service-level-oper-status to Created",
-        "xml": "<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='assign' />\n<parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\n",
-        "comments": "",
-        "x": 564.7380981445312,
-        "y": 1262.2141160964966,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "b5b6afcf.5fa1",
-        "type": "set",
-        "name": "set service-object-path",
-        "xml": "<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n",
-        "comments": "",
-        "x": 513.9760437011719,
-        "y": 949.4761152267456,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "6dc77130.ebecc",
-        "type": "switchNode",
-        "name": "switch order-status",
-        "xml": "<switch test='`$service-data.service-level-oper-status.order-status`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 504.38090896606445,
-        "y": 378.66676330566406,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "a8edf7c5.7b4478",
-                "ad8ed89.4b77b28",
-                "ee8ac40f.7f3d48"
-            ]
-        ]
-    },
-    {
-        "id": "a8edf7c5.7b4478",
-        "type": "outcome",
-        "name": "Created",
-        "xml": "<outcome value='Created'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 700.3333587646484,
-        "y": 378.33335971832275,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "685d0e61.debed"
-            ]
-        ]
-    },
-    {
-        "id": "685d0e61.debed",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested service already exists\" />\n",
-        "comments": "",
-        "x": 902.476188659668,
-        "y": 377.90489387512207,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "3d90af09.6137c",
-        "type": "set",
-        "name": "set service-topology identifiers",
-        "xml": "<set>\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-id'\n  value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-type'\n  value='`$service-topology-operation-input.service-information.subscription-service-type`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-name'\n  value='`$tmp.service-instance-name`' />\n<parameter name='service-data.service-topology.service-topology-identifier.global-customer-id'\n  value='`$service-topology-operation-input.service-information.global-customer-id`' />\n",
-        "comments": "",
-        "x": 540.7143249511719,
-        "y": 1081.8570585250854,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "2653a44e.adc4ec",
-        "type": "for",
-        "name": "for each service-input-parameters",
-        "xml": "<for index='idx' start='0' end='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 970.523754119873,
-        "y": 1219.9524974822998,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "6a555acb.26f484"
-            ]
-        ]
-    },
-    {
-        "id": "6a555acb.26f484",
-        "type": "set",
-        "name": "set parameter name/value",
-        "xml": "<set>\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-name'\n  value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].name`' />\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-value'\n  value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].value`' />\n",
-        "comments": "",
-        "x": 1251.9522171020508,
-        "y": 1219.952444076538,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "da5ddc08.e7611",
-        "type": "switchNode",
-        "name": "switch input parameter length",
-        "xml": "<switch test='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 533.3333282470703,
-        "y": 1192.3332176208496,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "f2b63cee.3f632",
-                "cf7a3d51.1eefe"
-            ]
-        ]
-    },
-    {
-        "id": "f2b63cee.3f632",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 748.237907409668,
-        "y": 1168.5238513946533,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "8a63c0fd.08758"
-            ]
-        ]
-    },
-    {
-        "id": "8a63c0fd.08758",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 886.8092994689941,
-        "y": 1168.5238342285156,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "cf7a3d51.1eefe",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 746.8093185424805,
-        "y": 1219.9524402618408,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "2653a44e.adc4ec"
-            ]
-        ]
-    },
-    {
-        "id": "e78ecd27.54c89",
-        "type": "set",
-        "name": "set service-topology onap-model-information",
-        "xml": "<set>\n<parameter name='service-data.service-topology.onap-model-information.'\n  value='`$service-topology-operation-input.service-information.onap-model-information.`' />\n",
-        "comments": "",
-        "x": 590.7143096923828,
-        "y": 1126.142632484436,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "e75df5d6.b27108",
-        "type": "failure",
-        "name": "not-found",
-        "xml": "<outcome value='not-found'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 747.5237121582031,
-        "y": 1037.3333368301392,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "d46d87d4.1042c8"
-            ]
-        ]
-    },
-    {
-        "id": "d46d87d4.1042c8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The service instance does not exist in AAI\" />\n",
-        "comments": "",
-        "x": 890.8570098876953,
-        "y": 1035.6667108535767,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "11216bc9.793f94",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:generate-unique-name",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1261.1904754638672,
-        "y": 762.4761629104614,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "d2b85a61.8d6948",
-                "6193cfa1.f5b12"
-            ]
-        ]
-    },
-    {
-        "id": "d2b85a61.8d6948",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1601.1904487609863,
-        "y": 737.476222038269,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "ed4311d6.fdf73"
-            ]
-        ]
-    },
-    {
-        "id": "6193cfa1.f5b12",
-        "type": "success",
-        "name": "success",
-        "xml": "<outcome value='success'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1604.5237986246743,
-        "y": 787.1428651809692,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "42ec1fd9.8064a"
-            ]
-        ]
-    },
-    {
-        "id": "730225bd.4a385c",
-        "type": "set",
-        "name": "set variables for generating unique name",
-        "xml": "<set>\n<parameter name='generate-unique-name-input.index-table-name' value='SERVICE_INSTANCE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='service_instance_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$db.service-model.service-instance-name-prefix + '_'`\" />\n",
-        "comments": "",
-        "x": 1216.190559387207,
-        "y": 702.142972946167,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "42ec1fd9.8064a",
-        "type": "set",
-        "name": "set tmp.service-instance-name to generated name",
-        "xml": "<set>\n<parameter name='tmp.service-instance-name' value='`$generate-unique-name-output.generated-name`' />\n",
-        "comments": "",
-        "x": 1888.5713500976562,
-        "y": 786.1904458999634,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "ed4311d6.fdf73",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",
-        "comments": "",
-        "x": 1769.0475616455078,
-        "y": 736.9047336578369,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "7dd34c72.469dd4",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 926.8571319580078,
-        "y": 857.4285793304443,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "39e93876.652cd8",
-                "bbc8a4da.124f28"
-            ]
-        ]
-    },
-    {
-        "id": "bbc8a4da.124f28",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:generate-unique-name",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1256.8571472167969,
-        "y": 882.0952301025391,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "8ea07c5d.48a34",
-                "d227b72.98c2048"
-            ]
-        ]
-    },
-    {
-        "id": "8ea07c5d.48a34",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1596.857105255127,
-        "y": 855.428638458252,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "9626e69f.8bab88"
-            ]
-        ]
-    },
-    {
-        "id": "d227b72.98c2048",
-        "type": "success",
-        "name": "success",
-        "xml": "<outcome value='success'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1600.190455118815,
-        "y": 907.0952816009521,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "6c3ec4cc.7720cc"
-            ]
-        ]
-    },
-    {
-        "id": "39e93876.652cd8",
-        "type": "set",
-        "name": "set variables for generating unique name",
-        "xml": "<set>\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$service-topology-operation-input.service-request-input.service-instance-name`' />\n",
-        "comments": "",
-        "x": 1215.1905212402344,
-        "y": 833.7619361877441,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "9626e69f.8bab88",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",
-        "comments": "",
-        "x": 1764.7142181396484,
-        "y": 854.8571500778198,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "42c43d09.6995e4",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 788.5713310241699,
-        "y": 472.19044494628906,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "43d55ae4.17c224"
-            ]
-        ]
-    },
-    {
-        "id": "141523e4.26033c",
-        "type": "not-found",
-        "name": "not-found",
-        "xml": "<outcome value='not-found'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 797.1427612304688,
-        "y": 515.4761581420898,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "74dca068.1349"
-            ]
-        ]
-    },
-    {
-        "id": "43d55ae4.17c224",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading SERVICE_MODEL table\" />\n",
-        "comments": "",
-        "x": 961.4284973144531,
-        "y": 470.7618885040283,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "ad8ed89.4b77b28",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 698.3332824707031,
-        "y": 333.66668128967285,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "8fe971e9.f5c2"
-            ]
-        ]
-    },
-    {
-        "id": "ee8ac40f.7f3d48",
-        "type": "other",
-        "name": "PendingDelete",
-        "xml": "<outcome value='PendingDelete'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 721.0000114440918,
-        "y": 422.3333396911621,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            [
-                "840bc4c1.bd8ae8"
-            ]
-        ]
-    },
-    {
-        "id": "840bc4c1.bd8ae8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested service is pending deletion\" />\n",
-        "comments": "",
-        "x": 903.333309173584,
-        "y": 422.3333501815796,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": []
-    },
-    {
-        "id": "8fe971e9.f5c2",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 884.9999923706055,
-        "y": 332.6667003631592,
-        "z": "d6c1fe8e.0dbfc",
-        "wires": [
-            []
-        ]
-    }
-]
+[{"id":"48d7038a.89fa6c","type":"dgstart","name":"DGSTART","outputs":1,"x":98.33332824707031,"y":81.66666412353516,"z":"ebe2868a.85eee8","wires":[["821f927a.f956f"]]},{"id":"821f927a.f956f","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":210.7618865966797,"y":121.90477466583252,"z":"ebe2868a.85eee8","wires":[["f54d568d.4df778"]]},{"id":"f54d568d.4df778","type":"method","name":"method service-topology-operation-assign","xml":"<method rpc='service-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":198.47623443603516,"y":161.66666221618652,"z":"ebe2868a.85eee8","wires":[["b4c70111.26fd7"]]},{"id":"30d39e8f.d388b2","type":"comment","name":"service-topology-operation-assign","info":"","comments":"","x":492.67818450927734,"y":29.253007888793945,"z":"ebe2868a.85eee8","wires":[]},{"id":"b4c70111.26fd7","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":215.1904525756836,"y":752.4286098480225,"z":"ebe2868a.85eee8","wires":[["1bbbcd4e.edbd53","4178d17e.f80d1","82451742.a65738","cf9e49d9.5b29e8","3c979684.03ab2a","5e16b29c.f2ec6c","15eab240.68e6de","3b07b638.c82b0a","efb95a00.74c4b8","9d88bb51.187fd8"]]},{"id":"1bbbcd4e.edbd53","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":497.5714416503906,"y":263.38095569610596,"z":"ebe2868a.85eee8","wires":[["af594697.953af8","4dbe5995.686188"]]},{"id":"af594697.953af8","type":"outcome","name":"CreateServiceInstance","xml":"<outcome value='CreateServiceInstance'>\n","comments":"","outputs":1,"x":734.7142562866211,"y":237.66666412353516,"z":"ebe2868a.85eee8","wires":[["9a984e80.8224d"]]},{"id":"4dbe5995.686188","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":684.7142791748047,"y":281.7143030166626,"z":"ebe2868a.85eee8","wires":[["2127913d.c931de"]]},{"id":"9a984e80.8224d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":913.2857131958008,"y":237.66669940948486,"z":"ebe2868a.85eee8","wires":[[]]},{"id":"2127913d.c931de","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateServiceInstance'\" />\n","comments":"","x":892.0952262878418,"y":281.7143144607544,"z":"ebe2868a.85eee8","wires":[]},{"id":"4178d17e.f80d1","type":"get-resource","name":"get-resource SERVICE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='db.service-model'>\n\n","comments":"","outputs":1,"x":534.1189575195312,"y":486.4762439727783,"z":"ebe2868a.85eee8","wires":[["d2d99a22.cad358","4f6a3bf6.18eea4"]]},{"id":"a476bcf3.f840c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":924.1189079284668,"y":509.9047431945801,"z":"ebe2868a.85eee8","wires":[]},{"id":"82451742.a65738","type":"switchNode","name":"switch input service-instance-name","xml":"<switch test='`$service-topology-operation-input.service-request-input.service-instance-name`'>\n","comments":"","outputs":1,"x":530.0951309204102,"y":885.6428337097168,"z":"ebe2868a.85eee8","wires":[["3af1c941.ecd6e6","f722dda8.bee11"]]},{"id":"3af1c941.ecd6e6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":764.1187896728516,"y":698.1428155899048,"z":"ebe2868a.85eee8","wires":[["71a4277c.6ca058"]]},{"id":"8c034d58.afc52","type":"switchNode","name":"switch ecomp-naming","xml":"<switch test='`$db.service-model.ecomp-naming`'>\n","comments":"","outputs":1,"x":1141.9763107299805,"y":600.5239019393921,"z":"ebe2868a.85eee8","wires":[["31db353b.a6c6aa","2702477f.8a86c8","d9c0071c.74ef28"]]},{"id":"71a4277c.6ca058","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":909.8332901000977,"y":698.1429328918457,"z":"ebe2868a.85eee8","wires":[["8c034d58.afc52","d1369b1.c587768"]]},{"id":"2702477f.8a86c8","type":"outcome","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1328.404697418213,"y":601.0000286102295,"z":"ebe2868a.85eee8","wires":[["d34de23f.273bd"]]},{"id":"d34de23f.273bd","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No service-instance-name was received but ecomp-naming is not Y\" />\n","comments":"","x":1482.6904830932617,"y":619.5714731216431,"z":"ebe2868a.85eee8","wires":[]},{"id":"31db353b.a6c6aa","type":"outcome","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1328.4046897888184,"y":559.5714826583862,"z":"ebe2868a.85eee8","wires":[["b85f4be3.a655f8"]]},{"id":"d9c0071c.74ef28","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1328.4046363830566,"y":643.8571605682373,"z":"ebe2868a.85eee8","wires":[["d34de23f.273bd"]]},{"id":"b85f4be3.a655f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1465.547607421875,"y":559.7143497467041,"z":"ebe2868a.85eee8","wires":[[]]},{"id":"f722dda8.bee11","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":746.6904945373535,"y":1094.4285430908203,"z":"ebe2868a.85eee8","wires":[["34ba3c40.2762b4"]]},{"id":"b5f5bce5.efe6f","type":"set","name":"set tmp.service-instance-name","xml":"<set>\n<parameter name='tmp.service-instance-name' value=\"`$service-topology-operation-input.service-request-input.service-instance-name`\" />\n","comments":"","x":1699.833351135254,"y":1143.2857637405396,"z":"ebe2868a.85eee8","wires":[]},{"id":"cf9e49d9.5b29e8","type":"update","name":"update AAI service instance","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-instance\" \n\t\tkey=\"customer.global-customer-id = $service-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"service-instance-name\" value=\"`$tmp.service-instance-name`\" />\n\t<parameter name=\"selflink\" value=\"`$service-object-path`\" />\n","comments":"","outputs":1,"x":508.6429138183594,"y":1350.6190338134766,"z":"ebe2868a.85eee8","wires":[["d0222796.822478","947675a0.058ae8"]]},{"id":"d0222796.822478","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":720.4047813415527,"y":1325.8571882247925,"z":"ebe2868a.85eee8","wires":[["f540264c.07c8a8"]]},{"id":"bbe08f80.8031","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failure calling AAI to update the service instance\" />\n","comments":"","x":1067.5475769042969,"y":1324.428689956665,"z":"ebe2868a.85eee8","wires":[]},{"id":"efb95a00.74c4b8","type":"set","name":"set service-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='assign' />\n<parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\n","comments":"","x":542.5000076293945,"y":1632.166540145874,"z":"ebe2868a.85eee8","wires":[]},{"id":"3b07b638.c82b0a","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":494.5950698852539,"y":1186.571291923523,"z":"ebe2868a.85eee8","wires":[]},{"id":"a0e38671.0ee498","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.service-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":490.71423721313477,"y":374.3334274291992,"z":"ebe2868a.85eee8","wires":[["5f238609.cb2698","b1e821c3.fff61","8b68e1fe.49372"]]},{"id":"5f238609.cb2698","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":686.6666870117188,"y":374.0000238418579,"z":"ebe2868a.85eee8","wires":[["592e7d47.60d174"]]},{"id":"592e7d47.60d174","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested service already exists\" />\n","comments":"","x":888.8095169067383,"y":373.5715579986572,"z":"ebe2868a.85eee8","wires":[]},{"id":"3c979684.03ab2a","type":"set","name":"set service-topology identifiers","xml":"<set>\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-id'\n  value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-type'\n  value='`$service-topology-operation-input.service-information.subscription-service-type`' />\n<parameter name='service-data.service-topology.service-topology-identifier.service-instance-name'\n  value='`$tmp.service-instance-name`' />\n<parameter name='service-data.service-topology.service-topology-identifier.global-customer-id'\n  value='`$service-topology-operation-input.service-information.global-customer-id`' />\n","comments":"","x":515.6191291809082,"y":1443.2379140853882,"z":"ebe2868a.85eee8","wires":[]},{"id":"2677ae59.acd1b2","type":"for","name":"for each service-input-parameters","xml":"<for index='idx' start='0' end='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":948.2856636047363,"y":1589.9049215316772,"z":"ebe2868a.85eee8","wires":[["12ccc853.423468"]]},{"id":"12ccc853.423468","type":"set","name":"set parameter name/value","xml":"<set>\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-name'\n  value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].name`' />\n<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-value'\n  value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].value`' />\n","comments":"","x":1229.714126586914,"y":1589.9048681259155,"z":"ebe2868a.85eee8","wires":[]},{"id":"5e16b29c.f2ec6c","type":"switchNode","name":"switch input parameter length","xml":"<switch test='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`'>\n","comments":"","outputs":1,"x":513.0952377319336,"y":1562.285641670227,"z":"ebe2868a.85eee8","wires":[["b9b15c97.16bb5","57702727.6373f8"]]},{"id":"b9b15c97.16bb5","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":725.9998168945312,"y":1538.4762754440308,"z":"ebe2868a.85eee8","wires":[["e514c906.f7d1e8"]]},{"id":"e514c906.f7d1e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":864.5712089538574,"y":1538.476258277893,"z":"ebe2868a.85eee8","wires":[[]]},{"id":"57702727.6373f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":724.5712280273438,"y":1589.9048643112183,"z":"ebe2868a.85eee8","wires":[["2677ae59.acd1b2"]]},{"id":"15eab240.68e6de","type":"set","name":"set service-topology onap-model-information","xml":"<set>\n<parameter name='service-data.service-topology.onap-model-information.'\n  value='`$service-topology-operation-input.service-information.onap-model-information.`' />\n","comments":"","x":558.4762496948242,"y":1491.8093242645264,"z":"ebe2868a.85eee8","wires":[]},{"id":"947675a0.058ae8","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":726.7142105102539,"y":1374.4286060333252,"z":"ebe2868a.85eee8","wires":[["4a03445e.27b53c"]]},{"id":"3da7d74d.b454f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The service instance does not exist in AAI\" />\n","comments":"","x":1065.7617378234863,"y":1372.904920578003,"z":"ebe2868a.85eee8","wires":[]},{"id":"1d844ee1.34f781","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1800.3808898925781,"y":749.5714020729065,"z":"ebe2868a.85eee8","wires":[["cd3579c9.2e2df8","7e0fe584.530c6c"]]},{"id":"cd3579c9.2e2df8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2077.523693084717,"y":723.1429352760315,"z":"ebe2868a.85eee8","wires":[["7cfc5fa4.12d2c"]]},{"id":"7e0fe584.530c6c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2082.2854385375977,"y":768.5238461494446,"z":"ebe2868a.85eee8","wires":[["210c1a12.0179d6"]]},{"id":"972ca6c6.f6a738","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.action' value='ASSIGN' />\n<parameter name='generate-unique-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='generate-unique-name-input.index-table-name' value='SERVICE_INSTANCE_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='service_instance_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$db.service-model.service-instance-name-prefix + '_'`\" />\n","comments":"","x":1755.3811416625977,"y":700.6667218208313,"z":"ebe2868a.85eee8","wires":[]},{"id":"210c1a12.0179d6","type":"set","name":"set tmp.service-instance-name to generated name","xml":"<set>\n<parameter name='tmp.service-instance-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":2349.1898345947266,"y":768.9999213218689,"z":"ebe2868a.85eee8","wires":[]},{"id":"7cfc5fa4.12d2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":2231.0951538085938,"y":722.5714449882507,"z":"ebe2868a.85eee8","wires":[]},{"id":"34ba3c40.2762b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":894.6190223693848,"y":1093.095230102539,"z":"ebe2868a.85eee8","wires":[["9765eea9.7d266","aa6ace31.cbe73"]]},{"id":"aa6ace31.cbe73","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1194.6191101074219,"y":1117.7618789672852,"z":"ebe2868a.85eee8","wires":[["b7fb4481.878e28","9f7950b2.7e5e5"]]},{"id":"b7fb4481.878e28","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1476.0475807189941,"y":1092.5238637924194,"z":"ebe2868a.85eee8","wires":[["7fc1e719.7af628"]]},{"id":"9f7950b2.7e5e5","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1479.09521484375,"y":1144.190673828125,"z":"ebe2868a.85eee8","wires":[["b5f5bce5.efe6f"]]},{"id":"9765eea9.7d266","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$service-topology-operation-input.service-request-input.service-instance-name`' />\n","comments":"","x":1152.9524841308594,"y":1069.4285850524902,"z":"ebe2868a.85eee8","wires":[]},{"id":"7fc1e719.7af628","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1643.9046936035156,"y":1091.9523754119873,"z":"ebe2868a.85eee8","wires":[]},{"id":"d2d99a22.cad358","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":750.6189422607422,"y":466.4285583496094,"z":"ebe2868a.85eee8","wires":[["250281ba.ad450e"]]},{"id":"4f6a3bf6.18eea4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":759.190372467041,"y":509.71427154541016,"z":"ebe2868a.85eee8","wires":[["a476bcf3.f840c"]]},{"id":"250281ba.ad450e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading SERVICE_MODEL table\" />\n","comments":"","x":923.4761085510254,"y":465.00000190734863,"z":"ebe2868a.85eee8","wires":[]},{"id":"b1e821c3.fff61","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":684.6666107177734,"y":329.333345413208,"z":"ebe2868a.85eee8","wires":[["241a1eaf.f84722"]]},{"id":"8b68e1fe.49372","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":707.3333396911621,"y":418.00000381469727,"z":"ebe2868a.85eee8","wires":[["2ba8aea0.61ef72"]]},{"id":"2ba8aea0.61ef72","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested service is pending deletion\" />\n","comments":"","x":889.6666374206543,"y":418.00001430511475,"z":"ebe2868a.85eee8","wires":[]},{"id":"241a1eaf.f84722","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":871.3333206176758,"y":328.33336448669434,"z":"ebe2868a.85eee8","wires":[[]]},{"id":"d1369b1.c587768","type":"switchNode","name":"switch naming-policy","xml":"<switch test='`$db.service-model.naming-policy`'>\n","comments":"","outputs":1,"x":1141.1903610229492,"y":795.9523792266846,"z":"ebe2868a.85eee8","wires":[["b05283b4.d77c8","e6ad7e36.240e"]]},{"id":"b05283b4.d77c8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1329.7618255615234,"y":730.238073348999,"z":"ebe2868a.85eee8","wires":[["6e33da8d.29b254"]]},{"id":"e6ad7e36.240e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1329.7619953155518,"y":861.6667251586914,"z":"ebe2868a.85eee8","wires":[["32bd4b8d.890d24"]]},{"id":"9d88bb51.187fd8","type":"set","name":"set tmp.service-instance-name to NULL","xml":"<set>\n<parameter name='tmp.service-instance-name' value='' />\n","comments":"","x":554.0476226806641,"y":597.3809223175049,"z":"ebe2868a.85eee8","wires":[]},{"id":"6e33da8d.29b254","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1482.6190948486328,"y":728.8095397949219,"z":"ebe2868a.85eee8","wires":[["972ca6c6.f6a738","1d844ee1.34f781"]]},{"id":"e0265226.af816","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1818.3336029052734,"y":901.6668066978455,"z":"ebe2868a.85eee8","wires":[["b1f21349.e89a2","abf0d275.5d5d7"]]},{"id":"32bd4b8d.890d24","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1482.6191177368164,"y":861.6667423248291,"z":"ebe2868a.85eee8","wires":[["daa02d3c.1bde5","e0265226.af816","7298a83a.1d0fe8"]]},{"id":"daa02d3c.1bde5","type":"set","name":"set variables for generating name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.service-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.service-model.service-uuid`' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n","comments":"","x":1728.3335189819336,"y":855.9524607658386,"z":"ebe2868a.85eee8","wires":[]},{"id":"15e76921.f8bad7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Unable to generate service name\" />\n","comments":"","x":2276.904594966343,"y":877.5237165178571,"z":"ebe2868a.85eee8","wires":[]},{"id":"a2f31308.70f7e","type":"set","name":"set tmp.service-instance-name to generated name","xml":"<set>\n<parameter name='tmp.service-instance-name' value='`$naming-policy-generate-name-output.service-name`' />\n","comments":"","x":2392.761957168579,"y":924.6665439605713,"z":"ebe2868a.85eee8","wires":[]},{"id":"7298a83a.1d0fe8","type":"set","name":"set generated-via-policy to true","xml":"<set>\n<parameter name='generated-via-policy' value='true' />\n","comments":"","x":1719.7621002197266,"y":810.2381148338318,"z":"ebe2868a.85eee8","wires":[]},{"id":"941dbd7.75af94","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1072.6190948486328,"y":1256.523838043213,"z":"ebe2868a.85eee8","wires":[["d60970c6.ad39b","bfa2c057.12d04"]]},{"id":"bfa2c057.12d04","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1396.904800415039,"y":1283.0953693389893,"z":"ebe2868a.85eee8","wires":[[]]},{"id":"d60970c6.ad39b","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":1298.3334197998047,"y":1235.9524402618408,"z":"ebe2868a.85eee8","wires":[]},{"id":"f540264c.07c8a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":879.7619094848633,"y":1325.95237159729,"z":"ebe2868a.85eee8","wires":[["bbe08f80.8031","941dbd7.75af94"]]},{"id":"4a03445e.27b53c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":878.3333206176758,"y":1374.523754119873,"z":"ebe2868a.85eee8","wires":[["3da7d74d.b454f8","941dbd7.75af94"]]},{"id":"b1f21349.e89a2","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2122.142961502075,"y":924.9999656677246,"z":"ebe2868a.85eee8","wires":[["a2f31308.70f7e"]]},{"id":"abf0d275.5d5d7","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2119.2854347229004,"y":877.4285659790039,"z":"ebe2868a.85eee8","wires":[["15e76921.f8bad7"]]},{"id":"652bca2b.d4b364","type":"comment","name":"check removed with US622450","info":"","comments":"","x":369.99999999999994,"y":326.66666666666663,"z":"ebe2868a.85eee8","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_service-topology-operation-changeassign.json
new file mode 100755 (executable)
index 0000000..748630e
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"1f9dbb81.bd6b84","type":"dgstart","name":"DGSTART","outputs":1,"x":102.85714721679688,"y":86.69937062263489,"z":"9aaf200d.92f26","wires":[["633701bf.7e227"]]},{"id":"633701bf.7e227","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.28570556640625,"y":126.93748116493225,"z":"9aaf200d.92f26","wires":[["eda99e12.c4db9"]]},{"id":"eda99e12.c4db9","type":"method","name":"method service-topology-operation-changeassign","xml":"<method rpc='service-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":225.00005340576172,"y":166.69936871528625,"z":"9aaf200d.92f26","wires":[["c174c97e.d13f68"]]},{"id":"b3b27563.3aac08","type":"comment","name":"service-topology-operation-changeassign","info":"","comments":"","x":497.2020034790039,"y":34.28571438789368,"z":"9aaf200d.92f26","wires":[]},{"id":"90ec9992.f85358","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":502.0952606201172,"y":268.4136621952057,"z":"9aaf200d.92f26","wires":[["6050b73d.61ab98","86976390.b2c"]]},{"id":"6050b73d.61ab98","type":"outcome","name":"CreateServiceInstance","xml":"<outcome value='CreateServiceInstance'>\n","comments":"","outputs":1,"x":739.2380752563477,"y":242.6993706226349,"z":"9aaf200d.92f26","wires":[["a56cc43.e39ad38"]]},{"id":"86976390.b2c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":689.2380981445312,"y":286.74700951576233,"z":"9aaf200d.92f26","wires":[["f64c64f0.f401b8"]]},{"id":"a56cc43.e39ad38","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":917.8095321655273,"y":242.6994059085846,"z":"9aaf200d.92f26","wires":[[]]},{"id":"f64c64f0.f401b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'changeassign' then request-action must be 'CreateServiceInstance'\" />\n","comments":"","x":896.6190452575684,"y":286.7470209598541,"z":"9aaf200d.92f26","wires":[]},{"id":"7d55c8d3.17c188","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.service-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":491.5237731933594,"y":372.22328305244446,"z":"9aaf200d.92f26","wires":[["1522dee0.b2ff41","864651dc.ec881"]]},{"id":"1522dee0.b2ff41","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":711.8571548461914,"y":401.60411953926086,"z":"9aaf200d.92f26","wires":[["df498389.23c5"]]},{"id":"bdf58d56.1da1b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested service must be pending deletion\" />\n","comments":"","x":879.6666412353516,"y":354.9374897480011,"z":"9aaf200d.92f26","wires":[]},{"id":"df498389.23c5","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":861.0952320098877,"y":401.4612829685211,"z":"9aaf200d.92f26","wires":[[]]},{"id":"c174c97e.d13f68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":218.5714340209961,"y":498.1279442310333,"z":"9aaf200d.92f26","wires":[["90ec9992.f85358","43f598e8.2f76a8","64240d58.77b674","6aa8a1e3.471d2","564d8b67.29a674","d4393bc9.1da258","b59d8a67.f68d98"]]},{"id":"43f598e8.2f76a8","type":"switchNode","name":"switch service-data service-instance-id","xml":"<switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\n","comments":"","outputs":1,"x":557.1428451538086,"y":468.1279442310333,"z":"9aaf200d.92f26","wires":[["317bcd9d.d17c42"]]},{"id":"317bcd9d.d17c42","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":786.9047508239746,"y":468.12796425819397,"z":"9aaf200d.92f26","wires":[["86266550.a49cb8"]]},{"id":"86266550.a49cb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`\" />\n","comments":"","x":942.6189956665039,"y":468.1279594898224,"z":"9aaf200d.92f26","wires":[]},{"id":"864651dc.ec881","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":690.0000038146973,"y":355.2707989215851,"z":"9aaf200d.92f26","wires":[["bdf58d56.1da1b"]]},{"id":"64240d58.77b674","type":"get-resource","name":"get-resource SERVICE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='db.service-model'>\n\n","comments":"","outputs":1,"x":538.5714340209961,"y":535.2707970142365,"z":"9aaf200d.92f26","wires":[["259cb40b.e98c0c","9746c605.856688"]]},{"id":"8c3f516c.ce487","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":952.8571014404297,"y":560.127846956253,"z":"9aaf200d.92f26","wires":[]},{"id":"259cb40b.e98c0c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":779.3571357727051,"y":516.6516621112823,"z":"9aaf200d.92f26","wires":[["ac9e8e69.ada9e"]]},{"id":"9746c605.856688","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":787.9285659790039,"y":559.9373753070831,"z":"9aaf200d.92f26","wires":[["8c3f516c.ce487"]]},{"id":"ac9e8e69.ada9e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading SERVICE_MODEL table\" />\n","comments":"","x":952.2143020629883,"y":515.2231056690216,"z":"9aaf200d.92f26","wires":[]},{"id":"6aa8a1e3.471d2","type":"set","name":"set service-topology onap-model-information","xml":"<set>\n<parameter name='service-data.service-topology.onap-model-information.'\n  value='`$service-topology-operation-input.service-information.onap-model-information.`' />\n","comments":"","x":574.2857284545898,"y":602.4136803150177,"z":"9aaf200d.92f26","wires":[]},{"id":"564d8b67.29a674","type":"set","name":"set service-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='changeassign' />\n<parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\n","comments":"","x":558.5714340209961,"y":646.699385881424,"z":"9aaf200d.92f26","wires":[]},{"id":"d4393bc9.1da258","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":508.5714340209961,"y":690.9850914478302,"z":"9aaf200d.92f26","wires":[]},{"id":"b59d8a67.f68d98","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":482.8571357727051,"y":733.8422300815582,"z":"9aaf200d.92f26","wires":[]},{"id":"8fc79b5e.b3f178","type":"comment","name":"check removed with US622450","info":"","comments":"","x":354.2857208251953,"y":334.28571701049805,"z":"9aaf200d.92f26","wires":[]}]
\ No newline at end of file
index 2e2a4d6..7bc480c 100644 (file)
@@ -1,388 +1 @@
-[
-    {
-        "id": "604b70a8.30f9f",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$service-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 536.1904602050781,
-        "y": 314.5237846374512,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "9c181b3f.092838",
-                "2760d61f.58392a"
-            ]
-        ]
-    },
-    {
-        "id": "9c181b3f.092838",
-        "type": "outcome",
-        "name": "DeleteServiceInstance",
-        "xml": "<outcome value='DeleteServiceInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 773.3332748413086,
-        "y": 288.80949306488037,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "1a68151d.2ac4eb"
-            ]
-        ]
-    },
-    {
-        "id": "2760d61f.58392a",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 723.3332405090332,
-        "y": 334.5238208770752,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "a78d0f9e.d329f"
-            ]
-        ]
-    },
-    {
-        "id": "1a68151d.2ac4eb",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 951.9047317504883,
-        "y": 288.8095283508301,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "a78d0f9e.d329f",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteServiceInstance'\" />\n",
-        "comments": "",
-        "x": 969.0475769042969,
-        "y": 334.5237846374512,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "ee30906.f78157",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 262.1427879333496,
-        "y": 405.2380313873291,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "604b70a8.30f9f",
-                "b7ce906b.bd1c6",
-                "6b83ed66.08c724",
-                "415b774b.0e0bf8",
-                "388700f9.d2aff"
-            ]
-        ]
-    },
-    {
-        "id": "d424f27.d8ceb1",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 99.99999237060547,
-        "y": 81.66666412353516,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "e272ce64.f9ac"
-            ]
-        ]
-    },
-    {
-        "id": "e272ce64.f9ac",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 175.28569793701172,
-        "y": 121.90477561950684,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "f939e6bb.1b9ce8"
-            ]
-        ]
-    },
-    {
-        "id": "f939e6bb.1b9ce8",
-        "type": "method",
-        "name": "method service-topology-operation-deactivate",
-        "xml": "<method rpc='service-topology-operation-deactivate' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 216.09528350830078,
-        "y": 163.33332443237305,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "ee30906.f78157"
-            ]
-        ]
-    },
-    {
-        "id": "d253a6a8.6c8668",
-        "type": "comment",
-        "name": "service-topology-operation-deactivate",
-        "info": "",
-        "comments": "",
-        "x": 494.3448486328125,
-        "y": 29.253007888793945,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "b7ce906b.bd1c6",
-        "type": "switchNode",
-        "name": "switch service-data service-instance-id",
-        "xml": "<switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 591.6666564941406,
-        "y": 239.7618865966797,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "fbf7b015.33a16"
-            ]
-        ]
-    },
-    {
-        "id": "fbf7b015.33a16",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 821.4285621643066,
-        "y": 239.76190662384033,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "a2f01f45.35d09"
-            ]
-        ]
-    },
-    {
-        "id": "a2f01f45.35d09",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`\" />\n",
-        "comments": "",
-        "x": 977.1428070068359,
-        "y": 239.76190185546875,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "6b83ed66.08c724",
-        "type": "update",
-        "name": "update AAI service instance",
-        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-instance\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-topology.service-topology-identifier.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-topology.service-topology-identifier.service-type AND\n\t\t\tservice-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 557.9523620605469,
-        "y": 524.7619037628174,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "1a658f52.90fe91",
-                "7fbd10da.9b854"
-            ]
-        ]
-    },
-    {
-        "id": "1a658f52.90fe91",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 770.7142295837402,
-        "y": 500.0000581741333,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "ec560782.dd0478"
-            ]
-        ]
-    },
-    {
-        "id": "ec560782.dd0478",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
-        "comments": "",
-        "x": 920.7141952514648,
-        "y": 500.00013637542725,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "7fbd10da.9b854",
-        "type": "failure",
-        "name": "not-found",
-        "xml": "<outcome value='not-found'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 777.0236587524414,
-        "y": 548.571475982666,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "ca3b7680.173278"
-            ]
-        ]
-    },
-    {
-        "id": "415b774b.0e0bf8",
-        "type": "set",
-        "name": "set service-level-oper-status to PendingDelete",
-        "xml": "<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='deactivate' />\n<parameter name='service-data.service-level-oper-status.last-action' value='DeleteServiceInstance' />\n",
-        "comments": "",
-        "x": 613.9523239135742,
-        "y": 594.5237979888916,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "ca3b7680.173278",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 904.9999580383301,
-        "y": 548.3333377838135,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "7e175a90.802564",
-        "type": "comment",
-        "name": "Don't treat this as an error",
-        "info": "",
-        "comments": "",
-        "x": 1080.0000457763672,
-        "y": 548.3333177566528,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "388700f9.d2aff",
-        "type": "switchNode",
-        "name": "switch provided-allotted-resource length",
-        "xml": "<switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 596.6667098999023,
-        "y": 408.3333396911621,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "9ed42146.3d389",
-                "3c14b3ca.f345ac",
-                "40e1d77.09f5028"
-            ]
-        ]
-    },
-    {
-        "id": "9ed42146.3d389",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 836.666576385498,
-        "y": 409.9999752044678,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "5abdf37a.97301c"
-            ]
-        ]
-    },
-    {
-        "id": "3c14b3ca.f345ac",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 836.6666793823242,
-        "y": 451.66663360595703,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "55a7bd8c.02e934"
-            ]
-        ]
-    },
-    {
-        "id": "55a7bd8c.02e934",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are provided allotted resources\" />\n",
-        "comments": "",
-        "x": 991.6666641235352,
-        "y": 454.9999313354492,
-        "z": "62cfcbc6.1804e4",
-        "wires": []
-    },
-    {
-        "id": "5abdf37a.97301c",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 973.3332710266113,
-        "y": 386.66664123535156,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "40e1d77.09f5028",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 836.666576385498,
-        "y": 368.3332872390747,
-        "z": "62cfcbc6.1804e4",
-        "wires": [
-            [
-                "5abdf37a.97301c"
-            ]
-        ]
-    }
-]
+[{"id":"ac6c9328.cb9de","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":561.4285888671875,"y":313.8422031402588,"z":"e671ca2.5776e38","wires":[["d328c35a.3c021","ae874303.d6a1c"]]},{"id":"d328c35a.3c021","type":"outcome","name":"DeleteServiceInstance","xml":"<outcome value='DeleteServiceInstance'>\n","comments":"","outputs":1,"x":798.571403503418,"y":288.127911567688,"z":"e671ca2.5776e38","wires":[["bba20dc8.38088"]]},{"id":"ae874303.d6a1c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":748.5713691711426,"y":333.8422393798828,"z":"e671ca2.5776e38","wires":[["ee86807.3fe678"]]},{"id":"bba20dc8.38088","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":977.1428604125977,"y":288.1279468536377,"z":"e671ca2.5776e38","wires":[[]]},{"id":"ee86807.3fe678","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteServiceInstance'\" />\n","comments":"","x":994.2857055664062,"y":333.8422031402588,"z":"e671ca2.5776e38","wires":[]},{"id":"88fbe75d.9b3ff8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":287.380916595459,"y":404.5564498901367,"z":"e671ca2.5776e38","wires":[["ac6c9328.cb9de","27cf51a4.0a0a4e","83ae40b9.3c13f","e15b18de.b91818","833124b5.3b61f8"]]},{"id":"958fbc28.f9e47","type":"dgstart","name":"DGSTART","outputs":1,"x":125.23812103271484,"y":80.98508262634277,"z":"e671ca2.5776e38","wires":[["f771cbe7.3f9578"]]},{"id":"f771cbe7.3f9578","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":240.52383422851562,"y":121.2231912612915,"z":"e671ca2.5776e38","wires":[["7176e99f.147988"]]},{"id":"7176e99f.147988","type":"method","name":"method service-topology-operation-deactivate","xml":"<method rpc='service-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":238.47626495361328,"y":162.65175247192383,"z":"e671ca2.5776e38","wires":[["88fbe75d.9b3ff8"]]},{"id":"e4213136.1b25d","type":"comment","name":"service-topology-operation-deactivate","info":"","comments":"","x":519.5829772949219,"y":28.571426391601562,"z":"e671ca2.5776e38","wires":[]},{"id":"27cf51a4.0a0a4e","type":"switchNode","name":"switch service-data service-instance-id","xml":"<switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\n","comments":"","outputs":1,"x":616.90478515625,"y":239.0803050994873,"z":"e671ca2.5776e38","wires":[["8551717b.ecca3"]]},{"id":"8551717b.ecca3","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":846.666690826416,"y":239.08032512664795,"z":"e671ca2.5776e38","wires":[["ad471b62.9ef058"]]},{"id":"ad471b62.9ef058","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`\" />\n","comments":"","x":1002.3809356689453,"y":239.08032035827637,"z":"e671ca2.5776e38","wires":[]},{"id":"83ae40b9.3c13f","type":"update","name":"update AAI service instance","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"service-instance\" \n\t\tkey=\"customer.global-customer-id = $service-data.service-topology.service-topology-identifier.global-customer-id AND\n\t\t\tservice-subscription.service-type = $service-data.service-topology.service-topology-identifier.service-type AND\n\t\t\tservice-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id\"\n        pfx='pfx' local-only='false' force='false'>\n\t<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n","comments":"","outputs":1,"x":583.1904907226562,"y":524.080322265625,"z":"e671ca2.5776e38","wires":[["1ab67983.459ba6","d889670b.278868"]]},{"id":"1ab67983.459ba6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":795.9523582458496,"y":499.3184766769409,"z":"e671ca2.5776e38","wires":[["655cf69a.4a38f8"]]},{"id":"655cf69a.4a38f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n","comments":"","x":945.9523239135742,"y":499.31855487823486,"z":"e671ca2.5776e38","wires":[]},{"id":"d889670b.278868","type":"failure","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":802.2617874145508,"y":547.8898944854736,"z":"e671ca2.5776e38","wires":[["186fbfe4.0478f"]]},{"id":"e15b18de.b91818","type":"set","name":"set service-level-oper-status to PendingDelete","xml":"<set>\n<parameter name='service-data.service-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.service-level-oper-status.last-rpc-action' value='deactivate' />\n<parameter name='service-data.service-level-oper-status.last-action' value='DeleteServiceInstance' />\n","comments":"","x":639.1904525756836,"y":593.8422164916992,"z":"e671ca2.5776e38","wires":[]},{"id":"186fbfe4.0478f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":930.2380867004395,"y":547.6517562866211,"z":"e671ca2.5776e38","wires":[[]]},{"id":"fc587782.b233d8","type":"comment","name":"Don't treat this as an error","info":"","comments":"","x":1105.2381744384766,"y":547.6517362594604,"z":"e671ca2.5776e38","wires":[]},{"id":"833124b5.3b61f8","type":"switchNode","name":"switch provided-allotted-resource length","xml":"<switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\n","comments":"","outputs":1,"x":621.9048385620117,"y":407.6517581939697,"z":"e671ca2.5776e38","wires":[["d9b91153.f78a","9958b478.578c18","5aa73c44.d94584"]]},{"id":"d9b91153.f78a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":861.9047050476074,"y":409.3183937072754,"z":"e671ca2.5776e38","wires":[["8979ce23.11d1"]]},{"id":"9958b478.578c18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":861.9048080444336,"y":450.98505210876465,"z":"e671ca2.5776e38","wires":[["10934b9e.fead24"]]},{"id":"10934b9e.fead24","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are provided allotted resources\" />\n","comments":"","x":1014.0476341247559,"y":450.03265953063965,"z":"e671ca2.5776e38","wires":[]},{"id":"8979ce23.11d1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":998.5713996887207,"y":385.9850597381592,"z":"e671ca2.5776e38","wires":[[]]},{"id":"5aa73c44.d94584","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":861.9047050476074,"y":367.6517057418823,"z":"e671ca2.5776e38","wires":[["8979ce23.11d1"]]}]
\ No newline at end of file
index 109bb2d..b366398 100644 (file)
@@ -1,655 +1 @@
-[
-    {
-        "id": "708d5adc.4b14a4",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$service-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 485.2381134033203,
-        "y": 314.761923789978,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "24de1645.3af2ea",
-                "d3cb3641.f27678"
-            ]
-        ]
-    },
-    {
-        "id": "24de1645.3af2ea",
-        "type": "outcome",
-        "name": "DeleteServiceInstance",
-        "xml": "<outcome value='DeleteServiceInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 722.3809280395508,
-        "y": 289.0476322174072,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "e780c482.9646b8"
-            ]
-        ]
-    },
-    {
-        "id": "d3cb3641.f27678",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 672.3808937072754,
-        "y": 334.76196002960205,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "18ac75d0.4e2baa"
-            ]
-        ]
-    },
-    {
-        "id": "e780c482.9646b8",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 900.9523849487305,
-        "y": 289.04766750335693,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "18ac75d0.4e2baa",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'delete' then request-action must be 'DeleteServiceInstance'\" />\n",
-        "comments": "",
-        "x": 918.0952301025391,
-        "y": 334.761923789978,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "42440be9.04b654",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 263.80948638916016,
-        "y": 431.90471744537354,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "708d5adc.4b14a4",
-                "c64008cb.372058",
-                "8cbcdd86.4ea2d",
-                "9c98677c.c76e58",
-                "889c05be.733888",
-                "9f043d1e.49bce",
-                "d20eaf9b.6a16d",
-                "c3e8266e.658778"
-            ]
-        ]
-    },
-    {
-        "id": "c64008cb.372058",
-        "type": "switchNode",
-        "name": "switch network_length",
-        "xml": "<switch test='`$service-data.networks.network_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 486.66666412353516,
-        "y": 504.7618865966797,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "5e24f54a.aadfdc",
-                "6b934fd0.898a2",
-                "c530e391.01e37"
-            ]
-        ]
-    },
-    {
-        "id": "5e24f54a.aadfdc",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 670.9523239135742,
-        "y": 463.3332452774048,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "fa7e1e62.08a81"
-            ]
-        ]
-    },
-    {
-        "id": "6b934fd0.898a2",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 669.5237350463867,
-        "y": 504.76190280914307,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "fa7e1e62.08a81"
-            ]
-        ]
-    },
-    {
-        "id": "fa7e1e62.08a81",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 818.0952491760254,
-        "y": 484.7619037628174,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "c530e391.01e37",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 669.5237846374512,
-        "y": 546.1904907226562,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "983f9e5e.6f1e4"
-            ]
-        ]
-    },
-    {
-        "id": "983f9e5e.6f1e4",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the service because there are networks defined\" />\n",
-        "comments": "",
-        "x": 836.6666793823242,
-        "y": 544.7618789672852,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "8cbcdd86.4ea2d",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 475.2381057739258,
-        "y": 631.904670715332,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "1a015c38.b0cdd4",
-                "3d0c23ae.7944fc",
-                "42c177a7.fa5448"
-            ]
-        ]
-    },
-    {
-        "id": "1a015c38.b0cdd4",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 668.0951614379883,
-        "y": 590.4760599136353,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "b2b3efeb.d8fc2"
-            ]
-        ]
-    },
-    {
-        "id": "3d0c23ae.7944fc",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 666.6665725708008,
-        "y": 631.9047174453735,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "b2b3efeb.d8fc2"
-            ]
-        ]
-    },
-    {
-        "id": "b2b3efeb.d8fc2",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 815.2380867004395,
-        "y": 611.9047183990479,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "42c177a7.fa5448",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 666.6666221618652,
-        "y": 673.3333053588867,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "9b2891f2.0e51b"
-            ]
-        ]
-    },
-    {
-        "id": "9b2891f2.0e51b",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the service because there are VNFs defined\" />\n",
-        "comments": "",
-        "x": 833.8095169067383,
-        "y": 671.9046936035156,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "9c98677c.c76e58",
-        "type": "set",
-        "name": "clear service-data and service-status",
-        "xml": "<set>\n<parameter name='service-data.' value='' />\n<parameter name='service-status.' value='' />\n",
-        "comments": "",
-        "x": 538.0952453613281,
-        "y": 958.095130443573,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "8ebb5ade.227d28",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 113.33336639404297,
-        "y": 84.99999237060547,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "c1ce781b.d50358"
-            ]
-        ]
-    },
-    {
-        "id": "c1ce781b.d50358",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 188.61907196044922,
-        "y": 125.23810386657715,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "25743b1c.a929d4"
-            ]
-        ]
-    },
-    {
-        "id": "25743b1c.a929d4",
-        "type": "method",
-        "name": "method service-topology-operation-delete",
-        "xml": "<method rpc='service-topology-operation-delete' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 217.76199340820312,
-        "y": 164.99998664855957,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "42440be9.04b654"
-            ]
-        ]
-    },
-    {
-        "id": "f1543edb.c8ae1",
-        "type": "comment",
-        "name": "service-topology-operation-delete",
-        "info": "",
-        "comments": "",
-        "x": 507.67822265625,
-        "y": 32.58633613586426,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "889c05be.733888",
-        "type": "switchNode",
-        "name": "switch service-data.service-topology.service-topology-identifier.service-instance-id",
-        "xml": "<switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 677.1428756713867,
-        "y": 242.85715293884277,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "1019f3dd.ec3c3c"
-            ]
-        ]
-    },
-    {
-        "id": "1019f3dd.ec3c3c",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1048.5714950561523,
-        "y": 242.85716938972473,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "a97d9d2d.ac5c1"
-            ]
-        ]
-    },
-    {
-        "id": "9f043d1e.49bce",
-        "type": "switchNode",
-        "name": "switch service-data.service-level-oper-status.order-status",
-        "xml": "<switch test='`$service-data.service-level-oper-status.order-status`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 597.1428680419922,
-        "y": 398.57144355773926,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "d2aec0fb.6eb24",
-                "d6b45bcb.26da28"
-            ]
-        ]
-    },
-    {
-        "id": "d2aec0fb.6eb24",
-        "type": "outcome",
-        "name": "PendingDelete",
-        "xml": "<outcome value='PendingDelete'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 918.5714285714284,
-        "y": 382.85714285714283,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "93e133c9.0b965"
-            ]
-        ]
-    },
-    {
-        "id": "d6b45bcb.26da28",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 892.8571357727051,
-        "y": 427.14287185668945,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "929eab0f.dcf048"
-            ]
-        ]
-    },
-    {
-        "id": "929eab0f.dcf048",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status is ' + $service-data.service-level-oper-status.order-status\n       + ' but must be PendingDelete'`\" />\n",
-        "comments": "",
-        "x": 1092.857177734375,
-        "y": 425.71429443359375,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "93e133c9.0b965",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 1095.71435546875,
-        "y": 381.4285888671875,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "d20eaf9b.6a16d",
-        "type": "switchNode",
-        "name": "switch provided-allotted-resource length",
-        "xml": "<switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 541.6666870117188,
-        "y": 758.3332624435425,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "f2b5411.bb824c",
-                "feaed589.3e9658",
-                "55f0e2d1.bcd42c"
-            ]
-        ]
-    },
-    {
-        "id": "f2b5411.bb824c",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 783.333179473877,
-        "y": 758.3332424163818,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "c7e318df.48c538"
-            ]
-        ]
-    },
-    {
-        "id": "feaed589.3e9658",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 783.3332023620605,
-        "y": 799.9999504089355,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "b72c1478.7fe018"
-            ]
-        ]
-    },
-    {
-        "id": "b72c1478.7fe018",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are provided allotted resources\" />\n",
-        "comments": "",
-        "x": 931.6666030883789,
-        "y": 799.999870300293,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "c7e318df.48c538",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 913.3332061767578,
-        "y": 736.6666164398193,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "c3e8266e.658778",
-        "type": "switchNode",
-        "name": "switch consumed-allotted-resource length",
-        "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 546.6666564941406,
-        "y": 881.666600227356,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "b525f07c.00458",
-                "98609590.b62e08",
-                "a7d2b5a5.d54a78"
-            ]
-        ]
-    },
-    {
-        "id": "b525f07c.00458",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 781.6664962768555,
-        "y": 881.666579246521,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "138caece.68dc91"
-            ]
-        ]
-    },
-    {
-        "id": "98609590.b62e08",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 781.6665344238281,
-        "y": 921.6666011810303,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "46ef5f07.ba5fb"
-            ]
-        ]
-    },
-    {
-        "id": "46ef5f07.ba5fb",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are consumed allotted resources\" />\n",
-        "comments": "",
-        "x": 931.6665420532227,
-        "y": 923.3331871032715,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    },
-    {
-        "id": "138caece.68dc91",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 909.9998321533203,
-        "y": 858.3332653045654,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "55f0e2d1.bcd42c",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 784.9999389648438,
-        "y": 716.6666259765625,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "c7e318df.48c538"
-            ]
-        ]
-    },
-    {
-        "id": "a7d2b5a5.d54a78",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 783.3332405090332,
-        "y": 841.6666393280029,
-        "z": "2b8c09cd.8f7676",
-        "wires": [
-            [
-                "138caece.68dc91"
-            ]
-        ]
-    },
-    {
-        "id": "a97d9d2d.ac5c1",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`\" />\n",
-        "comments": "",
-        "x": 1200.0000076293945,
-        "y": 243.33331489562988,
-        "z": "2b8c09cd.8f7676",
-        "wires": []
-    }
-]
+[{"id":"478463f2.df6acc","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":474.2857360839844,"y":311.4285888671875,"z":"7c29bc30.d765f4","wires":[["6a903bca.fe0bc4","15a624e5.c765ab"]]},{"id":"6a903bca.fe0bc4","type":"outcome","name":"DeleteServiceInstance","xml":"<outcome value='DeleteServiceInstance'>\n","comments":"","outputs":1,"x":711.4285507202148,"y":285.7142972946167,"z":"7c29bc30.d765f4","wires":[["ee5fd97d.592188"]]},{"id":"15a624e5.c765ab","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":661.4285163879395,"y":331.4286251068115,"z":"7c29bc30.d765f4","wires":[["53deb4ea.0abeac"]]},{"id":"ee5fd97d.592188","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":890.0000076293945,"y":285.7143325805664,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"53deb4ea.0abeac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'delete' then request-action must be 'DeleteServiceInstance'\" />\n","comments":"","x":907.1428527832031,"y":331.4285888671875,"z":"7c29bc30.d765f4","wires":[]},{"id":"aef46672.32e008","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":169.99998474121094,"y":639.9999740123749,"z":"7c29bc30.d765f4","wires":[["478463f2.df6acc","68858bf1.c01af4","d0da9c0a.17ef8","b92a5b71.d162a8","259c5f9d.50c88","1695e7ba.b35d28","c99ede40.d4217","892c2ebc.f2f41","defd6c35.e8fab"]]},{"id":"68858bf1.c01af4","type":"switchNode","name":"switch network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":475.7142868041992,"y":501.42855167388916,"z":"7c29bc30.d765f4","wires":[["4cd10559.b0cb6c","6fa72ddd.b467e4","da4bcbd2.83ceb8"]]},{"id":"4cd10559.b0cb6c","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":659.9999465942383,"y":459.99991035461426,"z":"7c29bc30.d765f4","wires":[["4ceb25ac.f6bd4c"]]},{"id":"6fa72ddd.b467e4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":658.5713577270508,"y":501.42856788635254,"z":"7c29bc30.d765f4","wires":[["4ceb25ac.f6bd4c"]]},{"id":"4ceb25ac.f6bd4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":807.1428718566895,"y":481.42856884002686,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"da4bcbd2.83ceb8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":658.5714073181152,"y":542.8571557998657,"z":"7c29bc30.d765f4","wires":[["a8c29d46.4823a"]]},{"id":"a8c29d46.4823a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the service because there are networks defined\" />\n","comments":"","x":825.7143020629883,"y":541.4285440444946,"z":"7c29bc30.d765f4","wires":[]},{"id":"d0da9c0a.17ef8","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":464.28572845458984,"y":628.5713357925415,"z":"7c29bc30.d765f4","wires":[["ecf76781.cbaeb8","c9a4b953.c3df58","296eb244.ba1b6e"]]},{"id":"ecf76781.cbaeb8","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":657.1427841186523,"y":587.1427249908447,"z":"7c29bc30.d765f4","wires":[["d6f93db.83137c"]]},{"id":"c9a4b953.c3df58","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":655.7141952514648,"y":628.571382522583,"z":"7c29bc30.d765f4","wires":[["d6f93db.83137c"]]},{"id":"d6f93db.83137c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":804.2857093811035,"y":608.5713834762573,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"296eb244.ba1b6e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":655.7142448425293,"y":669.9999704360962,"z":"7c29bc30.d765f4","wires":[["8a884ea5.ec393"]]},{"id":"8a884ea5.ec393","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the service because there are VNFs defined\" />\n","comments":"","x":822.8571395874023,"y":668.5713586807251,"z":"7c29bc30.d765f4","wires":[]},{"id":"b92a5b71.d162a8","type":"set","name":"clear service-data and service-status","xml":"<set>\n<parameter name='service-data.' value='' />\n<parameter name='service-status.' value='' />\n","comments":"","x":517.142936706543,"y":1061.9048373699188,"z":"7c29bc30.d765f4","wires":[]},{"id":"9e32e2cd.2f93f","type":"dgstart","name":"DGSTART","outputs":1,"x":102.38098907470703,"y":81.66665744781494,"z":"7c29bc30.d765f4","wires":[["fe0ea62e.59c648"]]},{"id":"fe0ea62e.59c648","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":216.23812866210938,"y":123.33334136009216,"z":"7c29bc30.d765f4","wires":[["799e4a2f.a2d2e4"]]},{"id":"799e4a2f.a2d2e4","type":"method","name":"method service-topology-operation-delete","xml":"<method rpc='service-topology-operation-delete' mode='sync'>\n","comments":"","outputs":1,"x":202.5239028930664,"y":164.5237967967987,"z":"7c29bc30.d765f4","wires":[["aef46672.32e008"]]},{"id":"21b88544.c785ba","type":"comment","name":"service-topology-operation-delete","info":"","comments":"","x":496.72584533691406,"y":29.25300121307373,"z":"7c29bc30.d765f4","wires":[]},{"id":"259c5f9d.50c88","type":"switchNode","name":"switch service-data.service-topology.service-topology-identifier.service-instance-id","xml":"<switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\n","comments":"","outputs":1,"x":666.1904983520508,"y":239.52381801605225,"z":"7c29bc30.d765f4","wires":[["e29856c8.930a48"]]},{"id":"e29856c8.930a48","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1037.6191177368164,"y":239.5238344669342,"z":"7c29bc30.d765f4","wires":[["34341e27.4dbad2"]]},{"id":"1d1760c1.03d87f","type":"switchNode","name":"switch service-data.service-level-oper-status.order-status","xml":"<switch test='`$service-data.service-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":586.1904907226562,"y":395.23810863494873,"z":"7c29bc30.d765f4","wires":[["28371aab.9efba6","29a52a3a.2e43b6"]]},{"id":"28371aab.9efba6","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":907.6190512520925,"y":379.52380793435236,"z":"7c29bc30.d765f4","wires":[["35f0b1e7.1a890e"]]},{"id":"29a52a3a.2e43b6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":881.9047584533691,"y":423.8095369338989,"z":"7c29bc30.d765f4","wires":[["49ade992.379b48"]]},{"id":"49ade992.379b48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status is ' + $service-data.service-level-oper-status.order-status\n       + ' but must be PendingDelete'`\" />\n","comments":"","x":1081.904800415039,"y":422.3809595108032,"z":"7c29bc30.d765f4","wires":[]},{"id":"35f0b1e7.1a890e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1084.761978149414,"y":378.095253944397,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"1695e7ba.b35d28","type":"switchNode","name":"switch provided-allotted-resource length","xml":"<switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\n","comments":"","outputs":1,"x":530.7143096923828,"y":754.999927520752,"z":"7c29bc30.d765f4","wires":[["bfa901c7.15423","f2c37277.09bbc","e598c481.9b2198"]]},{"id":"bfa901c7.15423","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":772.380802154541,"y":754.9999074935913,"z":"7c29bc30.d765f4","wires":[["7a223dc8.1e6394"]]},{"id":"f2c37277.09bbc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":772.3808250427246,"y":796.666615486145,"z":"7c29bc30.d765f4","wires":[["8d60d37d.d73d7"]]},{"id":"8d60d37d.d73d7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are provided allotted resources\" />\n","comments":"","x":920.714225769043,"y":796.6665353775024,"z":"7c29bc30.d765f4","wires":[]},{"id":"7a223dc8.1e6394","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":902.3808288574219,"y":733.3332815170288,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"c99ede40.d4217","type":"switchNode","name":"switch consumed-allotted-resource length","xml":"<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n","comments":"","outputs":1,"x":535.7142791748047,"y":878.3332653045654,"z":"7c29bc30.d765f4","wires":[["731f21d2.cec17","aa38afff.d1e8e","3ae07b30.2e4444"]]},{"id":"731f21d2.cec17","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":770.7141189575195,"y":878.3332443237305,"z":"7c29bc30.d765f4","wires":[["5628499e.e4eda8"]]},{"id":"aa38afff.d1e8e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":770.7141571044922,"y":918.3332662582397,"z":"7c29bc30.d765f4","wires":[["b08801cb.37837"]]},{"id":"b08801cb.37837","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot deactivate this service because there are consumed allotted resources\" />\n","comments":"","x":920.7141647338867,"y":919.999852180481,"z":"7c29bc30.d765f4","wires":[]},{"id":"5628499e.e4eda8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":899.0474548339844,"y":854.9999303817749,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"e598c481.9b2198","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":774.0475616455078,"y":713.333291053772,"z":"7c29bc30.d765f4","wires":[["7a223dc8.1e6394"]]},{"id":"3ae07b30.2e4444","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":772.3808631896973,"y":838.3333044052124,"z":"7c29bc30.d765f4","wires":[["5628499e.e4eda8"]]},{"id":"34341e27.4dbad2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`\" />\n","comments":"","x":1189.0476303100586,"y":239.99997997283936,"z":"7c29bc30.d765f4","wires":[]},{"id":"defd6c35.e8fab","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":601.4285583496094,"y":1015.8245198726654,"z":"7c29bc30.d765f4","wires":[[]]},{"id":"892c2ebc.f2f41","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$service-data.service-topology.onap-model-information.model-uuid`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":502.857177734375,"y":968.681590795517,"z":"7c29bc30.d765f4","wires":[]},{"id":"3511dc91.30aac4","type":"comment","name":"check removed with US622450","info":"","comments":"","x":334.28570556640625,"y":357.1428680419922,"z":"7c29bc30.d765f4","wires":[]}]
\ No newline at end of file
index d323b41..a07e9ab 100644 (file)
@@ -1,252 +1 @@
-[
-    {
-        "id": "ffcdcaf9.978378",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 110.00003814697266,
-        "y": 84.28563117980957,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "19a4815b.2d2d0f"
-            ]
-        ]
-    },
-    {
-        "id": "19a4815b.2d2d0f",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 185.2857437133789,
-        "y": 124.52374267578125,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "936b3cb3.ebe9b"
-            ]
-        ]
-    },
-    {
-        "id": "936b3cb3.ebe9b",
-        "type": "method",
-        "name": "method service-topology-operation",
-        "xml": "<method rpc='service-topology-operation' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 188.4286651611328,
-        "y": 164.28562545776367,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "ed52e81.7853818"
-            ]
-        ]
-    },
-    {
-        "id": "a6ec4b68.d62da8",
-        "type": "comment",
-        "name": "service-topology-operation",
-        "info": "",
-        "comments": "",
-        "x": 504.3448944091797,
-        "y": 31.87197494506836,
-        "z": "3794a147.f3878e",
-        "wires": []
-    },
-    {
-        "id": "ed52e81.7853818",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 184.50008392333984,
-        "y": 365.3124828338623,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "8f72acdd.c62fa",
-                "12bcf998.a7e046",
-                "b4070b55.94bb78",
-                "6af30001.5e0fe"
-            ]
-        ]
-    },
-    {
-        "id": "8f72acdd.c62fa",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "comments": "",
-        "x": 468.33333587646484,
-        "y": 540.7146196365356,
-        "z": "3794a147.f3878e",
-        "wires": []
-    },
-    {
-        "id": "b4070b55.94bb78",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 475.0475769042969,
-        "y": 417.80941009521484,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "81b85c4d.7a8e1",
-                "e6fcf5d0.16c4f8",
-                "64f4285d.b775f8",
-                "a2995c44.e9432"
-            ]
-        ]
-    },
-    {
-        "id": "81b85c4d.7a8e1",
-        "type": "outcome",
-        "name": "assign",
-        "xml": "<outcome value='assign'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 685.8571166992188,
-        "y": 343.09522819519043,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "5f230ac8.35fac4"
-            ]
-        ]
-    },
-    {
-        "id": "e6fcf5d0.16c4f8",
-        "type": "outcome",
-        "name": "delete",
-        "xml": "<outcome value='delete'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 685.2380981445312,
-        "y": 437.61927127838135,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "55a1c437.344cfc"
-            ]
-        ]
-    },
-    {
-        "id": "a2995c44.e9432",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 684.2856369018555,
-        "y": 486.47603607177734,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "8bf7b987.d11358"
-            ]
-        ]
-    },
-    {
-        "id": "12bcf998.a7e046",
-        "type": "set",
-        "name": "copy input to service-data",
-        "xml": "<set>\n<parameter name='service-data.sdnc-request-header.' value='`$service-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.request-information.' value='`$service-topology-operation-input.request-information.`' />\n<parameter name='service-data.service-information.' value='`$service-topology-operation-input.service-information.`' />\n<parameter name='service-data.service-request-input.' value='`$service-topology-operation-input.service-request-input.`' />\n",
-        "comments": "",
-        "x": 503.15476989746094,
-        "y": 285.5118703842163,
-        "z": "3794a147.f3878e",
-        "wires": []
-    },
-    {
-        "id": "8bf7b987.d11358",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$service-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
-        "comments": "",
-        "x": 860.4760818481445,
-        "y": 486.47610092163086,
-        "z": "3794a147.f3878e",
-        "wires": []
-    },
-    {
-        "id": "6af30001.5e0fe",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:validate-service-input",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-service-input' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 590.4166717529297,
-        "y": 237.33333015441895,
-        "z": "3794a147.f3878e",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "5f230ac8.35fac4",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:service-topology-operation-assign",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-assign' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1026.9999694824219,
-        "y": 342.6666889190674,
-        "z": "3794a147.f3878e",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "1d8ee48d.69b27b",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:service-topology-operation-deactivate",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-deactivate' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1039.9999237060547,
-        "y": 389.6666831970215,
-        "z": "3794a147.f3878e",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "55a1c437.344cfc",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:service-topology-operation-delete",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-delete' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1028.333194732666,
-        "y": 438.333402633667,
-        "z": "3794a147.f3878e",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "64f4285d.b775f8",
-        "type": "outcome",
-        "name": "deactivate",
-        "xml": "<outcome value='deactivate'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 696.6665649414062,
-        "y": 391.33335876464844,
-        "z": "3794a147.f3878e",
-        "wires": [
-            [
-                "1d8ee48d.69b27b"
-            ]
-        ]
-    }
-]
+[{"id":"6a14a468.da6abc","type":"dgstart","name":"DGSTART","outputs":1,"x":135.71429443359375,"y":81.42857360839844,"z":"4ed90c4.07509f4","wires":[["f10ec926.823838"]]},{"id":"f10ec926.823838","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":249,"y":121.66668510437012,"z":"4ed90c4.07509f4","wires":[["ad418b5c.6c5988"]]},{"id":"ad418b5c.6c5988","type":"method","name":"method service-topology-operation","xml":"<method rpc='service-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":214.1429214477539,"y":161.42856788635254,"z":"4ed90c4.07509f4","wires":[["3239b298.10498e"]]},{"id":"13ec5291.0d0a1d","type":"comment","name":"service-topology-operation","info":"","comments":"","x":530.0591506958008,"y":29.014917373657227,"z":"4ed90c4.07509f4","wires":[]},{"id":"3239b298.10498e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":210.21434020996094,"y":362.4554252624512,"z":"4ed90c4.07509f4","wires":[["3668554a.700daa","7a3674ed.cf323c","7019824c.3382bc","49db98f4.253db8"]]},{"id":"3668554a.700daa","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":496.9047393798828,"y":579.2861328125,"z":"4ed90c4.07509f4","wires":[]},{"id":"7019824c.3382bc","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":502.1904067993164,"y":434.95235443115234,"z":"4ed90c4.07509f4","wires":[["e48cbaf7.20aff8","f0e2050b.47c8a8","89b14c02.f1afb","f4505bba.852cc8","14d6da3a.b4b4e6"]]},{"id":"e48cbaf7.20aff8","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":711.5713729858398,"y":340.2381706237793,"z":"4ed90c4.07509f4","wires":[["f3ba7edd.6a6a5"]]},{"id":"f0e2050b.47c8a8","type":"outcome","name":"delete","xml":"<outcome value='delete'>\n","comments":"","outputs":1,"x":710.9523544311523,"y":434.7622137069702,"z":"4ed90c4.07509f4","wires":[["840fa306.5e88c"]]},{"id":"f4505bba.852cc8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":709.9998474121094,"y":532.1904163360596,"z":"4ed90c4.07509f4","wires":[["48ed0991.193568"]]},{"id":"7a3674ed.cf323c","type":"set","name":"copy input to service-data","xml":"<set>\n<parameter name='service-data.sdnc-request-header.' value='`$service-topology-operation-input.sdnc-request-header.`' />\n<parameter name='service-data.request-information.' value='`$service-topology-operation-input.request-information.`' />\n<parameter name='service-data.service-information.' value='`$service-topology-operation-input.service-information.`' />\n<parameter name='service-data.service-request-input.' value='`$service-topology-operation-input.service-request-input.`' />\n","comments":"","x":528.869026184082,"y":282.6548128128052,"z":"4ed90c4.07509f4","wires":[]},{"id":"48ed0991.193568","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$service-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":897.6187934875488,"y":531.6190710067749,"z":"4ed90c4.07509f4","wires":[]},{"id":"49db98f4.253db8","type":"call","name":"call GENERIC-RESOURCE-API:validate-service-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-service-input' mode='sync' >\n","comments":"","outputs":1,"x":616.1309280395508,"y":234.4762725830078,"z":"4ed90c4.07509f4","wires":[[]]},{"id":"f3ba7edd.6a6a5","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1064.1427268981934,"y":341.23822116851807,"z":"4ed90c4.07509f4","wires":[[]]},{"id":"f7d9dd61.75bc9","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1077.1426811218262,"y":388.23821544647217,"z":"4ed90c4.07509f4","wires":[[]]},{"id":"840fa306.5e88c","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-delete","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-delete' mode='sync' >\n","comments":"","outputs":1,"x":1065.4759521484375,"y":434.9049348831177,"z":"4ed90c4.07509f4","wires":[[]]},{"id":"89b14c02.f1afb","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":722.3808212280273,"y":388.4763011932373,"z":"4ed90c4.07509f4","wires":[["f7d9dd61.75bc9"]]},{"id":"14d6da3a.b4b4e6","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":730.0000152587891,"y":482.85716915130615,"z":"4ed90c4.07509f4","wires":[["95a4460e.7a1f68"]]},{"id":"95a4460e.7a1f68","type":"call","name":"call GENERIC-RESOURCE-API:service-topology-operation-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1087.9521865844727,"y":482.42845726013184,"z":"4ed90c4.07509f4","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-api-contrail-route-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-api-contrail-route-input.json
new file mode 100644 (file)
index 0000000..ad7e00c
--- /dev/null
@@ -0,0 +1,953 @@
+[
+    {
+        "id": "f1bc4968.7eb2e8",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 208,
+        "y": 132,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "8aca300e.91f4e"
+            ]
+        ]
+    },
+    {
+        "id": "8aca300e.91f4e",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 364.28570556640625,
+        "y": 206.2381134033203,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "7a5ea63a.a2cda8"
+            ]
+        ]
+    },
+    {
+        "id": "7a5ea63a.a2cda8",
+        "type": "method",
+        "name": "validate-api-contrail-route-input",
+        "xml": "<method rpc='validate-api-contrail-route-input' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 366.0952911376953,
+        "y": 336.3333148956299,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "a3e57aeb.68b638"
+            ]
+        ]
+    },
+    {
+        "id": "a3e57aeb.68b638",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 377.7500457763672,
+        "y": 550.4434947967529,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "70a277f9.beb768",
+                "d5a23e44.43bc2"
+            ]
+        ]
+    },
+    {
+        "id": "fb69bbc.365af48",
+        "type": "comment",
+        "name": "validate-alloted-resource-input - CHANGELOG",
+        "info": "3/22: Initial release 2.0.0",
+        "comments": "",
+        "x": 221,
+        "y": 36,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "70a277f9.beb768",
+        "type": "switchNode",
+        "name": "switch ctotmp.action",
+        "xml": "<switch test='`$ctotmp.action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 609.3333282470703,
+        "y": 552.6666402816772,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "60e8940f.83314c",
+                "23d0b921.392b16",
+                "b3dc9943.238bb8",
+                "7c0852de.3fcb3c"
+            ]
+        ]
+    },
+    {
+        "id": "60e8940f.83314c",
+        "type": "other",
+        "name": "activate",
+        "xml": "<outcome value='activate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 898.9999694824219,
+        "y": 579.0000305175781,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "d174cfd4.d100c"
+            ]
+        ]
+    },
+    {
+        "id": "23d0b921.392b16",
+        "type": "other",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 905.9999694824219,
+        "y": 669.0000305175781,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "bbc754a5.64f958"
+            ]
+        ]
+    },
+    {
+        "id": "d174cfd4.d100c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1091.6666259765625,
+        "y": 578.3333740234375,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "6d0bce1b.8e11c",
+                "17c97d5f.6df303",
+                "899f4ff1.d737a",
+                "3e76bc65.39b5e4",
+                "e0cf1856.9a7238",
+                "99a9e6d1.d9e268",
+                "d1859a98.35cd48"
+            ]
+        ]
+    },
+    {
+        "id": "bbc754a5.64f958",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1087.9999694824219,
+        "y": 668.0000305175781,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "6d0bce1b.8e11c",
+                "17c97d5f.6df303",
+                "899f4ff1.d737a",
+                "3e76bc65.39b5e4",
+                "e0cf1856.9a7238",
+                "99a9e6d1.d9e268",
+                "c0949b70.45f808",
+                "d1859a98.35cd48"
+            ]
+        ]
+    },
+    {
+        "id": "d5a23e44.43bc2",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 671.4999542236328,
+        "y": 983.4999923706055,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "b3dc9943.238bb8",
+        "type": "other",
+        "name": "create",
+        "xml": "<outcome value='create'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 885.7777137756348,
+        "y": 476.90740871429443,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "da329004.96183"
+            ]
+        ]
+    },
+    {
+        "id": "da329004.96183",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1046.396713256836,
+        "y": 476.3359785079956,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "746df899.c59dc8",
+                "5e9ab833.5ba308",
+                "8b609f85.dc87b",
+                "7fd6bbeb.e7d544",
+                "6d0bce1b.8e11c",
+                "17c97d5f.6df303",
+                "899f4ff1.d737a",
+                "4ed6551b.a80e7c",
+                "a64a5a47.b66618",
+                "d1859a98.35cd48"
+            ]
+        ]
+    },
+    {
+        "id": "7c0852de.3fcb3c",
+        "type": "other",
+        "name": "delete",
+        "xml": "<outcome value='delete'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.111083984375,
+        "y": 753.5739946365356,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "3c247eb3.3c2862"
+            ]
+        ]
+    },
+    {
+        "id": "3c247eb3.3c2862",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1081.1111145019531,
+        "y": 749.5740175247192,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "6d0bce1b.8e11c",
+                "17c97d5f.6df303",
+                "899f4ff1.d737a",
+                "3e76bc65.39b5e4",
+                "c0949b70.45f808",
+                "9cb30997.5f1958",
+                "d1859a98.35cd48"
+            ]
+        ]
+    },
+    {
+        "id": "746df899.c59dc8",
+        "type": "switchNode",
+        "name": "switch parent-service-service-instance-id",
+        "xml": "<switch test='`$cto-api.parent-service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1641.3333358764648,
+        "y": 459.11104583740234,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "db1cef37.54c6d"
+            ]
+        ]
+    },
+    {
+        "id": "db1cef37.54c6d",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1877.0476989746094,
+        "y": 459.68245697021484,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "cd19ae4f.3105c"
+            ]
+        ]
+    },
+    {
+        "id": "cd19ae4f.3105c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.parent-service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 2027.0476722717285,
+        "y": 458.682466506958,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "5e9ab833.5ba308",
+        "type": "switchNode",
+        "name": "switch port-mirror-configuration-instance-id",
+        "xml": "<switch test='`$cto-api.port-mirror-configuration-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1642.7619934082031,
+        "y": 502.53963470458984,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "2357aa6.4b7ea56"
+            ]
+        ]
+    },
+    {
+        "id": "2357aa6.4b7ea56",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1878.4763565063477,
+        "y": 501.11104583740234,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "c50f59ae.92c4b8"
+            ]
+        ]
+    },
+    {
+        "id": "c50f59ae.92c4b8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.port-mirror-configuration-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 2028.4763298034668,
+        "y": 501.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "8b609f85.dc87b",
+        "type": "switchNode",
+        "name": "switch source-network-role",
+        "xml": "<switch test='`$cto-api.source-network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1596.7619934082031,
+        "y": 533.5396347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "e36c99b7.fb8c18"
+            ]
+        ]
+    },
+    {
+        "id": "e36c99b7.fb8c18",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1880.4763565063477,
+        "y": 534.1110458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "5d47c9d1.c26318"
+            ]
+        ]
+    },
+    {
+        "id": "5d47c9d1.c26318",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.source-network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2030.4763298034668,
+        "y": 534.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "7fd6bbeb.e7d544",
+        "type": "switchNode",
+        "name": "switch collector-network-role",
+        "xml": "<switch test='`$cto-api.collector-network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1599.7619934082031,
+        "y": 566.5396347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "d98d448a.1ffca8"
+            ]
+        ]
+    },
+    {
+        "id": "d98d448a.1ffca8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1878.4763565063477,
+        "y": 567.1110458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "3c1831c7.902e3e"
+            ]
+        ]
+    },
+    {
+        "id": "3c1831c7.902e3e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.collector-network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2028.4763298034668,
+        "y": 567.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "6d0bce1b.8e11c",
+        "type": "switchNode",
+        "name": "switch default-domain",
+        "xml": "<switch test='`$cto-api.default-domain`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1577.7619934082031,
+        "y": 598.5396347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "1e0b22d4.496f8d"
+            ]
+        ]
+    },
+    {
+        "id": "1e0b22d4.496f8d",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1880.4763565063477,
+        "y": 598.1110458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "c7df5fb4.9bafa"
+            ]
+        ]
+    },
+    {
+        "id": "c7df5fb4.9bafa",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.default-domain is a required input\" />\n",
+        "comments": "",
+        "x": 2030.4763298034668,
+        "y": 598.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "17c97d5f.6df303",
+        "type": "switchNode",
+        "name": "switch default-project",
+        "xml": "<switch test='`$cto-api.default-project`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1576.7619934082031,
+        "y": 629.5396347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "7e497852.cd0cb8"
+            ]
+        ]
+    },
+    {
+        "id": "7e497852.cd0cb8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1879.4763565063477,
+        "y": 628.1110458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "720feb4.330fa14"
+            ]
+        ]
+    },
+    {
+        "id": "720feb4.330fa14",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.default-project is a required input\" />\n",
+        "comments": "",
+        "x": 2029.4763298034668,
+        "y": 628.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "899f4ff1.d737a",
+        "type": "switchNode",
+        "name": "switch cloud-region-id",
+        "xml": "<switch test='`$cto-api.cloud-region-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1579.1905822753906,
+        "y": 660.5396347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "b9d77553.37a388"
+            ]
+        ]
+    },
+    {
+        "id": "b9d77553.37a388",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1881.9049453735352,
+        "y": 659.1110458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "193d6209.24a30e"
+            ]
+        ]
+    },
+    {
+        "id": "193d6209.24a30e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.cloud-region-id is a required input\" />\n",
+        "comments": "",
+        "x": 2031.9049186706543,
+        "y": 659.1110553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "a64a5a47.b66618",
+        "type": "switchNode",
+        "name": "switch service-type",
+        "xml": "<switch test='`$cto-api.service-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1574.7025146484375,
+        "y": 759.3134765625,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "5aa01389.f7fc2c"
+            ]
+        ]
+    },
+    {
+        "id": "5aa01389.f7fc2c",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1867.0835161209106,
+        "y": 751.134877204895,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "39bef0d0.1c841"
+            ]
+        ]
+    },
+    {
+        "id": "39bef0d0.1c841",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.service-type is a required input\" />\n",
+        "comments": "",
+        "x": 2022.0834617614746,
+        "y": 749.4682312011719,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "4ed6551b.a80e7c",
+        "type": "switchNode",
+        "name": "switch cloud-owner",
+        "xml": "<switch test='`$cto-api.cloud-owner`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1581.5119934082031,
+        "y": 691.7896347045898,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "c8ff9b61.c02c08"
+            ]
+        ]
+    },
+    {
+        "id": "c8ff9b61.c02c08",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1884.2263565063477,
+        "y": 690.3610458374023,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "57534b49.25a3e4"
+            ]
+        ]
+    },
+    {
+        "id": "57534b49.25a3e4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.cloud-owner is a required input\" />\n",
+        "comments": "",
+        "x": 2034.2263298034668,
+        "y": 690.3610553741455,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "9ff30a23.e38e78",
+        "type": "switchNode",
+        "name": "switch tenant-id",
+        "xml": "<switch test='`$cto-api.tenant-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1566.428466796875,
+        "y": 724.8729248046875,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "579b2c5b.d15574"
+            ]
+        ]
+    },
+    {
+        "id": "579b2c5b.d15574",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1889.6666793823242,
+        "y": 722.1110782623291,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "2a985f25.af0b6"
+            ]
+        ]
+    },
+    {
+        "id": "2a985f25.af0b6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.tenant-id is a required input\" />\n",
+        "comments": "",
+        "x": 2039.6666526794434,
+        "y": 722.1110877990723,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "3e76bc65.39b5e4",
+        "type": "switchNode",
+        "name": "switch contrail-route-allotted-resource-id",
+        "xml": "<switch test='`$cto-api.contrail-route-allotted-resource-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1644.9999084472656,
+        "y": 793.777717590332,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "8b673d0c.be5ff"
+            ]
+        ]
+    },
+    {
+        "id": "8b673d0c.be5ff",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1887.7142715454102,
+        "y": 793.3491287231445,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "95125998.9a3548"
+            ]
+        ]
+    },
+    {
+        "id": "95125998.9a3548",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input\" />\n",
+        "comments": "",
+        "x": 2037.7142448425293,
+        "y": 793.3491382598877,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "e0cf1856.9a7238",
+        "type": "switchNode",
+        "name": "switch src-contrail-network-fqdn",
+        "xml": "<switch test='`$cto-api.src-contrail-network-fqdn`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1614.9999084472656,
+        "y": 825.777717590332,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "3ae4e9a1.78d416"
+            ]
+        ]
+    },
+    {
+        "id": "3ae4e9a1.78d416",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1885.7142715454102,
+        "y": 827.3491287231445,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "3ee4d143.7a76ce"
+            ]
+        ]
+    },
+    {
+        "id": "3ee4d143.7a76ce",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input\" />\n",
+        "comments": "",
+        "x": 2035.7142448425293,
+        "y": 827.3491382598877,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "99a9e6d1.d9e268",
+        "type": "switchNode",
+        "name": "switch collector-contrail-network-fqdn",
+        "xml": "<switch test='`$cto-api.collector-contrail-network-fqdn`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1628.5712585449219,
+        "y": 855.3491287231445,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "a148e792.360c28"
+            ]
+        ]
+    },
+    {
+        "id": "a148e792.360c28",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1889.2856216430664,
+        "y": 860.920539855957,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "2d904442.622fdc"
+            ]
+        ]
+    },
+    {
+        "id": "2d904442.622fdc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation:cto-api.collector-contrail-network-fqdn is a required input\" />\n",
+        "comments": "",
+        "x": 2039.2855949401855,
+        "y": 860.9205493927002,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "c0949b70.45f808",
+        "type": "switchNode",
+        "name": "switch rollback-flag",
+        "xml": "<switch test='`$cto-api.rollback-flag`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1576.9998321533203,
+        "y": 888.1110534667969,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "c90c40a7.83515"
+            ]
+        ]
+    },
+    {
+        "id": "c90c40a7.83515",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1883.7141952514648,
+        "y": 893.6824645996094,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "b1c00356.584ea"
+            ]
+        ]
+    },
+    {
+        "id": "b1c00356.584ea",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.rollback-flag is a required input\" />\n",
+        "comments": "",
+        "x": 2033.714168548584,
+        "y": 893.6824741363525,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "9cb30997.5f1958",
+        "type": "switchNode",
+        "name": "switch configuration-id",
+        "xml": "<switch test='`$cto-api.configuration-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1594.9044952392578,
+        "y": 926.7777996063232,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "48f0353.a6324cc"
+            ]
+        ]
+    },
+    {
+        "id": "48f0353.a6324cc",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1898.3331680297852,
+        "y": 926.6349124908447,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "829df7bb.e7d078"
+            ]
+        ]
+    },
+    {
+        "id": "829df7bb.e7d078",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.configuration-id is a required input\" />\n",
+        "comments": "",
+        "x": 2054.0474853515625,
+        "y": 926.6349029541016,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    },
+    {
+        "id": "d1859a98.35cd48",
+        "type": "switchNode",
+        "name": "switch owning-entity",
+        "xml": "<switch test='`$cto-api.owning-entity`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1597,
+        "y": 965,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "214c0b55.5d9c14"
+            ]
+        ]
+    },
+    {
+        "id": "214c0b55.5d9c14",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1900.4286727905273,
+        "y": 964.8571128845215,
+        "z": "7f8fbc25.a75d04",
+        "wires": [
+            [
+                "7b4b6c31.fa8b04"
+            ]
+        ]
+    },
+    {
+        "id": "7b4b6c31.fa8b04",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"API-contrail-route-topology-operation-create:cto-api.owning-entity is a required input\" />\n",
+        "comments": "",
+        "x": 2056.1429901123047,
+        "y": 964.8571033477783,
+        "z": "7f8fbc25.a75d04",
+        "wires": []
+    }
+]
\ No newline at end of file
index 5e78dbc..6465351 100755 (executable)
@@ -1 +1,1446 @@
-[{"id":"35266b9e.c1cf04","type":"dgstart","name":"DGSTART","outputs":1,"x":202.7777862548828,"y":205.27777099609375,"z":"b42bbd9e.9cab","wires":[["d8231d59.d0416"]]},{"id":"d8231d59.d0416","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":359.06349182128906,"y":279.51588439941406,"z":"b42bbd9e.9cab","wires":[["3b37cf29.2770b"]]},{"id":"3b37cf29.2770b","type":"method","name":"validate-contrail-route-input","xml":"<method rpc='validate-contrail-route-input' mode='sync'>\n","comments":"","outputs":1,"x":359.20641326904297,"y":341.27777099609375,"z":"b42bbd9e.9cab","wires":[["bb11dc2e.ba771"]]},{"id":"bb11dc2e.ba771","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":372.52783203125,"y":623.7212657928467,"z":"b42bbd9e.9cab","wires":[["aa4b4f9b.d66d5","a357d6d0.d1e828","d43473e3.39bf6","43b27b77.234ba4","dbabb342.08cce","c28b8276.ad796"]]},{"id":"aa4b4f9b.d66d5","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":707.5873565673828,"y":108.37305164337158,"z":"b42bbd9e.9cab","wires":[["3094a18d.2341ce"]]},{"id":"3094a18d.2341ce","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":937.3016417367116,"y":106.37304837363081,"z":"b42bbd9e.9cab","wires":[["3d7d8e8e.e7a2e2"]]},{"id":"3d7d8e8e.e7a2e2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":1088.7302077157156,"y":106.37304646628218,"z":"b42bbd9e.9cab","wires":[]},{"id":"a357d6d0.d1e828","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":700.1586990356445,"y":64.94446277618408,"z":"b42bbd9e.9cab","wires":[["aa49fe92.cd19a"]]},{"id":"aa49fe92.cd19a","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":935.8730621337891,"y":63.51587390899658,"z":"b42bbd9e.9cab","wires":[["8fc24fab.a40e7"]]},{"id":"8fc24fab.a40e7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":1085.8730354309082,"y":63.515883445739746,"z":"b42bbd9e.9cab","wires":[]},{"id":"d43473e3.39bf6","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":710.1587524414062,"y":157.23019981384277,"z":"b42bbd9e.9cab","wires":[["57e78919.ef0688","f69fee2.01a8c1","63c630c0.7b3d4","b809f5ff.bb3ad8"]]},{"id":"57e78919.ef0688","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":941.8730659484863,"y":256.08739280700684,"z":"b42bbd9e.9cab","wires":[["ca244a95.514758"]]},{"id":"ca244a95.514758","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":1113.3015060424805,"y":256.0873918533325,"z":"b42bbd9e.9cab","wires":[]},{"id":"89209f0f.b42ea","type":"comment","name":"validate-allotted-resource-input - CHANGELOG","info":"3/22: Initial release 2.0.0","comments":"","x":215.7777862548828,"y":109.27777099609375,"z":"b42bbd9e.9cab","wires":[]},{"id":"43b27b77.234ba4","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":604.1111145019531,"y":625.944411277771,"z":"b42bbd9e.9cab","wires":[["b241564a.80dee8","13332075.a90e5","5c11ee06.80d44","e1547517.5bdd98","4c19740c.db392c","897a0281.ce1ee"]]},{"id":"b241564a.80dee8","type":"other","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":873.4921493530273,"y":464.8492374420166,"z":"b42bbd9e.9cab","wires":[["167db0e.a9d9b4f"]]},{"id":"13332075.a90e5","type":"other","name":"activate","xml":"<outcome value='activate'>","comments":"","outputs":1,"x":893.7777557373047,"y":652.2778015136719,"z":"b42bbd9e.9cab","wires":[["fa98c4a3.48c008"]]},{"id":"5c11ee06.80d44","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>","comments":"","outputs":1,"x":900.7777557373047,"y":742.2778015136719,"z":"b42bbd9e.9cab","wires":[["e8ed620e.34218"]]},{"id":"167db0e.a9d9b4f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1030.7777862548828,"y":467.6111469268799,"z":"b42bbd9e.9cab","wires":[["9230ea14.806408"]]},{"id":"9230ea14.806408","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1237.4444198608398,"y":467.6111354827881,"z":"b42bbd9e.9cab","wires":[["61434823.60b248","2f5e13cc.428ddc"]]},{"id":"61434823.60b248","type":"other","name":"CreateContrailRouteInstance","xml":"<outcome value='CreateContrailRouteInstance'>","comments":"","outputs":1,"x":1585.3015899658203,"y":394.7540102005005,"z":"b42bbd9e.9cab","wires":[["10dadd6a.d1a0d3"]]},{"id":"2f5e13cc.428ddc","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1524.7777671813965,"y":461.6111640930176,"z":"b42bbd9e.9cab","wires":[["d7368e17.11a7b"]]},{"id":"d7368e17.11a7b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=assign\" />\n","comments":"","x":1672.1111106872559,"y":461.6111831665039,"z":"b42bbd9e.9cab","wires":[]},{"id":"fa98c4a3.48c008","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1067.7777557373047,"y":652.2778015136719,"z":"b42bbd9e.9cab","wires":[["39112fa6.850cd"]]},{"id":"39112fa6.850cd","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1284.7777557373047,"y":652.2778015136719,"z":"b42bbd9e.9cab","wires":[["a46c6029.9eecb","80369920.1e1528"]]},{"id":"a46c6029.9eecb","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1508.7777557373047,"y":693.2778015136719,"z":"b42bbd9e.9cab","wires":[["87417d62.3c22"]]},{"id":"87417d62.3c22","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=activate\" />\n","comments":"","x":1677.7777557373047,"y":693.2778015136719,"z":"b42bbd9e.9cab","wires":[]},{"id":"e8ed620e.34218","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1082.7777557373047,"y":741.2778015136719,"z":"b42bbd9e.9cab","wires":[["7f72c3c8.8a71dc"]]},{"id":"7f72c3c8.8a71dc","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1299.7777557373047,"y":741.2778015136719,"z":"b42bbd9e.9cab","wires":[["96b39e05.6b30d","baf7a6c3.22b2b8"]]},{"id":"96b39e05.6b30d","type":"other","name":"DeleteContrailRouteInstance","xml":"<outcome value='DeleteContrailRouteInstance'>","comments":"","outputs":1,"x":1582.4442901611328,"y":740.6111879348755,"z":"b42bbd9e.9cab","wires":[["89e918a.16dc8e8"]]},{"id":"baf7a6c3.22b2b8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1523.7777557373047,"y":782.2778015136719,"z":"b42bbd9e.9cab","wires":[["e25c9a86.2130e8"]]},{"id":"e25c9a86.2130e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=deactivate\" />\n","comments":"","x":1692.7777557373047,"y":782.2778015136719,"z":"b42bbd9e.9cab","wires":[]},{"id":"e1547517.5bdd98","type":"other","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":881.7776184082031,"y":909.6111288070679,"z":"b42bbd9e.9cab","wires":[["25d3342e.bf055c"]]},{"id":"25d3342e.bf055c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1063.7776489257812,"y":905.6111516952515,"z":"b42bbd9e.9cab","wires":[["4096d7e5.754058"]]},{"id":"4096d7e5.754058","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1280.7776489257812,"y":905.6111516952515,"z":"b42bbd9e.9cab","wires":[["7977bc3b.695434","4cf8061.e28dff8"]]},{"id":"7977bc3b.695434","type":"other","name":"DeleteContrailRouteInstance","xml":"<outcome value='DeleteContrailRouteInstance'>","comments":"","outputs":1,"x":1561.7775192260742,"y":906.6111688613892,"z":"b42bbd9e.9cab","wires":[["a46d071e.eae668"]]},{"id":"4cf8061.e28dff8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1504.7776489257812,"y":946.6111516952515,"z":"b42bbd9e.9cab","wires":[["ebab16c5.c33a78"]]},{"id":"ebab16c5.c33a78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=unassign\" />\n","comments":"","x":1673.7776489257812,"y":946.6111516952515,"z":"b42bbd9e.9cab","wires":[]},{"id":"10dadd6a.d1a0d3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1831.3015403747559,"y":393.7539978027344,"z":"b42bbd9e.9cab","wires":[["8353a7c2.7d6ba8","3697eb9e.353964","4b1f2e92.74dfd","d06491a2.0b602","344f0df1.0efab2","6b07cbd7.0e7d04","e5f84df2.f1e94","2032eb88.550194","aa2cdb28.13b088"]]},{"id":"d15b9d66.afba","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1790.7777557373047,"y":653.2778015136719,"z":"b42bbd9e.9cab","wires":[["d06491a2.0b602","6b07cbd7.0e7d04"]]},{"id":"89e918a.16dc8e8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1836.7777557373047,"y":743.2778015136719,"z":"b42bbd9e.9cab","wires":[["d06491a2.0b602","6b07cbd7.0e7d04"]]},{"id":"a46d071e.eae668","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1820.7776489257812,"y":907.6111516952515,"z":"b42bbd9e.9cab","wires":[["d06491a2.0b602"]]},{"id":"8353a7c2.7d6ba8","type":"switchNode","name":"switch source-network.network-id","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\n","comments":"","outputs":1,"x":2229.063278198242,"y":263.9920644760132,"z":"b42bbd9e.9cab","wires":[["aa3ce30.606892"]]},{"id":"aa3ce30.606892","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2455.063335418701,"y":262.1349468231201,"z":"b42bbd9e.9cab","wires":[["d5826697.16cc88"]]},{"id":"d5826697.16cc88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id is a required input\" />\n","comments":"","x":2622.9203872680664,"y":262.1349210739136,"z":"b42bbd9e.9cab","wires":[]},{"id":"4b1f2e92.74dfd","type":"switchNode","name":"switch onap-model-information.model-customization-uuid","xml":"<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":2301.6351318359375,"y":190.27785205841064,"z":"b42bbd9e.9cab","wires":[["d1cbbe07.cc9e3"]]},{"id":"d1cbbe07.cc9e3","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2595.635040283203,"y":191.27779293060303,"z":"b42bbd9e.9cab","wires":[["5ffa0f1.a317af"]]},{"id":"5ffa0f1.a317af","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":2743.063507080078,"y":191.27779293060303,"z":"b42bbd9e.9cab","wires":[]},{"id":"dbabb342.08cce","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":666.2777404785156,"y":1056.7777633666992,"z":"b42bbd9e.9cab","wires":[]},{"id":"93757aef.15f468","type":"comment","name":"validate service-information.onap-model-information.model0uuid is in service table","info":"","comments":"","x":2369.496368408203,"y":484.91669940948486,"z":"b42bbd9e.9cab","wires":[]},{"id":"3697eb9e.353964","type":"get-resource","name":"get-resource AR_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\n  pfx='ar-model'>\n\n","comments":"","outputs":1,"x":2202.413101196289,"y":527.6428871154785,"z":"b42bbd9e.9cab","wires":[["81c17c72.98f07","5ee9c459.84ea3c"]]},{"id":"fe930095.bdfb1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No allotted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":2659.4962844848633,"y":508.3094844818115,"z":"b42bbd9e.9cab","wires":[]},{"id":"81c17c72.98f07","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2460.746364593506,"y":503.6667003631592,"z":"b42bbd9e.9cab","wires":[["fe930095.bdfb1"]]},{"id":"5ee9c459.84ea3c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2454.496364593506,"y":536.1667003631592,"z":"b42bbd9e.9cab","wires":[["fe930095.bdfb1"]]},{"id":"f69fee2.01a8c1","type":"other","name":"CreateContrailRouteInstance","xml":"<outcome value='CreateContrailRouteInstance'>","comments":"","outputs":1,"x":1005.8254241943359,"y":142.8968276977539,"z":"b42bbd9e.9cab","wires":[["f0bb52f0.17e47"]]},{"id":"63c630c0.7b3d4","type":"other","name":"DeleteContrailRouteInstance","xml":"<outcome value='DeleteContrailRouteInstance'>","comments":"","outputs":1,"x":1006.1110687255859,"y":180.32544708251953,"z":"b42bbd9e.9cab","wires":[["f0bb52f0.17e47"]]},{"id":"b809f5ff.bb3ad8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":945.6825752258301,"y":296.468297958374,"z":"b42bbd9e.9cab","wires":[["30198bb7.e55ef4"]]},{"id":"30198bb7.e55ef4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid request-information.request-action \" />\n","comments":"","x":1117.1109809875488,"y":297.4683132171631,"z":"b42bbd9e.9cab","wires":[]},{"id":"c28b8276.ad796","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$contrail-route-topology-operation-input.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":707.2063446044922,"y":337.1349639892578,"z":"b42bbd9e.9cab","wires":[["9b3d73ec.0eef6"]]},{"id":"9b3d73ec.0eef6","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":923.6349334716797,"y":338.1349639892578,"z":"b42bbd9e.9cab","wires":[["64812692.977708"]]},{"id":"64812692.977708","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n","comments":"","x":1082.063461303711,"y":337.1349639892578,"z":"b42bbd9e.9cab","wires":[]},{"id":"4c19740c.db392c","type":"other","name":"create","xml":"<outcome value='create'>","comments":"","outputs":1,"x":880.5555000305176,"y":550.1851797103882,"z":"b42bbd9e.9cab","wires":[["81ff7e79.12005"]]},{"id":"81ff7e79.12005","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1041.1744995117188,"y":549.6137495040894,"z":"b42bbd9e.9cab","wires":[["87874560.8aa258"]]},{"id":"87874560.8aa258","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1261.1744995117188,"y":549.6137495040894,"z":"b42bbd9e.9cab","wires":[["90eb84df.b09858","c5d024ea.750c08"]]},{"id":"90eb84df.b09858","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1518.5079936981201,"y":553.6138019561768,"z":"b42bbd9e.9cab","wires":[["cddf826d.b9fc1"]]},{"id":"cddf826d.b9fc1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateNetworkInstance for svc-action=create\" />\n","comments":"","x":1684.1744995117188,"y":553.61376953125,"z":"b42bbd9e.9cab","wires":[]},{"id":"c5d024ea.750c08","type":"other","name":"CreateContrailRouteInstance","xml":"<outcome value='CreateContrailRouteInstance'>","comments":"","outputs":1,"x":1590.555419921875,"y":518.5184936523438,"z":"b42bbd9e.9cab","wires":[["b77bfd7b.7219"]]},{"id":"b77bfd7b.7219","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1826.555419921875,"y":517.5184936523438,"z":"b42bbd9e.9cab","wires":[["d06491a2.0b602","6b07cbd7.0e7d04"]]},{"id":"80369920.1e1528","type":"other","name":"CreateContrailRouteInstance","xml":"<outcome value='CreateContrailRouteInstance'>","comments":"","outputs":1,"x":1575.555419921875,"y":653.5184936523438,"z":"b42bbd9e.9cab","wires":[["d15b9d66.afba"]]},{"id":"897a0281.ce1ee","type":"other","name":"delete","xml":"<outcome value='delete'>","comments":"","outputs":1,"x":893.8888702392578,"y":826.8517656326294,"z":"b42bbd9e.9cab","wires":[["f3f463d2.77152"]]},{"id":"f3f463d2.77152","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1075.888900756836,"y":822.851788520813,"z":"b42bbd9e.9cab","wires":[["62f5a00e.aa5da"]]},{"id":"62f5a00e.aa5da","type":"switchNode","name":"switch request-action","xml":"<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1292.888900756836,"y":822.851788520813,"z":"b42bbd9e.9cab","wires":[["63c7e61e.93d818","1d99e0e.0795e1f"]]},{"id":"63c7e61e.93d818","type":"other","name":"DeleteContrailRouteInstance","xml":"<outcome value='DeleteContrailRouteInstance'>","comments":"","outputs":1,"x":1573.888771057129,"y":823.8518056869507,"z":"b42bbd9e.9cab","wires":[["59164fba.8b1df"]]},{"id":"1d99e0e.0795e1f","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1516.888900756836,"y":863.851788520813,"z":"b42bbd9e.9cab","wires":[["bad4ddd2.41bde"]]},{"id":"bad4ddd2.41bde","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=delete\" />\n","comments":"","x":1685.888900756836,"y":863.851788520813,"z":"b42bbd9e.9cab","wires":[]},{"id":"59164fba.8b1df","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1832.888900756836,"y":824.851788520813,"z":"b42bbd9e.9cab","wires":[["d06491a2.0b602","6b07cbd7.0e7d04"]]},{"id":"f0bb52f0.17e47","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1222.2221794128418,"y":174.22221088409424,"z":"b42bbd9e.9cab","wires":[[]]},{"id":"d06491a2.0b602","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n","comments":"","outputs":1,"x":2203.5715942382812,"y":37.81745147705078,"z":"b42bbd9e.9cab","wires":[["6091bbb5.92fcb4"]]},{"id":"6091bbb5.92fcb4","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2404.107276916504,"y":36.38887977600098,"z":"b42bbd9e.9cab","wires":[["ab33d03a.508ae"]]},{"id":"ab33d03a.508ae","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-id is a required input\" />\n","comments":"","x":2555.535743713379,"y":35.38887977600098,"z":"b42bbd9e.9cab","wires":[]},{"id":"344f0df1.0efab2","type":"switchNode","name":"switch allotted-resource-type","xml":"<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n","comments":"","outputs":1,"x":2210.0001373291016,"y":73.01586723327637,"z":"b42bbd9e.9cab","wires":[["a58be7c1.0caec8"]]},{"id":"a58be7c1.0caec8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2410.5356826782227,"y":71.5872974395752,"z":"b42bbd9e.9cab","wires":[["fcfba520.ba2978"]]},{"id":"fcfba520.ba2978","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-type is a required input\" />\n","comments":"","x":2561.9641494750977,"y":70.5872974395752,"z":"b42bbd9e.9cab","wires":[]},{"id":"6b07cbd7.0e7d04","type":"switchNode","name":"switch parent-service-instance-id","xml":"<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\n","comments":"","outputs":1,"x":2222.8573837280273,"y":108.73015213012695,"z":"b42bbd9e.9cab","wires":[["b1db037c.92b1"]]},{"id":"b1db037c.92b1","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2438.571533203125,"y":105.87300872802734,"z":"b42bbd9e.9cab","wires":[["9de46686.383798"]]},{"id":"9de46686.383798","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.parent-service-instance-id is a required input\" />\n","comments":"","x":2590,"y":104.87300872802734,"z":"b42bbd9e.9cab","wires":[]},{"id":"e5f84df2.f1e94","type":"switchNode","name":"switch source-network.network-role","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`'>\n","comments":"","outputs":1,"x":2232.5394897460938,"y":303.5872793197632,"z":"b42bbd9e.9cab","wires":[["b6f894c7.bdf1d8"]]},{"id":"b6f894c7.bdf1d8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2461.396903991699,"y":298.3015818595886,"z":"b42bbd9e.9cab","wires":[["d18a5c04.9d4c5"]]},{"id":"d18a5c04.9d4c5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role is a required input\" />\n","comments":"","x":2626.3970489501953,"y":298.3015422821045,"z":"b42bbd9e.9cab","wires":[]},{"id":"2032eb88.550194","type":"switchNode","name":"switch dest-network.network-role","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`'>\n","comments":"","outputs":1,"x":2226.4446754455566,"y":336.46821308135986,"z":"b42bbd9e.9cab","wires":[["96119098.5cd1d"]]},{"id":"96119098.5cd1d","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2461.4448280334473,"y":336.46821689605713,"z":"b42bbd9e.9cab","wires":[["c91e6a99.23dd98"]]},{"id":"c91e6a99.23dd98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-topology-operation-input.contrail-route-request-input.dest-network.network-role is a required input\" />\n","comments":"","x":2627.8732948303223,"y":336.468186378479,"z":"b42bbd9e.9cab","wires":[]},{"id":"aa2cdb28.13b088","type":"switchNode","name":"switch contrail-applied-service-information.service-instance-id","xml":"<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`'>\n","comments":"","outputs":1,"x":2311.111152648926,"y":401.58727073669434,"z":"b42bbd9e.9cab","wires":[["3cf17aee.5329a6"]]},{"id":"3cf17aee.5329a6","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2623.2542304992676,"y":401.3015937805176,"z":"b42bbd9e.9cab","wires":[["ed461440.88de78"]]},{"id":"ed461440.88de78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id is a required input\" />\n","comments":"","x":2778.254253387451,"y":401.5872268676758,"z":"b42bbd9e.9cab","wires":[]}]
+[
+    {
+        "id": "35266b9e.c1cf04",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 202.7777862548828,
+        "y": 205.27777099609375,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d8231d59.d0416"
+            ]
+        ]
+    },
+    {
+        "id": "d8231d59.d0416",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 359.06349182128906,
+        "y": 279.51588439941406,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "3b37cf29.2770b"
+            ]
+        ]
+    },
+    {
+        "id": "3b37cf29.2770b",
+        "type": "method",
+        "name": "validate-contrail-route-input",
+        "xml": "<method rpc='validate-contrail-route-input' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 359.20641326904297,
+        "y": 341.27777099609375,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "bb11dc2e.ba771"
+            ]
+        ]
+    },
+    {
+        "id": "bb11dc2e.ba771",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 372.52783203125,
+        "y": 623.7212657928467,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "aa4b4f9b.d66d5",
+                "a357d6d0.d1e828",
+                "d43473e3.39bf6",
+                "43b27b77.234ba4",
+                "dbabb342.08cce",
+                "c28b8276.ad796"
+            ]
+        ]
+    },
+    {
+        "id": "aa4b4f9b.d66d5",
+        "type": "switchNode",
+        "name": "switch svc-request-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 707.5873565673828,
+        "y": 108.37305164337158,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "3094a18d.2341ce"
+            ]
+        ]
+    },
+    {
+        "id": "3094a18d.2341ce",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 937.3016417367116,
+        "y": 106.37304837363081,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "3d7d8e8e.e7a2e2"
+            ]
+        ]
+    },
+    {
+        "id": "3d7d8e8e.e7a2e2",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
+        "comments": "",
+        "x": 1088.7302077157156,
+        "y": 106.37304646628218,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "a357d6d0.d1e828",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 700.1586990356445,
+        "y": 64.94446277618408,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "aa49fe92.cd19a"
+            ]
+        ]
+    },
+    {
+        "id": "aa49fe92.cd19a",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 935.8730621337891,
+        "y": 63.51587390899658,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "8fc24fab.a40e7"
+            ]
+        ]
+    },
+    {
+        "id": "8fc24fab.a40e7",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
+        "comments": "",
+        "x": 1085.8730354309082,
+        "y": 63.515883445739746,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "d43473e3.39bf6",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 710.1587524414062,
+        "y": 157.23019981384277,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "57e78919.ef0688",
+                "f69fee2.01a8c1",
+                "63c630c0.7b3d4",
+                "b809f5ff.bb3ad8"
+            ]
+        ]
+    },
+    {
+        "id": "57e78919.ef0688",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 941.8730659484863,
+        "y": 256.08739280700684,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "ca244a95.514758"
+            ]
+        ]
+    },
+    {
+        "id": "ca244a95.514758",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
+        "comments": "",
+        "x": 1113.3015060424805,
+        "y": 256.0873918533325,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "89209f0f.b42ea",
+        "type": "comment",
+        "name": "validate-alloted-resource-input - CHANGELOG",
+        "info": "3/22: Initial release 2.0.0",
+        "comments": "",
+        "x": 215.7777862548828,
+        "y": 109.27777099609375,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "43b27b77.234ba4",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 604.1111145019531,
+        "y": 625.944411277771,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "b241564a.80dee8",
+                "13332075.a90e5",
+                "5c11ee06.80d44",
+                "e1547517.5bdd98",
+                "4c19740c.db392c",
+                "897a0281.ce1ee"
+            ]
+        ]
+    },
+    {
+        "id": "b241564a.80dee8",
+        "type": "other",
+        "name": "assign",
+        "xml": "<outcome value='assign'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 873.4921493530273,
+        "y": 464.8492374420166,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "167db0e.a9d9b4f"
+            ]
+        ]
+    },
+    {
+        "id": "13332075.a90e5",
+        "type": "other",
+        "name": "activate",
+        "xml": "<outcome value='activate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 893.7777557373047,
+        "y": 652.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "fa98c4a3.48c008"
+            ]
+        ]
+    },
+    {
+        "id": "5c11ee06.80d44",
+        "type": "other",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 900.7777557373047,
+        "y": 742.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "e8ed620e.34218"
+            ]
+        ]
+    },
+    {
+        "id": "167db0e.a9d9b4f",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1030.7777862548828,
+        "y": 467.6111469268799,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "9230ea14.806408"
+            ]
+        ]
+    },
+    {
+        "id": "9230ea14.806408",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1237.4444198608398,
+        "y": 467.6111354827881,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "61434823.60b248",
+                "2f5e13cc.428ddc"
+            ]
+        ]
+    },
+    {
+        "id": "61434823.60b248",
+        "type": "other",
+        "name": "CreateContrailRouteInstance",
+        "xml": "<outcome value='CreateContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1585.3015899658203,
+        "y": 394.7540102005005,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "10dadd6a.d1a0d3"
+            ]
+        ]
+    },
+    {
+        "id": "2f5e13cc.428ddc",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1524.7777671813965,
+        "y": 461.6111640930176,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d7368e17.11a7b"
+            ]
+        ]
+    },
+    {
+        "id": "d7368e17.11a7b",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=assign\" />\n",
+        "comments": "",
+        "x": 1672.1111106872559,
+        "y": 461.6111831665039,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "fa98c4a3.48c008",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1067.7777557373047,
+        "y": 652.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "39112fa6.850cd"
+            ]
+        ]
+    },
+    {
+        "id": "39112fa6.850cd",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1284.7777557373047,
+        "y": 652.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "a46c6029.9eecb",
+                "80369920.1e1528"
+            ]
+        ]
+    },
+    {
+        "id": "a46c6029.9eecb",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1508.7777557373047,
+        "y": 693.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "87417d62.3c22"
+            ]
+        ]
+    },
+    {
+        "id": "87417d62.3c22",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=activate\" />\n",
+        "comments": "",
+        "x": 1677.7777557373047,
+        "y": 693.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "e8ed620e.34218",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1082.7777557373047,
+        "y": 741.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "7f72c3c8.8a71dc"
+            ]
+        ]
+    },
+    {
+        "id": "7f72c3c8.8a71dc",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1299.7777557373047,
+        "y": 741.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "96b39e05.6b30d",
+                "baf7a6c3.22b2b8"
+            ]
+        ]
+    },
+    {
+        "id": "96b39e05.6b30d",
+        "type": "other",
+        "name": "DeleteContrailRouteInstance",
+        "xml": "<outcome value='DeleteContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1582.4442901611328,
+        "y": 740.6111879348755,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "89e918a.16dc8e8"
+            ]
+        ]
+    },
+    {
+        "id": "baf7a6c3.22b2b8",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1523.7777557373047,
+        "y": 782.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "e25c9a86.2130e8"
+            ]
+        ]
+    },
+    {
+        "id": "e25c9a86.2130e8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=deactivate\" />\n",
+        "comments": "",
+        "x": 1692.7777557373047,
+        "y": 782.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "e1547517.5bdd98",
+        "type": "other",
+        "name": "unassign",
+        "xml": "<outcome value='unassign'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 881.7776184082031,
+        "y": 909.6111288070679,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "25d3342e.bf055c"
+            ]
+        ]
+    },
+    {
+        "id": "25d3342e.bf055c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1063.7776489257812,
+        "y": 905.6111516952515,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "4096d7e5.754058"
+            ]
+        ]
+    },
+    {
+        "id": "4096d7e5.754058",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1280.7776489257812,
+        "y": 905.6111516952515,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "7977bc3b.695434",
+                "4cf8061.e28dff8"
+            ]
+        ]
+    },
+    {
+        "id": "7977bc3b.695434",
+        "type": "other",
+        "name": "DeleteContrailRouteInstance",
+        "xml": "<outcome value='DeleteContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1561.7775192260742,
+        "y": 906.6111688613892,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "a46d071e.eae668"
+            ]
+        ]
+    },
+    {
+        "id": "4cf8061.e28dff8",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1504.7776489257812,
+        "y": 946.6111516952515,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "ebab16c5.c33a78"
+            ]
+        ]
+    },
+    {
+        "id": "ebab16c5.c33a78",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=unassign\" />\n",
+        "comments": "",
+        "x": 1673.7776489257812,
+        "y": 946.6111516952515,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "10dadd6a.d1a0d3",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1831.3015403747559,
+        "y": 393.7539978027344,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "8353a7c2.7d6ba8",
+                "3697eb9e.353964",
+                "4b1f2e92.74dfd",
+                "d06491a2.0b602",
+                "344f0df1.0efab2",
+                "6b07cbd7.0e7d04",
+                "e5f84df2.f1e94",
+                "2032eb88.550194",
+                "aa2cdb28.13b088"
+            ]
+        ]
+    },
+    {
+        "id": "d15b9d66.afba",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1790.7777557373047,
+        "y": 653.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d06491a2.0b602",
+                "6b07cbd7.0e7d04"
+            ]
+        ]
+    },
+    {
+        "id": "89e918a.16dc8e8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1836.7777557373047,
+        "y": 743.2778015136719,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d06491a2.0b602",
+                "6b07cbd7.0e7d04"
+            ]
+        ]
+    },
+    {
+        "id": "a46d071e.eae668",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1820.7776489257812,
+        "y": 907.6111516952515,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d06491a2.0b602"
+            ]
+        ]
+    },
+    {
+        "id": "8353a7c2.7d6ba8",
+        "type": "switchNode",
+        "name": "switch source-network.network-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2229.063278198242,
+        "y": 263.9920644760132,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "aa3ce30.606892"
+            ]
+        ]
+    },
+    {
+        "id": "aa3ce30.606892",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2455.063335418701,
+        "y": 262.1349468231201,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d5826697.16cc88"
+            ]
+        ]
+    },
+    {
+        "id": "d5826697.16cc88",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id is a required input\" />\n",
+        "comments": "",
+        "x": 2622.9203872680664,
+        "y": 262.1349210739136,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "4b1f2e92.74dfd",
+        "type": "switchNode",
+        "name": "switch onap-model-information.model-customization-uuid",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2301.6351318359375,
+        "y": 190.27785205841064,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d1cbbe07.cc9e3"
+            ]
+        ]
+    },
+    {
+        "id": "d1cbbe07.cc9e3",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2595.635040283203,
+        "y": 191.27779293060303,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "5ffa0f1.a317af"
+            ]
+        ]
+    },
+    {
+        "id": "5ffa0f1.a317af",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-information.onap-model-information.model-customization-uuid is a required input\" />\n",
+        "comments": "",
+        "x": 2743.063507080078,
+        "y": 191.27779293060303,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "dbabb342.08cce",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 666.2777404785156,
+        "y": 1056.7777633666992,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "93757aef.15f468",
+        "type": "comment",
+        "name": "validate service-information.onap-model-information.model0uuid is in service table",
+        "info": "",
+        "comments": "",
+        "x": 2369.496368408203,
+        "y": 484.91669940948486,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "3697eb9e.353964",
+        "type": "get-resource",
+        "name": "get-resource AR_MODEL",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\n  pfx='ar-model'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2202.413101196289,
+        "y": 527.6428871154785,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "81c17c72.98f07",
+                "5ee9c459.84ea3c"
+            ]
+        ]
+    },
+    {
+        "id": "fe930095.bdfb1",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No alloted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`\" />\n",
+        "comments": "",
+        "x": 2659.4962844848633,
+        "y": 508.3094844818115,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "81c17c72.98f07",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2460.746364593506,
+        "y": 503.6667003631592,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "fe930095.bdfb1"
+            ]
+        ]
+    },
+    {
+        "id": "5ee9c459.84ea3c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2454.496364593506,
+        "y": 536.1667003631592,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "fe930095.bdfb1"
+            ]
+        ]
+    },
+    {
+        "id": "f69fee2.01a8c1",
+        "type": "other",
+        "name": "CreateContrailRouteInstance",
+        "xml": "<outcome value='CreateContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1005.8254241943359,
+        "y": 142.8968276977539,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "f0bb52f0.17e47"
+            ]
+        ]
+    },
+    {
+        "id": "63c630c0.7b3d4",
+        "type": "other",
+        "name": "DeleteContrailRouteInstance",
+        "xml": "<outcome value='DeleteContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1006.1110687255859,
+        "y": 180.32544708251953,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "f0bb52f0.17e47"
+            ]
+        ]
+    },
+    {
+        "id": "b809f5ff.bb3ad8",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 945.6825752258301,
+        "y": 296.468297958374,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "30198bb7.e55ef4"
+            ]
+        ]
+    },
+    {
+        "id": "30198bb7.e55ef4",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid request-information.request-action \" />\n",
+        "comments": "",
+        "x": 1117.1109809875488,
+        "y": 297.4683132171631,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "c28b8276.ad796",
+        "type": "switchNode",
+        "name": "switch service-instance-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.service-information.service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 707.2063446044922,
+        "y": 337.1349639892578,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "9b3d73ec.0eef6"
+            ]
+        ]
+    },
+    {
+        "id": "9b3d73ec.0eef6",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 923.6349334716797,
+        "y": 338.1349639892578,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "64812692.977708"
+            ]
+        ]
+    },
+    {
+        "id": "64812692.977708",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 1082.063461303711,
+        "y": 337.1349639892578,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "4c19740c.db392c",
+        "type": "other",
+        "name": "create",
+        "xml": "<outcome value='create'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 880.5555000305176,
+        "y": 550.1851797103882,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "81ff7e79.12005"
+            ]
+        ]
+    },
+    {
+        "id": "81ff7e79.12005",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1041.1744995117188,
+        "y": 549.6137495040894,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "87874560.8aa258"
+            ]
+        ]
+    },
+    {
+        "id": "87874560.8aa258",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1261.1744995117188,
+        "y": 549.6137495040894,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "90eb84df.b09858",
+                "c5d024ea.750c08"
+            ]
+        ]
+    },
+    {
+        "id": "90eb84df.b09858",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1518.5079936981201,
+        "y": 553.6138019561768,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "cddf826d.b9fc1"
+            ]
+        ]
+    },
+    {
+        "id": "cddf826d.b9fc1",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateNetworkInstance for svc-action=create\" />\n",
+        "comments": "",
+        "x": 1684.1744995117188,
+        "y": 553.61376953125,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "c5d024ea.750c08",
+        "type": "other",
+        "name": "CreateContrailRouteInstance",
+        "xml": "<outcome value='CreateContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1590.555419921875,
+        "y": 518.5184936523438,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "b77bfd7b.7219"
+            ]
+        ]
+    },
+    {
+        "id": "b77bfd7b.7219",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1826.555419921875,
+        "y": 517.5184936523438,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d06491a2.0b602",
+                "6b07cbd7.0e7d04"
+            ]
+        ]
+    },
+    {
+        "id": "80369920.1e1528",
+        "type": "other",
+        "name": "CreateContrailRouteInstance",
+        "xml": "<outcome value='CreateContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1575.555419921875,
+        "y": 653.5184936523438,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d15b9d66.afba"
+            ]
+        ]
+    },
+    {
+        "id": "897a0281.ce1ee",
+        "type": "other",
+        "name": "delete",
+        "xml": "<outcome value='delete'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 893.8888702392578,
+        "y": 826.8517656326294,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "f3f463d2.77152"
+            ]
+        ]
+    },
+    {
+        "id": "f3f463d2.77152",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1075.888900756836,
+        "y": 822.851788520813,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "62f5a00e.aa5da"
+            ]
+        ]
+    },
+    {
+        "id": "62f5a00e.aa5da",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1292.888900756836,
+        "y": 822.851788520813,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "63c7e61e.93d818",
+                "1d99e0e.0795e1f"
+            ]
+        ]
+    },
+    {
+        "id": "63c7e61e.93d818",
+        "type": "other",
+        "name": "DeleteContrailRouteInstance",
+        "xml": "<outcome value='DeleteContrailRouteInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1573.888771057129,
+        "y": 823.8518056869507,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "59164fba.8b1df"
+            ]
+        ]
+    },
+    {
+        "id": "1d99e0e.0795e1f",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1516.888900756836,
+        "y": 863.851788520813,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "bad4ddd2.41bde"
+            ]
+        ]
+    },
+    {
+        "id": "bad4ddd2.41bde",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=delete\" />\n",
+        "comments": "",
+        "x": 1685.888900756836,
+        "y": 863.851788520813,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "59164fba.8b1df",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1832.888900756836,
+        "y": 824.851788520813,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d06491a2.0b602",
+                "6b07cbd7.0e7d04"
+            ]
+        ]
+    },
+    {
+        "id": "f0bb52f0.17e47",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1222.2221794128418,
+        "y": 174.22221088409424,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d06491a2.0b602",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2203.5715942382812,
+        "y": 37.81745147705078,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "6091bbb5.92fcb4"
+            ]
+        ]
+    },
+    {
+        "id": "6091bbb5.92fcb4",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2404.107276916504,
+        "y": 36.38887977600098,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "ab33d03a.508ae"
+            ]
+        ]
+    },
+    {
+        "id": "ab33d03a.508ae",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-id is a required input\" />\n",
+        "comments": "",
+        "x": 2555.535743713379,
+        "y": 35.38887977600098,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "344f0df1.0efab2",
+        "type": "switchNode",
+        "name": "switch allotted-resource-type",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2210.0001373291016,
+        "y": 73.01586723327637,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "a58be7c1.0caec8"
+            ]
+        ]
+    },
+    {
+        "id": "a58be7c1.0caec8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2410.5356826782227,
+        "y": 71.5872974395752,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "fcfba520.ba2978"
+            ]
+        ]
+    },
+    {
+        "id": "fcfba520.ba2978",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-type is a required input\" />\n",
+        "comments": "",
+        "x": 2561.9641494750977,
+        "y": 70.5872974395752,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "6b07cbd7.0e7d04",
+        "type": "switchNode",
+        "name": "switch parent-service-instance-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2222.8573837280273,
+        "y": 108.73015213012695,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "b1db037c.92b1"
+            ]
+        ]
+    },
+    {
+        "id": "b1db037c.92b1",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2438.571533203125,
+        "y": 105.87300872802734,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "9de46686.383798"
+            ]
+        ]
+    },
+    {
+        "id": "9de46686.383798",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.parent-service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 2590,
+        "y": 104.87300872802734,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "e5f84df2.f1e94",
+        "type": "switchNode",
+        "name": "switch source-network.network-role",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2232.5394897460938,
+        "y": 303.5872793197632,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "b6f894c7.bdf1d8"
+            ]
+        ]
+    },
+    {
+        "id": "b6f894c7.bdf1d8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2461.396903991699,
+        "y": 298.3015818595886,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "d18a5c04.9d4c5"
+            ]
+        ]
+    },
+    {
+        "id": "d18a5c04.9d4c5",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2626.3970489501953,
+        "y": 298.3015422821045,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "2032eb88.550194",
+        "type": "switchNode",
+        "name": "switch dest-network.network-role",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2226.4446754455566,
+        "y": 336.46821308135986,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "96119098.5cd1d"
+            ]
+        ]
+    },
+    {
+        "id": "96119098.5cd1d",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2461.4448280334473,
+        "y": 336.46821689605713,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "c91e6a99.23dd98"
+            ]
+        ]
+    },
+    {
+        "id": "c91e6a99.23dd98",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-topology-operation-input.contrail-route-request-input.dest-network.network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2627.8732948303223,
+        "y": 336.468186378479,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    },
+    {
+        "id": "aa2cdb28.13b088",
+        "type": "switchNode",
+        "name": "switch contrail-applied-service-information.service-instance-id",
+        "xml": "<switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2311.111152648926,
+        "y": 401.58727073669434,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "3cf17aee.5329a6"
+            ]
+        ]
+    },
+    {
+        "id": "3cf17aee.5329a6",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2623.2542304992676,
+        "y": 401.3015937805176,
+        "z": "b42bbd9e.9cab",
+        "wires": [
+            [
+                "ed461440.88de78"
+            ]
+        ]
+    },
+    {
+        "id": "ed461440.88de78",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 2778.254253387451,
+        "y": 401.5872268676758,
+        "z": "b42bbd9e.9cab",
+        "wires": []
+    }
+]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-generic-configuration-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-generic-configuration-input.json
new file mode 100755 (executable)
index 0000000..d0cf132
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"fec175c0.305418","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":221.66665649414062,"y":436.6666555404663,"z":"dff79744.2b1858","wires":[["a7cfa614.1fcea8","c293d248.0b3bd","6f4942b8.b10bfc","9488fd97.7d961","620f9309.92b41c"]]},{"id":"a7cfa614.1fcea8","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":453.95241001674094,"y":432.36606843130926,"z":"dff79744.2b1858","wires":[["bbb37bdd.fc1198"]]},{"id":"bbb37bdd.fc1198","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":679.6667044503347,"y":432.3660722460065,"z":"dff79744.2b1858","wires":[["60444e77.ba17e"]]},{"id":"60444e77.ba17e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":831.0952704293386,"y":432.3660703386579,"z":"dff79744.2b1858","wires":[]},{"id":"c293d248.0b3bd","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":442.5237731933594,"y":390.9375,"z":"dff79744.2b1858","wires":[["555a951e.ea86ac"]]},{"id":"555a951e.ea86ac","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":678.2381248474121,"y":389.50889778137207,"z":"dff79744.2b1858","wires":[["6839d50d.6e626c"]]},{"id":"6839d50d.6e626c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":828.2380981445312,"y":389.50890731811523,"z":"dff79744.2b1858","wires":[]},{"id":"6f4942b8.b10bfc","type":"switchNode","name":"switch request-action","xml":"<switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":452.5238265991211,"y":475.2232151031494,"z":"dff79744.2b1858","wires":[["1e714623.bc70ba"]]},{"id":"1e714623.bc70ba","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":679.6667000906809,"y":475.2232260022845,"z":"dff79744.2b1858","wires":[["4b63c339.21d57c"]]},{"id":"4b63c339.21d57c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":831.0952660696848,"y":475.22322409493586,"z":"dff79744.2b1858","wires":[]},{"id":"e8fd7432.d81498","type":"comment","name":"Validation of required fields","info":"","comments":"","x":602.5237830025808,"y":346.65178258078436,"z":"dff79744.2b1858","wires":[]},{"id":"9488fd97.7d961","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":437.9999542236328,"y":615.5804071426392,"z":"dff79744.2b1858","wires":[["6305c878.8817e8","5e809fd6.bb388","ab8dd6a5.082308","5f3f90fc.fed14","afe84e17.b5cf4"]]},{"id":"6305c878.8817e8","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":636.4522841317312,"y":520.1042266573224,"z":"dff79744.2b1858","wires":[["e81af348.ca45e"]]},{"id":"3c589a14.0b6f06","type":"dgstart","name":"DGSTART","outputs":1,"x":112.08333042689719,"y":85.38984448569158,"z":"dff79744.2b1858","wires":[["4bfbd45e.cf8fdc"]]},{"id":"4bfbd45e.cf8fdc","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":228.797607421875,"y":125.62795598166326,"z":"dff79744.2b1858","wires":[["7606cd3f.319944"]]},{"id":"7606cd3f.319944","type":"method","name":"method validate-generic-configuration-input","xml":"<method rpc='validate-generic-configuration-input' mode='sync'>\n","comments":"","outputs":1,"x":218.76195744105735,"y":166.63984067099432,"z":"dff79744.2b1858","wires":[["fec175c0.305418"]]},{"id":"a3d0a710.15ace8","type":"comment","name":"validate-generic-configuration-input","info":"","comments":"","x":506.4281866891042,"y":32.97618825095037,"z":"dff79744.2b1858","wires":[]},{"id":"5e809fd6.bb388","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":637.7022192818777,"y":565.3571658815656,"z":"dff79744.2b1858","wires":[["e81af348.ca45e"]]},{"id":"e81af348.ca45e","type":"switchNode","name":"switch request-action","xml":"<switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":829.9999640328542,"y":539.9999843324933,"z":"dff79744.2b1858","wires":[["51e1d90d.a9ebf8","f4020138.4a278"]]},{"id":"51e1d90d.a9ebf8","type":"outcome","name":"CreateGenericConfigurationInstance","xml":"<outcome value='CreateGenericConfigurationInstance'>\n","comments":"","outputs":1,"x":1099.9999640328542,"y":511.6666303362165,"z":"dff79744.2b1858","wires":[["83c1beff.b4a4c"]]},{"id":"f4020138.4a278","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1008.333357129778,"y":561.6666751589094,"z":"dff79744.2b1858","wires":[["cc93d973.20cf78"]]},{"id":"cc93d973.20cf78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be CreateGenericConfigurationInstance'`\" />\n","comments":"","x":1156.6665976388113,"y":561.6666732515607,"z":"dff79744.2b1858","wires":[]},{"id":"ab8dd6a5.082308","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":644.9999678475515,"y":613.3333221163068,"z":"dff79744.2b1858","wires":[["915529cf.298168"]]},{"id":"5f3f90fc.fed14","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":641.2498877389089,"y":658.5862327303205,"z":"dff79744.2b1858","wires":[["915529cf.298168"]]},{"id":"915529cf.298168","type":"switchNode","name":"switch request-action","xml":"<switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":828.5476439339773,"y":633.2290549959455,"z":"dff79744.2b1858","wires":[["14e74c4c.287fa4","2eb64ceb.c6c984"]]},{"id":"14e74c4c.287fa4","type":"outcome","name":"DeleteGenericConfigurationInstance","xml":"<outcome value='DeleteGenericConfigurationInstance'>\n","comments":"","outputs":1,"x":1098.5476439339773,"y":604.8957009996686,"z":"dff79744.2b1858","wires":[["4e8836e6.688e68"]]},{"id":"2eb64ceb.c6c984","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1006.8810370309011,"y":654.8957458223615,"z":"dff79744.2b1858","wires":[["67f8def.fd30a2"]]},{"id":"67f8def.fd30a2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be DeleteGenericConfigurationInstance'`\" />\n","comments":"","x":1155.2142775399343,"y":654.8957439150129,"z":"dff79744.2b1858","wires":[]},{"id":"620f9309.92b41c","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$service-data.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":470,"y":299.9999809265137,"z":"dff79744.2b1858","wires":[["75300639.e476a8"]]},{"id":"75300639.e476a8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":706.6665992736816,"y":300,"z":"dff79744.2b1858","wires":[["43ca05df.ffe46c"]]},{"id":"43ca05df.ffe46c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Service instance ' + $generic-configuration-topology-operation-input.service-information.service-instance-id + ' does not exist'`\" />\n","comments":"","x":861.6666278839111,"y":299.9999895095825,"z":"dff79744.2b1858","wires":[]},{"id":"83c1beff.b4a4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1324.9999313354492,"y":511.00000953674316,"z":"dff79744.2b1858","wires":[[]]},{"id":"4e8836e6.688e68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1325,"y":603.3333129882812,"z":"dff79744.2b1858","wires":[[]]},{"id":"afe84e17.b5cf4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":633.3333587646484,"y":706.6666946411133,"z":"dff79744.2b1858","wires":[["9f9701d8.2a016"]]},{"id":"9f9701d8.2a016","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unsupported svc-action ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action`\" />\n","comments":"","x":799.9999389648438,"y":706.3333129882812,"z":"dff79744.2b1858","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-getpathsegment-input.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_validate-getpathsegment-input.json
new file mode 100755 (executable)
index 0000000..9f38497
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"519c6651.dc25f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":210.3333282470703,"y":394.16664123535156,"z":"445c7615.217c08","wires":[["c9ea088a.766468","5de5a9ac.bc13f8","b89e5c70.3b609","fdf5f8de.a06588","3ea96f4a.65397","b3c981ce.3a659"]]},{"id":"c9ea088a.766468","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":477.3809683663503,"y":325.1041564941406,"z":"445c7615.217c08","wires":[["820616a1.97ae78"]]},{"id":"820616a1.97ae78","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":703.0952627999441,"y":325.1041603088379,"z":"445c7615.217c08","wires":[["b8b83bc4.ef8928"]]},{"id":"b8b83bc4.ef8928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":854.523828778948,"y":325.10415840148926,"z":"445c7615.217c08","wires":[]},{"id":"5de5a9ac.bc13f8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":465.95233154296875,"y":283.67558806283137,"z":"445c7615.217c08","wires":[["1bfe631a.cec59d"]]},{"id":"1bfe631a.cec59d","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":701.6666984558105,"y":282.2469825744629,"z":"445c7615.217c08","wires":[["1aece3c9.ee739c"]]},{"id":"1aece3c9.ee739c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":851.6666564941406,"y":282.2469953809466,"z":"445c7615.217c08","wires":[]},{"id":"b89e5c70.3b609","type":"switchNode","name":"switch request-action","xml":"<switch test='`$getpathsegment-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":475.95238494873047,"y":367.9613031659808,"z":"445c7615.217c08","wires":[["c6aa59cc.6d4578"]]},{"id":"c6aa59cc.6d4578","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":703.0952584402903,"y":367.96131406511586,"z":"445c7615.217c08","wires":[["6bacc83c.e6ba38"]]},{"id":"6bacc83c.e6ba38","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":854.5238244192942,"y":367.9613121577672,"z":"445c7615.217c08","wires":[]},{"id":"85848dbd.9d43e","type":"switchNode","name":"switch request-action","xml":"<switch test='`$getpathsegment-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":984.7024590628489,"y":535.5804891586304,"z":"445c7615.217c08","wires":[["858f7f5b.d8aad","86daecdb.806a9"]]},{"id":"858f7f5b.d8aad","type":"outcome","name":"CreateForwardingPathInstance","xml":"<outcome value='CreateForwardingPathInstance'>","comments":"","outputs":1,"x":1237.0832268851145,"y":508.91382122039795,"z":"445c7615.217c08","wires":[["38fea5ea.c1031a"]]},{"id":"971bf8a9.2ff568","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.subscription-service-type is a required input\" />\n","comments":"","x":1455.178579057966,"y":555.5804796218872,"z":"445c7615.217c08","wires":[]},{"id":"f654ccb9.fbc3b","type":"comment","name":"Validation of required fields","info":"","comments":"","x":625.9523413521902,"y":239.38987064361572,"z":"445c7615.217c08","wires":[]},{"id":"fdf5f8de.a06588","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":461.42850494384766,"y":618.0804595947266,"z":"445c7615.217c08","wires":[["f8d12423.dbcd88"]]},{"id":"f8d12423.dbcd88","type":"outcome","name":"create","xml":"<outcome value='create'>\n","comments":"","outputs":1,"x":623.9285049438477,"y":618.0804595947266,"z":"445c7615.217c08","wires":[["6e7c0722.c4bf78"]]},{"id":"6e7c0722.c4bf78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":778.9285049438477,"y":618.0804595947266,"z":"445c7615.217c08","wires":[["85848dbd.9d43e","ef78ef58.2dfb3","34219d7c.5476f2"]]},{"id":"d5cb92bd.2e9af","type":"dgstart","name":"DGSTART","outputs":1,"x":134.08333805629172,"y":89.08032321929932,"z":"445c7615.217c08","wires":[["7fd575ce.08d05c"]]},{"id":"7fd575ce.08d05c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":250.79761505126953,"y":129.318434715271,"z":"445c7615.217c08","wires":[["ce915bb5.4336b8"]]},{"id":"ce915bb5.4336b8","type":"method","name":"method validate-getpathsegment-input","xml":"<method rpc='validate-getpathsegment-input' mode='sync'>\n","comments":"","outputs":1,"x":225.76196507045188,"y":170.33031940460205,"z":"445c7615.217c08","wires":[["519c6651.dc25f8"]]},{"id":"e7ec8b0f.f24b18","type":"comment","name":"validate-getpathsegment-input","info":"","comments":"","x":528.4281943184988,"y":36.666666984558105,"z":"445c7615.217c08","wires":[]},{"id":"38fea5ea.c1031a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1439.7617890494212,"y":508.8095827102661,"z":"445c7615.217c08","wires":[[]]},{"id":"86daecdb.806a9","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1159.7617776053294,"y":557.1429281234741,"z":"445c7615.217c08","wires":[["971bf8a9.2ff568"]]},{"id":"ef78ef58.2dfb3","type":"get-resource","name":"get-resource SERVICE_MODEL (model-uuid)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='db.service-model'>\n\n","comments":"","outputs":1,"x":1058.0952529907227,"y":622.3810043334961,"z":"445c7615.217c08","wires":[["71e84e0c.9c656","db9cd478.d8df68"]]},{"id":"56d1963e.b615d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for service UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":1536.6663856506348,"y":641.523754119873,"z":"445c7615.217c08","wires":[]},{"id":"71e84e0c.9c656","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1363.1664199829102,"y":598.0475692749023,"z":"445c7615.217c08","wires":[["c55a1162.ea6a"]]},{"id":"db9cd478.d8df68","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1371.737850189209,"y":641.3332824707031,"z":"445c7615.217c08","wires":[["56d1963e.b615d8"]]},{"id":"c55a1162.ea6a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error reading SERVICE_MODEL table\" />\n","comments":"","x":1536.0235862731934,"y":596.6190128326416,"z":"445c7615.217c08","wires":[]},{"id":"3ea96f4a.65397","type":"switchNode","name":"switch model-uuid","xml":"<switch test='`$getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":466.33331298828125,"y":411.33331298828125,"z":"445c7615.217c08","wires":[["f2ad3f15.9d9a6"]]},{"id":"f2ad3f15.9d9a6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":704.4761864798411,"y":411.3333238874163,"z":"445c7615.217c08","wires":[["2e279b38.a73e94"]]},{"id":"2e279b38.a73e94","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-uuid is a required input\" />\n","comments":"","x":855.904752458845,"y":411.3333219800677,"z":"445c7615.217c08","wires":[]},{"id":"b3c981ce.3a659","type":"switchNode","name":"switch model-invariant-uuid","xml":"<switch test='`$getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":495.71429443359375,"y":455.71429443359375,"z":"445c7615.217c08","wires":[["86855ac.4bf16a8"]]},{"id":"86855ac.4bf16a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":703.8571679251536,"y":455.7143053327288,"z":"445c7615.217c08","wires":[["ffff729b.8feb2"]]},{"id":"ffff729b.8feb2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-invariant-uuid is a required input\" />\n","comments":"","x":855.2857339041575,"y":455.7143034253802,"z":"445c7615.217c08","wires":[]},{"id":"34219d7c.5476f2","type":"get-resource","name":"get-resource SERVICE_MODEL (model-invariant-uuid)","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE invariant_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid'\n  pfx='db.service-model'>\n\n","comments":"","outputs":1,"x":1085.7142715454102,"y":708.5714416503906,"z":"445c7615.217c08","wires":[["938b0319.7f588","cee57e87.94948"]]},{"id":"837d9261.326c1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for invariant UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`\" />\n","comments":"","x":1537.14253616333,"y":730.5713291168213,"z":"445c7615.217c08","wires":[]},{"id":"938b0319.7f588","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1363.6425704956055,"y":687.0951442718506,"z":"445c7615.217c08","wires":[["c1f6b92e.8b3b28"]]},{"id":"cee57e87.94948","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1372.2140007019043,"y":730.3808574676514,"z":"445c7615.217c08","wires":[["837d9261.326c1"]]},{"id":"c1f6b92e.8b3b28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error reading SERVICE_MODEL table\" />\n","comments":"","x":1536.4997367858887,"y":685.6665878295898,"z":"445c7615.217c08","wires":[]}]
\ No newline at end of file
index 11ad704..7d32080 100644 (file)
@@ -1,1857 +1 @@
-[
-  {
-    "id": "d10892d8.d1d04",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 119.00390625,
-    "y": 89.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "cc6fb669.27adb8"
-      ]
-    ]
-  },
-  {
-    "id": "cc6fb669.27adb8",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-    "outputs": 1,
-    "x": 191.28961181640625,
-    "y": 142.23811221122742,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5c46313a.cc52b"
-      ]
-    ]
-  },
-  {
-    "id": "5c46313a.cc52b",
-    "type": "method",
-    "name": "validate-network-input",
-    "xml": "<method rpc='validate-network-input' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 191.43253326416016,
-    "y": 203.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "589f6d93.3cb684"
-      ]
-    ]
-  },
-  {
-    "id": "589f6d93.3cb684",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 204.7539520263672,
-    "y": 486.44349360466003,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "63545e47.56cdf",
-        "3b9c61c8.ee403e",
-        "38cd8ee0.dfeaa2",
-        "e55ef36.fecc71",
-        "ab9b3245.3b163",
-        "cf4a32b5.6699"
-      ]
-    ]
-  },
-  {
-    "id": "63545e47.56cdf",
-    "type": "switchNode",
-    "name": "switch svc-request-id",
-    "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 521.1467666625977,
-    "y": 212.42858958244324,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "e01f3b58.5084b8"
-      ]
-    ]
-  },
-  {
-    "id": "e01f3b58.5084b8",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 746.8610709054128,
-    "y": 212.42859203474836,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "fe964aff.bb00b8"
-      ]
-    ]
-  },
-  {
-    "id": "fe964aff.bb00b8",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
-    "comments": "",
-    "x": 898.2896368844167,
-    "y": 212.42859012739973,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "3b9c61c8.ee403e",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 509.7181396484375,
-    "y": 171.00001978874207,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "438a3c10.6a7244"
-      ]
-    ]
-  },
-  {
-    "id": "438a3c10.6a7244",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 745.4324913024902,
-    "y": 169.57141757011414,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "eafc9a3d.67efc8"
-      ]
-    ]
-  },
-  {
-    "id": "eafc9a3d.67efc8",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
-    "comments": "",
-    "x": 895.4324645996094,
-    "y": 169.5714271068573,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "38cd8ee0.dfeaa2",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 519.7181777954102,
-    "y": 255.2857367992401,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "4c7ee001.df1f4"
-      ]
-    ]
-  },
-  {
-    "id": "4c7ee001.df1f4",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 746.8610665457591,
-    "y": 255.28574579102678,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c0c0e1df.937f8"
-      ]
-    ]
-  },
-  {
-    "id": "c0c0e1df.937f8",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
-    "comments": "",
-    "x": 898.289632524763,
-    "y": 255.28574388367815,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "e55ef36.fecc71",
-    "type": "switchNode",
-    "name": "switch service-instance-id",
-    "xml": "<switch test='`$network-topology-operation-input.service-information.service-instance-id`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 520.8610992431641,
-    "y": 312.00001406669617,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "41b98218.67710c"
-      ]
-    ]
-  },
-  {
-    "id": "41b98218.67710c",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 745.2896728515625,
-    "y": 298.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "4a5f94d4.e9a16c"
-      ]
-    ]
-  },
-  {
-    "id": "4a5f94d4.e9a16c",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
-    "comments": "",
-    "x": 903.7182006835938,
-    "y": 297.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "577e7fa3.209ba",
-    "type": "comment",
-    "name": "validate-network-input - CHANGELOG",
-    "info": "12/8: Initial release 1.0.0",
-    "comments": "",
-    "x": 404.00390625,
-    "y": 53.999998807907104,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "ab9b3245.3b163",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 478.00392150878906,
-    "y": 486.0000159740448,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c25cbef0.24b67",
-        "ffa0841e.8dfeb8",
-        "ec8a549d.c2d768",
-        "79b3c9cf.7c9a88"
-      ]
-    ]
-  },
-  {
-    "id": "c25cbef0.24b67",
-    "type": "other",
-    "name": "assign",
-    "xml": "<outcome value='assign'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 738.71826171875,
-    "y": 390.5714099407196,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "4f0ebdbc.56efe4"
-      ]
-    ]
-  },
-  {
-    "id": "ffa0841e.8dfeb8",
-    "type": "other",
-    "name": "activate",
-    "xml": "<outcome value='activate'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 734.0040130615234,
-    "y": 520.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5ebeaa8b.6f2ad4"
-      ]
-    ]
-  },
-  {
-    "id": "ec8a549d.c2d768",
-    "type": "other",
-    "name": "deactivate",
-    "xml": "<outcome value='deactivate'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 737.0039749145508,
-    "y": 687.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "bb3fcaae.e4ad38"
-      ]
-    ]
-  },
-  {
-    "id": "4f0ebdbc.56efe4",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 901.00390625,
-    "y": 389.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "74260e08.eb326"
-      ]
-    ]
-  },
-  {
-    "id": "74260e08.eb326",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1121.00390625,
-    "y": 389.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "8fe022cd.91c96",
-        "dea0b675.d14408"
-      ]
-    ]
-  },
-  {
-    "id": "8fe022cd.91c96",
-    "type": "other",
-    "name": "CreateNetworkInstance",
-    "xml": "<outcome value='CreateNetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1401.00390625,
-    "y": 354.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c969e857.f1a468"
-      ]
-    ]
-  },
-  {
-    "id": "dea0b675.d14408",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1350.00390625,
-    "y": 398.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "75ab9633.6c0538"
-      ]
-    ]
-  },
-  {
-    "id": "75ab9633.6c0538",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be CreateNetworkInstance for svc-action=assign\" />\n",
-    "comments": "",
-    "x": 1519.00390625,
-    "y": 398.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "5ebeaa8b.6f2ad4",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 908.0040130615234,
-    "y": 520.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "eeee19ec.1dddd8"
-      ]
-    ]
-  },
-  {
-    "id": "eeee19ec.1dddd8",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1125.0040130615234,
-    "y": 520.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "19ab9af4.959125",
-        "267e33ff.fa91ec",
-        "3c8e6628.d91a7a",
-        "631913c6.522e9c"
-      ]
-    ]
-  },
-  {
-    "id": "19ab9af4.959125",
-    "type": "other",
-    "name": "CreateNetworkInstance",
-    "xml": "<outcome value='CreateNetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1406.0040130615234,
-    "y": 521.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5bbb66dc.aa9cd8"
-      ]
-    ]
-  },
-  {
-    "id": "267e33ff.fa91ec",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1349.0040130615234,
-    "y": 561.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "bc137916.f46628"
-      ]
-    ]
-  },
-  {
-    "id": "bc137916.f46628",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be CreateNetworkInstance for svc-action=activate\" />\n",
-    "comments": "",
-    "x": 1520.8613090515137,
-    "y": 563.4285953044891,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "bb3fcaae.e4ad38",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 919.0039749145508,
-    "y": 686.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "55160352.39b04c"
-      ]
-    ]
-  },
-  {
-    "id": "55160352.39b04c",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1136.0039749145508,
-    "y": 686.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5cc0d485.64c92c",
-        "7d1ae710.c4ae68",
-        "6fed75a2.decf0c",
-        "1da958a1.745b77"
-      ]
-    ]
-  },
-  {
-    "id": "5cc0d485.64c92c",
-    "type": "other",
-    "name": "DeleteNetworkInstance",
-    "xml": "<outcome value='DeleteNetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1417.0039749145508,
-    "y": 687.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "109f2b9.d4078d4"
-      ]
-    ]
-  },
-  {
-    "id": "7d1ae710.c4ae68",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1360.0039749145508,
-    "y": 727.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "20482a05.f565a6"
-      ]
-    ]
-  },
-  {
-    "id": "20482a05.f565a6",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=deactivate\" />\n",
-    "comments": "",
-    "x": 1529.0040397644043,
-    "y": 729.8571736812592,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "79b3c9cf.7c9a88",
-    "type": "other",
-    "name": "unassign",
-    "xml": "<outcome value='unassign'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 733.0039443969727,
-    "y": 780.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "45974a1d.441444"
-      ]
-    ]
-  },
-  {
-    "id": "45974a1d.441444",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 915.0039749145508,
-    "y": 777.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "e8367231.5b793"
-      ]
-    ]
-  },
-  {
-    "id": "e8367231.5b793",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$network-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1132.0039749145508,
-    "y": 777.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "2783d45.3ac4c2c",
-        "dc9b366d.05d508"
-      ]
-    ]
-  },
-  {
-    "id": "2783d45.3ac4c2c",
-    "type": "other",
-    "name": "DeleteNetworkInstance",
-    "xml": "<outcome value='DeleteNetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1413.0039749145508,
-    "y": 778.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5f15529a.e2031c"
-      ]
-    ]
-  },
-  {
-    "id": "dc9b366d.05d508",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1356.0039749145508,
-    "y": 818.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d903000c.e9d17"
-      ]
-    ]
-  },
-  {
-    "id": "d903000c.e9d17",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=unassign\" />\n",
-    "comments": "",
-    "x": 1525.0039749145508,
-    "y": 818.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "c969e857.f1a468",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1637.00390625,
-    "y": 353.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c9238c13.c3f79",
-        "a449f5ae.312af8",
-        "fd80c464.68ff68",
-        "416cb672.740808",
-        "c16bbddb.dcdad",
-        "f8366874.128af8",
-        "d7a16e1b.af209"
-      ]
-    ]
-  },
-  {
-    "id": "5bbb66dc.aa9cd8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1631.0040130615234,
-    "y": 521.9999892711639,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c9238c13.c3f79",
-        "a449f5ae.312af8",
-        "fd80c464.68ff68",
-        "416cb672.740808",
-        "c16bbddb.dcdad",
-        "f8366874.128af8",
-        "56dfe279.93c1fc"
-      ]
-    ]
-  },
-  {
-    "id": "109f2b9.d4078d4",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1673.0039749145508,
-    "y": 688.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "56dfe279.93c1fc"
-      ]
-    ]
-  },
-  {
-    "id": "5f15529a.e2031c",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1672.0039749145508,
-    "y": 779.0000121593475,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "56dfe279.93c1fc"
-      ]
-    ]
-  },
-  {
-    "id": "c16bbddb.dcdad",
-    "type": "switchNode",
-    "name": "switch onap-model-information.model-uuid",
-    "xml": "<switch test='`$network-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2273.670570373535,
-    "y": 1077.999950170517,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "78f46224.bc9d9c",
-        "178e4db8.c59b02"
-      ]
-    ]
-  },
-  {
-    "id": "5358502c.4d84d",
-    "type": "comment",
-    "name": "validations - required for all",
-    "info": "",
-    "comments": "",
-    "x": 537.00390625,
-    "y": 127.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "e29df723.fb6ab8",
-    "type": "comment",
-    "name": "validations specific per svc-action",
-    "info": "",
-    "comments": "",
-    "x": 549.00390625,
-    "y": 342.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "be93f819.8db9c8",
-    "type": "comment",
-    "name": "network-request-information block validations",
-    "info": "",
-    "comments": "",
-    "x": 2277.00390625,
-    "y": 929.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "c9238c13.c3f79",
-    "type": "switchNode",
-    "name": "switch network-request-information.tenant",
-    "xml": "<switch test='`$network-topology-operation-input.network-request-input.tenant`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2274.00390625,
-    "y": 979.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "6b327341.d34c9c"
-      ]
-    ]
-  },
-  {
-    "id": "6b327341.d34c9c",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2515.71826171875,
-    "y": 981.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "f7cc75bc.fb7508"
-      ]
-    ]
-  },
-  {
-    "id": "f7cc75bc.fb7508",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-request-input.tenant is a required input\" />\n",
-    "comments": "",
-    "x": 2667.1468505859375,
-    "y": 979.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "a449f5ae.312af8",
-    "type": "switchNode",
-    "name": "switch network-request-information.aic-cloud-region",
-    "xml": "<switch test='`$network-topology-operation-input.network-request-input.aic-cloud-region`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2303.00390625,
-    "y": 1022.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "12e07938.eebd67"
-      ]
-    ]
-  },
-  {
-    "id": "12e07938.eebd67",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2564.71826171875,
-    "y": 1022.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "411017cd.e8e7d8"
-      ]
-    ]
-  },
-  {
-    "id": "411017cd.e8e7d8",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.network-request-information.aic-cloud-region is a required input\" />\n",
-    "comments": "",
-    "x": 2729.146728515625,
-    "y": 1021.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "fd80c464.68ff68",
-    "type": "switchNode",
-    "name": "switch onap-model-information.model-uuid",
-    "xml": "<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2266.1468505859375,
-    "y": 849.8571155071259,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "bf2b8802.529248"
-      ]
-    ]
-  },
-  {
-    "id": "bf2b8802.529248",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2506.1468505859375,
-    "y": 850.8571155071259,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c8b441e9.e2bc9"
-      ]
-    ]
-  },
-  {
-    "id": "c8b441e9.e2bc9",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-uuid is a required input\" />\n",
-    "comments": "",
-    "x": 2671.5753173828125,
-    "y": 848.8570849895477,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "416cb672.740808",
-    "type": "switchNode",
-    "name": "switch onap-model-information.model-customization-uuid",
-    "xml": "<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2311.00390625,
-    "y": 808.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d6b8ccdf.da70c"
-      ]
-    ]
-  },
-  {
-    "id": "d6b8ccdf.da70c",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2607.00390625,
-    "y": 809.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "1c49c6e.f874e39"
-      ]
-    ]
-  },
-  {
-    "id": "1c49c6e.f874e39",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-customization-uuid is a required input\" />\n",
-    "comments": "",
-    "x": 2754.432373046875,
-    "y": 809.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "cf4a32b5.6699",
-    "type": "returnSuccess",
-    "name": "return success",
-    "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-    "comments": "",
-    "x": 511.3609809875488,
-    "y": 706.6428334712982,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "e96a8642.305778",
-    "type": "get-resource",
-    "name": "get-resource NETWORK_MODEL",
-    "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $network-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2989.1869735717773,
-    "y": 1293.1784751415253,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "f00cd782.2f4528",
-        "833d5e59.8da03"
-      ]
-    ]
-  },
-  {
-    "id": "99436cff.71a52",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network model found for customization UUID ' \n    + $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid +\n    ' and model-uuid ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n",
-    "comments": "",
-    "x": 3448.6511764526367,
-    "y": 1284.2258908748627,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "f00cd782.2f4528",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3249.9011878967285,
-    "y": 1277.5830972194672,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "99436cff.71a52"
-      ]
-    ]
-  },
-  {
-    "id": "833d5e59.8da03",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3243.6511878967285,
-    "y": 1310.0830972194672,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "99436cff.71a52"
-      ]
-    ]
-  },
-  {
-    "id": "78f46224.bc9d9c",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2538.818649291992,
-    "y": 1077.5925891399384,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "2dfa7f78.06543"
-      ]
-    ]
-  },
-  {
-    "id": "178e4db8.c59b02",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2545.0685844421387,
-    "y": 1216.759194135666,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "7c0ea99f.5a1678"
-      ]
-    ]
-  },
-  {
-    "id": "fe208cbc.dc6fa",
-    "type": "get-resource",
-    "name": "get-resource SERVICE_MODEL",
-    "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $network-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='service-model'>\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2991.6869583129883,
-    "y": 1216.2432477474213,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "1c40e946.8c8157",
-        "793372b8.fc938c"
-      ]
-    ]
-  },
-  {
-    "id": "789a1cde.2f3584",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for service UUID ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n",
-    "comments": "",
-    "x": 3438.7703247070312,
-    "y": 1216.2432782649994,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "1c40e946.8c8157",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3240.020404815674,
-    "y": 1211.600494146347,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "789a1cde.2f3584"
-      ]
-    ]
-  },
-  {
-    "id": "793372b8.fc938c",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3233.770404815674,
-    "y": 1244.100494146347,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "789a1cde.2f3584"
-      ]
-    ]
-  },
-  {
-    "id": "2f9cf39c.ecdeac",
-    "type": "get-resource",
-    "name": "get-resource NETWORK_MODEL",
-    "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $service-data.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2985.373161315918,
-    "y": 1152.4007976055145,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "de12035b.bf10a",
-        "d50a76bd.bc3228"
-      ]
-    ]
-  },
-  {
-    "id": "67a5ef63.346e1",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network model found for customization UUID ' \n    + $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid +\n    ' and model-uuid ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n",
-    "comments": "",
-    "x": 3444.8373641967773,
-    "y": 1143.448213338852,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "de12035b.bf10a",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3246.087375640869,
-    "y": 1136.8054196834564,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "67a5ef63.346e1"
-      ]
-    ]
-  },
-  {
-    "id": "d50a76bd.bc3228",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3241.0873527526855,
-    "y": 1168.055418729782,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "67a5ef63.346e1"
-      ]
-    ]
-  },
-  {
-    "id": "bc655191.0e724",
-    "type": "get-resource",
-    "name": "get-resource SERVICE_MODEL",
-    "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-data.service-information.onap-model-information.model-uuid'\n  pfx='service-model'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2984.1230850219727,
-    "y": 1077.965463399887,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "8e2d24f5.121c68",
-        "7c889074.1b565"
-      ]
-    ]
-  },
-  {
-    "id": "d18ba133.1177",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for service UUID ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n",
-    "comments": "",
-    "x": 3434.956512451172,
-    "y": 1075.4656007289886,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "8e2d24f5.121c68",
-    "type": "not-found",
-    "name": "not-found",
-    "xml": "<outcome value='not-found'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3236.2065925598145,
-    "y": 1070.8228166103363,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d18ba133.1177"
-      ]
-    ]
-  },
-  {
-    "id": "7c889074.1b565",
-    "type": "failure",
-    "name": "failure",
-    "xml": "<outcome value='failure'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3229.9565925598145,
-    "y": 1103.3228166103363,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d18ba133.1177"
-      ]
-    ]
-  },
-  {
-    "id": "2dfa7f78.06543",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 2714.1428985595703,
-    "y": 1076.8054172992706,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "bc655191.0e724",
-        "2f9cf39c.ecdeac"
-      ]
-    ]
-  },
-  {
-    "id": "7c0ea99f.5a1678",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 2706.6428985595703,
-    "y": 1215.5554206371307,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "fe208cbc.dc6fa",
-        "e96a8642.305778"
-      ]
-    ]
-  },
-  {
-    "id": "3c8e6628.d91a7a",
-    "type": "outcome",
-    "name": "ActivateDCINetworkInstance",
-    "xml": "<outcome value='ActivateDCINetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1420.6704940795898,
-    "y": 474.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "875e8d68.e9af6"
-      ]
-    ]
-  },
-  {
-    "id": "6fed75a2.decf0c",
-    "type": "outcome",
-    "name": "DeActivateDCINetworkInstance",
-    "xml": "<outcome value='DeActivateDCINetworkInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1442.0038681030273,
-    "y": 637.9999988079071,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "104b7f33.e975b1"
-      ]
-    ]
-  },
-  {
-    "id": "f8366874.128af8",
-    "type": "switchNode",
-    "name": "switch onap-model-information.model-invariant-uuid",
-    "xml": "<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2293.0039672851562,
-    "y": 774.0000350475311,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "a9b08bc9.314328"
-      ]
-    ]
-  },
-  {
-    "id": "a9b08bc9.314328",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2578.0040283203125,
-    "y": 773.0000293254852,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "660b21a9.185aa"
-      ]
-    ]
-  },
-  {
-    "id": "660b21a9.185aa",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-invariant-uuid is a required input\" />\n",
-    "comments": "",
-    "x": 2729.4324951171875,
-    "y": 772.0000293254852,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "2a04f924.bc59c6",
-    "type": "comment",
-    "name": "network-information.onap-model-information block validations",
-    "info": "",
-    "comments": "",
-    "x": 2312.1468505859375,
-    "y": 734.8571155071259,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "d7a16e1b.af209",
-    "type": "switchNode",
-    "name": "switch network-information.network-id",
-    "xml": "<switch test='`$network-topology-operation-input.network-information.network-id`'>\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2248.0038299560547,
-    "y": 643.3333556652069,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "539f2742.e1fa38",
-        "cf298caa.2064f"
-      ]
-    ]
-  },
-  {
-    "id": "539f2742.e1fa38",
-    "type": "other",
-    "name": "Other",
-    "xml": "<outcome value='Other'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2544.0037803649902,
-    "y": 676.0000674724579,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "efbdc310.4df6b"
-      ]
-    ]
-  },
-  {
-    "id": "efbdc310.4df6b",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 2678.115036010742,
-    "y": 676.4444720745087,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "aa96a81e.338e18"
-      ]
-    ]
-  },
-  {
-    "id": "aa96a81e.338e18",
-    "type": "switchNode",
-    "name": "switch service-data.networks.network_length",
-    "xml": "<switch test='`$service-data.networks.network_length`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2951.829147338867,
-    "y": 678.0158221721649,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "a6924a9.366acb8",
-        "d67b8110.cf084"
-      ]
-    ]
-  },
-  {
-    "id": "a6924a9.366acb8",
-    "type": "other",
-    "name": "outcome Null",
-    "xml": "<outcome value=''>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3240.829147338867,
-    "y": 680.0158832073212,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "38331b12.104364"
-      ]
-    ]
-  },
-  {
-    "id": "d67b8110.cf084",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3220.829147338867,
-    "y": 715.0158832073212,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "27a40eb8.35dc12"
-      ]
-    ]
-  },
-  {
-    "id": "27a40eb8.35dc12",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 3422.099166870117,
-    "y": 716.5704486370087,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "c4349cea.5f846",
-        "ceec98b4.2ffb48"
-      ]
-    ]
-  },
-  {
-    "id": "c4349cea.5f846",
-    "type": "for",
-    "name": "for nidx..service-data.networks.network[]",
-    "xml": "<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3692.115203857422,
-    "y": 715.4444644451141,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "3a558d2e.ab0422"
-      ]
-    ]
-  },
-  {
-    "id": "3a558d2e.ab0422",
-    "type": "switchNode",
-    "name": "switch networkid found",
-    "xml": "<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3982.5437545776367,
-    "y": 714.694548368454,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "5c767e8.1709a8"
-      ]
-    ]
-  },
-  {
-    "id": "5c767e8.1709a8",
-    "type": "outcomeTrue",
-    "name": "true",
-    "xml": "<outcome value='true'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 4171.496109008789,
-    "y": 715.5872867107391,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "24b6b776.af3398"
-      ]
-    ]
-  },
-  {
-    "id": "399ed923.ac8ab6",
-    "type": "set",
-    "name": "set tmp.nidx and ctx.network-data",
-    "xml": "<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\n",
-    "comments": "",
-    "x": 4615.027877807617,
-    "y": 724.3373095989227,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "ceec98b4.2ffb48",
-    "type": "switchNode",
-    "name": "switch tmp.nidx ",
-    "xml": "<switch test=\"`$tmp.nidx`\">\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3610.416633605957,
-    "y": 757.4276711940765,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "96827960.07e628"
-      ]
-    ]
-  },
-  {
-    "id": "d3abbc81.d91ab",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n",
-    "comments": "",
-    "x": 3963.2736167907715,
-    "y": 753.1419131755829,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "96827960.07e628",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3781.845169067383,
-    "y": 755.9990565776825,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d3abbc81.d91ab"
-      ]
-    ]
-  },
-  {
-    "id": "976eb0b3.3ee26",
-    "type": "switchNode",
-    "name": "switch order-status",
-    "xml": "<switch test='`$ctx.network-data.network-data.network-level-oper-status.order-status`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 4573.448287963867,
-    "y": 761.4444873332977,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "894b90cf.4a9a"
-      ]
-    ]
-  },
-  {
-    "id": "894b90cf.4a9a",
-    "type": "other",
-    "name": "outcome Created",
-    "xml": "<outcome value='Created'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 4787.448287963867,
-    "y": 761.4444873332977,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "6704e2e0.e6d2ac"
-      ]
-    ]
-  },
-  {
-    "id": "6704e2e0.e6d2ac",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Network aready exists in Created state matching network-id ' + $network-topology-operation-input.network-information.network-id`\" />\n",
-    "comments": "",
-    "x": 4991.448287963867,
-    "y": 757.4444720745087,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "24b6b776.af3398",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 4320.114547729492,
-    "y": 715.4444720745087,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "399ed923.ac8ab6"
-      ]
-    ]
-  },
-  {
-    "id": "38331b12.104364",
-    "type": "record",
-    "name": "record",
-    "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.validate-network-input\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Network id proveded but no network exists that matches\"/>\n<parameter name=\"field5\" value=\"`$network-topology-operation-input.network-information.network-id`\"/>\n\n\n\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 3402.115036010742,
-    "y": 679.4444720745087,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "56dfe279.93c1fc",
-    "type": "switchNode",
-    "name": "switch network-information.network-id",
-    "xml": "<switch test='`$network-topology-operation-input.network-information.network-id`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 2246.0037536621094,
-    "y": 596.6666724681854,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "d731fd6c.5f66a"
-      ]
-    ]
-  },
-  {
-    "id": "d731fd6c.5f66a",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2474.7180786132812,
-    "y": 598.6666724681854,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "f8512ef0.9e14e"
-      ]
-    ]
-  },
-  {
-    "id": "f8512ef0.9e14e",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.network-information.network-id is a required input\" />\n",
-    "comments": "",
-    "x": 2639.146697998047,
-    "y": 596.6666724681854,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "cf298caa.2064f",
-    "type": "other",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 2541.6706771850586,
-    "y": 642.9999415874481,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "875e8d68.e9af6",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1646.9765625,
-    "y": 449.00390696525574,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "104b7f33.e975b1",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1698.0039520263672,
-    "y": 627.0312669277191,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "631913c6.522e9c",
-    "type": "outcome",
-    "name": "ActivateSOTNConnectivityInstance",
-    "xml": "<outcome value='ActivateSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1250.7539672851562,
-    "y": 441.00390434265137,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "eee16eb3.ee727"
-      ]
-    ]
-  },
-  {
-    "id": "eee16eb3.ee727",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1476.7539367675781,
-    "y": 441.00395011901855,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "1da958a1.745b77",
-    "type": "outcome",
-    "name": "DeactivateSOTNConnectivityInstance",
-    "xml": "<outcome value='DeactivateSOTNConnectivityInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1307.75390625,
-    "y": 599.00390625,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        "9eaa2ade.3cbb68"
-      ]
-    ]
-  },
-  {
-    "id": "9eaa2ade.3cbb68",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "comments": "",
-    "outputs": 1,
-    "x": 1533.7538757324219,
-    "y": 599.0039520263672,
-    "z": "cd5e1606.c0dcc8",
-    "wires": [
-      [
-        
-      ]
-    ]
-  }
-]
+[{"id":"a575a9c4.d386a8","type":"dgstart","name":"DGSTART","outputs":1,"x":195.00390625,"y":130.00390625,"z":"4b761587.bcd5cc","wires":[["78ce8bb5.3ca064"]]},{"id":"78ce8bb5.3ca064","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":267.28961181640625,"y":182.2420196533203,"z":"4b761587.bcd5cc","wires":[["80fe6ca3.90344"]]},{"id":"80fe6ca3.90344","type":"method","name":"validate-network-input","xml":"<method rpc='validate-network-input' mode='sync'>\n","comments":"","outputs":1,"x":267.43253326416016,"y":244.00390625,"z":"4b761587.bcd5cc","wires":[["933a60e0.2f57"]]},{"id":"933a60e0.2f57","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":280.7539520263672,"y":526.4474010467529,"z":"4b761587.bcd5cc","wires":[["16dc9200.e7ae8e","8d5f5ba0.e9ed18","78b8111a.f3016","a7f24ca4.b41d5","6496f9af.ef02c8","af3a5ed9.dde35"]]},{"id":"16dc9200.e7ae8e","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$network-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":597.1467666625977,"y":252.43249702453613,"z":"4b761587.bcd5cc","wires":[["e094c8c2.63f878"]]},{"id":"e094c8c2.63f878","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":822.8610709054128,"y":252.43249947684126,"z":"4b761587.bcd5cc","wires":[["b99fd027.7865b"]]},{"id":"b99fd027.7865b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":974.2896368844167,"y":252.43249756949263,"z":"4b761587.bcd5cc","wires":[]},{"id":"8d5f5ba0.e9ed18","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":585.7181396484375,"y":211.00392723083496,"z":"4b761587.bcd5cc","wires":[["e97de125.9275d"]]},{"id":"e97de125.9275d","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":821.4324913024902,"y":209.57532501220703,"z":"4b761587.bcd5cc","wires":[["f81ddcb0.227e8"]]},{"id":"f81ddcb0.227e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":971.4324645996094,"y":209.5753345489502,"z":"4b761587.bcd5cc","wires":[]},{"id":"78b8111a.f3016","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":595.7181777954102,"y":295.289644241333,"z":"4b761587.bcd5cc","wires":[["216008bf.088b78"]]},{"id":"216008bf.088b78","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":822.8610665457591,"y":295.2896532331197,"z":"4b761587.bcd5cc","wires":[["782e0756.309be8"]]},{"id":"782e0756.309be8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":974.289632524763,"y":295.28965132577105,"z":"4b761587.bcd5cc","wires":[]},{"id":"a7f24ca4.b41d5","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$network-topology-operation-input.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":604.861083984375,"y":338.00390625,"z":"4b761587.bcd5cc","wires":[["c30c9ee5.ea58"]]},{"id":"c30c9ee5.ea58","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":821.2896728515625,"y":339.00390625,"z":"4b761587.bcd5cc","wires":[["e20b6f76.38f0e"]]},{"id":"e20b6f76.38f0e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n","comments":"","x":979.7182006835938,"y":338.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"6afee272.ecf31c","type":"comment","name":"validate-network-input - CHANGELOG","info":"12/8: Initial release 1.0.0","comments":"","x":480.00390625,"y":94.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"6496f9af.ef02c8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":582.00390625,"y":425.00390625,"z":"4b761587.bcd5cc","wires":[["62ca6cb8.0e6c14","eeec5ba1.a4cfd8","bfed0059.9a24d","5cc31e70.e63f4","fe63e819.199838"]]},{"id":"62ca6cb8.0e6c14","type":"other","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":814.71826171875,"y":430.5753173828125,"z":"4b761587.bcd5cc","wires":[["b1998b37.606ca8"]]},{"id":"eeec5ba1.a4cfd8","type":"other","name":"activate","xml":"<outcome value='activate'>","comments":"","outputs":1,"x":820.00390625,"y":488.00390625,"z":"4b761587.bcd5cc","wires":[["4c3c9c08.6503f4"]]},{"id":"bfed0059.9a24d","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>","comments":"","outputs":1,"x":826.0039367675781,"y":670.00390625,"z":"4b761587.bcd5cc","wires":[["98cf52b1.8e595"]]},{"id":"b1998b37.606ca8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":977.00390625,"y":430.00390625,"z":"4b761587.bcd5cc","wires":[["5dff0a4c.ffd994"]]},{"id":"5dff0a4c.ffd994","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1197.00390625,"y":430.00390625,"z":"4b761587.bcd5cc","wires":[["442e6fae.b1604","230c2083.66128"]]},{"id":"442e6fae.b1604","type":"other","name":"CreateNetworkInstance","xml":"<outcome value='CreateNetworkInstance'>","comments":"","outputs":1,"x":1477.00390625,"y":395.00390625,"z":"4b761587.bcd5cc","wires":[["ccdeebd9.e7de18"]]},{"id":"230c2083.66128","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1426.00390625,"y":439.00390625,"z":"4b761587.bcd5cc","wires":[["9097d31d.3dbdc"]]},{"id":"9097d31d.3dbdc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be CreateNetworkInstance for svc-action=assign\" />\n","comments":"","x":1595.00390625,"y":439.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"4c3c9c08.6503f4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":994.00390625,"y":488.00390625,"z":"4b761587.bcd5cc","wires":[["a78c441f.4c74f8"]]},{"id":"a78c441f.4c74f8","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1211.00390625,"y":488.00390625,"z":"4b761587.bcd5cc","wires":[["a87f4a60.d57e78","188ac60b.54f75a"]]},{"id":"a87f4a60.d57e78","type":"other","name":"CreateNetworkInstance","xml":"<outcome value='CreateNetworkInstance'>","comments":"","outputs":1,"x":1492.00390625,"y":489.00390625,"z":"4b761587.bcd5cc","wires":[["fa1ba922.8fcf38"]]},{"id":"188ac60b.54f75a","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1435.00390625,"y":529.00390625,"z":"4b761587.bcd5cc","wires":[["e977befe.5e4e7"]]},{"id":"e977befe.5e4e7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be CreateNetworkInstance for svc-action=activate\" />\n","comments":"","x":1593.8612060546875,"y":528.4325265884399,"z":"4b761587.bcd5cc","wires":[]},{"id":"98cf52b1.8e595","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1008.0039367675781,"y":669.00390625,"z":"4b761587.bcd5cc","wires":[["118b2f7.0969dd1"]]},{"id":"118b2f7.0969dd1","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1225.0039367675781,"y":669.00390625,"z":"4b761587.bcd5cc","wires":[["b89a7f5f.04c67","a53dd945.4f8148"]]},{"id":"b89a7f5f.04c67","type":"other","name":"DeleteNetworkInstance","xml":"<outcome value='DeleteNetworkInstance'>","comments":"","outputs":1,"x":1506.0039367675781,"y":670.00390625,"z":"4b761587.bcd5cc","wires":[["6d65178b.629968"]]},{"id":"a53dd945.4f8148","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1449.0039367675781,"y":710.00390625,"z":"4b761587.bcd5cc","wires":[["34091f71.54518"]]},{"id":"34091f71.54518","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=deactivate\" />\n","comments":"","x":1618.0040016174316,"y":712.8610677719116,"z":"4b761587.bcd5cc","wires":[]},{"id":"5cc31e70.e63f4","type":"other","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":822.00390625,"y":764.0038833618164,"z":"4b761587.bcd5cc","wires":[["5cbecfd9.c1a88"]]},{"id":"5cbecfd9.c1a88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1004.0039367675781,"y":760.00390625,"z":"4b761587.bcd5cc","wires":[["f5752367.6fda3"]]},{"id":"f5752367.6fda3","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1221.0039367675781,"y":760.00390625,"z":"4b761587.bcd5cc","wires":[["43a3233a.5a8f7c","64855dd3.5b6584"]]},{"id":"43a3233a.5a8f7c","type":"other","name":"DeleteNetworkInstance","xml":"<outcome value='DeleteNetworkInstance'>","comments":"","outputs":1,"x":1502.0039367675781,"y":761.00390625,"z":"4b761587.bcd5cc","wires":[["76985808.90bf68"]]},{"id":"64855dd3.5b6584","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1445.0039367675781,"y":801.00390625,"z":"4b761587.bcd5cc","wires":[["61cea17f.1716d"]]},{"id":"61cea17f.1716d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be DeleteNetworkInstance for svc-action=unassign\" />\n","comments":"","x":1614.0039367675781,"y":801.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"ccdeebd9.e7de18","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1713.00390625,"y":394.00390625,"z":"4b761587.bcd5cc","wires":[["66782d09.f4ad54","30af6b4d.2b4524","48232f31.a7802","6289cff0.f55e5","f0bb7cd0.da95f","64256824.d847c8","118b4a39.c7d006","ff9ede0b.4057d"]]},{"id":"fa1ba922.8fcf38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1717.00390625,"y":489.00390625,"z":"4b761587.bcd5cc","wires":[["df3a697d.32edd8","66782d09.f4ad54","30af6b4d.2b4524","48232f31.a7802","6289cff0.f55e5","64256824.d847c8","118b4a39.c7d006"]]},{"id":"6d65178b.629968","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1762.0039367675781,"y":671.00390625,"z":"4b761587.bcd5cc","wires":[["df3a697d.32edd8"]]},{"id":"76985808.90bf68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1761.0039367675781,"y":762.00390625,"z":"4b761587.bcd5cc","wires":[["df3a697d.32edd8"]]},{"id":"118b4a39.c7d006","type":"switchNode","name":"switch onap-model-information.model-uuid","xml":"<switch test='`$network-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":2302.170722961426,"y":1201.7539043426514,"z":"4b761587.bcd5cc","wires":[["73adb89.8153848","498ce4bd.76976c"]]},{"id":"df3a697d.32edd8","type":"switchNode","name":"switch network-information.network-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-id`'>\n","comments":"","outputs":1,"x":2313.6705017089844,"y":368.670636177063,"z":"4b761587.bcd5cc","wires":[["13f55f7e.2f7e91"]]},{"id":"13f55f7e.2f7e91","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2544.384620666504,"y":368.6706600189209,"z":"4b761587.bcd5cc","wires":[["a40048df.8d3098"]]},{"id":"a40048df.8d3098","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.network-information.network-id is a required input\" />\n","comments":"","x":2705.8134536743164,"y":370.67065238952637,"z":"4b761587.bcd5cc","wires":[]},{"id":"d8afd46b.5089b8","type":"comment","name":"validations - required for all","info":"","comments":"","x":613.00390625,"y":168.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"f249596c.e50498","type":"comment","name":"validations specific per svc-action","info":"","comments":"","x":625.00390625,"y":383.00390625,"z":"4b761587.bcd5cc","wires":[]},{"id":"9ffc22e8.9d37d","type":"comment","name":"network-request-information block validations","info":"","comments":"","x":2305.5040588378906,"y":1053.7539529800415,"z":"4b761587.bcd5cc","wires":[]},{"id":"66782d09.f4ad54","type":"switchNode","name":"switch network-request-information.tenant","xml":"<switch test='`$network-topology-operation-input.network-request-input.tenant`'>\n","comments":"","outputs":1,"x":2302.5040588378906,"y":1103.7539529800415,"z":"4b761587.bcd5cc","wires":[["1f3d5eac.dfe181"]]},{"id":"1f3d5eac.dfe181","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2544.2184143066406,"y":1105.7539529800415,"z":"4b761587.bcd5cc","wires":[["f9a01d6f.99ad2"]]},{"id":"f9a01d6f.99ad2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-request-input.tenant is a required input\" />\n","comments":"","x":2695.647003173828,"y":1103.7539529800415,"z":"4b761587.bcd5cc","wires":[]},{"id":"30af6b4d.2b4524","type":"switchNode","name":"switch network-request-information.aic-cloud-region","xml":"<switch test='`$network-topology-operation-input.network-request-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":2331.5040588378906,"y":1146.7539529800415,"z":"4b761587.bcd5cc","wires":[["efd07b0.1bff288"]]},{"id":"efd07b0.1bff288","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2593.2184143066406,"y":1146.7539529800415,"z":"4b761587.bcd5cc","wires":[["321c5b8f.d40d44"]]},{"id":"321c5b8f.d40d44","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.network-request-information.aic-cloud-region is a required input\" />\n","comments":"","x":2757.6468811035156,"y":1145.7539529800415,"z":"4b761587.bcd5cc","wires":[]},{"id":"48232f31.a7802","type":"switchNode","name":"switch onap-model-information.model-invariant-uuid","xml":"<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":2344.0040283203125,"y":877.753963470459,"z":"4b761587.bcd5cc","wires":[["e63ef562.799ef8"]]},{"id":"e63ef562.799ef8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2629.0040893554688,"y":876.7539577484131,"z":"4b761587.bcd5cc","wires":[["53c13129.be47f"]]},{"id":"53c13129.be47f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-invariant-uuid is a required input\" />\n","comments":"","x":2780.4325561523438,"y":875.7539577484131,"z":"4b761587.bcd5cc","wires":[]},{"id":"6289cff0.f55e5","type":"switchNode","name":"switch onap-model-information.model-uuid","xml":"<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":2316.1468200683594,"y":953.6111078262329,"z":"4b761587.bcd5cc","wires":[["8e68950c.ad4328"]]},{"id":"8e68950c.ad4328","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2557.1469116210938,"y":954.6110439300537,"z":"4b761587.bcd5cc","wires":[["b7375f23.a9e72"]]},{"id":"b7375f23.a9e72","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-uuid is a required input\" />\n","comments":"","x":2722.5753784179688,"y":952.6110134124756,"z":"4b761587.bcd5cc","wires":[]},{"id":"d03404c6.587bf8","type":"comment","name":"network-information.onap-model-information block validations","info":"","comments":"","x":2363.1471557617188,"y":837.6111059188843,"z":"4b761587.bcd5cc","wires":[]},{"id":"64256824.d847c8","type":"switchNode","name":"switch onap-model-information.model-customization-uuid","xml":"<switch test='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":2362.0039672851562,"y":912.753927230835,"z":"4b761587.bcd5cc","wires":[["f71efea5.c9c5c"]]},{"id":"f71efea5.c9c5c","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2658.0039672851562,"y":913.753927230835,"z":"4b761587.bcd5cc","wires":[["d2985d77.8ad17"]]},{"id":"d2985d77.8ad17","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":2805.4324340820312,"y":913.753927230835,"z":"4b761587.bcd5cc","wires":[]},{"id":"af3a5ed9.dde35","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":587.3609809875488,"y":746.6467409133911,"z":"4b761587.bcd5cc","wires":[]},{"id":"f0bb7cd0.da95f","type":"switchNode","name":"switch network-information.network-instance-group-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\n\n","comments":"","outputs":1,"x":2346.5040283203125,"y":674.5874137878418,"z":"4b761587.bcd5cc","wires":[["662c9d71.079304","d0f5f52f.375f18"]]},{"id":"662c9d71.079304","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2636.253917694092,"y":704.7540969848633,"z":"4b761587.bcd5cc","wires":[["25ac7c89.8ac374"]]},{"id":"d0f5f52f.375f18","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2633.92081451416,"y":671.7539710998535,"z":"4b761587.bcd5cc","wires":[["2ab9ef88.04d4d"]]},{"id":"2ab9ef88.04d4d","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":2794.2540435791016,"y":668.7540283203125,"z":"4b761587.bcd5cc","wires":[]},{"id":"555a87f8.e8b208","type":"get-resource","name":"get-resource NETWORK_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $network-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n","comments":"","outputs":1,"x":3010.187225341797,"y":1449.4324855804443,"z":"4b761587.bcd5cc","wires":[["dae1ad8.3e15b5","23ea44a6.b4860c"]]},{"id":"b99278a2.2a4fa8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network model found for customization UUID ' \n    + $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid +\n    ' and model-uuid ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":3504.6513671875,"y":1446.7299497127533,"z":"4b761587.bcd5cc","wires":[]},{"id":"dae1ad8.3e15b5","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3305.901378631592,"y":1440.0871560573578,"z":"4b761587.bcd5cc","wires":[["b99278a2.2a4fa8"]]},{"id":"23ea44a6.b4860c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3299.651378631592,"y":1472.5871560573578,"z":"4b761587.bcd5cc","wires":[["b99278a2.2a4fa8"]]},{"id":"1cb5cc50.1f1354","type":"for","name":"for ngidx..service-data.network-instance-groups.network-instance-group[]","xml":"<for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\n","comments":"","outputs":1,"x":4033.615447998047,"y":741.9484825134277,"z":"4b761587.bcd5cc","wires":[["6633224f.bb357c"]]},{"id":"529c6dcd.5923d4","type":"switchNode","name":"service-data.network-instance-groups.network-instance-group_length","xml":"<switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\n","comments":"","outputs":1,"x":3120.3295974731445,"y":703.0198783874512,"z":"4b761587.bcd5cc","wires":[["d3dcb543.d2a348","20a9db4c.d3d484"]]},{"id":"d3dcb543.d2a348","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3485.579376220703,"y":705.0198516845703,"z":"4b761587.bcd5cc","wires":[["3a5960b6.10bb4"]]},{"id":"20a9db4c.d3d484","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3465.579376220703,"y":740.0198516845703,"z":"4b761587.bcd5cc","wires":[["f3e77f59.0aa6b"]]},{"id":"6633224f.bb357c","type":"switchNode","name":"switch network-instance-group-id found","xml":"<switch test=\"`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`\">\n\n","comments":"","outputs":1,"x":4481.54411315918,"y":741.6986656188965,"z":"4b761587.bcd5cc","wires":[["9641e6d8.090418"]]},{"id":"9641e6d8.090418","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4727.99715423584,"y":742.5915241241455,"z":"4b761587.bcd5cc","wires":[["198f8718.01b009"]]},{"id":"9f5bddf0.3d56a","type":"set","name":"set tmp.ngidx and ctx.network-instance-group-data","xml":"<set>\n<parameter name='tmp.ngidx' value='`$ngidx`' />\n<parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\n","comments":"","x":5170.529121398926,"y":742.3415489196777,"z":"4b761587.bcd5cc","wires":[]},{"id":"f3e77f59.0aa6b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3666.849395751953,"y":741.5744171142578,"z":"4b761587.bcd5cc","wires":[["1cb5cc50.1f1354"]]},{"id":"25ac7c89.8ac374","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2770.3651733398438,"y":705.1985015869141,"z":"4b761587.bcd5cc","wires":[["529c6dcd.5923d4"]]},{"id":"3a5960b6.10bb4","type":"record","name":"record","xml":"<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.validate-network-input\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Network instance group id proveded but no network instance group exists that matches\"/>\n<parameter name=\"field5\" value=\"`$network-topology-operation-input.network-information.network-instance-group-id`\"/>\n\n\n\n","comments":"","outputs":1,"x":3646.865264892578,"y":704.4484405517578,"z":"4b761587.bcd5cc","wires":[[]]},{"id":"198f8718.01b009","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4876.615592956543,"y":742.448709487915,"z":"4b761587.bcd5cc","wires":[["9f5bddf0.3d56a"]]},{"id":"73adb89.8153848","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2567.318801879883,"y":1201.3465433120728,"z":"4b761587.bcd5cc","wires":[["cc905fa7.0179e"]]},{"id":"498ce4bd.76976c","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2566.068836212158,"y":1373.013204574585,"z":"4b761587.bcd5cc","wires":[["e65bfc3.1eaa5"]]},{"id":"6df7a370.240b1c","type":"get-resource","name":"get-resource SERVICE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $network-topology-operation-input.service-information.onap-model-information.model-uuid'\n  pfx='service-model'>\n\n","comments":"","outputs":1,"x":3012.687210083008,"y":1372.4972581863403,"z":"4b761587.bcd5cc","wires":[["dd24c761.da4db8","32523dd1.040262"]]},{"id":"1fcfe42.4448d1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for service UUID ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":3494.7705154418945,"y":1378.74733710289,"z":"4b761587.bcd5cc","wires":[]},{"id":"dd24c761.da4db8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3296.020595550537,"y":1374.1045529842377,"z":"4b761587.bcd5cc","wires":[["1fcfe42.4448d1c"]]},{"id":"32523dd1.040262","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3289.770595550537,"y":1406.6045529842377,"z":"4b761587.bcd5cc","wires":[["1fcfe42.4448d1c"]]},{"id":"f7fe85c3.693f98","type":"get-resource","name":"get-resource NETWORK_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid\n  and service_uuid = $service-data.service-information.onap-model-information.model-uuid'\n  pfx='network-model'>\n\n","comments":"","outputs":1,"x":3012.8732147216797,"y":1274.1548709869385,"z":"4b761587.bcd5cc","wires":[["ff530ff9.b82d1","d026e041.c8ad5"]]},{"id":"113e1d67.3f5fb3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network model found for customization UUID ' \n    + $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid +\n    ' and model-uuid ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":3508.3374557495117,"y":1273.4522159099579,"z":"4b761587.bcd5cc","wires":[]},{"id":"ff530ff9.b82d1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3309.5874671936035,"y":1266.8094222545624,"z":"4b761587.bcd5cc","wires":[["113e1d67.3f5fb3"]]},{"id":"d026e041.c8ad5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3304.58744430542,"y":1298.059421300888,"z":"4b761587.bcd5cc","wires":[["113e1d67.3f5fb3"]]},{"id":"5528e6e9.e48998","type":"get-resource","name":"get-resource SERVICE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-data.service-information.onap-model-information.model-uuid'\n  pfx='service-model'>","comments":"","outputs":1,"x":3011.373245239258,"y":1200.4694242477417,"z":"4b761587.bcd5cc","wires":[["fa9735e2.86a0c8","99632634.dfe8b8"]]},{"id":"43fb1181.88123","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No service model found for service UUID ' + $network-topology-operation-input.service-information.onap-model-information.model-uuid`\" />\n","comments":"","x":3498.4566040039062,"y":1205.4696033000946,"z":"4b761587.bcd5cc","wires":[]},{"id":"fa9735e2.86a0c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3299.706684112549,"y":1200.8268191814423,"z":"4b761587.bcd5cc","wires":[["43fb1181.88123"]]},{"id":"99632634.dfe8b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3293.456684112549,"y":1233.3268191814423,"z":"4b761587.bcd5cc","wires":[["43fb1181.88123"]]},{"id":"cc905fa7.0179e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2742.643051147461,"y":1200.559371471405,"z":"4b761587.bcd5cc","wires":[["5528e6e9.e48998","f7fe85c3.693f98"]]},{"id":"e65bfc3.1eaa5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2727.64315032959,"y":1371.8094310760498,"z":"4b761587.bcd5cc","wires":[["6df7a370.240b1c","555a87f8.e8b208"]]},{"id":"fe63e819.199838","type":"other","name":"changeassign","xml":"<outcome value='changeassign'>","comments":"","outputs":1,"x":835.0039672851562,"y":609.00390625,"z":"4b761587.bcd5cc","wires":[["c5091125.669bd"]]},{"id":"c5091125.669bd","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1020.2896118164062,"y":608.4325103759766,"z":"4b761587.bcd5cc","wires":[["a84f67a.efc5a98"]]},{"id":"a84f67a.efc5a98","type":"switchNode","name":"switch request-action","xml":"<switch test='`$network-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1212.28955078125,"y":608.4324951171875,"z":"4b761587.bcd5cc","wires":[["418aa1fe.77858","441b97df.8981e8"]]},{"id":"418aa1fe.77858","type":"other","name":"CreateNetworkInstance","xml":"<outcome value='CreateNetworkInstance'>","comments":"","outputs":1,"x":1492.28955078125,"y":573.4324951171875,"z":"4b761587.bcd5cc","wires":[["f845b8f.2f46748"]]},{"id":"441b97df.8981e8","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1441.28955078125,"y":617.4324951171875,"z":"4b761587.bcd5cc","wires":[["5d6a1028.d64d7"]]},{"id":"5d6a1028.d64d7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is required to be CreateNetworkInstance for svc-action=changeassign\" />\n","comments":"","x":1610.28955078125,"y":617.4324951171875,"z":"4b761587.bcd5cc","wires":[]},{"id":"f845b8f.2f46748","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1728.28955078125,"y":572.4324951171875,"z":"4b761587.bcd5cc","wires":[["df3a697d.32edd8","46719c95.4e3af4","48232f31.a7802","64256824.d847c8","6289cff0.f55e5","66782d09.f4ad54","30af6b4d.2b4524"]]},{"id":"46719c95.4e3af4","type":"switchNode","name":"switch network-information.from-preload","xml":"<switch test='`$network-topology-operation-input.network-information.from-preload`'>\n","comments":"","outputs":1,"x":2319.92041015625,"y":419.0039415359497,"z":"4b761587.bcd5cc","wires":[["902df62f.21c5b8"]]},{"id":"902df62f.21c5b8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2555.634719848633,"y":419.0039415359497,"z":"4b761587.bcd5cc","wires":[["931d936c.133fa"]]},{"id":"931d936c.133fa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-information.from-preload is a required input\" />\n","comments":"","x":2720.0633392333984,"y":417.0039415359497,"z":"4b761587.bcd5cc","wires":[]},{"id":"dab6ec6c.eee4a","type":"comment","name":"If service model uuid not passed in input, use from service-data","info":"","comments":"","x":3108.7501831054688,"y":1161.2500619888306,"z":"4b761587.bcd5cc","wires":[]},{"id":"2625936e.a0b20c","type":"comment","name":"get network and service model using input","info":"","comments":"","x":3036.250198364258,"y":1335.0000658035278,"z":"4b761587.bcd5cc","wires":[]},{"id":"ff9ede0b.4057d","type":"switchNode","name":"switch network-information.network-id","xml":"<switch test='`$network-topology-operation-input.network-information.network-id`'>\n\n","comments":"","outputs":1,"x":2323.3397064208984,"y":472.6731643676758,"z":"4b761587.bcd5cc","wires":[["c18b5326.8b0e2","574d21aa.f4822"]]},{"id":"c18b5326.8b0e2","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":2619.339656829834,"y":505.33987617492676,"z":"4b761587.bcd5cc","wires":[["95db26ad.3d98a8"]]},{"id":"574d21aa.f4822","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2617.0065536499023,"y":472.339750289917,"z":"4b761587.bcd5cc","wires":[["50e6c68c.d82018"]]},{"id":"50e6c68c.d82018","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":2777.3397827148438,"y":469.339807510376,"z":"4b761587.bcd5cc","wires":[]},{"id":"3a8a6f8b.689e","type":"for","name":"for nidx..service-data.networks.network[]","xml":"<for index='nidx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":3767.4510803222656,"y":544.784273147583,"z":"4b761587.bcd5cc","wires":[["60a1cc9b.30be54"]]},{"id":"7a6837aa.36e728","type":"switchNode","name":"switch service-data.networks.network_length","xml":"<switch test='`$service-data.networks.network_length`'>\n","comments":"","outputs":1,"x":3027.165023803711,"y":507.3556308746338,"z":"4b761587.bcd5cc","wires":[["f6c1026.77f49","2afbf728.727d08"]]},{"id":"f6c1026.77f49","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3316.165023803711,"y":509.35569190979004,"z":"4b761587.bcd5cc","wires":[["7ca1c1c4.b6cb"]]},{"id":"2afbf728.727d08","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3287.415237426758,"y":544.8557472229004,"z":"4b761587.bcd5cc","wires":[["83cea7a3.463298"]]},{"id":"60a1cc9b.30be54","type":"switchNode","name":"switch networkid found","xml":"<switch test=\"`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`\">\n\n","comments":"","outputs":1,"x":4057.8796310424805,"y":544.0343570709229,"z":"4b761587.bcd5cc","wires":[["33437dfd.673f12"]]},{"id":"33437dfd.673f12","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":4246.831985473633,"y":544.927095413208,"z":"4b761587.bcd5cc","wires":[["a1e01eb3.375fc"]]},{"id":"8500cc55.cbbd4","type":"set","name":"set tmp.nidx and ctx.network-data","xml":"<set>\n<parameter name='tmp.nidx' value='`$nidx`' />\n<parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\n","comments":"","x":4689.363952636719,"y":544.6771202087402,"z":"4b761587.bcd5cc","wires":[]},{"id":"83cea7a3.463298","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3488.685256958008,"y":546.4103126525879,"z":"4b761587.bcd5cc","wires":[["3a8a6f8b.689e"]]},{"id":"ac4a28ac.0b5f78","type":"switchNode","name":"switch tmp.nidx ","xml":"<switch test=\"`$tmp.nidx`\">\n\n","comments":"","outputs":1,"x":3685.752655029297,"y":620.7674798965454,"z":"4b761587.bcd5cc","wires":[["f71b42ba.2c3d5"]]},{"id":"fcd105b3.f1f4e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"network-topology-operation-input.network-request-input.network-id not found in service-data\" />\n","comments":"","x":4040.609931945801,"y":620.4817447662354,"z":"4b761587.bcd5cc","wires":[]},{"id":"f71b42ba.2c3d5","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3857.1811904907227,"y":619.3388652801514,"z":"4b761587.bcd5cc","wires":[["fcd105b3.f1f4e8"]]},{"id":"95db26ad.3d98a8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2753.450912475586,"y":505.78428077697754,"z":"4b761587.bcd5cc","wires":[["7a6837aa.36e728"]]},{"id":"7ca1c1c4.b6cb","type":"record","name":"record","xml":"<record plugin=\"com.att.sdnctl.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.validate-network-input\"/>\n<parameter name=\"field3\" value=\"`$network-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Network id proveded but no network exists that matches\"/>\n<parameter name=\"field5\" value=\"`$network-topology-operation-input.network-information.network-id`\"/>\n\n\n\n","comments":"","outputs":1,"x":3477.450912475586,"y":508.78428077697754,"z":"4b761587.bcd5cc","wires":[[]]},{"id":"a1e01eb3.375fc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4395.450424194336,"y":544.7842807769775,"z":"4b761587.bcd5cc","wires":[["8500cc55.cbbd4"]]},{"id":"bcde6b54.161698","type":"comment","name":"1806: Removed logic that requires service data to have network if network id is passed from mso on assign","info":"","comments":"","x":3965.3399963378906,"y":582.3398523330688,"z":"4b761587.bcd5cc","wires":[]}]
\ No newline at end of file
index 70c98b7..ea63685 100755 (executable)
@@ -1 +1,1391 @@
-[{"id":"d8f6b3bb.4c275","type":"dgstart","name":"DGSTART","outputs":1,"x":235.55557250976562,"y":315.5555419921875,"z":"893326ee.bae438","wires":[["a018c9a4.117f98"]]},{"id":"a018c9a4.117f98","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":391.8412780761719,"y":389.7936553955078,"z":"893326ee.bae438","wires":[["3f03d10e.2ffb5e"]]},{"id":"3f03d10e.2ffb5e","type":"method","name":"validate-security-zone-input","xml":"<method rpc='validate-security-zone-input' mode='sync'>\n","comments":"","outputs":1,"x":391.9841842651367,"y":453.22223949432373,"z":"893326ee.bae438","wires":[["b2b60df0.c53fb"]]},{"id":"b2b60df0.c53fb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":405.3056182861328,"y":733.9990367889404,"z":"893326ee.bae438","wires":[["e18f70ed.64e6e","c55d0b64.80ebf8","798d06aa.649188","9a6b6b65.fb46e8","e80fb296.5b5af","36ba5c7b.d8e654"]]},{"id":"e18f70ed.64e6e","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":740.3651428222656,"y":218.65082263946533,"z":"893326ee.bae438","wires":[["991652a9.25d26"]]},{"id":"991652a9.25d26","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":970.0794279915945,"y":216.65081936972456,"z":"893326ee.bae438","wires":[["aa2be7a3.2f0818"]]},{"id":"aa2be7a3.2f0818","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":1121.5079345703125,"y":213.31748580932617,"z":"893326ee.bae438","wires":[]},{"id":"c55d0b64.80ebf8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":732.9364929199219,"y":172.22222137451172,"z":"893326ee.bae438","wires":[["86d6351c.c6dd08"]]},{"id":"86d6351c.c6dd08","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":968.6508483886719,"y":173.79364490509033,"z":"893326ee.bae438","wires":[["b2821e24.be3db"]]},{"id":"b2821e24.be3db","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":1118.650821685791,"y":173.7936544418335,"z":"893326ee.bae438","wires":[]},{"id":"798d06aa.649188","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":742.9365386962891,"y":267.5079708099365,"z":"893326ee.bae438","wires":[["cbf1edf6.578e5","3a2f6108.3a98ce","d7c95278.f68aa","c59cbe0b.ae17b"]]},{"id":"cbf1edf6.578e5","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":977.9841423034668,"y":331.3651924133301,"z":"893326ee.bae438","wires":[["7c061461.ed6d7c"]]},{"id":"7c061461.ed6d7c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":1149.412582397461,"y":331.36519145965576,"z":"893326ee.bae438","wires":[]},{"id":"4bfff6bd.144358","type":"comment","name":"validate-security-zone-input - CHANGELOG","info":"3/22: Initial release 1.0.0","comments":"","x":248.55557250976562,"y":219.5555419921875,"z":"893326ee.bae438","wires":[]},{"id":"9a6b6b65.fb46e8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":645.2222328186035,"y":739.5555782318115,"z":"893326ee.bae438","wires":[["f61c14ca.d17008","c832b3ea.1cb26","ce191e6f.c63c","83dfb84.6c9ec48","f0422740.d800b8","f1ddac97.f2155"]]},{"id":"f61c14ca.d17008","type":"other","name":"assign","xml":"<outcome value='assign'>","comments":"","outputs":1,"x":906.2699356079102,"y":575.1270084381104,"z":"893326ee.bae438","wires":[["7ceecd60.009724"]]},{"id":"c832b3ea.1cb26","type":"other","name":"activate","xml":"<outcome value='activate'>","comments":"","outputs":1,"x":926.5555419921875,"y":762.5555725097656,"z":"893326ee.bae438","wires":[["72bc9a53.a4a1c4"]]},{"id":"ce191e6f.c63c","type":"other","name":"deactivate","xml":"<outcome value='deactivate'>","comments":"","outputs":1,"x":933.5555419921875,"y":852.5555725097656,"z":"893326ee.bae438","wires":[["ed55d557.297dd8"]]},{"id":"7ceecd60.009724","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1063.5555725097656,"y":577.8889179229736,"z":"893326ee.bae438","wires":[["ba167228.b3ffe"]]},{"id":"ba167228.b3ffe","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1271.8889541625977,"y":577.8889236450195,"z":"893326ee.bae438","wires":[["e9519759.0bd708","b5904d01.67034"]]},{"id":"e9519759.0bd708","type":"other","name":"CreateSecurityZoneInstance","xml":"<outcome value='CreateSecurityZoneInstance'>","comments":"","outputs":1,"x":1618.0793151855469,"y":505.0317816734314,"z":"893326ee.bae438","wires":[["ec0a16a2.d398b8"]]},{"id":"b5904d01.67034","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1557.5555534362793,"y":571.8889350891113,"z":"893326ee.bae438","wires":[["6ff9efab.1acb8"]]},{"id":"6ff9efab.1acb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=assign\" />\n","comments":"","x":1704.8888969421387,"y":573.5556974411011,"z":"893326ee.bae438","wires":[]},{"id":"72bc9a53.a4a1c4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1100.5555419921875,"y":762.5555725097656,"z":"893326ee.bae438","wires":[["f8cd13e2.ec99a"]]},{"id":"f8cd13e2.ec99a","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1317.5555419921875,"y":762.5555725097656,"z":"893326ee.bae438","wires":[["29c24ed5.8c97a2","12034d41.71a063"]]},{"id":"29c24ed5.8c97a2","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1541.5555419921875,"y":803.5555725097656,"z":"893326ee.bae438","wires":[["c4fec971.125ad8"]]},{"id":"c4fec971.125ad8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=activate\" />\n","comments":"","x":1710.5555419921875,"y":803.5555725097656,"z":"893326ee.bae438","wires":[]},{"id":"ed55d557.297dd8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1115.5555419921875,"y":851.5555725097656,"z":"893326ee.bae438","wires":[["55f7035.720defc"]]},{"id":"55f7035.720defc","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1332.5555419921875,"y":851.5555725097656,"z":"893326ee.bae438","wires":[["94748701.276ad8","94eb145d.dbec38"]]},{"id":"94748701.276ad8","type":"other","name":"DeleteSecurityZoneInstance","xml":"<outcome value='DeleteSecurityZoneInstance'>","comments":"","outputs":1,"x":1615.2220764160156,"y":850.8889589309692,"z":"893326ee.bae438","wires":[["3e9b45b4.1ff76a"]]},{"id":"94eb145d.dbec38","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1556.5555419921875,"y":892.5555725097656,"z":"893326ee.bae438","wires":[["610782ce.0e012c"]]},{"id":"610782ce.0e012c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=deactivate\" />\n","comments":"","x":1725.5555419921875,"y":892.5555725097656,"z":"893326ee.bae438","wires":[]},{"id":"83dfb84.6c9ec48","type":"other","name":"unassign","xml":"<outcome value='unassign'>","comments":"","outputs":1,"x":914.5554046630859,"y":1019.8888998031616,"z":"893326ee.bae438","wires":[["97760e1d.874c1"]]},{"id":"97760e1d.874c1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1096.555435180664,"y":1015.8889226913452,"z":"893326ee.bae438","wires":[["d856938c.c7fcd"]]},{"id":"d856938c.c7fcd","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1313.555435180664,"y":1015.8889226913452,"z":"893326ee.bae438","wires":[["8ba8ac96.939ac","ac3bb1cc.3a778"]]},{"id":"8ba8ac96.939ac","type":"other","name":"DeleteSecurityZoneInstance","xml":"<outcome value='DeleteSecurityZoneInstance'>","comments":"","outputs":1,"x":1594.555305480957,"y":1016.8889398574829,"z":"893326ee.bae438","wires":[["1b3b1eab.cd8bc1"]]},{"id":"ac3bb1cc.3a778","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1537.555435180664,"y":1056.8889226913452,"z":"893326ee.bae438","wires":[["cefb5d61.5cfae"]]},{"id":"cefb5d61.5cfae","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=unassign\" />\n","comments":"","x":1708.2221603393555,"y":1063.5555746555328,"z":"893326ee.bae438","wires":[]},{"id":"ec0a16a2.d398b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1864.0793266296387,"y":504.0317687988281,"z":"893326ee.bae438","wires":[["8020e36.a7e482","6c805fc8.58afb","a182697b.c45e68","c43eb58f.69d438","474a1931.cb3468","fb13eb4d.718288","beb405ab.4654d8","9bbcec2b.09769"]]},{"id":"619f5f72.2ac62","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1823.5555419921875,"y":763.5555725097656,"z":"893326ee.bae438","wires":[["c43eb58f.69d438","fb13eb4d.718288"]]},{"id":"3e9b45b4.1ff76a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1869.5555419921875,"y":853.5555725097656,"z":"893326ee.bae438","wires":[["c43eb58f.69d438","fb13eb4d.718288"]]},{"id":"1b3b1eab.cd8bc1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1853.555435180664,"y":1017.8889226913452,"z":"893326ee.bae438","wires":[["c43eb58f.69d438"]]},{"id":"8020e36.a7e482","type":"switchNode","name":"switch vlan-tag","xml":"<switch test='`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag`'>\n","comments":"","outputs":1,"x":2200.174575805664,"y":377.60317516326904,"z":"893326ee.bae438","wires":[["219b4575.07624a"]]},{"id":"219b4575.07624a","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2366.1744232177734,"y":377.4127187728882,"z":"893326ee.bae438","wires":[["8270f4ae.45f928"]]},{"id":"8270f4ae.45f928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-topology-operation-input.security-zone-request-input.vlan-tag is a required input\" />\n","comments":"","x":2522.365135192871,"y":377.41267108917236,"z":"893326ee.bae438","wires":[]},{"id":"a182697b.c45e68","type":"switchNode","name":"switch onap-model-information.model-customization-uuid","xml":"<switch test='`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":2334.4129180908203,"y":300.5556230545044,"z":"893326ee.bae438","wires":[["d0a4dd20.c4866"]]},{"id":"d0a4dd20.c4866","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2628.412826538086,"y":301.5555639266968,"z":"893326ee.bae438","wires":[["c36cc0f.8c7124"]]},{"id":"c36cc0f.8c7124","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":2775.841293334961,"y":301.5555639266968,"z":"893326ee.bae438","wires":[]},{"id":"e80fb296.5b5af","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":671.9126892089844,"y":1161.0555114746094,"z":"893326ee.bae438","wires":[]},{"id":"6c805fc8.58afb","type":"get-resource","name":"get-resource AR_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\n  pfx='ar-model'>\n\n","comments":"","outputs":1,"x":2236.6076889038086,"y":522.0873641967773,"z":"893326ee.bae438","wires":[["dea250d4.a547c","a0f786da.b959f8"]]},{"id":"d0b05c60.619cc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No allotted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":2693.690872192383,"y":502.75396156311035,"z":"893326ee.bae438","wires":[]},{"id":"dea250d4.a547c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2494.9409523010254,"y":498.111177444458,"z":"893326ee.bae438","wires":[["d0b05c60.619cc"]]},{"id":"a0f786da.b959f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2488.6909523010254,"y":530.611177444458,"z":"893326ee.bae438","wires":[["d0b05c60.619cc"]]},{"id":"3a2f6108.3a98ce","type":"other","name":"CreateSecurityZoneInstance","xml":"<outcome value='CreateSecurityZoneInstance'>","comments":"","outputs":1,"x":1038.6032104492188,"y":253.17459869384766,"z":"893326ee.bae438","wires":[["93d6c176.7fe5a"]]},{"id":"d7c95278.f68aa","type":"other","name":"DeleteSecurityZoneInstance","xml":"<outcome value='DeleteSecurityZoneInstance'>","comments":"","outputs":1,"x":1038.8888549804688,"y":290.6032180786133,"z":"893326ee.bae438","wires":[["93d6c176.7fe5a"]]},{"id":"c59cbe0b.ae17b","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":981.7936515808105,"y":371.74609756469727,"z":"893326ee.bae438","wires":[["bef0c21f.d802e"]]},{"id":"bef0c21f.d802e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid request-information.request-action \" />\n","comments":"","x":1153.2220573425293,"y":372.7461128234863,"z":"893326ee.bae438","wires":[]},{"id":"36ba5c7b.d8e654","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$security-zone-topology-operation-input.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":739.984130859375,"y":447.41273498535156,"z":"893326ee.bae438","wires":[["d53e7631.c0fea8"]]},{"id":"d53e7631.c0fea8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":956.4127197265625,"y":448.41273498535156,"z":"893326ee.bae438","wires":[["2579090b.0e1e76"]]},{"id":"2579090b.0e1e76","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n","comments":"","x":1114.8412475585938,"y":447.41273498535156,"z":"893326ee.bae438","wires":[]},{"id":"f0422740.d800b8","type":"other","name":"create","xml":"<outcome value='create'>","comments":"","outputs":1,"x":913.3332862854004,"y":660.4629507064819,"z":"893326ee.bae438","wires":[["46b3f2f8.0ea61c"]]},{"id":"46b3f2f8.0ea61c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1073.9522857666016,"y":659.8915205001831,"z":"893326ee.bae438","wires":[["52a155fb.f8541c"]]},{"id":"52a155fb.f8541c","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1293.9522857666016,"y":659.8915205001831,"z":"893326ee.bae438","wires":[["533f0552.201dac","7340b4fd.0ee38c"]]},{"id":"533f0552.201dac","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1551.285779953003,"y":663.8915729522705,"z":"893326ee.bae438","wires":[["47df574e.a59c98"]]},{"id":"47df574e.a59c98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=create\" />\n","comments":"","x":1716.9522857666016,"y":663.8915405273438,"z":"893326ee.bae438","wires":[]},{"id":"7340b4fd.0ee38c","type":"other","name":"CreateSecurityZoneInstance","xml":"<outcome value='CreateSecurityZoneInstance'>","comments":"","outputs":1,"x":1623.3332061767578,"y":628.7962646484375,"z":"893326ee.bae438","wires":[["e6d64f7d.65b1e"]]},{"id":"e6d64f7d.65b1e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1859.3332061767578,"y":627.7962646484375,"z":"893326ee.bae438","wires":[["c43eb58f.69d438","fb13eb4d.718288"]]},{"id":"12034d41.71a063","type":"other","name":"CreateSecurityZoneInstance","xml":"<outcome value='CreateSecurityZoneInstance'>","comments":"","outputs":1,"x":1608.3332595825195,"y":762.1296367645264,"z":"893326ee.bae438","wires":[["619f5f72.2ac62"]]},{"id":"f1ddac97.f2155","type":"other","name":"delete","xml":"<outcome value='delete'>","comments":"","outputs":1,"x":926.6666564941406,"y":937.1295366287231,"z":"893326ee.bae438","wires":[["d42c764.9db5b88"]]},{"id":"d42c764.9db5b88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1108.6666870117188,"y":933.1295595169067,"z":"893326ee.bae438","wires":[["9fad38e8.eba248"]]},{"id":"9fad38e8.eba248","type":"switchNode","name":"switch request-action","xml":"<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":1325.6666870117188,"y":933.1295595169067,"z":"893326ee.bae438","wires":[["3f661399.88316c","fb7e534f.3179a"]]},{"id":"3f661399.88316c","type":"other","name":"DeleteSecurityZoneInstance","xml":"<outcome value='DeleteSecurityZoneInstance'>","comments":"","outputs":1,"x":1606.6665573120117,"y":934.1295766830444,"z":"893326ee.bae438","wires":[["18534a5c.e61196"]]},{"id":"fb7e534f.3179a","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"","outputs":1,"x":1549.6666870117188,"y":974.1295595169067,"z":"893326ee.bae438","wires":[["c5006813.200e48"]]},{"id":"c5006813.200e48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=delete\" />\n","comments":"","x":1718.6666870117188,"y":974.1295595169067,"z":"893326ee.bae438","wires":[]},{"id":"18534a5c.e61196","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":1865.6666870117188,"y":935.1295595169067,"z":"893326ee.bae438","wires":[["c43eb58f.69d438","fb13eb4d.718288"]]},{"id":"93d6c176.7fe5a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1254.9999656677246,"y":284.499981880188,"z":"893326ee.bae438","wires":[[]]},{"id":"c43eb58f.69d438","type":"switchNode","name":"switch allotted-resource-id","xml":"<switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n","comments":"","outputs":1,"x":2236.349380493164,"y":148.09522247314453,"z":"893326ee.bae438","wires":[["95717a57.0e1fc8"]]},{"id":"95717a57.0e1fc8","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2436.8850631713867,"y":146.66665077209473,"z":"893326ee.bae438","wires":[["7ad0865a.9d5808"]]},{"id":"7ad0865a.9d5808","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-id is a required input\" />\n","comments":"","x":2588.3135299682617,"y":145.66665077209473,"z":"893326ee.bae438","wires":[]},{"id":"474a1931.cb3468","type":"switchNode","name":"switch allotted-resource-type","xml":"<switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n","comments":"","outputs":1,"x":2242.7779235839844,"y":183.29363822937012,"z":"893326ee.bae438","wires":[["78aa6b52.fbc154"]]},{"id":"78aa6b52.fbc154","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2443.3134689331055,"y":181.86506843566895,"z":"893326ee.bae438","wires":[["d2e8d08f.df20e"]]},{"id":"d2e8d08f.df20e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-type is a required input\" />\n","comments":"","x":2594.7419357299805,"y":180.86506843566895,"z":"893326ee.bae438","wires":[]},{"id":"fb13eb4d.718288","type":"switchNode","name":"switch parent-service-instance-id","xml":"<switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\n","comments":"","outputs":1,"x":2255.63516998291,"y":219.0079231262207,"z":"893326ee.bae438","wires":[["dec9289b.c35878"]]},{"id":"dec9289b.c35878","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2471.349319458008,"y":216.1507797241211,"z":"893326ee.bae438","wires":[["45bd6332.b157fc"]]},{"id":"45bd6332.b157fc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.parent-service-instance-id is a required input\" />\n","comments":"","x":2622.777786254883,"y":215.1507797241211,"z":"893326ee.bae438","wires":[]},{"id":"beb405ab.4654d8","type":"switchNode","name":"switch trusted-network-role","xml":"<switch test='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`'>\n","comments":"","outputs":1,"x":2231.984031677246,"y":412.1983833312988,"z":"893326ee.bae438","wires":[["20e7c9ab.48a486"]]},{"id":"20e7c9ab.48a486","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2494.174690246582,"y":408.5793528556824,"z":"893326ee.bae438","wires":[["a43fc0ee.20e45"]]},{"id":"a43fc0ee.20e45","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-topology-operation-input.security-zone-request-input.trusted-network-role is a required input\" />\n","comments":"","x":2659.174835205078,"y":408.57931327819824,"z":"893326ee.bae438","wires":[]},{"id":"9bbcec2b.09769","type":"switchNode","name":"switch untrusted-network-role","xml":"<switch test='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`'>\n","comments":"","outputs":1,"x":2249.2224464416504,"y":446.74599266052246,"z":"893326ee.bae438","wires":[["d404d9bd.d65288"]]},{"id":"d404d9bd.d65288","type":"other","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2494.22261428833,"y":446.7459878921509,"z":"893326ee.bae438","wires":[["a2180ae0.fe41f8"]]},{"id":"a2180ae0.fe41f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-operation-input.security-zone-request-input.untrusted-network-role is a required input\" />\n","comments":"","x":2660.651081085205,"y":446.74595737457275,"z":"893326ee.bae438","wires":[]}]
+[
+    {
+        "id": "d8f6b3bb.4c275",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 235.55557250976562,
+        "y": 315.5555419921875,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "a018c9a4.117f98"
+            ]
+        ]
+    },
+    {
+        "id": "a018c9a4.117f98",
+        "type": "service-logic",
+        "name": "GENERIC-RESOURCE-API ${project.version}",
+        "module": "GENERIC-RESOURCE-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 391.8412780761719,
+        "y": 389.7936553955078,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "3f03d10e.2ffb5e"
+            ]
+        ]
+    },
+    {
+        "id": "3f03d10e.2ffb5e",
+        "type": "method",
+        "name": "validate-security-zone-input",
+        "xml": "<method rpc='validate-security-zone-input' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 391.9841842651367,
+        "y": 453.22223949432373,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "b2b60df0.c53fb"
+            ]
+        ]
+    },
+    {
+        "id": "b2b60df0.c53fb",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 405.3056182861328,
+        "y": 733.9990367889404,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "e18f70ed.64e6e",
+                "c55d0b64.80ebf8",
+                "798d06aa.649188",
+                "9a6b6b65.fb46e8",
+                "e80fb296.5b5af",
+                "36ba5c7b.d8e654"
+            ]
+        ]
+    },
+    {
+        "id": "e18f70ed.64e6e",
+        "type": "switchNode",
+        "name": "switch svc-request-id",
+        "xml": "<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 740.3651428222656,
+        "y": 218.65082263946533,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "991652a9.25d26"
+            ]
+        ]
+    },
+    {
+        "id": "991652a9.25d26",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 970.0794279915945,
+        "y": 216.65081936972456,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "aa2be7a3.2f0818"
+            ]
+        ]
+    },
+    {
+        "id": "aa2be7a3.2f0818",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
+        "comments": "",
+        "x": 1121.5079345703125,
+        "y": 213.31748580932617,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "c55d0b64.80ebf8",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 732.9364929199219,
+        "y": 172.22222137451172,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "86d6351c.c6dd08"
+            ]
+        ]
+    },
+    {
+        "id": "86d6351c.c6dd08",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 968.6508483886719,
+        "y": 173.79364490509033,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "b2821e24.be3db"
+            ]
+        ]
+    },
+    {
+        "id": "b2821e24.be3db",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
+        "comments": "",
+        "x": 1118.650821685791,
+        "y": 173.7936544418335,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "798d06aa.649188",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 742.9365386962891,
+        "y": 267.5079708099365,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "cbf1edf6.578e5",
+                "3a2f6108.3a98ce",
+                "d7c95278.f68aa",
+                "c59cbe0b.ae17b"
+            ]
+        ]
+    },
+    {
+        "id": "cbf1edf6.578e5",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 977.9841423034668,
+        "y": 331.3651924133301,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "7c061461.ed6d7c"
+            ]
+        ]
+    },
+    {
+        "id": "7c061461.ed6d7c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
+        "comments": "",
+        "x": 1149.412582397461,
+        "y": 331.36519145965576,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "4bfff6bd.144358",
+        "type": "comment",
+        "name": "validate-security-zone-input - CHANGELOG",
+        "info": "3/22: Initial release 1.0.0",
+        "comments": "",
+        "x": 248.55557250976562,
+        "y": 219.5555419921875,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "9a6b6b65.fb46e8",
+        "type": "switchNode",
+        "name": "switch svc-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 645.2222328186035,
+        "y": 739.5555782318115,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "f61c14ca.d17008",
+                "c832b3ea.1cb26",
+                "ce191e6f.c63c",
+                "83dfb84.6c9ec48",
+                "f0422740.d800b8",
+                "f1ddac97.f2155"
+            ]
+        ]
+    },
+    {
+        "id": "f61c14ca.d17008",
+        "type": "other",
+        "name": "assign",
+        "xml": "<outcome value='assign'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 906.2699356079102,
+        "y": 575.1270084381104,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "7ceecd60.009724"
+            ]
+        ]
+    },
+    {
+        "id": "c832b3ea.1cb26",
+        "type": "other",
+        "name": "activate",
+        "xml": "<outcome value='activate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 926.5555419921875,
+        "y": 762.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "72bc9a53.a4a1c4"
+            ]
+        ]
+    },
+    {
+        "id": "ce191e6f.c63c",
+        "type": "other",
+        "name": "deactivate",
+        "xml": "<outcome value='deactivate'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 933.5555419921875,
+        "y": 852.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "ed55d557.297dd8"
+            ]
+        ]
+    },
+    {
+        "id": "7ceecd60.009724",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1063.5555725097656,
+        "y": 577.8889179229736,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "ba167228.b3ffe"
+            ]
+        ]
+    },
+    {
+        "id": "ba167228.b3ffe",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1271.8889541625977,
+        "y": 577.8889236450195,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "e9519759.0bd708",
+                "b5904d01.67034"
+            ]
+        ]
+    },
+    {
+        "id": "e9519759.0bd708",
+        "type": "other",
+        "name": "CreateSecurityZoneInstance",
+        "xml": "<outcome value='CreateSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1618.0793151855469,
+        "y": 505.0317816734314,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "ec0a16a2.d398b8"
+            ]
+        ]
+    },
+    {
+        "id": "b5904d01.67034",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1557.5555534362793,
+        "y": 571.8889350891113,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "6ff9efab.1acb8"
+            ]
+        ]
+    },
+    {
+        "id": "6ff9efab.1acb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=assign\" />\n",
+        "comments": "",
+        "x": 1704.8888969421387,
+        "y": 573.5556974411011,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "72bc9a53.a4a1c4",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1100.5555419921875,
+        "y": 762.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "f8cd13e2.ec99a"
+            ]
+        ]
+    },
+    {
+        "id": "f8cd13e2.ec99a",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1317.5555419921875,
+        "y": 762.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "29c24ed5.8c97a2",
+                "12034d41.71a063"
+            ]
+        ]
+    },
+    {
+        "id": "29c24ed5.8c97a2",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1541.5555419921875,
+        "y": 803.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c4fec971.125ad8"
+            ]
+        ]
+    },
+    {
+        "id": "c4fec971.125ad8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=activate\" />\n",
+        "comments": "",
+        "x": 1710.5555419921875,
+        "y": 803.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "ed55d557.297dd8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1115.5555419921875,
+        "y": 851.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "55f7035.720defc"
+            ]
+        ]
+    },
+    {
+        "id": "55f7035.720defc",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1332.5555419921875,
+        "y": 851.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "94748701.276ad8",
+                "94eb145d.dbec38"
+            ]
+        ]
+    },
+    {
+        "id": "94748701.276ad8",
+        "type": "other",
+        "name": "DeleteSecurityZoneInstance",
+        "xml": "<outcome value='DeleteSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1615.2220764160156,
+        "y": 850.8889589309692,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "3e9b45b4.1ff76a"
+            ]
+        ]
+    },
+    {
+        "id": "94eb145d.dbec38",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1556.5555419921875,
+        "y": 892.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "610782ce.0e012c"
+            ]
+        ]
+    },
+    {
+        "id": "610782ce.0e012c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=deactivate\" />\n",
+        "comments": "",
+        "x": 1725.5555419921875,
+        "y": 892.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "83dfb84.6c9ec48",
+        "type": "other",
+        "name": "unassign",
+        "xml": "<outcome value='unassign'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 914.5554046630859,
+        "y": 1019.8888998031616,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "97760e1d.874c1"
+            ]
+        ]
+    },
+    {
+        "id": "97760e1d.874c1",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1096.555435180664,
+        "y": 1015.8889226913452,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d856938c.c7fcd"
+            ]
+        ]
+    },
+    {
+        "id": "d856938c.c7fcd",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1313.555435180664,
+        "y": 1015.8889226913452,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "8ba8ac96.939ac",
+                "ac3bb1cc.3a778"
+            ]
+        ]
+    },
+    {
+        "id": "8ba8ac96.939ac",
+        "type": "other",
+        "name": "DeleteSecurityZoneInstance",
+        "xml": "<outcome value='DeleteSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1594.555305480957,
+        "y": 1016.8889398574829,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "1b3b1eab.cd8bc1"
+            ]
+        ]
+    },
+    {
+        "id": "ac3bb1cc.3a778",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1537.555435180664,
+        "y": 1056.8889226913452,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "cefb5d61.5cfae"
+            ]
+        ]
+    },
+    {
+        "id": "cefb5d61.5cfae",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=unassign\" />\n",
+        "comments": "",
+        "x": 1708.2221603393555,
+        "y": 1063.5555746555328,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "ec0a16a2.d398b8",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1864.0793266296387,
+        "y": 504.0317687988281,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "8020e36.a7e482",
+                "6c805fc8.58afb",
+                "a182697b.c45e68",
+                "c43eb58f.69d438",
+                "474a1931.cb3468",
+                "fb13eb4d.718288",
+                "beb405ab.4654d8",
+                "9bbcec2b.09769"
+            ]
+        ]
+    },
+    {
+        "id": "619f5f72.2ac62",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1823.5555419921875,
+        "y": 763.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c43eb58f.69d438",
+                "fb13eb4d.718288"
+            ]
+        ]
+    },
+    {
+        "id": "3e9b45b4.1ff76a",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1869.5555419921875,
+        "y": 853.5555725097656,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c43eb58f.69d438",
+                "fb13eb4d.718288"
+            ]
+        ]
+    },
+    {
+        "id": "1b3b1eab.cd8bc1",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1853.555435180664,
+        "y": 1017.8889226913452,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c43eb58f.69d438"
+            ]
+        ]
+    },
+    {
+        "id": "8020e36.a7e482",
+        "type": "switchNode",
+        "name": "switch vlan-tag",
+        "xml": "<switch test='`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2200.174575805664,
+        "y": 377.60317516326904,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "219b4575.07624a"
+            ]
+        ]
+    },
+    {
+        "id": "219b4575.07624a",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2366.1744232177734,
+        "y": 377.4127187728882,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "8270f4ae.45f928"
+            ]
+        ]
+    },
+    {
+        "id": "8270f4ae.45f928",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-topology-operation-input.security-zone-request-input.vlan-tag is a required input\" />\n",
+        "comments": "",
+        "x": 2522.365135192871,
+        "y": 377.41267108917236,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "a182697b.c45e68",
+        "type": "switchNode",
+        "name": "switch onap-model-information.model-customization-uuid",
+        "xml": "<switch test='`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2334.4129180908203,
+        "y": 300.5556230545044,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d0a4dd20.c4866"
+            ]
+        ]
+    },
+    {
+        "id": "d0a4dd20.c4866",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2628.412826538086,
+        "y": 301.5555639266968,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c36cc0f.8c7124"
+            ]
+        ]
+    },
+    {
+        "id": "c36cc0f.8c7124",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-information.onap-model-information.model-customization-uuid is a required input\" />\n",
+        "comments": "",
+        "x": 2775.841293334961,
+        "y": 301.5555639266968,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "e80fb296.5b5af",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
+        "comments": "",
+        "x": 671.9126892089844,
+        "y": 1161.0555114746094,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "6c805fc8.58afb",
+        "type": "get-resource",
+        "name": "get-resource AR_MODEL",
+        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\n  pfx='ar-model'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2236.6076889038086,
+        "y": 522.0873641967773,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "dea250d4.a547c",
+                "a0f786da.b959f8"
+            ]
+        ]
+    },
+    {
+        "id": "d0b05c60.619cc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No alloted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`\" />\n",
+        "comments": "",
+        "x": 2693.690872192383,
+        "y": 502.75396156311035,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "dea250d4.a547c",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2494.9409523010254,
+        "y": 498.111177444458,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d0b05c60.619cc"
+            ]
+        ]
+    },
+    {
+        "id": "a0f786da.b959f8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2488.6909523010254,
+        "y": 530.611177444458,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d0b05c60.619cc"
+            ]
+        ]
+    },
+    {
+        "id": "3a2f6108.3a98ce",
+        "type": "other",
+        "name": "CreateSecurityZoneInstance",
+        "xml": "<outcome value='CreateSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1038.6032104492188,
+        "y": 253.17459869384766,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "93d6c176.7fe5a"
+            ]
+        ]
+    },
+    {
+        "id": "d7c95278.f68aa",
+        "type": "other",
+        "name": "DeleteSecurityZoneInstance",
+        "xml": "<outcome value='DeleteSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1038.8888549804688,
+        "y": 290.6032180786133,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "93d6c176.7fe5a"
+            ]
+        ]
+    },
+    {
+        "id": "c59cbe0b.ae17b",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 981.7936515808105,
+        "y": 371.74609756469727,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "bef0c21f.d802e"
+            ]
+        ]
+    },
+    {
+        "id": "bef0c21f.d802e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Invalid request-information.request-action \" />\n",
+        "comments": "",
+        "x": 1153.2220573425293,
+        "y": 372.7461128234863,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "36ba5c7b.d8e654",
+        "type": "switchNode",
+        "name": "switch service-instance-id",
+        "xml": "<switch test='`$security-zone-topology-operation-input.service-information.service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 739.984130859375,
+        "y": 447.41273498535156,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d53e7631.c0fea8"
+            ]
+        ]
+    },
+    {
+        "id": "d53e7631.c0fea8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 956.4127197265625,
+        "y": 448.41273498535156,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "2579090b.0e1e76"
+            ]
+        ]
+    },
+    {
+        "id": "2579090b.0e1e76",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 1114.8412475585938,
+        "y": 447.41273498535156,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "f0422740.d800b8",
+        "type": "other",
+        "name": "create",
+        "xml": "<outcome value='create'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 913.3332862854004,
+        "y": 660.4629507064819,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "46b3f2f8.0ea61c"
+            ]
+        ]
+    },
+    {
+        "id": "46b3f2f8.0ea61c",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1073.9522857666016,
+        "y": 659.8915205001831,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "52a155fb.f8541c"
+            ]
+        ]
+    },
+    {
+        "id": "52a155fb.f8541c",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1293.9522857666016,
+        "y": 659.8915205001831,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "533f0552.201dac",
+                "7340b4fd.0ee38c"
+            ]
+        ]
+    },
+    {
+        "id": "533f0552.201dac",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1551.285779953003,
+        "y": 663.8915729522705,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "47df574e.a59c98"
+            ]
+        ]
+    },
+    {
+        "id": "47df574e.a59c98",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=create\" />\n",
+        "comments": "",
+        "x": 1716.9522857666016,
+        "y": 663.8915405273438,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "7340b4fd.0ee38c",
+        "type": "other",
+        "name": "CreateSecurityZoneInstance",
+        "xml": "<outcome value='CreateSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1623.3332061767578,
+        "y": 628.7962646484375,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "e6d64f7d.65b1e"
+            ]
+        ]
+    },
+    {
+        "id": "e6d64f7d.65b1e",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1859.3332061767578,
+        "y": 627.7962646484375,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c43eb58f.69d438",
+                "fb13eb4d.718288"
+            ]
+        ]
+    },
+    {
+        "id": "12034d41.71a063",
+        "type": "other",
+        "name": "CreateSecurityZoneInstance",
+        "xml": "<outcome value='CreateSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1608.3332595825195,
+        "y": 762.1296367645264,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "619f5f72.2ac62"
+            ]
+        ]
+    },
+    {
+        "id": "f1ddac97.f2155",
+        "type": "other",
+        "name": "delete",
+        "xml": "<outcome value='delete'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 926.6666564941406,
+        "y": 937.1295366287231,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d42c764.9db5b88"
+            ]
+        ]
+    },
+    {
+        "id": "d42c764.9db5b88",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1108.6666870117188,
+        "y": 933.1295595169067,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "9fad38e8.eba248"
+            ]
+        ]
+    },
+    {
+        "id": "9fad38e8.eba248",
+        "type": "switchNode",
+        "name": "switch request-action",
+        "xml": "<switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1325.6666870117188,
+        "y": 933.1295595169067,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "3f661399.88316c",
+                "fb7e534f.3179a"
+            ]
+        ]
+    },
+    {
+        "id": "3f661399.88316c",
+        "type": "other",
+        "name": "DeleteSecurityZoneInstance",
+        "xml": "<outcome value='DeleteSecurityZoneInstance'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1606.6665573120117,
+        "y": 934.1295766830444,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "18534a5c.e61196"
+            ]
+        ]
+    },
+    {
+        "id": "fb7e534f.3179a",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1549.6666870117188,
+        "y": 974.1295595169067,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c5006813.200e48"
+            ]
+        ]
+    },
+    {
+        "id": "c5006813.200e48",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=delete\" />\n",
+        "comments": "",
+        "x": 1718.6666870117188,
+        "y": 974.1295595169067,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "18534a5c.e61196",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1865.6666870117188,
+        "y": 935.1295595169067,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "c43eb58f.69d438",
+                "fb13eb4d.718288"
+            ]
+        ]
+    },
+    {
+        "id": "93d6c176.7fe5a",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1254.9999656677246,
+        "y": 284.499981880188,
+        "z": "893326ee.bae438",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c43eb58f.69d438",
+        "type": "switchNode",
+        "name": "switch allotted-resource-id",
+        "xml": "<switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2236.349380493164,
+        "y": 148.09522247314453,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "95717a57.0e1fc8"
+            ]
+        ]
+    },
+    {
+        "id": "95717a57.0e1fc8",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2436.8850631713867,
+        "y": 146.66665077209473,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "7ad0865a.9d5808"
+            ]
+        ]
+    },
+    {
+        "id": "7ad0865a.9d5808",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-id is a required input\" />\n",
+        "comments": "",
+        "x": 2588.3135299682617,
+        "y": 145.66665077209473,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "474a1931.cb3468",
+        "type": "switchNode",
+        "name": "switch allotted-resource-type",
+        "xml": "<switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2242.7779235839844,
+        "y": 183.29363822937012,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "78aa6b52.fbc154"
+            ]
+        ]
+    },
+    {
+        "id": "78aa6b52.fbc154",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2443.3134689331055,
+        "y": 181.86506843566895,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d2e8d08f.df20e"
+            ]
+        ]
+    },
+    {
+        "id": "d2e8d08f.df20e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.allotted-resource-type is a required input\" />\n",
+        "comments": "",
+        "x": 2594.7419357299805,
+        "y": 180.86506843566895,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "fb13eb4d.718288",
+        "type": "switchNode",
+        "name": "switch parent-service-instance-id",
+        "xml": "<switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2255.63516998291,
+        "y": 219.0079231262207,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "dec9289b.c35878"
+            ]
+        ]
+    },
+    {
+        "id": "dec9289b.c35878",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2471.349319458008,
+        "y": 216.1507797241211,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "45bd6332.b157fc"
+            ]
+        ]
+    },
+    {
+        "id": "45bd6332.b157fc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"allotted-resource-information.parent-service-instance-id is a required input\" />\n",
+        "comments": "",
+        "x": 2622.777786254883,
+        "y": 215.1507797241211,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "beb405ab.4654d8",
+        "type": "switchNode",
+        "name": "switch trusted-network-role",
+        "xml": "<switch test='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2231.984031677246,
+        "y": 412.1983833312988,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "20e7c9ab.48a486"
+            ]
+        ]
+    },
+    {
+        "id": "20e7c9ab.48a486",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2494.174690246582,
+        "y": 408.5793528556824,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "a43fc0ee.20e45"
+            ]
+        ]
+    },
+    {
+        "id": "a43fc0ee.20e45",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-topology-operation-input.security-zone-request-input.trusted-network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2659.174835205078,
+        "y": 408.57931327819824,
+        "z": "893326ee.bae438",
+        "wires": []
+    },
+    {
+        "id": "9bbcec2b.09769",
+        "type": "switchNode",
+        "name": "switch untrusted-network-role",
+        "xml": "<switch test='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2249.2224464416504,
+        "y": 446.74599266052246,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "d404d9bd.d65288"
+            ]
+        ]
+    },
+    {
+        "id": "d404d9bd.d65288",
+        "type": "other",
+        "name": "NULL",
+        "xml": "<outcome value=''>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2494.22261428833,
+        "y": 446.7459878921509,
+        "z": "893326ee.bae438",
+        "wires": [
+            [
+                "a2180ae0.fe41f8"
+            ]
+        ]
+    },
+    {
+        "id": "a2180ae0.fe41f8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"security-zone-operation-input.security-zone-request-input.untrusted-network-role is a required input\" />\n",
+        "comments": "",
+        "x": 2660.651081085205,
+        "y": 446.74595737457275,
+        "z": "893326ee.bae438",
+        "wires": []
+    }
+]
\ No newline at end of file
index 948336c..fb7d439 100644 (file)
@@ -1,531 +1 @@
-[
-    {
-        "id": "d54a485.152c1b8",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 167.4999901907786,
-        "y": 410.00000422341486,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "bcfa11de.2ed69",
-                "c928e0b1.6f8ba",
-                "862c95fc.9314d8",
-                "57d36230.80271c"
-            ]
-        ]
-    },
-    {
-        "id": "bcfa11de.2ed69",
-        "type": "switchNode",
-        "name": "switch svc-request-id",
-        "xml": "<switch test='`$service-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 454.5476303100586,
-        "y": 315.9374895095825,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "388829d5.26a2f6"
-            ]
-        ]
-    },
-    {
-        "id": "388829d5.26a2f6",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 680.2619247436523,
-        "y": 315.9374933242798,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "9ad322ba.1f5cf"
-            ]
-        ]
-    },
-    {
-        "id": "9ad322ba.1f5cf",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
-        "comments": "",
-        "x": 831.6904907226562,
-        "y": 315.93749141693115,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "c928e0b1.6f8ba",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 443.118993486677,
-        "y": 274.50892107827326,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "14a44603.cceb6a"
-            ]
-        ]
-    },
-    {
-        "id": "14a44603.cceb6a",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 678.8333451407298,
-        "y": 273.08031885964533,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "2dd27fa8.9909d"
-            ]
-        ]
-    },
-    {
-        "id": "2dd27fa8.9909d",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
-        "comments": "",
-        "x": 828.8333184378489,
-        "y": 273.0803283963885,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "862c95fc.9314d8",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$service-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 453.11904689243875,
-        "y": 358.7946361814227,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "d18a5e6f.1258e"
-            ]
-        ]
-    },
-    {
-        "id": "d18a5e6f.1258e",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 680.2619203839986,
-        "y": 358.79464708055775,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "2fcf1e47.c379d2"
-            ]
-        ]
-    },
-    {
-        "id": "2fcf1e47.c379d2",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
-        "comments": "",
-        "x": 831.6904863630025,
-        "y": 358.7946451732091,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "1abfff83.8ab75",
-        "type": "switchNode",
-        "name": "switch subscription-service-type",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.subscription-service-type`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1005.4405844552175,
-        "y": 480.9375510896955,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "4139e9.e71e3618"
-            ]
-        ]
-    },
-    {
-        "id": "4139e9.e71e3618",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1201.1548788888113,
-        "y": 480.93754822867254,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "c6f3b245.5780c"
-            ]
-        ]
-    },
-    {
-        "id": "c6f3b245.5780c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.subscription-service-type is a required input\" />\n",
-        "comments": "",
-        "x": 1352.583429609026,
-        "y": 480.93753773825506,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "742df1ab.3ae88",
-        "type": "switchNode",
-        "name": "switch global-customer-id",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.global-customer-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 985.4406378609792,
-        "y": 522.3661514009748,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "7ba07ba.47bde84"
-            ]
-        ]
-    },
-    {
-        "id": "7ba07ba.47bde84",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1201.1548865182058,
-        "y": 522.3661533083234,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "cbe8d9bd.9c8618"
-            ]
-        ]
-    },
-    {
-        "id": "cbe8d9bd.9c8618",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.global-customer-id is a required input\" />\n",
-        "comments": "",
-        "x": 1352.5834524972097,
-        "y": 522.3661514009748,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "1fcc9e4a.90b532",
-        "type": "switchNode",
-        "name": "switch model-invariant-uuid",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 991.1548560006277,
-        "y": 563.7947231020246,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "a2b56163.2eead"
-            ]
-        ]
-    },
-    {
-        "id": "a2b56163.2eead",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1201.1548636300222,
-        "y": 563.7947498049055,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "85da17f9.7b6ee8"
-            ]
-        ]
-    },
-    {
-        "id": "85da17f9.7b6ee8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-invariant-uuid is a required input\" />\n",
-        "comments": "",
-        "x": 1352.583429609026,
-        "y": 563.7947478975568,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "96d57264.57088",
-        "type": "switchNode",
-        "name": "switch model-uuid",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 961.1549551827566,
-        "y": 605.2233367647443,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "b0c11ff.c6916e"
-            ]
-        ]
-    },
-    {
-        "id": "b0c11ff.c6916e",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1201.1549551827566,
-        "y": 605.2233195986066,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "6ef2e613.020628"
-            ]
-        ]
-    },
-    {
-        "id": "6ef2e613.020628",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-uuid is a required input\" />\n",
-        "comments": "",
-        "x": 1352.5835211617605,
-        "y": 605.223317691258,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "731761a3.6eed4",
-        "type": "switchNode",
-        "name": "switch model-name",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 964.0120337350027,
-        "y": 646.6518474306379,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "65032b2e.022024"
-            ]
-        ]
-    },
-    {
-        "id": "65032b2e.022024",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1199.72635105678,
-        "y": 646.6518817629133,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "b67eae73.a9f6c"
-            ]
-        ]
-    },
-    {
-        "id": "b67eae73.a9f6c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-name is a required input\" />\n",
-        "comments": "",
-        "x": 1351.154917035784,
-        "y": 646.6518798555646,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "fb62d34c.a0426",
-        "type": "comment",
-        "name": "Validation of required fields",
-        "info": "",
-        "comments": "",
-        "x": 603.1190032958984,
-        "y": 230.22320365905762,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "57d36230.80271c",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 438.35706329345703,
-        "y": 563.1994934082031,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "737f9c27.6f5f04"
-            ]
-        ]
-    },
-    {
-        "id": "737f9c27.6f5f04",
-        "type": "outcome",
-        "name": "assign",
-        "xml": "<outcome value='assign'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 600.857063293457,
-        "y": 563.1994934082031,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "9f47db00.e034a8"
-            ]
-        ]
-    },
-    {
-        "id": "9f47db00.e034a8",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 755.857063293457,
-        "y": 563.1994934082031,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "1abfff83.8ab75",
-                "742df1ab.3ae88",
-                "1fcc9e4a.90b532",
-                "96d57264.57088",
-                "731761a3.6eed4",
-                "7ae25d13.e12ea4"
-            ]
-        ]
-    },
-    {
-        "id": "8465d752.ecf868",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 111.25,
-        "y": 79.91365623474121,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "9f7bd881.0481b8"
-            ]
-        ]
-    },
-    {
-        "id": "9f7bd881.0481b8",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 186.53570556640625,
-        "y": 120.15176773071289,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "15072416.3cb84c"
-            ]
-        ]
-    },
-    {
-        "id": "15072416.3cb84c",
-        "type": "method",
-        "name": "method validate-service-input",
-        "xml": "<method rpc='validate-service-input' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 175.92862701416016,
-        "y": 161.16365242004395,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "d54a485.152c1b8"
-            ]
-        ]
-    },
-    {
-        "id": "6f67c5b7.423c2c",
-        "type": "comment",
-        "name": "validate-service-input",
-        "info": "",
-        "comments": "",
-        "x": 505.59485626220703,
-        "y": 27.5,
-        "z": "42cc1159.52eec",
-        "wires": []
-    },
-    {
-        "id": "7ae25d13.e12ea4",
-        "type": "switchNode",
-        "name": "switch service-id",
-        "xml": "<switch test='`$service-topology-operation-input.service-information.service-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 957.1428375244141,
-        "y": 440.428599357605,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "e9812407.bacf48"
-            ]
-        ]
-    },
-    {
-        "id": "e9812407.bacf48",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1197.571418762207,
-        "y": 440.4285955429077,
-        "z": "42cc1159.52eec",
-        "wires": [
-            [
-                "9d9de464.0da3a8"
-            ]
-        ]
-    },
-    {
-        "id": "9d9de464.0da3a8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-id is a required input\" />\n",
-        "comments": "",
-        "x": 1348.999984741211,
-        "y": 440.4285936355591,
-        "z": "42cc1159.52eec",
-        "wires": []
-    }
-]
+[{"id":"edb23f9d.a0831","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":208.5714340209961,"y":432.857120513916,"z":"28243e86.88d342","wires":[["54626725.767df8","ae0ea7a6.aa4958","2ee7ae8e.ec3e02","572713cb.967e9c"]]},{"id":"54626725.767df8","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":454.19051361083984,"y":300.2232151031494,"z":"28243e86.88d342","wires":[["16c18fe2.37317"]]},{"id":"16c18fe2.37317","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":679.9048080444336,"y":300.2232189178467,"z":"28243e86.88d342","wires":[["7afca0eb.9cdce"]]},{"id":"7afca0eb.9cdce","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":831.3333740234375,"y":300.22321701049805,"z":"28243e86.88d342","wires":[]},{"id":"ae0ea7a6.aa4958","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":442.7618767874583,"y":258.79464667184016,"z":"28243e86.88d342","wires":[["3756f3ff.76490c"]]},{"id":"3756f3ff.76490c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":678.476228441511,"y":257.3660444532122,"z":"28243e86.88d342","wires":[["306ea9cf.6ce206"]]},{"id":"306ea9cf.6ce206","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":828.4762017386302,"y":257.3660539899554,"z":"28243e86.88d342","wires":[]},{"id":"2ee7ae8e.ec3e02","type":"switchNode","name":"switch request-action","xml":"<switch test='`$service-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":452.76193019322,"y":343.08036177498957,"z":"28243e86.88d342","wires":[["8d89fa.f2f75608"]]},{"id":"8d89fa.f2f75608","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":679.9048036847798,"y":343.08037267412465,"z":"28243e86.88d342","wires":[["2ce5e91a.3d5216"]]},{"id":"2ce5e91a.3d5216","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":831.3333696637837,"y":343.080370766776,"z":"28243e86.88d342","wires":[]},{"id":"44ec88dd.c9a958","type":"switchNode","name":"switch subscription-service-type","xml":"<switch test='`$service-topology-operation-input.service-information.subscription-service-type`'>\n","comments":"","outputs":1,"x":1075.083447047642,"y":430.937544958932,"z":"28243e86.88d342","wires":[["92ab775.631ee88"]]},{"id":"92ab775.631ee88","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1270.7977414812358,"y":430.93754209790904,"z":"28243e86.88d342","wires":[["e6796dc3.10f6c"]]},{"id":"e6796dc3.10f6c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.subscription-service-type is a required input\" />\n","comments":"","x":1422.2262922014506,"y":430.93753160749156,"z":"28243e86.88d342","wires":[]},{"id":"b8ebffbf.bce06","type":"switchNode","name":"switch global-customer-id","xml":"<switch test='`$service-topology-operation-input.service-information.global-customer-id`'>\n","comments":"","outputs":1,"x":1055.0835004534038,"y":472.3661452702113,"z":"28243e86.88d342","wires":[["3275964a.60192a"]]},{"id":"3275964a.60192a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1270.7977491106303,"y":472.3661471775599,"z":"28243e86.88d342","wires":[["2aa93764.d1ca48"]]},{"id":"2aa93764.d1ca48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.global-customer-id is a required input\" />\n","comments":"","x":1422.2263150896342,"y":472.3661452702113,"z":"28243e86.88d342","wires":[]},{"id":"f646cff6.1edd7","type":"switchNode","name":"switch model-invariant-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":1060.7977185930522,"y":513.7947169712611,"z":"28243e86.88d342","wires":[["dfbf13d8.eedeb"]]},{"id":"dfbf13d8.eedeb","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1270.7977262224467,"y":513.794743674142,"z":"28243e86.88d342","wires":[["c13e23d1.c796b"]]},{"id":"c13e23d1.c796b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-invariant-uuid is a required input\" />\n","comments":"","x":1422.2262922014506,"y":513.7947417667933,"z":"28243e86.88d342","wires":[]},{"id":"bae96f52.32ae8","type":"switchNode","name":"switch model-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":1030.797817775181,"y":555.2233306339808,"z":"28243e86.88d342","wires":[["dc4a3e4.f1212c"]]},{"id":"dc4a3e4.f1212c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1270.797817775181,"y":555.2233134678431,"z":"28243e86.88d342","wires":[["50e8e609.694fa8"]]},{"id":"50e8e609.694fa8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-uuid is a required input\" />\n","comments":"","x":1422.226383754185,"y":555.2233115604945,"z":"28243e86.88d342","wires":[]},{"id":"1b05c1d3.e757de","type":"switchNode","name":"switch model-name","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":1033.6548963274272,"y":596.6518412998744,"z":"28243e86.88d342","wires":[["57fd3f6c.ea562"]]},{"id":"57fd3f6c.ea562","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1269.3692136492045,"y":596.6518756321498,"z":"28243e86.88d342","wires":[["d82eb142.373f2"]]},{"id":"d82eb142.373f2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-name is a required input\" />\n","comments":"","x":1420.7977796282084,"y":596.6518737248011,"z":"28243e86.88d342","wires":[]},{"id":"8f018dc.a5bb37","type":"comment","name":"Validation of required fields","info":"","comments":"","x":602.7618865966797,"y":214.5089292526245,"z":"28243e86.88d342","wires":[]},{"id":"572713cb.967e9c","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":436.5713882446289,"y":601.7709045410156,"z":"28243e86.88d342","wires":[["4146d215.081c3c","f2a1e8.42ce8e18"]]},{"id":"4146d215.081c3c","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":633.3570518493652,"y":514.6280498504639,"z":"28243e86.88d342","wires":[["2201de8b.f2d032"]]},{"id":"2201de8b.f2d032","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":825.4999258858816,"y":513.1994872774396,"z":"28243e86.88d342","wires":[["44ec88dd.c9a958","b8ebffbf.bce06","f646cff6.1edd7","bae96f52.32ae8","1b05c1d3.e757de"]]},{"id":"12a4a1e1.0f3c6e","type":"dgstart","name":"DGSTART","outputs":1,"x":112.32143620082297,"y":79.91365201132635,"z":"28243e86.88d342","wires":[["a4b20c73.9349b"]]},{"id":"a4b20c73.9349b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":229.03571319580078,"y":120.15176350729803,"z":"28243e86.88d342","wires":[["efd6dbc2.72c708"]]},{"id":"efd6dbc2.72c708","type":"method","name":"method validate-service-input","xml":"<method rpc='validate-service-input' mode='sync'>\n","comments":"","outputs":1,"x":177.00006321498313,"y":161.16364819662908,"z":"28243e86.88d342","wires":[["edb23f9d.a0831"]]},{"id":"8e1cbab3.830fc8","type":"comment","name":"validate-service-input","info":"","comments":"","x":506.66629246303,"y":27.499995776585138,"z":"28243e86.88d342","wires":[]},{"id":"77dada46.44a994","type":"switchNode","name":"switch model-invariant-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":1055.7143287658691,"y":647.1428604125977,"z":"28243e86.88d342","wires":[["952257b3.dd6078"]]},{"id":"952257b3.dd6078","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1265.7143363952637,"y":647.1428871154785,"z":"28243e86.88d342","wires":[["8da06761.60a388"]]},{"id":"8da06761.60a388","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-invariant-uuid is a required input\" />\n","comments":"","x":1417.1429023742676,"y":647.1428852081299,"z":"28243e86.88d342","wires":[]},{"id":"64f8b162.eeba","type":"switchNode","name":"switch model-uuid","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":1025.714427947998,"y":688.5714740753174,"z":"28243e86.88d342","wires":[["aee449b5.453ff8"]]},{"id":"aee449b5.453ff8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1265.714427947998,"y":688.5714569091797,"z":"28243e86.88d342","wires":[["572da02b.634f4"]]},{"id":"572da02b.634f4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-uuid is a required input\" />\n","comments":"","x":1417.142993927002,"y":688.571455001831,"z":"28243e86.88d342","wires":[]},{"id":"c3343db6.57a7d","type":"switchNode","name":"switch model-name","xml":"<switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":1028.5715065002441,"y":729.9999847412109,"z":"28243e86.88d342","wires":[["4dbe8140.1c24"]]},{"id":"4dbe8140.1c24","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1264.2858238220215,"y":730.0000190734863,"z":"28243e86.88d342","wires":[["3a247f65.3dbf2"]]},{"id":"3a247f65.3dbf2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.onap-model-information.model-name is a required input\" />\n","comments":"","x":1415.7143898010254,"y":730.0000171661377,"z":"28243e86.88d342","wires":[]},{"id":"f2a1e8.42ce8e18","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":656.2736778259277,"y":686.547679901123,"z":"28243e86.88d342","wires":[["52eab4f4.64cf0c"]]},{"id":"52eab4f4.64cf0c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":826.1308364868164,"y":686.547679901123,"z":"28243e86.88d342","wires":[["77dada46.44a994","64f8b162.eeba","c3343db6.57a7d"]]}]
\ No newline at end of file
index a0ad04f..c75e724 100644 (file)
@@ -1,575 +1 @@
-[
-    {
-        "id": "4aba34b1.1043ac",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 181.66666575840554,
-        "y": 410.83333723885676,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "2ddf201d.e6ec8",
-                "4a8dffd1.fdb7f",
-                "c90f6af4.b82b08",
-                "80d469b1.3662b8",
-                "ed9e03ed.5232b",
-                "db1345cd.afaaf8",
-                "d431fbda.2a77f8"
-            ]
-        ]
-    },
-    {
-        "id": "2ddf201d.e6ec8",
-        "type": "switchNode",
-        "name": "switch svc-request-id",
-        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 464.4285752432688,
-        "y": 293.91367530822754,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "68766e97.4040d"
-            ]
-        ]
-    },
-    {
-        "id": "68766e97.4040d",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 690.1428696768626,
-        "y": 293.9136791229248,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "d9645ac2.df5c28"
-            ]
-        ]
-    },
-    {
-        "id": "d9645ac2.df5c28",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
-        "comments": "",
-        "x": 841.5714356558665,
-        "y": 293.9136772155762,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "4a8dffd1.fdb7f",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 452.99993841988726,
-        "y": 252.48510687691828,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "d22c2e3f.6dc6b"
-            ]
-        ]
-    },
-    {
-        "id": "d22c2e3f.6dc6b",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 688.71429007394,
-        "y": 251.05650465829035,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "341784df.8e0cbc"
-            ]
-        ]
-    },
-    {
-        "id": "341784df.8e0cbc",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
-        "comments": "",
-        "x": 838.7142633710591,
-        "y": 251.05651419503351,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "c90f6af4.b82b08",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 462.999991825649,
-        "y": 336.7708219800677,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "2c44e3fa.3865fc"
-            ]
-        ]
-    },
-    {
-        "id": "2c44e3fa.3865fc",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 690.1428653172088,
-        "y": 336.77083287920277,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "52c9b858.c8ebb8"
-            ]
-        ]
-    },
-    {
-        "id": "52c9b858.c8ebb8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
-        "comments": "",
-        "x": 841.5714312962127,
-        "y": 336.77083097185414,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "81912a48.95e3c8",
-        "type": "switchNode",
-        "name": "switch model-customization-id",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 994.1312157767161,
-        "y": 558.199610710144,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "6c3b4585.9f79ac"
-            ]
-        ]
-    },
-    {
-        "id": "6c3b4585.9f79ac",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1199.131215776716,
-        "y": 558.1995935440063,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "cc324c4a.16d68"
-            ]
-        ]
-    },
-    {
-        "id": "cc324c4a.16d68",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.onap-model-information.model-customization-uuid is a required input\" />\n",
-        "comments": "",
-        "x": 1350.55978175572,
-        "y": 558.1995916366577,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "dea8feff.34d7",
-        "type": "switchNode",
-        "name": "switch tenant",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-request-input.tenant`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 939.9882943289622,
-        "y": 599.6281213760376,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "14d041fa.a0ae8e"
-            ]
-        ]
-    },
-    {
-        "id": "14d041fa.a0ae8e",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1197.7026116507395,
-        "y": 599.628155708313,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "3d3e09b5.333e66"
-            ]
-        ]
-    },
-    {
-        "id": "3d3e09b5.333e66",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-request-input.tenant is a required input\" />\n",
-        "comments": "",
-        "x": 1349.1311776297434,
-        "y": 599.6281538009644,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "705f1093.b61a1",
-        "type": "comment",
-        "name": "Validation of required fields",
-        "info": "",
-        "comments": "",
-        "x": 612.9999482291087,
-        "y": 208.19938945770264,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "80d469b1.3662b8",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 444.9047066824778,
-        "y": 578.7947607040405,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "1fa2bfe5.f8a74"
-            ]
-        ]
-    },
-    {
-        "id": "1fa2bfe5.f8a74",
-        "type": "outcome",
-        "name": "assign",
-        "xml": "<outcome value='assign'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 607.4047066824778,
-        "y": 578.7947607040405,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "89cbf621.6d6368"
-            ]
-        ]
-    },
-    {
-        "id": "89cbf621.6d6368",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 762.4047066824778,
-        "y": 578.7947607040405,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "81912a48.95e3c8",
-                "dea8feff.34d7",
-                "5317edc6.907634",
-                "977a8cc7.20f92"
-            ]
-        ]
-    },
-    {
-        "id": "c0656ad0.118938",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 125.41667556762695,
-        "y": 80.7469892501831,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "e7e3fc5d.26071"
-            ]
-        ]
-    },
-    {
-        "id": "e7e3fc5d.26071",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 200.7023811340332,
-        "y": 120.98510074615479,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "53018b54.ba7fa4"
-            ]
-        ]
-    },
-    {
-        "id": "53018b54.ba7fa4",
-        "type": "method",
-        "name": "method validate-vf-module-input",
-        "xml": "<method rpc='validate-vf-module-input' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 197.76197052001953,
-        "y": 161.66364669799805,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "4aba34b1.1043ac"
-            ]
-        ]
-    },
-    {
-        "id": "69a2a002.592a6",
-        "type": "comment",
-        "name": "validate-vf-module-input",
-        "info": "",
-        "comments": "",
-        "x": 519.761531829834,
-        "y": 28.333333015441895,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "ed9e03ed.5232b",
-        "type": "switchNode",
-        "name": "switch service-instance-id",
-        "xml": "<switch test='`$vf-module-topology-operation-input.service-information.service-instance-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 476.0238227844238,
-        "y": 380.83334827423096,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "1fea5d4d.2c11e3"
-            ]
-        ]
-    },
-    {
-        "id": "1fea5d4d.2c11e3",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 688.4524040222168,
-        "y": 380.8333444595337,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "90e209ca.924dc8"
-            ]
-        ]
-    },
-    {
-        "id": "90e209ca.924dc8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
-        "comments": "",
-        "x": 839.8809700012207,
-        "y": 380.83334255218506,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "db1345cd.afaaf8",
-        "type": "switchNode",
-        "name": "switch vnf-id",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vnf-information.vnf-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 433.52383204868875,
-        "y": 427.3333387374878,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "bb759f02.71463"
-            ]
-        ]
-    },
-    {
-        "id": "bb759f02.71463",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 688.8095414297923,
-        "y": 425.90477085113525,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "f0403fde.5aee9"
-            ]
-        ]
-    },
-    {
-        "id": "f0403fde.5aee9",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.vnf-id is a required input\" />\n",
-        "comments": "",
-        "x": 840.2381074087962,
-        "y": 425.9047689437866,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "5317edc6.907634",
-        "type": "switchNode",
-        "name": "switch aic-cloud-region",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 969.3333756583079,
-        "y": 641.9047784805298,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "f1a01d1c.1ba65"
-            ]
-        ]
-    },
-    {
-        "id": "f1a01d1c.1ba65",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1196.0476929800852,
-        "y": 641.9048128128052,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "d4c33f5b.e0ebe"
-            ]
-        ]
-    },
-    {
-        "id": "d4c33f5b.e0ebe",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-request-input.aic-cloud-region is a required input\" />\n",
-        "comments": "",
-        "x": 1347.4762589590891,
-        "y": 641.9048109054565,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "d431fbda.2a77f8",
-        "type": "switchNode",
-        "name": "switch vf-module-id",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 454.33332225254617,
-        "y": 473.33331775665283,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "d102ad9b.0e3c7"
-            ]
-        ]
-    },
-    {
-        "id": "d102ad9b.0e3c7",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 688.6190316336497,
-        "y": 471.9047498703003,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "a2b8131.6eb5ff"
-            ]
-        ]
-    },
-    {
-        "id": "a2b8131.6eb5ff",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-id is a required input\" />\n",
-        "comments": "",
-        "x": 840.0475976126536,
-        "y": 471.90474796295166,
-        "z": "67f5a657.693288",
-        "wires": []
-    },
-    {
-        "id": "977a8cc7.20f92",
-        "type": "switchNode",
-        "name": "switch vf-module-name",
-        "xml": "<switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 972.666642870222,
-        "y": 515.9999895095825,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "9832cc52.0a716"
-            ]
-        ]
-    },
-    {
-        "id": "9832cc52.0a716",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 1198.666642870222,
-        "y": 515.9999723434448,
-        "z": "67f5a657.693288",
-        "wires": [
-            [
-                "cdbd51ca.ee45c"
-            ]
-        ]
-    },
-    {
-        "id": "cdbd51ca.ee45c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-request-input.vf-module-name is a required input\" />\n",
-        "comments": "",
-        "x": 1350.0952088492259,
-        "y": 515.9999704360962,
-        "z": "67f5a657.693288",
-        "wires": []
-    }
-]
+[{"id":"9280b236.24feb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":251.42857360839844,"y":502.50000231606623,"z":"3304d3ee.58708c","wires":[["b78de690.f9f5d8","da185984.e2c478","5a084fe5.895d4","f0d79a13.71b258","b047cbeb.978218","9eadf3bc.97835","2ca2061e.0237ca"]]},{"id":"b78de690.f9f5d8","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":534.1904830932617,"y":385.580340385437,"z":"3304d3ee.58708c","wires":[["de999d71.d9736"]]},{"id":"de999d71.d9736","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":759.9047775268555,"y":385.5803442001343,"z":"3304d3ee.58708c","wires":[["7ce8eacd.cf3c74"]]},{"id":"7ce8eacd.cf3c74","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":911.3333435058594,"y":385.58034229278564,"z":"3304d3ee.58708c","wires":[]},{"id":"da185984.e2c478","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":522.7618462698802,"y":344.15177195412775,"z":"3304d3ee.58708c","wires":[["a366b2a.b101a5"]]},{"id":"a366b2a.b101a5","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":758.4761979239329,"y":342.7231697354998,"z":"3304d3ee.58708c","wires":[["779cf777.ccd0f8"]]},{"id":"779cf777.ccd0f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":908.476171221052,"y":342.723179272243,"z":"3304d3ee.58708c","wires":[]},{"id":"5a084fe5.895d4","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":532.7618996756419,"y":428.43748705727717,"z":"3304d3ee.58708c","wires":[["661c9512.86ffdc"]]},{"id":"661c9512.86ffdc","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":759.9047731672017,"y":428.43749795641224,"z":"3304d3ee.58708c","wires":[["152789a.07c2376"]]},{"id":"152789a.07c2376","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":911.3333391462056,"y":428.4374960490636,"z":"3304d3ee.58708c","wires":[]},{"id":"836f5426.363f78","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1100.893123626709,"y":649.8662757873535,"z":"3304d3ee.58708c","wires":[["69e64228.97fcac"]]},{"id":"69e64228.97fcac","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1305.893123626709,"y":649.8662586212158,"z":"3304d3ee.58708c","wires":[["29de077f.8e6ec8"]]},{"id":"29de077f.8e6ec8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1457.321689605713,"y":649.8662567138672,"z":"3304d3ee.58708c","wires":[]},{"id":"76957faf.3e90e","type":"switchNode","name":"switch tenant","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-request-input.tenant`'>\n","comments":"","outputs":1,"x":1046.750202178955,"y":691.2947864532471,"z":"3304d3ee.58708c","wires":[["eecf68c4.93b228"]]},{"id":"eecf68c4.93b228","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1304.4645195007324,"y":691.2948207855225,"z":"3304d3ee.58708c","wires":[["5279ca1e.d05be4"]]},{"id":"5279ca1e.d05be4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-request-input.tenant is a required input\" />\n","comments":"","x":1455.8930854797363,"y":691.2948188781738,"z":"3304d3ee.58708c","wires":[]},{"id":"760ce011.a2906","type":"comment","name":"Validation of required fields","info":"","comments":"","x":682.7618560791016,"y":299.8660545349121,"z":"3304d3ee.58708c","wires":[]},{"id":"f0d79a13.71b258","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":516.3332977294922,"y":730.4614696502686,"z":"3304d3ee.58708c","wires":[["8728b60f.a48fd8","d0629521.3a3078"]]},{"id":"8728b60f.a48fd8","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":677.1666145324707,"y":670.46142578125,"z":"3304d3ee.58708c","wires":[["c37e1bac.9bd818"]]},{"id":"c37e1bac.9bd818","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":869.1666145324707,"y":670.46142578125,"z":"3304d3ee.58708c","wires":[["836f5426.363f78","76957faf.3e90e","b4883195.b514a"]]},{"id":"bc09f30d.b7923","type":"dgstart","name":"DGSTART","outputs":1,"x":195.17858341761985,"y":172.41365432739258,"z":"3304d3ee.58708c","wires":[["e6e33f5c.32b8"]]},{"id":"e6e33f5c.32b8","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":308.4642889840261,"y":212.65176582336426,"z":"3304d3ee.58708c","wires":[["daeb37a6.218e58"]]},{"id":"daeb37a6.218e58","type":"method","name":"method validate-vf-module-input","xml":"<method rpc='validate-vf-module-input' mode='sync'>\n","comments":"","outputs":1,"x":265.5238783700124,"y":253.33031177520752,"z":"3304d3ee.58708c","wires":[["9280b236.24feb"]]},{"id":"9aac0344.99123","type":"comment","name":"validate-vf-module-input","info":"","comments":"","x":589.5234396798269,"y":119.99999809265137,"z":"3304d3ee.58708c","wires":[]},{"id":"b047cbeb.978218","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$vf-module-topology-operation-input.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":545.7857306344167,"y":472.50001335144043,"z":"3304d3ee.58708c","wires":[["705f181f.599f48"]]},{"id":"705f181f.599f48","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":758.2143118722097,"y":472.50000953674316,"z":"3304d3ee.58708c","wires":[["f48f0d61.9dfa7"]]},{"id":"f48f0d61.9dfa7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n","comments":"","x":909.6428778512136,"y":472.50000762939453,"z":"3304d3ee.58708c","wires":[]},{"id":"9eadf3bc.97835","type":"switchNode","name":"switch vnf-id","xml":"<switch test='`$vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":503.28573989868164,"y":519.0000038146973,"z":"3304d3ee.58708c","wires":[["93e4cbab.2046c8"]]},{"id":"93e4cbab.2046c8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":758.5714492797852,"y":517.5714359283447,"z":"3304d3ee.58708c","wires":[["78d032f1.6b193c"]]},{"id":"78d032f1.6b193c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.vnf-id is a required input\" />\n","comments":"","x":910.0000152587891,"y":517.5714340209961,"z":"3304d3ee.58708c","wires":[]},{"id":"b4883195.b514a","type":"switchNode","name":"switch aic-cloud-region","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":1076.0952835083008,"y":733.5714435577393,"z":"3304d3ee.58708c","wires":[["eca915fe.8a7528"]]},{"id":"eca915fe.8a7528","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1302.8096008300781,"y":733.5714778900146,"z":"3304d3ee.58708c","wires":[["671723cf.0cce1c"]]},{"id":"671723cf.0cce1c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-request-input.aic-cloud-region is a required input\" />\n","comments":"","x":1454.238166809082,"y":733.571475982666,"z":"3304d3ee.58708c","wires":[]},{"id":"2ca2061e.0237ca","type":"switchNode","name":"switch vf-module-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":524.0952301025391,"y":564.9999828338623,"z":"3304d3ee.58708c","wires":[["7dedc936.6d8c88"]]},{"id":"7dedc936.6d8c88","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":758.3809394836426,"y":563.5714149475098,"z":"3304d3ee.58708c","wires":[["d5bce79.04eca18"]]},{"id":"d5bce79.04eca18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-id is a required input\" />\n","comments":"","x":909.8095054626465,"y":563.5714130401611,"z":"3304d3ee.58708c","wires":[]},{"id":"be6a2bca.c2c3f8","type":"switchNode","name":"switch vf-module-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\n","comments":"","outputs":1,"x":1079.4285507202148,"y":607.666654586792,"z":"3304d3ee.58708c","wires":[["3fad2b1f.051354"]]},{"id":"3fad2b1f.051354","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1305.4285507202148,"y":607.6666374206543,"z":"3304d3ee.58708c","wires":[["9eb9e9d3.f24818"]]},{"id":"9eb9e9d3.f24818","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-request-input.vf-module-name is a required input\" />\n","comments":"","x":1456.8571166992188,"y":607.6666355133057,"z":"3304d3ee.58708c","wires":[]},{"id":"d0629521.3a3078","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":694.7619171142578,"y":795.0000286102295,"z":"3304d3ee.58708c","wires":[["d381036c.b7227"]]},{"id":"d381036c.b7227","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":921.4285583496094,"y":793.3333339691162,"z":"3304d3ee.58708c","wires":[["1c736669.31026a"]]},{"id":"1c736669.31026a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1126.4285583496094,"y":793.3333168029785,"z":"3304d3ee.58708c","wires":[["5fc7ea4b.ad8e04"]]},{"id":"5fc7ea4b.ad8e04","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1277.8571243286133,"y":793.3333148956299,"z":"3304d3ee.58708c","wires":[]},{"id":"bfdaa4c5.3cfce8","type":"comment","name":"REMOVED link here and MOVED vf-module-name validation to vf-module-topology-operation-assign after self-serve logic","info":"","comments":"","x":1434.2857055664062,"y":588.571418762207,"z":"3304d3ee.58708c","wires":[]}]
\ No newline at end of file
index 3ebab10..ff9108c 100644 (file)
@@ -1,461 +1 @@
-[
-  {
-    "id": "c428e8d.27cce18",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 189,
-    "y": 416.50000422341486,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "3ab2d225.c8f26e",
-        "f97f4e94.92985",
-        "99754530.a920a8",
-        "77ab2ae3.a31c54",
-        "c2bc3d2d.6fb7d"
-      ]
-    ]
-  },
-  {
-    "id": "3ab2d225.c8f26e",
-    "type": "switchNode",
-    "name": "switch svc-request-id",
-    "xml": "<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 471.7619094848633,
-    "y": 299.58034229278564,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "a9a2f3f.7cb551"
-      ]
-    ]
-  },
-  {
-    "id": "a9a2f3f.7cb551",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 697.476203918457,
-    "y": 299.5803461074829,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "cb1db5f9.619c48"
-      ]
-    ]
-  },
-  {
-    "id": "cb1db5f9.619c48",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n",
-    "comments": "",
-    "x": 848.9047698974609,
-    "y": 299.5803442001343,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "f97f4e94.92985",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 460.3332726614817,
-    "y": 258.1517738614764,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "4bce0fc2.589ce"
-      ]
-    ]
-  },
-  {
-    "id": "4bce0fc2.589ce",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 696.0476243155344,
-    "y": 256.72317164284846,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "8b6ba872.3b8a98"
-      ]
-    ]
-  },
-  {
-    "id": "8b6ba872.3b8a98",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n",
-    "comments": "",
-    "x": 846.0475976126536,
-    "y": 256.7231811795916,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "99754530.a920a8",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 470.33332606724343,
-    "y": 342.4374889646258,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "1356b9d1.f1abc6"
-      ]
-    ]
-  },
-  {
-    "id": "1356b9d1.f1abc6",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 697.4761995588033,
-    "y": 342.4374998637609,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "9bdd0c3e.f5034"
-      ]
-    ]
-  },
-  {
-    "id": "9bdd0c3e.f5034",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n",
-    "comments": "",
-    "x": 848.9047655378072,
-    "y": 342.43749795641224,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "77407e17.13aa",
-    "type": "switchNode",
-    "name": "switch model-customization-id",
-    "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1004.7978782653809,
-    "y": 488.86625480651855,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "c78e5862.3ed2f8"
-      ]
-    ]
-  },
-  {
-    "id": "c78e5862.3ed2f8",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1209.7978782653809,
-    "y": 488.86623764038086,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "a0bae35d.bd0f3"
-      ]
-    ]
-  },
-  {
-    "id": "a0bae35d.bd0f3",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.onap-model-information.model-customization-uuid is a required input\" />\n",
-    "comments": "",
-    "x": 1361.2264442443848,
-    "y": 488.8662357330322,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "9b39e778.02f938",
-    "type": "switchNode",
-    "name": "switch tenant",
-    "xml": "<switch test='`$vnf-topology-operation-input.vnf-request-input.tenant`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 950.654956817627,
-    "y": 530.2947654724121,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "204bc24c.52717e"
-      ]
-    ]
-  },
-  {
-    "id": "204bc24c.52717e",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1208.3692741394043,
-    "y": 530.2947998046875,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "cd515ce9.de34"
-      ]
-    ]
-  },
-  {
-    "id": "cd515ce9.de34",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.vnf-request-input.tenant is a required input\" />\n",
-    "comments": "",
-    "x": 1359.7978401184082,
-    "y": 530.2947978973389,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "38ecaf2a.7759a",
-    "type": "comment",
-    "name": "Validation of required fields",
-    "info": "",
-    "comments": "",
-    "x": 620.3332824707031,
-    "y": 213.86605644226074,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "77ab2ae3.a31c54",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 455.5713806152344,
-    "y": 531.128080368042,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "8e972969.bb2dd8"
-      ]
-    ]
-  },
-  {
-    "id": "8e972969.bb2dd8",
-    "type": "outcome",
-    "name": "assign",
-    "xml": "<outcome value='assign'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 618.0713806152344,
-    "y": 531.128080368042,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "f91647c8.1d72f8"
-      ]
-    ]
-  },
-  {
-    "id": "f91647c8.1d72f8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 773.0713806152344,
-    "y": 531.128080368042,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "77407e17.13aa",
-        "9b39e778.02f938",
-        "4108c244.bc563c"
-      ]
-    ]
-  },
-  {
-    "id": "bfe21f2e.7dff3",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 132.7500098092214,
-    "y": 86.41365623474121,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "d64c66df.cad6c8"
-      ]
-    ]
-  },
-  {
-    "id": "d64c66df.cad6c8",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-    "outputs": 1,
-    "x": 208.03571537562766,
-    "y": 126.65176773071289,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "2e84fc71.260244"
-      ]
-    ]
-  },
-  {
-    "id": "2e84fc71.260244",
-    "type": "method",
-    "name": "method validate-vnf-input",
-    "xml": "<method rpc='validate-vnf-input' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 183.42863682338157,
-    "y": 167.66365242004395,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "c428e8d.27cce18"
-      ]
-    ]
-  },
-  {
-    "id": "580b25f3.b0273c",
-    "type": "comment",
-    "name": "validate-vnf-input",
-    "info": "",
-    "comments": "",
-    "x": 527.0948660714284,
-    "y": 34,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "c2bc3d2d.6fb7d",
-    "type": "switchNode",
-    "name": "switch service-instance-id",
-    "xml": "<switch test='`$vnf-topology-operation-input.service-information.service-instance-id`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 483.3571570260183,
-    "y": 386.50001525878906,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "4f2dc133.3331a"
-      ]
-    ]
-  },
-  {
-    "id": "4f2dc133.3331a",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 695.7857382638113,
-    "y": 386.5000114440918,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "46f09548.364bec"
-      ]
-    ]
-  },
-  {
-    "id": "46f09548.364bec",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n",
-    "comments": "",
-    "x": 847.2143042428152,
-    "y": 386.50000953674316,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "4108c244.bc563c",
-    "type": "switchNode",
-    "name": "switch aic-cloud-region",
-    "xml": "<switch test='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 980.0000381469727,
-    "y": 572.5714225769043,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "c4c6b560.de5ab8"
-      ]
-    ]
-  },
-  {
-    "id": "c4c6b560.de5ab8",
-    "type": "outcome",
-    "name": "NULL",
-    "xml": "<outcome value=''>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1206.71435546875,
-    "y": 572.5714569091797,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      [
-        "c4c87ecd.ccad2"
-      ]
-    ]
-  },
-  {
-    "id": "c4c87ecd.ccad2",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-request-input.aic-cloud-region is a required input\" />\n",
-    "comments": "",
-    "x": 1358.142921447754,
-    "y": 572.571455001831,
-    "z": "a20f7f20.3dd04",
-    "wires": [
-      
-    ]
-  }
-]
+[{"id":"a6e21877.f24ac8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":182.85714721679688,"y":411.0714306150164,"z":"14473ee0.27eed1","wires":[["aeb3dd3d.b60f3","d78281b3.03ace","8ba9d563.4eefa8","44171a5c.864c24","dce8504e.ce7ca","290cb660.49e1da"]]},{"id":"aeb3dd3d.b60f3","type":"switchNode","name":"switch svc-request-id","xml":"<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\n","comments":"","outputs":1,"x":465.61905670166016,"y":294.1517686843872,"z":"14473ee0.27eed1","wires":[["2b73d7ab.798568"]]},{"id":"2b73d7ab.798568","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":691.3333511352539,"y":294.1517724990845,"z":"14473ee0.27eed1","wires":[["5d6b453e.85037c"]]},{"id":"5d6b453e.85037c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-request-id is a required input\" />\n","comments":"","x":842.7619171142578,"y":294.15177059173584,"z":"14473ee0.27eed1","wires":[]},{"id":"d78281b3.03ace","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":454.1904198782786,"y":252.72320025307795,"z":"14473ee0.27eed1","wires":[["d9e6cac0.2ec958"]]},{"id":"d9e6cac0.2ec958","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":689.9047715323313,"y":251.29459803445002,"z":"14473ee0.27eed1","wires":[["30d30e25.d90862"]]},{"id":"30d30e25.d90862","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"sdnc-request-header.svc-action is a required input\" />\n","comments":"","x":839.9047448294505,"y":251.29460757119318,"z":"14473ee0.27eed1","wires":[]},{"id":"8ba9d563.4eefa8","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":464.1904732840403,"y":337.00891535622736,"z":"14473ee0.27eed1","wires":[["9a589f79.458aa"]]},{"id":"9a589f79.458aa","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":691.3333467756001,"y":337.00892625536244,"z":"14473ee0.27eed1","wires":[["fae9bdce.d8a23"]]},{"id":"fae9bdce.d8a23","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"request-information.request-action is a required input\" />\n","comments":"","x":842.761912754604,"y":337.0089243480138,"z":"14473ee0.27eed1","wires":[]},{"id":"bc0bcdb.07e573","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1053.6549949645996,"y":483.43768882751465,"z":"14473ee0.27eed1","wires":[["6ced274a.6cedf8"]]},{"id":"6ced274a.6cedf8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1258.6549949645996,"y":483.43767166137695,"z":"14473ee0.27eed1","wires":[["cf00fbbb.48a0c8"]]},{"id":"cf00fbbb.48a0c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1410.0835609436035,"y":483.4376697540283,"z":"14473ee0.27eed1","wires":[]},{"id":"4404604a.477ff","type":"switchNode","name":"switch tenant","xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.tenant`'>\n","comments":"","outputs":1,"x":999.5120735168457,"y":524.8661994934082,"z":"14473ee0.27eed1","wires":[["c08a1860.0abee8"]]},{"id":"c08a1860.0abee8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1257.226390838623,"y":524.8662338256836,"z":"14473ee0.27eed1","wires":[["a40e39ad.d4fe48"]]},{"id":"a40e39ad.d4fe48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.vnf-request-input.tenant is a required input\" />\n","comments":"","x":1408.654956817627,"y":524.866231918335,"z":"14473ee0.27eed1","wires":[]},{"id":"4f2ed47.c00882c","type":"comment","name":"Validation of required fields","info":"","comments":"","x":614.1904296875,"y":208.4374828338623,"z":"14473ee0.27eed1","wires":[]},{"id":"44171a5c.864c24","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":454.4285430908203,"y":572.3661937713623,"z":"14473ee0.27eed1","wires":[["5966d5ca.06859c","5a143e3d.19f99"]]},{"id":"5966d5ca.06859c","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":625.2618865966797,"y":525.6995143890381,"z":"14473ee0.27eed1","wires":[["b40f533e.2834c"]]},{"id":"b40f533e.2834c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":821.9284973144531,"y":525.6995143890381,"z":"14473ee0.27eed1","wires":[["bc0bcdb.07e573","4404604a.477ff","7b51befc.a5484"]]},{"id":"5b5a81f9.83502","type":"dgstart","name":"DGSTART","outputs":1,"x":126.60715702601829,"y":80.98508262634277,"z":"14473ee0.27eed1","wires":[["e6d98786.2bba18"]]},{"id":"e6d98786.2bba18","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":239.89286259242454,"y":121.22319412231445,"z":"14473ee0.27eed1","wires":[["6d52d7c9.6618f8"]]},{"id":"6d52d7c9.6618f8","type":"method","name":"method validate-vnf-input","xml":"<method rpc='validate-vnf-input' mode='sync'>\n","comments":"","outputs":1,"x":175.28578404017844,"y":162.2350788116455,"z":"14473ee0.27eed1","wires":[["a6e21877.f24ac8"]]},{"id":"8fac3dd2.9dade","type":"comment","name":"validate-vnf-input","info":"","comments":"","x":520.9520132882253,"y":28.571426391601562,"z":"14473ee0.27eed1","wires":[]},{"id":"dce8504e.ce7ca","type":"switchNode","name":"switch service-instance-id","xml":"<switch test='`$vnf-topology-operation-input.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":477.21430424281516,"y":381.0714416503906,"z":"14473ee0.27eed1","wires":[["eedc833c.05049"]]},{"id":"eedc833c.05049","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":689.6428854806081,"y":381.07143783569336,"z":"14473ee0.27eed1","wires":[["6a84c752.bbe938"]]},{"id":"6a84c752.bbe938","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"service-information.service-instance-id is a required input\" />\n","comments":"","x":841.071451459612,"y":381.0714359283447,"z":"14473ee0.27eed1","wires":[]},{"id":"290cb660.49e1da","type":"switchNode","name":"switch vnf-id","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":434.7143135070801,"y":424.57143211364746,"z":"14473ee0.27eed1","wires":[["1c3dc135.7d2ccf"]]},{"id":"1c3dc135.7d2ccf","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":690.0000228881836,"y":423.1428642272949,"z":"14473ee0.27eed1","wires":[["19ddea38.2da986"]]},{"id":"19ddea38.2da986","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.vnf-id is a required input\" />\n","comments":"","x":841.4285888671875,"y":423.1428623199463,"z":"14473ee0.27eed1","wires":[]},{"id":"7b51befc.a5484","type":"switchNode","name":"switch aic-cloud-region","xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":1028.8571548461914,"y":567.1428565979004,"z":"14473ee0.27eed1","wires":[["99192072.8ebe6"]]},{"id":"99192072.8ebe6","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1255.5714721679688,"y":567.1428909301758,"z":"14473ee0.27eed1","wires":[["ef7e0e9e.be1a3"]]},{"id":"ef7e0e9e.be1a3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-request-input.aic-cloud-region is a required input\" />\n","comments":"","x":1407.0000381469727,"y":567.1428890228271,"z":"14473ee0.27eed1","wires":[]},{"id":"689b51e6.78eef","type":"switchNode","name":"switch model-customization-id","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>\n","comments":"","outputs":1,"x":1053.3332824707031,"y":613.3333206176758,"z":"14473ee0.27eed1","wires":[["8812a9fd.905ab8"]]},{"id":"8812a9fd.905ab8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1258.3332824707031,"y":613.3333034515381,"z":"14473ee0.27eed1","wires":[["8dfbf84d.04b1c8"]]},{"id":"8dfbf84d.04b1c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vnf-information.onap-model-information.model-customization-uuid is a required input\" />\n","comments":"","x":1409.761848449707,"y":613.3333015441895,"z":"14473ee0.27eed1","wires":[]},{"id":"5a143e3d.19f99","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":643.2735023498535,"y":613.2618799209595,"z":"14473ee0.27eed1","wires":[["c2728998.ae3ef8"]]},{"id":"c2728998.ae3ef8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":823.2734909057617,"y":613.2618465423584,"z":"14473ee0.27eed1","wires":[["689b51e6.78eef"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.json
new file mode 100755 (executable)
index 0000000..6e03146
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"6611cc33.4769b4","type":"dgstart","name":"DGSTART","outputs":1,"x":105.71428680419922,"y":91.42857360839844,"z":"a61c8125.05663","wires":[["7b118e78.11ed4"]]},{"id":"7b118e78.11ed4","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":219.5714225769043,"y":131.23811149597168,"z":"a61c8125.05663","wires":[["6d23713a.ece31"]]},{"id":"6d23713a.ece31","type":"method","name":"method vf-module-topology-assign-rollback","xml":"<method rpc='vf-module-topology-assign-rollback' mode='sync'>\n","comments":"","outputs":1,"x":209.14291381835938,"y":171.42857360839844,"z":"a61c8125.05663","wires":[["1ef2c7cc.806e28"]]},{"id":"8be58336.3605a","type":"comment","name":"vf-module-topology-assign-rollback","info":"","comments":"","x":511.03538513183594,"y":34.40427303314209,"z":"a61c8125.05663","wires":[]},{"id":"a01c30ff.0f7af","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $vf-module-topology-operation-input.vf-module-information.vf-module-id\" >","comments":"","outputs":1,"x":1126.3812255859375,"y":675.3092555999756,"z":"a61c8125.05663","wires":[[]]},{"id":"1e357beb.2c72e4","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`\" />\n                                                          ","comments":"","x":996.3811874389648,"y":628.6426277160645,"z":"a61c8125.05663","wires":[]},{"id":"308dbb1b.4b3c04","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":1061.3811950683594,"y":720.3092994689941,"z":"a61c8125.05663","wires":[[]]},{"id":"919b7d2.b4b918","type":"comment","name":"roll back EIPAM","info":"","comments":"","x":931.3812637329102,"y":585.3096097310381,"z":"a61c8125.05663","wires":[]},{"id":"a13d2e4e.a523c","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":803.0478515625,"y":678.6427516937256,"z":"a61c8125.05663","wires":[["1e357beb.2c72e4","a01c30ff.0f7af","308dbb1b.4b3c04"]]},{"id":"ba58563d.0eb648","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload`'>\n","comments":"","outputs":1,"x":475.1192398071289,"y":742.8090019226074,"z":"a61c8125.05663","wires":[["68faff6b.f3735","9c0e13b.fd149f"]]},{"id":"68faff6b.f3735","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":670.3575553894043,"y":679.4758968353271,"z":"a61c8125.05663","wires":[["a13d2e4e.a523c"]]},{"id":"9c0e13b.fd149f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":670.3574600219727,"y":814.1424045562744,"z":"a61c8125.05663","wires":[["34c11a61.6742b6"]]},{"id":"c94ef24c.014d3","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1500.0239372253418,"y":846.1423978805542,"z":"a61c8125.05663","wires":[["86bdf4ae.5607f8","2297dcb6.fa7cd4"]]},{"id":"2297dcb6.fa7cd4","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1812.3096733093262,"y":870.7139158248901,"z":"a61c8125.05663","wires":[[]]},{"id":"86bdf4ae.5607f8","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":1713.7382926940918,"y":823.5709867477417,"z":"a61c8125.05663","wires":[]},{"id":"34c11a61.6742b6","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":838.3576049804688,"y":813.4756898880005,"z":"a61c8125.05663","wires":[["898bc38a.96afc"]]},{"id":"898bc38a.96afc","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":1017.3576812744141,"y":813.4756650924683,"z":"a61c8125.05663","wires":[["9842cf80.216a"]]},{"id":"9842cf80.216a","type":"switchNode","name":"switch vnfc-name","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":1200.3576126098633,"y":812.8089828491211,"z":"a61c8125.05663","wires":[["a5d6eeb7.cc2c","dde3b95d.baaee8"]]},{"id":"a5d6eeb7.cc2c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1368.6908721923828,"y":779.4756889343262,"z":"a61c8125.05663","wires":[["d64466.efbceb98"]]},{"id":"dde3b95d.baaee8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1370.3575439453125,"y":845.6662015914917,"z":"a61c8125.05663","wires":[["c94ef24c.014d3"]]},{"id":"d64466.efbceb98","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1498.690715789795,"y":777.8090410232544,"z":"a61c8125.05663","wires":[[]]},{"id":"fa63ca43.680b98","type":"comment","name":"Rollback any generated VNFC names","info":"","comments":"","x":1013.6907348632812,"y":766.1423406600952,"z":"a61c8125.05663","wires":[]},{"id":"1ef2c7cc.806e28","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":182.49995803833008,"y":808.1428642272949,"z":"a61c8125.05663","wires":[["ba58563d.0eb648","8bb03b2.6971fc8","dc598f4f.0b826","ccd731c.18275d"]]},{"id":"8bb03b2.6971fc8","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":462.2142868041992,"y":1020.9285650253296,"z":"a61c8125.05663","wires":[["6018acd1.59ed74"]]},{"id":"6018acd1.59ed74","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":646.047664642334,"y":1021.7620649337769,"z":"a61c8125.05663","wires":[["fc4b790f.ebea58","36046fb1.d665f"]]},{"id":"fc4b790f.ebea58","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":819.3810234069824,"y":950.4290561676025,"z":"a61c8125.05663","wires":[["69ee7e57.c2841"]]},{"id":"69ee7e57.c2841","type":"switchNode","name":"switch created_flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag`'>\n","comments":"","outputs":1,"x":1012.2142448425293,"y":948.9285917282104,"z":"a61c8125.05663","wires":[["93833642.a20a88"]]},{"id":"93833642.a20a88","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1186.2142448425293,"y":948.9285917282104,"z":"a61c8125.05663","wires":[["546c17e9.29eb28"]]},{"id":"546c17e9.29eb28","type":"delete","name":"delete vnfc from A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n        resource=\"vnfc\" \n        key=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\" >","comments":"","outputs":1,"x":1366.2142448425293,"y":948.9285917282104,"z":"a61c8125.05663","wires":[[]]},{"id":"ad537e73.9d32d","type":"comment","name":"delete A&AI objects","info":"","comments":"","x":520.2142753601074,"y":948.9285678863525,"z":"a61c8125.05663","wires":[]},{"id":"36046fb1.d665f","type":"for","name":"for each vm-network","xml":"<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`' >\n","comments":"","outputs":1,"x":850.8810844421387,"y":1078.595682144165,"z":"a61c8125.05663","wires":[["a8cd7435.4bc028"]]},{"id":"a8cd7435.4bc028","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1040.7144050598145,"y":1078.095121383667,"z":"a61c8125.05663","wires":[["d670be43.c0871","4ac039a4.7d8258"]]},{"id":"4ac039a4.7d8258","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":1198.0477714538574,"y":1156.76194190979,"z":"a61c8125.05663","wires":[["5dedac0.63dbb54"]]},{"id":"5dedac0.63dbb54","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1368.0477714538574,"y":1156.76194190979,"z":"a61c8125.05663","wires":[["2c88b0e6.a8c3e","30f659d.7d59da6"]]},{"id":"d670be43.c0871","type":"switchNode","name":"switch created-flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag`'>\n","comments":"","outputs":1,"x":1222.2142753601074,"y":1000.9285678863525,"z":"a61c8125.05663","wires":[["317e645c.78c4bc"]]},{"id":"fa441998.023cd8","type":"delete","name":"delete vf-module relationship to l3-network","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vf-module:relationship-list\"\n    key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n      AND related-to = l3-network\n      AND l3-network.network-id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\" >","comments":"","outputs":1,"x":1626.2142448425293,"y":1000.9285917282104,"z":"a61c8125.05663","wires":[[]]},{"id":"34ef77e0.82b708","type":"for","name":"for each floating ipv4 address","xml":"<for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\n","comments":"","outputs":1,"x":1976.2142753601074,"y":1110.9285678863525,"z":"a61c8125.05663","wires":[["5efafe2c.9881a"]]},{"id":"f11d8f78.b78b2","type":"for","name":"for each floating ipv6 address","xml":"<for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\n","comments":"","outputs":1,"x":1980.2142753601074,"y":1206.261697769165,"z":"a61c8125.05663","wires":[["bfa7d6b5.0cab38"]]},{"id":"2c88b0e6.a8c3e","type":"switchNode","name":"switch created-ipv4-flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\n","comments":"","outputs":1,"x":1586.2142753601074,"y":1110.9285678863525,"z":"a61c8125.05663","wires":[["81777ab.57ba488"]]},{"id":"30f659d.7d59da6","type":"switchNode","name":"switch created-ipv6-flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\n","comments":"","outputs":1,"x":1580.2142753601074,"y":1208.9285678863525,"z":"a61c8125.05663","wires":[["5482e159.91557"]]},{"id":"81777ab.57ba488","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1770.2142753601074,"y":1110.9285678863525,"z":"a61c8125.05663","wires":[["34ef77e0.82b708"]]},{"id":"5482e159.91557","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1770.2142753601074,"y":1206.9285678863525,"z":"a61c8125.05663","wires":[["f11d8f78.b78b2"]]},{"id":"5efafe2c.9881a","type":"delete","name":"delete vip-ipv4-address-list from A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv4-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]\" >","comments":"","outputs":1,"x":2280.2142753601074,"y":1110.9285678863525,"z":"a61c8125.05663","wires":[[]]},{"id":"bfa7d6b5.0cab38","type":"delete","name":"delete vip-ipv6-address-list from A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n   resource=\"vip-ipv6-address-list\" \n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]\" >","comments":"","outputs":1,"x":2282.2142753601074,"y":1204.9285678863525,"z":"a61c8125.05663","wires":[[]]},{"id":"317e645c.78c4bc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1386.2142448425293,"y":1000.9285917282104,"z":"a61c8125.05663","wires":[["fa441998.023cd8"]]},{"id":"dc598f4f.0b826","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":492.5714340209961,"y":484.8571500778198,"z":"a61c8125.05663","wires":[["d3fdaf9c.101de"]]},{"id":"d3fdaf9c.101de","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":676.8571395874023,"y":484.8571367263794,"z":"a61c8125.05663","wires":[["8f0f8a6f.5fe5d8"]]},{"id":"8f0f8a6f.5fe5d8","type":"switchNode","name":"switch created-ipv4-flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\n","comments":"","outputs":1,"x":855.4286346435547,"y":483.4286060333252,"z":"a61c8125.05663","wires":[["555a6d54.4cae24","a8c30ae.deb43f8","6204fd0a.72c444"]]},{"id":"555a6d54.4cae24","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1036.8570976257324,"y":433.4285697937012,"z":"a61c8125.05663","wires":[["bf7868bf.2c54a8"]]},{"id":"a8c30ae.deb43f8","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1036.8571243286133,"y":483.4285821914673,"z":"a61c8125.05663","wires":[["2212f8d3.6efaa8"]]},{"id":"2212f8d3.6efaa8","type":"switchNode","name":"switch created-ipv6-flag","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\n","comments":"","outputs":1,"x":1222.5714645385742,"y":504.85716247558594,"z":"a61c8125.05663","wires":[["601c50eb.8b643"]]},{"id":"601c50eb.8b643","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1404.0000534057617,"y":503.42857360839844,"z":"a61c8125.05663","wires":[["bf7868bf.2c54a8"]]},{"id":"e28e02a2.71b8a","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\" >","comments":"","outputs":1,"x":2286.8570251464844,"y":503.0000025431318,"z":"a61c8125.05663","wires":[[]]},{"id":"5caa6cfb.b3c044","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`\" />\n","comments":"","x":2156.8569869995117,"y":456.3333746592207,"z":"a61c8125.05663","wires":[]},{"id":"58bb94b3.e2102c","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":2221.8569946289062,"y":548.0000464121504,"z":"a61c8125.05663","wires":[[]]},{"id":"cada7e7.6e7958","type":"comment","name":"roll back EIPAM floating addresses","info":"","comments":"","x":2266.1427154541016,"y":410.1432008743286,"z":"a61c8125.05663","wires":[]},{"id":"ed6fab87.507318","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1963.5236511230469,"y":506.3334986368818,"z":"a61c8125.05663","wires":[["5caa6cfb.b3c044","e28e02a2.71b8a","58bb94b3.e2102c"]]},{"id":"bf7868bf.2c54a8","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\n","comments":"","outputs":1,"x":1626.8571166992188,"y":473.42857456207275,"z":"a61c8125.05663","wires":[["7625e9b6.731d48","f0f8bf7f.cfbf3"]]},{"id":"7625e9b6.731d48","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1838.2856979370117,"y":440.57142639160156,"z":"a61c8125.05663","wires":[["c6814130.3d6c2"]]},{"id":"f0f8bf7f.cfbf3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1839.9523696899414,"y":506.7619390487671,"z":"a61c8125.05663","wires":[["ed6fab87.507318"]]},{"id":"c6814130.3d6c2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1965.4286422729492,"y":439.1428680419922,"z":"a61c8125.05663","wires":[[]]},{"id":"6204fd0a.72c444","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1036.8571243286133,"y":527.7142877578735,"z":"a61c8125.05663","wires":[["2212f8d3.6efaa8"]]},{"id":"ccd731c.18275d","type":"switchNode","name":"switch network-instance-group-id","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\n","comments":"","outputs":1,"x":508.28568267822266,"y":1353.428674697876,"z":"a61c8125.05663","wires":[["3fb536dc.ab5c2a","accb9c6f.fb2dd"]]},{"id":"3fb536dc.ab5c2a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":723.0477905273438,"y":1316.2380135854082,"z":"a61c8125.05663","wires":[["e97bab2f.9e2558"]]},{"id":"accb9c6f.fb2dd","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":724.7144622802734,"y":1382.4285262425738,"z":"a61c8125.05663","wires":[["b4962d35.6adf3"]]},{"id":"e97bab2f.9e2558","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":850.1907348632812,"y":1314.8094552357989,"z":"a61c8125.05663","wires":[[]]},{"id":"b4962d35.6adf3","type":"for","name":"for each network-instance-group","xml":"<for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":928.2857437133789,"y":1382.0000286102295,"z":"a61c8125.05663","wires":[["f04a1fd1.4d346"]]},{"id":"f04a1fd1.4d346","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":1226.6189193725586,"y":1380.3334131240845,"z":"a61c8125.05663","wires":[["20f04448.3fe75c"]]},{"id":"20f04448.3fe75c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1448.2856903076172,"y":1379.0001916885376,"z":"a61c8125.05663","wires":[["e0068899.5e7468"]]},{"id":"e0068899.5e7468","type":"for","name":"for each network","xml":"<for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\n","comments":"","outputs":1,"x":1604.0000267028809,"y":1377.7143173217773,"z":"a61c8125.05663","wires":[["8ea9a9de.587eb8"]]},{"id":"8ea9a9de.587eb8","type":"set","name":"clear vlan-tag-id and set network-status to unassigned","xml":"<set>\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\n  value='' />\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\n  value='unassigned' />\n","comments":"","x":1915.4284591674805,"y":1376.285779953003,"z":"a61c8125.05663","wires":[]}]
\ No newline at end of file
index aae986b..770dd6e 100644 (file)
@@ -1 +1 @@
-[{"id":"a454005.ca0d08","type":"dgstart","name":"DGSTART","outputs":1,"x":147,"y":142.4136562347412,"z":"3a458d77.799552","wires":[["297a72c7.cc4fae"]]},{"id":"297a72c7.cc4fae","type":"service-logic","name":"GENERIC-RESOURCE-API 1.2.0-SNAPSHOT-111501","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":222.28570556640625,"y":182.6517677307129,"z":"3a458d77.799552","wires":[["217ac7fc.349988"]]},{"id":"217ac7fc.349988","type":"method","name":"method vf-module-topology-operation-activate","xml":"<method rpc='vf-module-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":260.42862701416016,"y":222.4136562347412,"z":"3a458d77.799552","wires":[["d0460fcb.62f0c"]]},{"id":"5b00e29b.70560c","type":"comment","name":"vf-module-topology-operation-activate","info":"","comments":"","x":541.344856262207,"y":90,"z":"3a458d77.799552","wires":[]},{"id":"387117c9.5e2b3","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":550.523811340332,"y":321.2707939147949,"z":"3a458d77.799552","wires":[["d1423fc.e72c4c","fb57f016.f69d48"]]},{"id":"d1423fc.e72c4c","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":801.5714263916016,"y":298.4136800765991,"z":"3a458d77.799552","wires":[["e13b99e3.f45468"]]},{"id":"fb57f016.f69d48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":745.2380714416504,"y":343.79466915130615,"z":"3a458d77.799552","wires":[["9c5fd099.236998"]]},{"id":"e13b99e3.f45468","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":991.4285907745361,"y":298.41371154785156,"z":"3a458d77.799552","wires":[[]]},{"id":"9c5fd099.236998","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'activate' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":1010.2380790710449,"y":344.12798166275024,"z":"3a458d77.799552","wires":[]},{"id":"d0460fcb.62f0c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":192,"y":550.7469501495361,"z":"3a458d77.799552","wires":[["387117c9.5e2b3","3a0073c0.2e62cc","65d44223.2afd14","e0d2a645.0d4a2","387e34d5.491ec4","41797325.2223c4","cebddafc.8ed5a8","df6bf686.e80248","31ad38a9.2d7408","19d65cb8.0950e3","ddfb9f67.b327f","480235fd.ba7594","6d867071.7e0d98"]]},{"id":"65d44223.2afd14","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":595.3333282470703,"y":452.4136209487915,"z":"3a458d77.799552","wires":[["71b1d6b3.6d695","fd2dae38.13491"]]},{"id":"71b1d6b3.6d695","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":836.0475997924805,"y":429.5563611984253,"z":"3a458d77.799552","wires":[["314fc4d9.da81dc"]]},{"id":"fd2dae38.13491","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":835.809440612793,"y":470.50887966156006,"z":"3a458d77.799552","wires":[["b60820e7.9b9398"]]},{"id":"314fc4d9.da81dc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":1002.7142143249512,"y":428.842116355896,"z":"3a458d77.799552","wires":[]},{"id":"b60820e7.9b9398","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":998.0475845336914,"y":470.175498008728,"z":"3a458d77.799552","wires":[["2c271d7a.99b29a"]]},{"id":"2c271d7a.99b29a","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1249.380802154541,"y":469.8421850204468,"z":"3a458d77.799552","wires":[["27abd74b.47753"]]},{"id":"27abd74b.47753","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1479.3808937072754,"y":469.17553901672363,"z":"3a458d77.799552","wires":[["6f4c7da5.fe666c"]]},{"id":"3a0073c0.2e62cc","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":539.3809280395508,"y":390.50879287719727,"z":"3a458d77.799552","wires":[]},{"id":"bb86543b.58f298","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1801.0475311279297,"y":440.1754970550537,"z":"3a458d77.799552","wires":[]},{"id":"e0d2a645.0d4a2","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":531.0476112365723,"y":517.1754951477051,"z":"3a458d77.799552","wires":[["4776a96c.bbeef"]]},{"id":"4776a96c.bbeef","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":709.3809967041016,"y":516.5088710784912,"z":"3a458d77.799552","wires":[["87a72ed3.6ce43"]]},{"id":"87a72ed3.6ce43","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":869.3809051513672,"y":515.8421745300293,"z":"3a458d77.799552","wires":[]},{"id":"6f4c7da5.fe666c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1627.71435546875,"y":468.0952377319336,"z":"3a458d77.799552","wires":[["bb86543b.58f298","7faae1b5.98e048"]]},{"id":"7faae1b5.98e048","type":"break","name":"break","xml":"<break>","comments":"","x":1762.7143211364746,"y":489.7618236541748,"z":"3a458d77.799552","wires":[]},{"id":"41797325.2223c4","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":603.6666412353516,"y":615.746992111206,"z":"3a458d77.799552","wires":[["6c3a919a.1704a8","da7c9426.3ae398"]]},{"id":"6c3a919a.1704a8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":854.3809509277344,"y":594.5563955307007,"z":"3a458d77.799552","wires":[["38385810.f15548"]]},{"id":"da7c9426.3ae398","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":854.1427917480469,"y":635.5089139938354,"z":"3a458d77.799552","wires":[["72f0a8be.095748"]]},{"id":"38385810.f15548","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":1021.0475654602051,"y":593.8421506881714,"z":"3a458d77.799552","wires":[]},{"id":"72f0a8be.095748","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1016.3809356689453,"y":635.1755323410034,"z":"3a458d77.799552","wires":[["5098b1f7.57aa2"]]},{"id":"5098b1f7.57aa2","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1322.714096069336,"y":634.8422679901123,"z":"3a458d77.799552","wires":[["7c9c4c3e.dbedbc"]]},{"id":"7c9c4c3e.dbedbc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1592.7141494750977,"y":632.5088729858398,"z":"3a458d77.799552","wires":[["4597fd99.cc396c"]]},{"id":"387e34d5.491ec4","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":559.3809127807617,"y":565.5088310241699,"z":"3a458d77.799552","wires":[]},{"id":"afc00e44.c54f4","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1922.714241027832,"y":603.5088520050049,"z":"3a458d77.799552","wires":[]},{"id":"cebddafc.8ed5a8","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":556.0476150512695,"y":683.8422508239746,"z":"3a458d77.799552","wires":[["fe303f22.65e0f"]]},{"id":"fe303f22.65e0f","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":734.3810005187988,"y":683.1756267547607,"z":"3a458d77.799552","wires":[["b33902ff.a3cd48"]]},{"id":"b33902ff.a3cd48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":894.3809089660645,"y":682.5089302062988,"z":"3a458d77.799552","wires":[]},{"id":"4597fd99.cc396c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1726.0476913452148,"y":631.4286127090454,"z":"3a458d77.799552","wires":[["afc00e44.c54f4","1082c2c8.10a48d"]]},{"id":"1082c2c8.10a48d","type":"break","name":"break","xml":"<break>","comments":"","x":1861.0476570129395,"y":653.0951986312866,"z":"3a458d77.799552","wires":[]},{"id":"df6bf686.e80248","type":"set","name":"set order-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":573.6667327880859,"y":1002.4136734008789,"z":"3a458d77.799552","wires":[]},{"id":"31ad38a9.2d7408","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":546.9999618530273,"y":753.0803127288818,"z":"3a458d77.799552","wires":[["926f0d8c.38aa08","adabddde.06da48"]]},{"id":"926f0d8c.38aa08","type":"outcome","name":"PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":758.6667060852051,"y":731.4136371612549,"z":"3a458d77.799552","wires":[["d25461f3.78a17"]]},{"id":"adabddde.06da48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":735.6666946411133,"y":776.7946090698242,"z":"3a458d77.799552","wires":[["f6a77785.5b0f58"]]},{"id":"d25461f3.78a17","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":913.5238418579102,"y":730.7470397949219,"z":"3a458d77.799552","wires":[[]]},{"id":"f6a77785.5b0f58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status + ' instead of PendingCreate'`\" />\n","comments":"","x":932.9999923706055,"y":776.7946691513062,"z":"3a458d77.799552","wires":[]},{"id":"19d65cb8.0950e3","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":538.6666717529297,"y":954.0803184509277,"z":"3a458d77.799552","wires":[]},{"id":"ddfb9f67.b327f","type":"save","name":"update vf-module to Active","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"Active\" />\n","comments":"","outputs":1,"x":571.9999389648438,"y":840.7469387054443,"z":"3a458d77.799552","wires":[["13ce15f.10b7a6a","68cd8ae8.715364"]]},{"id":"70609e54.5270d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":968.6666984558105,"y":864.0803079605103,"z":"3a458d77.799552","wires":[]},{"id":"13ce15f.10b7a6a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":781.3572654724121,"y":821.0327777862549,"z":"3a458d77.799552","wires":[["fd18e75b.d48ac8"]]},{"id":"68cd8ae8.715364","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":789.9286956787109,"y":865.3184909820557,"z":"3a458d77.799552","wires":[["70609e54.5270d8"]]},{"id":"fd18e75b.d48ac8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n","comments":"","x":971.357292175293,"y":820.8425130844116,"z":"3a458d77.799552","wires":[]},{"id":"480235fd.ba7594","type":"update","name":"Update EIPAM_IP_ASSIGNMENTS to ACTIVE","xml":"<update resource='SQL' force='true' plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n  key='UPDATE EIPAM_IP_ASSIGNMENTS SET status = \"ACTIVE\" WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'>\n","comments":"","outputs":1,"x":635.3333282470703,"y":910.7469625473022,"z":"3a458d77.799552","wires":[["9bce782d.b650b8"]]},{"id":"9bce782d.b650b8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":902,"y":909.0803022384644,"z":"3a458d77.799552","wires":[["54742454.0a8a7c"]]},{"id":"54742454.0a8a7c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table\" />\n","comments":"","x":1052,"y":907.4136152267456,"z":"3a458d77.799552","wires":[]},{"id":"6d867071.7e0d98","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":533.6666412353516,"y":1050.7469692230225,"z":"3a458d77.799552","wires":[]}]
+[{"id":"253897fe.9804d8","type":"dgstart","name":"DGSTART","outputs":1,"x":104.28571319580078,"y":82.41365623474121,"z":"a513164d.b587e8","wires":[["1277bad9.c9dc65"]]},{"id":"1277bad9.c9dc65","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":217.57141876220703,"y":122.65176773071289,"z":"a513164d.b587e8","wires":[["d0cd4638.a8e048"]]},{"id":"d0cd4638.a8e048","type":"method","name":"method vf-module-topology-operation-activate","xml":"<method rpc='vf-module-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":217.71434020996094,"y":162.4136562347412,"z":"a513164d.b587e8","wires":[["c2a3b593.0a5d08"]]},{"id":"670ca3d7.f1798c","type":"comment","name":"vf-module-topology-operation-activate","info":"","comments":"","x":498.6305694580078,"y":30,"z":"a513164d.b587e8","wires":[]},{"id":"9f59000e.f6806","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":507.8095245361328,"y":261.2707939147949,"z":"a513164d.b587e8","wires":[["a5ccb0a8.2cff4","ebb895aa.7188a8"]]},{"id":"a5ccb0a8.2cff4","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":758.8571395874023,"y":238.41368007659912,"z":"a513164d.b587e8","wires":[["121e0698.42b439"]]},{"id":"ebb895aa.7188a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":702.5237846374512,"y":283.79466915130615,"z":"a513164d.b587e8","wires":[["9e326f10.6579d"]]},{"id":"121e0698.42b439","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":948.7143039703369,"y":238.41371154785156,"z":"a513164d.b587e8","wires":[[]]},{"id":"9e326f10.6579d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'activate' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":967.5237922668457,"y":284.12798166275024,"z":"a513164d.b587e8","wires":[]},{"id":"c2a3b593.0a5d08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":159.28571319580078,"y":620.746940612793,"z":"a513164d.b587e8","wires":[["9f59000e.f6806","5a0c9e05.4c26d","120bbfec.5c7f5","62b75892.7f6148","30ab0690.1e23ea","7b205f57.6b2df","d2e05e08.6a7b6","9e432be5.4df7d8","ab8cd40.1cfff3","61692b8e.2508d4","c6388c88.2261c","59a1858f.55a5ac","fbfd66a7.490a98","9eef55da.15a338","4f0ef078.36dfd","66b49245.76614c"]]},{"id":"120bbfec.5c7f5","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":552.6190414428711,"y":392.4136209487915,"z":"a513164d.b587e8","wires":[["8e94d387.5f49a","ad72ff68.ef906"]]},{"id":"8e94d387.5f49a","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":793.3333129882812,"y":369.5563611984253,"z":"a513164d.b587e8","wires":[["374fb247.1fdefe"]]},{"id":"ad72ff68.ef906","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":793.0951538085938,"y":410.50887966156006,"z":"a513164d.b587e8","wires":[["786c1667.ed7d38"]]},{"id":"374fb247.1fdefe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":959.999927520752,"y":368.842116355896,"z":"a513164d.b587e8","wires":[]},{"id":"786c1667.ed7d38","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":955.3332977294922,"y":410.175498008728,"z":"a513164d.b587e8","wires":[["6cabe9b0.cf5628"]]},{"id":"6cabe9b0.cf5628","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1206.6665153503418,"y":409.8421850204468,"z":"a513164d.b587e8","wires":[["c9085c8b.10988"]]},{"id":"c9085c8b.10988","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1436.6666069030762,"y":409.17553901672363,"z":"a513164d.b587e8","wires":[["faa4e358.17a12"]]},{"id":"5a0c9e05.4c26d","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":496.66664123535156,"y":330.50879287719727,"z":"a513164d.b587e8","wires":[]},{"id":"e7a79cb9.7fe04","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1758.3332443237305,"y":380.1754970550537,"z":"a513164d.b587e8","wires":[]},{"id":"59a1858f.55a5ac","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":488.33332443237305,"y":457.1754951477051,"z":"a513164d.b587e8","wires":[["659357d5.3ce228"]]},{"id":"659357d5.3ce228","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":666.6667098999023,"y":456.5088710784912,"z":"a513164d.b587e8","wires":[["392aa8f.a19d758"]]},{"id":"392aa8f.a19d758","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":826.666618347168,"y":455.8421745300293,"z":"a513164d.b587e8","wires":[]},{"id":"faa4e358.17a12","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1585.0000686645508,"y":408.0952377319336,"z":"a513164d.b587e8","wires":[["e7a79cb9.7fe04","d2abc3b6.2fd2c"]]},{"id":"d2abc3b6.2fd2c","type":"break","name":"break","xml":"<break>\n","comments":"","x":1720.0000343322754,"y":429.7618236541748,"z":"a513164d.b587e8","wires":[]},{"id":"30ab0690.1e23ea","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":560.9523544311523,"y":555.746992111206,"z":"a513164d.b587e8","wires":[["b4a7388e.909e78","80a063f6.2f01e"]]},{"id":"b4a7388e.909e78","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":811.6666641235352,"y":534.5563955307007,"z":"a513164d.b587e8","wires":[["bb37ec27.eb40e"]]},{"id":"80a063f6.2f01e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":811.4285049438477,"y":575.5089139938354,"z":"a513164d.b587e8","wires":[["3a471dfe.805fa2"]]},{"id":"bb37ec27.eb40e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":978.3332786560059,"y":533.8421506881714,"z":"a513164d.b587e8","wires":[]},{"id":"3a471dfe.805fa2","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":973.6666488647461,"y":575.1755323410034,"z":"a513164d.b587e8","wires":[["75a4ece.d91fd14"]]},{"id":"75a4ece.d91fd14","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1279.9998092651367,"y":574.8422679901123,"z":"a513164d.b587e8","wires":[["cd38f5fd.973228"]]},{"id":"cd38f5fd.973228","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1549.9998626708984,"y":572.5088729858398,"z":"a513164d.b587e8","wires":[["6e925a0e.9bad64"]]},{"id":"62b75892.7f6148","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":516.6666259765625,"y":505.5088310241699,"z":"a513164d.b587e8","wires":[]},{"id":"7819b897.9b8788","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1879.9999542236328,"y":543.5088520050049,"z":"a513164d.b587e8","wires":[]},{"id":"7b205f57.6b2df","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":513.3333282470703,"y":623.8422508239746,"z":"a513164d.b587e8","wires":[["7e534d10.70f0c4"]]},{"id":"7e534d10.70f0c4","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":691.6667137145996,"y":623.1756267547607,"z":"a513164d.b587e8","wires":[["d2e9e465.4b0f08"]]},{"id":"d2e9e465.4b0f08","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":851.6666221618652,"y":622.5089302062988,"z":"a513164d.b587e8","wires":[]},{"id":"6e925a0e.9bad64","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1683.3334045410156,"y":571.4286127090454,"z":"a513164d.b587e8","wires":[["7819b897.9b8788","431f8c87.56adf4"]]},{"id":"431f8c87.56adf4","type":"break","name":"break","xml":"<break>\n","comments":"","x":1818.3333702087402,"y":593.0951986312866,"z":"a513164d.b587e8","wires":[]},{"id":"d2e05e08.6a7b6","type":"set","name":"set order-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":528.5714797973633,"y":1216.22327709198,"z":"a513164d.b587e8","wires":[]},{"id":"588ce565.39dd2c","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":504.2856674194336,"y":714.7469882965088,"z":"a513164d.b587e8","wires":[["6be401d0.b3524","56615580.a8db5c","5c68b194.1aa58"]]},{"id":"6be401d0.b3524","type":"outcome","name":"PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":715.9524192810059,"y":671.4136371612549,"z":"a513164d.b587e8","wires":[["42b04be7.605cf4"]]},{"id":"56615580.a8db5c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":691.2857513427734,"y":756.7946605682373,"z":"a513164d.b587e8","wires":[["33b17b74.98d924"]]},{"id":"42b04be7.605cf4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":870.8095207214355,"y":689.0803823471069,"z":"a513164d.b587e8","wires":[[]]},{"id":"33b17b74.98d924","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status + ' instead of PendingCreate or PendingDelete'`\" />\n","comments":"","x":885.2857398986816,"y":755.1280536651611,"z":"a513164d.b587e8","wires":[]},{"id":"9e432be5.4df7d8","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":493.57141876220703,"y":1167.8899221420288,"z":"a513164d.b587e8","wires":[]},{"id":"ab8cd40.1cfff3","type":"save","name":"update vf-module to Active","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"Active\" />\n","comments":"","outputs":1,"x":526.904655456543,"y":970.2708263397217,"z":"a513164d.b587e8","wires":[["78e7a6a8.082428","ea900719.fbc578"]]},{"id":"1f016e5b.1ac382","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":923.5714149475098,"y":993.6041955947876,"z":"a513164d.b587e8","wires":[]},{"id":"78e7a6a8.082428","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":736.2619819641113,"y":950.5566654205322,"z":"a513164d.b587e8","wires":[["76a4fbff.34ca44"]]},{"id":"ea900719.fbc578","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":744.8334121704102,"y":994.842378616333,"z":"a513164d.b587e8","wires":[["1f016e5b.1ac382"]]},{"id":"76a4fbff.34ca44","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n","comments":"","x":926.2620086669922,"y":950.366400718689,"z":"a513164d.b587e8","wires":[]},{"id":"61692b8e.2508d4","type":"update","name":"Update EIPAM_IP_ASSIGNMENTS to ACTIVE","xml":"<update resource='SQL' force='true' plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n  key='UPDATE EIPAM_IP_ASSIGNMENTS SET status = \"ACTIVE\" WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'>\n","comments":"","outputs":1,"x":590.2380752563477,"y":1124.5565662384033,"z":"a513164d.b587e8","wires":[["a400120c.32d8b"]]},{"id":"a400120c.32d8b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":856.9047470092773,"y":1122.8899059295654,"z":"a513164d.b587e8","wires":[["2d90cf92.ce7de"]]},{"id":"2d90cf92.ce7de","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table\" />\n","comments":"","x":1006.9047470092773,"y":1121.2232189178467,"z":"a513164d.b587e8","wires":[]},{"id":"c6388c88.2261c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":490.71422576904297,"y":1313.8423299789429,"z":"a513164d.b587e8","wires":[]},{"id":"5c68b194.1aa58","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":715.9523696899414,"y":713.3333053588867,"z":"a513164d.b587e8","wires":[["42b04be7.605cf4"]]},{"id":"fbfd66a7.490a98","type":"switchNode","name":"switch vlan-vnfc-instance-group_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\n","comments":"","outputs":1,"x":566.6666793823242,"y":854.3184928894043,"z":"a513164d.b587e8","wires":[["bacf35b7.11ac18","49ee94e2.45f87c","880d861c.b8cce8"]]},{"id":"bacf35b7.11ac18","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":799.5238571166992,"y":807.1755809783936,"z":"a513164d.b587e8","wires":[["5c899c3f.07e234"]]},{"id":"49ee94e2.45f87c","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":799.5237483978271,"y":852.8898429870605,"z":"a513164d.b587e8","wires":[["5c899c3f.07e234"]]},{"id":"880d861c.b8cce8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":798.0951995849609,"y":901.9375038146973,"z":"a513164d.b587e8","wires":[["958797c2.5ae5a8"]]},{"id":"5c899c3f.07e234","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":928.0952529907227,"y":827.17555809021,"z":"a513164d.b587e8","wires":[[]]},{"id":"9eef55da.15a338","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":520.9523849487305,"y":201.4612865447998,"z":"a513164d.b587e8","wires":[[]]},{"id":"4f0ef078.36dfd","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmoduleactivate.log' />\n","comments":"","outputs":1,"x":486.4285888671875,"y":1264.318528175354,"z":"a513164d.b587e8","wires":[[]]},{"id":"958797c2.5ae5a8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-activate' mode='sync' >\n","comments":"","outputs":1,"x":1132.6191024780273,"y":901.4135723114014,"z":"a513164d.b587e8","wires":[["56f9841d.9bbbec"]]},{"id":"56f9841d.9bbbec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1470.9523658752441,"y":900.7471504211426,"z":"a513164d.b587e8","wires":[["9d2071d5.2c25c"]]},{"id":"9d2071d5.2c25c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1620.952262878418,"y":899.0803050994873,"z":"a513164d.b587e8","wires":[]},{"id":"66b49245.76614c","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":497.85715103149414,"y":1057.2856426239014,"z":"a513164d.b587e8","wires":[["280c9cb0.667b24"]]},{"id":"280c9cb0.667b24","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":674.5238914489746,"y":1056.6668376922607,"z":"a513164d.b587e8","wires":[["184691ab.6cf73e"]]},{"id":"184691ab.6cf73e","type":"save","name":"update vnfc to Active","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc\"\n   key=\"vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"Active\" />\n<parameter name=\"prov-status\" value=\"NVTPROV\" />\n","comments":"","outputs":1,"x":889.2857627868652,"y":1055.8571224212646,"z":"a513164d.b587e8","wires":[["997c88da.d2aad8","cae348fb.2f2c48"]]},{"id":"434861b1.ae452","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vnfc found in AAI for vnfc name ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`\" />\n","comments":"","x":1252.142807006836,"y":1074.8572216033936,"z":"a513164d.b587e8","wires":[]},{"id":"997c88da.d2aad8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1089.1191673278809,"y":1031.381106376648,"z":"a513164d.b587e8","wires":[["da3fd75c.7374d8"]]},{"id":"cae348fb.2f2c48","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1097.6905975341797,"y":1075.6668195724487,"z":"a513164d.b587e8","wires":[["434861b1.ae452"]]},{"id":"da3fd75c.7374d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vnfc in AAI\" />\n","comments":"","x":1254.8334007263184,"y":1031.619426727295,"z":"a513164d.b587e8","wires":[]},{"id":"de1a984f.167338","type":"comment","name":"check removed with US622450","info":"","comments":"","x":434.2857360839844,"y":677.1428833007812,"z":"a513164d.b587e8","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.json
new file mode 100755 (executable)
index 0000000..6c4c9fd
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"ccf106c5.707b48","type":"dgstart","name":"DGSTART","outputs":1,"x":110,"y":92.02430057525635,"z":"13e6e2ea.39c6bd","wires":[["4b890a54.767294"]]},{"id":"4b890a54.767294","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":223.85713577270508,"y":131.8338384628296,"z":"13e6e2ea.39c6bd","wires":[["3c2baa81.1215b6"]]},{"id":"3c2baa81.1215b6","type":"method","name":"method vf-module-topology-operation-assign-no-preload","xml":"<method rpc='vf-module-topology-operation-assign-no-preload' mode='sync'>\n","comments":"","outputs":1,"x":255.42862701416016,"y":172.02430057525635,"z":"13e6e2ea.39c6bd","wires":[["9d5e708.3c6859"]]},{"id":"f904cbec.78e8f8","type":"comment","name":"vf-module-topology-operation-assign-no-preload","info":"","comments":"","x":515.3210983276367,"y":35,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"63f3696.6218498","type":"get-resource","name":"get-resource VF_MODULE_TO_VFC_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-to-vfc-mapping[]'>\n\n","comments":"","outputs":1,"x":694.6667366027832,"y":329.6909623146057,"z":"13e6e2ea.39c6bd","wires":[["211af9cd.6c7426","878c48a4.cb6108"]]},{"id":"211af9cd.6c7426","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":960.4523239135742,"y":310.07178592681885,"z":"13e6e2ea.39c6bd","wires":[["13c51e83.af0a61"]]},{"id":"878c48a4.cb6108","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":969.023754119873,"y":354.35749912261963,"z":"13e6e2ea.39c6bd","wires":[["1f09fa88.e70a15"]]},{"id":"13c51e83.af0a61","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_TO_VFC_MAPPING table\" />\n","comments":"","x":1135.4522552490234,"y":309.2146863937378,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b4576528.8788e8","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":575.5951805114746,"y":873.1674156188965,"z":"13e6e2ea.39c6bd","wires":[["fe4cfa93.00c808"]]},{"id":"da35a04f.296c6","type":"get-resource","name":"get-resource VFC_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-model'>\n\n","comments":"","outputs":1,"x":1020.6428604125977,"y":471.9292640686035,"z":"13e6e2ea.39c6bd","wires":[["d1591ba2.d88918","fed633f0.bd231"]]},{"id":"db7c0a65.9461d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1391.0712280273438,"y":496.3575782775879,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"d1591ba2.d88918","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1216.4284973144531,"y":452.3099365234375,"z":"13e6e2ea.39c6bd","wires":[["b8e462f5.a1b1e"]]},{"id":"fed633f0.bd231","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1224.999927520752,"y":496.5956497192383,"z":"13e6e2ea.39c6bd","wires":[["db7c0a65.9461d8"]]},{"id":"b8e462f5.a1b1e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_MODEL table\" />\n","comments":"","x":1391.4284286499023,"y":451.45283699035645,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"fe4cfa93.00c808","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":767.4999847412109,"y":871.7388010025024,"z":"13e6e2ea.39c6bd","wires":[["da35a04f.296c6","4ed899f9.797c48","63f600f1.839a7","fabeac3e.e95e4","cb019d88.194c5","94ce3ab9.eb4458","f5972382.8377e","c40d94b7.4c8af8","4214c675.f10ac8","66d4bdfe.f66fb4"]]},{"id":"50c85fed.5c6f5","type":"set","name":"set vm_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\n  value='`$db.vf-module-to-vfc-mapping_length`' />\n","comments":"","x":586.5713119506836,"y":389.8816328048706,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4ed899f9.797c48","type":"set","name":"set vm data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\n   value='`$db.vfc-model.nfc-naming-code`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\n   value='`$db.vfc-model.vm-type-tag`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n\n<!-- Context variables used when creating vnfc object in AAI -->\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid'\n   value='`$db.vfc-model.invariant-uuid`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function'\n   value='`$db.vfc-model.nfc-function`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid'\n   value='`$db.vfc-model.uuid`' />\n","comments":"","x":975.6428146362305,"y":635.0245161056519,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"63f600f1.839a7","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":975.8807220458984,"y":844.2774267196655,"z":"13e6e2ea.39c6bd","wires":[["eb592c2.c19d8d"]]},{"id":"fabeac3e.e95e4","type":"set","name":"set vm-name-length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\n  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":1002.0713577270508,"y":680.7062349319458,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b41879b4.cf80e8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1760.8808873494472,"y":793.7538928985596,"z":"13e6e2ea.39c6bd","wires":[["31801b6d.e4e794"]]},{"id":"8d4f03c2.ba403","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1764.2142486572266,"y":838.5633668899536,"z":"13e6e2ea.39c6bd","wires":[["f89a65be.4e1708"]]},{"id":"f89a65be.4e1708","type":"set","name":"set vm-name to generated name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]'\n  value='`$naming-policy-generate-name-output.vm-name`' />\n","comments":"","x":1985.8808212280273,"y":838.0394048690796,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"eb592c2.c19d8d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1140.28568649292,"y":843.9203271865845,"z":"13e6e2ea.39c6bd","wires":[["76706fb6.60a4e","339e662e.fbd89a","a38671f.88cbf9","21a55e27.060852"]]},{"id":"cb019d88.194c5","type":"get-resource","name":"get-resource VFC_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-to-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":1109.9999618530273,"y":1025.6345911026,"z":"13e6e2ea.39c6bd","wires":[["9ad4ffbc.310cb","9240ed89.b79"]]},{"id":"9ad4ffbc.310cb","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1397.2141647338867,"y":1006.015438079834,"z":"13e6e2ea.39c6bd","wires":[["5f9b8976.1118a8"]]},{"id":"9240ed89.b79","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1405.7855949401855,"y":1050.3011512756348,"z":"13e6e2ea.39c6bd","wires":[["d7650e2f.710f5"]]},{"id":"7f8ac8c0.5a55c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1720.5474281311035,"y":1005.1583118438721,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"94ce3ab9.eb4458","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\n","comments":"","outputs":1,"x":1003.0952377319336,"y":1333.8254594802856,"z":"13e6e2ea.39c6bd","wires":[["dffdeb92.ec5de8"]]},{"id":"dffdeb92.ec5de8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1209.5237045288086,"y":1333.491937637329,"z":"13e6e2ea.39c6bd","wires":[["43d2700a.b7fa5","fa9c37cf.c9d598","399eb20b.2ea8fe","1d05761c.d860aa","75ef736b.dd2aec","5e6bc2d9.c929fc","5e90e6ce.652298"]]},{"id":"43d2700a.b7fa5","type":"for","name":"for each network","xml":"<for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1418.5712661743164,"y":1165.6346940994263,"z":"13e6e2ea.39c6bd","wires":[["7dca3e9a.b10f9"]]},{"id":"fa9c37cf.c9d598","type":"set","name":"set network-index to -1","xml":"<set>\n<parameter name='network-index' value='-1' />\n","comments":"","x":1438.5713348388672,"y":1122.7776908874512,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"7dca3e9a.b10f9","type":"switchNode","name":"switch network-role matches","xml":"<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\n","comments":"","outputs":1,"x":1647.1425399780273,"y":1164.2058839797974,"z":"13e6e2ea.39c6bd","wires":[["79ea2010.e35cf"]]},{"id":"79ea2010.e35cf","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1845.7142066955566,"y":1164.206088066101,"z":"13e6e2ea.39c6bd","wires":[["a69072b0.40d9"]]},{"id":"a69072b0.40d9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1987.1427745819092,"y":1162.7775163650513,"z":"13e6e2ea.39c6bd","wires":[["febff1ac.c1531","41885e24.cde4c"]]},{"id":"febff1ac.c1531","type":"set","name":"set network-index to idx","xml":"<set>\n<parameter name='network-index' value='`$idx`' />\n","comments":"","x":2165.714286804199,"y":1139.9205121994019,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"41885e24.cde4c","type":"break","name":"break","xml":"<break>\n","comments":"","x":2114.2855262756348,"y":1185.6346921920776,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"399eb20b.2ea8fe","type":"switchNode","name":"switch network-index","xml":"<switch test='`$network-index`'>\n","comments":"","outputs":1,"x":1430.4761047363281,"y":1214.4443311691284,"z":"13e6e2ea.39c6bd","wires":[["dc929053.5343b"]]},{"id":"dc929053.5343b","type":"outcomeTrue","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1624.7618293762207,"y":1214.4442281723022,"z":"13e6e2ea.39c6bd","wires":[["14d70fd7.6db44"]]},{"id":"edc0a5ec.24cc78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`\" />\n","comments":"","x":1930.2379455566406,"y":1213.0158033370972,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1d05761c.d860aa","type":"set","name":"set network-role and tag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\n","comments":"","x":1440.2379875183105,"y":1310.6345176696777,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"75ef736b.dd2aec","type":"switchNode","name":"switch ipv4-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n","comments":"","outputs":1,"x":1432.8570404052734,"y":1393.9678449630737,"z":"13e6e2ea.39c6bd","wires":[["73c4d3ec.f19f4c","9ea599ed.a77708"]]},{"id":"dfb26d0c.2431b","type":"set","name":"set network-information-index to -1","xml":"<set>\n<parameter name='network-information-index' value='-1' />\n\n","comments":"","x":1842.3806648254395,"y":1358.9679498672485,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"73c4d3ec.f19f4c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1609.5235595703125,"y":1358.9679851531982,"z":"13e6e2ea.39c6bd","wires":[["dfb26d0c.2431b"]]},{"id":"9ea599ed.a77708","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1608.2855110168457,"y":1424.9201278686523,"z":"13e6e2ea.39c6bd","wires":[["472331bd.db84d"]]},{"id":"2769ba0c.7b94b6","type":"set","name":"set network-information-index to 0","xml":"<set>\n<parameter name='network-information-index' value='0' />\n","comments":"","x":2012.8567733764648,"y":1399.4439888000488,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"472331bd.db84d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1775.475986480713,"y":1424.2535934448242,"z":"13e6e2ea.39c6bd","wires":[["2769ba0c.7b94b6","f7a74a70.5e07f8"]]},{"id":"f7a74a70.5e07f8","type":"set","name":"set ip-version ipv4, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='ipv4' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\n","comments":"","x":2037.8093566894531,"y":1446.1109447479248,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"5e6bc2d9.c929fc","type":"switchNode","name":"switch ipv6-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n","comments":"","outputs":1,"x":1433.333236694336,"y":1520.8726272583008,"z":"13e6e2ea.39c6bd","wires":[["1cb442a4.a39a4d","5ffe015b.9fb85"]]},{"id":"1cb442a4.a39a4d","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1612.1427307128906,"y":1491.110439300537,"z":"13e6e2ea.39c6bd","wires":[["236df371.e62ecc"]]},{"id":"5ffe015b.9fb85","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1613.5712852478027,"y":1555.39599609375,"z":"13e6e2ea.39c6bd","wires":[["6d3cd943.349b38"]]},{"id":"82480780.92bd68","type":"set","name":"increment network-information-index","xml":"<set>\n<parameter name='network-information-index' value='`$network-information-index + 1`' />\n","comments":"","x":2019.2853775024414,"y":1529.9200258255005,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6d3cd943.349b38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1768.8094444274902,"y":1554.4437351226807,"z":"13e6e2ea.39c6bd","wires":[["82480780.92bd68","173cdbc6.145594"]]},{"id":"236df371.e62ecc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1754.8093605041504,"y":1490.4440574645996,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"5e90e6ce.652298","type":"set","name":"save network-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\n  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\n","comments":"This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing","x":1412.380874633789,"y":1262.3011646270752,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"173cdbc6.145594","type":"set","name":"set ip-version ipv6, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='ipv6' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\n","comments":"","x":2039.1903533935547,"y":1574.5953512191772,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"f5972382.8377e","type":"switchNode","name":"switch ecomp-generated-naming == 'Y'","xml":"<switch test=\"$db.vfc-model.ecomp-generated-naming == 'Y'\">\n","comments":"","outputs":1,"x":1058.999942779541,"y":541.690746307373,"z":"13e6e2ea.39c6bd","wires":[["90686169.46114"]]},{"id":"90686169.46114","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1290.6665534973145,"y":540.6903772354126,"z":"13e6e2ea.39c6bd","wires":[["723f449d.59b57c"]]},{"id":"723f449d.59b57c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1437.333293914795,"y":540.023832321167,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1f09fa88.e70a15","type":"set","name":"set vf-module-to-vfc-mapping length to 0","xml":"<set>\n<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\n","comments":"","x":1222.2380447387695,"y":353.9761619567871,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"d7650e2f.710f5","type":"set","name":"set vfc-to-network-role-mapping length to 0","xml":"<set>\n<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\n","comments":"","x":1669.190414428711,"y":1050.3095417022705,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9d5e708.3c6859","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":229.49999237060547,"y":2671.3578300476074,"z":"13e6e2ea.39c6bd","wires":[["63f3696.6218498","50c85fed.5c6f5","b4576528.8788e8","87328741.8bb538","598265d5.076a1c","c6d86686.1ef208","1518dbb.eb54c24","794438e6.14a948","d35b17af.0f15b8","9c2146c7.85c5b8","6de6e324.feccdc","eaa55ef8.4455b","23b6184c.984c48","a255596.979d8a8"]]},{"id":"c40d94b7.4c8af8","type":"switchNode","name":"switch naming-policy","xml":"<switch test=\"$db.vfc-model.naming-policy\">\n","comments":"","outputs":1,"x":1005.4761962890625,"y":588.4528875350952,"z":"13e6e2ea.39c6bd","wires":[["cd6dd56.4ba2128"]]},{"id":"cd6dd56.4ba2128","type":"outcomeFalse","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1291.4285354614258,"y":587.4525203704834,"z":"13e6e2ea.39c6bd","wires":[["5be9e020.01d8"]]},{"id":"5be9e020.01d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'naming_policy is null for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1438.0952758789062,"y":586.7859754562378,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"339e662e.fbd89a","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1459.7619438171387,"y":815.5957231521606,"z":"13e6e2ea.39c6bd","wires":[["b41879b4.cf80e8","8d4f03c2.ba403"]]},{"id":"76706fb6.60a4e","type":"set","name":"set variables for generating VM name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vfc-model.customization-uuid`' />\n<parameter name='naming-policy-generate-name-input.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n","comments":"","x":1381.1902198791504,"y":771.3100023269653,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4d106fd0.8afe8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to generate VM name: ' + $error-message`\" />\n","comments":"","x":2099.761787414551,"y":792.7383985519409,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"21a55e27.060852","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1458.3333473205566,"y":918.4528799057007,"z":"13e6e2ea.39c6bd","wires":[["8c806b8.0817e98","7f560e9b.dfd6a"]]},{"id":"a38671f.88cbf9","type":"set","name":"set variables for generating VNFC name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vf-module-customization-uuid`' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n<parameter name='naming-policy-generate-name-input.vnf-name' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.vm-name' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`' />\n","comments":"","x":1388.3332710266113,"y":867.0242071151733,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4a88df43.04fef","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to generate VNFC name: ' + $error-message`\" />\n","comments":"","x":2100.6191177368164,"y":891.8336629867554,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"711a6ca3.f0fe44","type":"set","name":"set vnfc-name to generated name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\n  value='`$naming-policy-generate-name-output.vnfc-name`' />\n","comments":"","x":1988.2854804992676,"y":937.6908407211304,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1c81545b.1b50cc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1926.6666297912598,"y":891.7862119674683,"z":"13e6e2ea.39c6bd","wires":[["4a88df43.04fef","521a6c5f.21d114"]]},{"id":"8c806b8.0817e98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1761.6668128967285,"y":891.786292552948,"z":"13e6e2ea.39c6bd","wires":[["1c81545b.1b50cc"]]},{"id":"7f560e9b.dfd6a","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1765.0000305175781,"y":938.452877998352,"z":"13e6e2ea.39c6bd","wires":[["711a6ca3.f0fe44"]]},{"id":"4214c675.f10ac8","type":"set","name":"set vnfc-names_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length'\n  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":1008.3333358764648,"y":728.4528951644897,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"a49b0347.b961f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3391.3811416625977,"y":773.2147998809814,"z":"13e6e2ea.39c6bd","wires":[["58315482.1be8cc","b99998cf.6bb228"]]},{"id":"b99998cf.6bb228","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":3715.666847229004,"y":799.7863311767578,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"58315482.1be8cc","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":3617.0954666137695,"y":752.6434020996094,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"521a6c5f.21d114","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":2560.143524169922,"y":683.4052515029907,"z":"13e6e2ea.39c6bd","wires":[["afeba0ce.e026"]]},{"id":"2a35635e.28750c","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":2862.714855194092,"y":739.5480680465698,"z":"13e6e2ea.39c6bd","wires":[["e505c5d.554b238"]]},{"id":"e505c5d.554b238","type":"switchNode","name":"switch vnfc-name","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":3069.714786529541,"y":739.8813858032227,"z":"13e6e2ea.39c6bd","wires":[["5fa252e7.81574c","f681c938.b26858"]]},{"id":"5fa252e7.81574c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3238.0480461120605,"y":706.5480918884277,"z":"13e6e2ea.39c6bd","wires":[["8e550d8.23bf5f"]]},{"id":"f681c938.b26858","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3239.7147178649902,"y":772.7386045455933,"z":"13e6e2ea.39c6bd","wires":[["a49b0347.b961f"]]},{"id":"8e550d8.23bf5f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3368.0478897094727,"y":704.881443977356,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"1eeb0dd0.2caa32","type":"comment","name":"Rollback any generated VM and VNFC names","info":"","comments":"","x":2776.1905937194824,"y":577.5004119873047,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"afeba0ce.e026","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2713.0955772399902,"y":682.7862062454224,"z":"13e6e2ea.39c6bd","wires":[["2a35635e.28750c","8ec715d5.ed2bf8"]]},{"id":"1f772d12.9894d3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3389.9525108337402,"y":657.5004873275757,"z":"13e6e2ea.39c6bd","wires":[["57b851c2.70962","94a2a62b.184d48"]]},{"id":"94a2a62b.184d48","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":3714.2382164001465,"y":684.072018623352,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"57b851c2.70962","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":3615.666835784912,"y":636.9290895462036,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"8ec715d5.ed2bf8","type":"for","name":"for each vm name","xml":"<for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\n","comments":"","outputs":1,"x":2875.571891784668,"y":623.8337755203247,"z":"13e6e2ea.39c6bd","wires":[["625f6664.ac0f48"]]},{"id":"625f6664.ac0f48","type":"switchNode","name":"switch vm-name","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\n","comments":"","outputs":1,"x":3068.2861557006836,"y":623.1670732498169,"z":"13e6e2ea.39c6bd","wires":[["8f655289.9c337","8927e94a.49cc88"]]},{"id":"8f655289.9c337","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3236.619415283203,"y":590.833779335022,"z":"13e6e2ea.39c6bd","wires":[["cba034a4.e16dd8"]]},{"id":"8927e94a.49cc88","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3238.286087036133,"y":657.0242919921875,"z":"13e6e2ea.39c6bd","wires":[["1f772d12.9894d3"]]},{"id":"cba034a4.e16dd8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3366.6192588806152,"y":589.1671314239502,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"31801b6d.e4e794","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1926.9047470092773,"y":792.7385950088501,"z":"13e6e2ea.39c6bd","wires":[["4d106fd0.8afe8","521a6c5f.21d114"]]},{"id":"87328741.8bb538","type":"set","name":"set variables for auto-ip call","xml":"<set>\n<parameter name='auto-ip-assignment-input.aic-cloud-region'\n  value='`$tmp.vf-module-topology.aic-cloud-region`' />\n<parameter name='auto-ip-assignment-input.vf-module.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n<parameter name='auto-ip-assignment-input.vf-module-id'\n  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='auto-ip-assignment-input.service-instance-id'\n  value='`$service-data.service-information.service-instance-id`' />\n<parameter name='auto-ip-assignment-input.service-type'\n  value='`$service-data.service-information.service-type`' />\n","comments":"","x":615.0000534057617,"y":1645.3576192855835,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"23b6184c.984c48","type":"call","name":"call GENERIC-RESOURCE-API:auto-ip-assignment","xml":"<call module='GENERIC-RESOURCE-API' rpc='auto-ip-assignment' mode='sync' >\n","comments":"","outputs":1,"x":688.333366394043,"y":1883.6908798217773,"z":"13e6e2ea.39c6bd","wires":[["20c7894.db67076"]]},{"id":"5f9b8976.1118a8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1549.9999618530273,"y":1005.3576135635376,"z":"13e6e2ea.39c6bd","wires":[["7f8ac8c0.5a55c8","521a6c5f.21d114"]]},{"id":"14d70fd7.6db44","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1768.3332138061523,"y":1213.6909265518188,"z":"13e6e2ea.39c6bd","wires":[["edc0a5ec.24cc78","521a6c5f.21d114"]]},{"id":"20c7894.db67076","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":959.9999809265137,"y":1883.6910009384155,"z":"13e6e2ea.39c6bd","wires":[["7192aaf0.52a984"]]},{"id":"7192aaf0.52a984","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1118.3332557678223,"y":1882.0242795944214,"z":"13e6e2ea.39c6bd","wires":[["521a6c5f.21d114","45026188.78415"]]},{"id":"45026188.78415","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failure in call to auto-ip-assignment: ' + $error-message`\" />\n","comments":"","x":1296.6666679382324,"y":1881.024374961853,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"771b1ebb.9c0cb","type":"set","name":"set test EIPAM response","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='2' />\n<parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\n<parameter name='eipam-ip-block.plans[0].requests_length' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value='1.1.1.1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />\n<parameter name='eipam-ip-block.plans[0].requests[1].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|6|1' />\n<parameter name='eipam-ip-block.plans[0].requests[1].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[1].ip-prefix' value='cafe::1001' />\n<parameter name='eipam-ip-block.plans[0].requests[1].ip-version' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[2].client-key'\n  value='vm-type-2|zmtn6nf-code-16code-2001|network-role-2|subnet-role-2|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[2].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[2].ip-prefix' value='2.2.2.2' />\n<parameter name='eipam-ip-block.plans[0].requests[2].ip-version' value='4' />\n<parameter name='eipam-ip-block.plans[0].requests[3].client-key'\n  value='vm-type-2|zmtn6nf-code-16code-2001|network-role-2|subnet-role-2|FIXED|6|1' />\n<parameter name='eipam-ip-block.plans[0].requests[3].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[3].ip-prefix' value='cafe::1002' />\n<parameter name='eipam-ip-block.plans[0].requests[3].ip-version' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[4].client-key'\n  value='vm-type-2|zmtn6nf-code-16code-2001|network-role-2|subnet-role-2|FIXED|6|1' />\n<parameter name='eipam-ip-block.plans[0].requests[4].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[4].ip-prefix' value='cafe::1003' />\n<parameter name='eipam-ip-block.plans[0].requests[4].ip-version' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[5].client-key'\n  value='vm-type-2|zmtn6nf-code-16code-2001|network-role-2|subnet-role-2|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[5].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[5].ip-prefix' value='3.3.3.3' />\n<parameter name='eipam-ip-block.plans[0].requests[5].ip-version' value='4' />\n\n<parameter name='eipam-ip-block.plans[1].requests_length' value='4' />\n<parameter name='eipam-ip-block.plans[1].requests[0].client-key'\n  value='vm-type-1|network-role-1|subnet-role-1|VIP|4|1|1' />\n<parameter name='eipam-ip-block.plans[1].requests[0].ip-type' value='VIP' />\n<parameter name='eipam-ip-block.plans[1].requests[0].ip-prefix' value='11.11.11.11' />\n<parameter name='eipam-ip-block.plans[1].requests[0].ip-version' value='4' />\n<parameter name='eipam-ip-block.plans[1].requests[1].client-key'\n  value='vm-type-1|network-role-1|subnet-role-1|VIP|4|1|1' />\n<parameter name='eipam-ip-block.plans[1].requests[1].ip-type' value='VIP' />\n<parameter name='eipam-ip-block.plans[1].requests[1].ip-prefix' value='22.22.22.22' />\n<parameter name='eipam-ip-block.plans[1].requests[1].ip-version' value='4' />\n<parameter name='eipam-ip-block.plans[1].requests[2].client-key'\n  value='vm-type-1|network-role-1|subnet-role-1|VIP|6|1|1' />\n<parameter name='eipam-ip-block.plans[1].requests[2].ip-type' value='VIP' />\n<parameter name='eipam-ip-block.plans[1].requests[2].ip-prefix' value='cafe::1111' />\n<parameter name='eipam-ip-block.plans[1].requests[2].ip-version' value='6' />\n<parameter name='eipam-ip-block.plans[1].requests[3].client-key'\n  value='vm-type-1|network-role-1|subnet-role-1|VIP|6|1|1' />\n<parameter name='eipam-ip-block.plans[1].requests[3].ip-type' value='VIP' />\n<parameter name='eipam-ip-block.plans[1].requests[3].ip-prefix' value='cafe::2222' />\n<parameter name='eipam-ip-block.plans[1].requests[3].ip-version' value='6' />\n","comments":"","x":600.0000648498535,"y":2034.357575416565,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"598265d5.076a1c","type":"for","name":"for each plan","xml":"<for silentFailure='true' index='plan-index' start='0' end='`$eipam-ip-block.plans_length`' >\n","comments":"","outputs":1,"x":558.3333778381348,"y":2317.024312019348,"z":"13e6e2ea.39c6bd","wires":[["1b197272.bbfabe"]]},{"id":"1b197272.bbfabe","type":"for","name":"for each request","xml":"<for silentFailure='true' index='req-index' start='0' end='`$eipam-ip-block.plans[$plan-index].requests_length`' >\n","comments":"","outputs":1,"x":741.6666641235352,"y":2317.0243520736694,"z":"13e6e2ea.39c6bd","wires":[["144833a2.5430cc"]]},{"id":"144833a2.5430cc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":924.9999923706055,"y":2315.35769367218,"z":"13e6e2ea.39c6bd","wires":[["4aab1eb.fa430e","c7dde25e.0e54f","c07f7dfd.4def3","c042257a.473868","52b37045.0d7a5","57a47a87.12f354","da3b4ec1.df94b","9fcfcf11.64142"]]},{"id":"4aab1eb.fa430e","type":"execute","name":"split client-key","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='ck-split' />\n   <parameter name='original_string' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].client-key`' />\n   <parameter name='regex' value='\\|' />\n","comments":"","outputs":1,"x":1110.0952491760254,"y":2091.5480642318726,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"c7dde25e.0e54f","type":"set","name":"set variables from eipam data","xml":"<set>\n<parameter name='tmp.vm-type' value='`$ck-split[0]`' />\n<parameter name='tmp.vnfc-name' value='`$ck-split[1]`' />\n<parameter name='tmp.network-role' value='`$ck-split[2]`' />\n<parameter name='tmp.subnet-role' value='`$ck-split[3]`' />\n<parameter name='tmp.address-family' value='`$ck-split[5]`' />\n<parameter name='tmp.ip-type' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].ip-type`' />\n<parameter name='tmp.client-key' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].client-key`' />\n<parameter name='tmp.ip-prefix' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].ip-prefix`' />\n","comments":"","x":1156.7619552612305,"y":2134.8816442489624,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c07f7dfd.4def3","type":"set","name":"set found-vm-type to false","xml":"<set>\n<parameter name='found-vm-type' value='false' />\n","comments":"","x":1145.0000495910645,"y":2300.357734680176,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c042257a.473868","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":1116.6667442321777,"y":2350.3576164245605,"z":"13e6e2ea.39c6bd","wires":[["a975e9b3.b05228"]]},{"id":"a975e9b3.b05228","type":"switchNode","name":"vm-types match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type\n  == $tmp.vm-type`'>\n","comments":"","outputs":1,"x":1316.6666946411133,"y":2350.357738494873,"z":"13e6e2ea.39c6bd","wires":[["649bdd78.280204"]]},{"id":"31cb7093.bd3c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1628.33349609375,"y":2347.0243644714355,"z":"13e6e2ea.39c6bd","wires":[["a35843d6.249da","d47afd32.863ab"]]},{"id":"a35843d6.249da","type":"set","name":"set found-vm-type to true","xml":"<set>\n<parameter name='found-vm-type' value='true' />\n","comments":"","x":1839.999984741211,"y":2317.024278640747,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"d47afd32.863ab","type":"break","name":"break","xml":"<break>\n","comments":"","x":1783.3334007263184,"y":2365.3577365875244,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"52b37045.0d7a5","type":"switchNode","name":"switch found-vm-type","xml":"<switch test='`$found-vm-type`'>\n","comments":"","outputs":1,"x":1126.666519165039,"y":2427.0242042541504,"z":"13e6e2ea.39c6bd","wires":[["881a97dd.d9f598"]]},{"id":"881a97dd.d9f598","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1306.6667366027832,"y":2425.3577003479004,"z":"13e6e2ea.39c6bd","wires":[["9bc3aed6.a8fd8"]]},{"id":"9bc3aed6.a8fd8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1468.3333892822266,"y":2423.690870285034,"z":"13e6e2ea.39c6bd","wires":[["ab930b30.224238","da81ad8c.c8b9e"]]},{"id":"ab930b30.224238","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'EIPAM returned vm-type ' + $tmp.vm-type + ' but could not find that under vf-module-assignments'`\" />\n","comments":"","x":1646.6668014526367,"y":2422.690965652466,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"da81ad8c.c8b9e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2401.666669209798,"y":560.3576339085896,"z":"13e6e2ea.39c6bd","wires":[["521a6c5f.21d114","25bde5f2.975d8a"]]},{"id":"25bde5f2.975d8a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2528.333194732666,"y":472.0242986679077,"z":"13e6e2ea.39c6bd","wires":[["55b59017.ac142"]]},{"id":"17ceb097.02119f","type":"comment","name":"rollback IP address assignments","info":"","comments":"","x":2600.000002543131,"y":410.3576339085896,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"60ed3dc.3ff09c4","type":"switchNode","name":"switch vnfc-network-data_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`'>\n","comments":"","outputs":1,"x":1723.3334121704102,"y":2888.6906232833862,"z":"13e6e2ea.39c6bd","wires":[["25266f18.0de0d","e78464e4.8d58b8","cc615615.e12138"]]},{"id":"25266f18.0de0d","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1953.333267211914,"y":2743.6907920837402,"z":"13e6e2ea.39c6bd","wires":[["98c659aa.db2028"]]},{"id":"e78464e4.8d58b8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1953.0951461791992,"y":2786.309772491455,"z":"13e6e2ea.39c6bd","wires":[["98c659aa.db2028"]]},{"id":"cc615615.e12138","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1955.000072479248,"y":3075.357873916626,"z":"13e6e2ea.39c6bd","wires":[["67c447ad.869408"]]},{"id":"98c659aa.db2028","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2114.9998779296875,"y":2762.024200439453,"z":"13e6e2ea.39c6bd","wires":[["148bbc8c.430b33","8f8e7022.9df53","6ba05fe1.0dae4","78b1f4c5.bbb46c","b4b4329a.94d86"]]},{"id":"148bbc8c.430b33","type":"set","name":"set vnfc-network-data_length to 1, and set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-network-role'\n  value='`$tmp.network-role`' />\n  ","comments":"","x":2433.3332595825195,"y":2668.6912717819214,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"8f8e7022.9df53","type":"set","name":"set vnfc-subnet_length to 1, and set subnet-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-subnet-role'\n  value='`$tmp.subnet-role`' />","comments":"","x":2408.3331298828125,"y":2715.3577785491943,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6ba05fe1.0dae4","type":"set","name":"set vnfc-ip-assignments_length to 1, and address-family","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-address-family'\n  value='`$tmp.address-family`' />\n  ","comments":"","x":2431.666679382324,"y":2760.357536315918,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"78b1f4c5.bbb46c","type":"set","name":"set vnfc-subnet-ip_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\n","comments":"","x":2349.9997634887695,"y":2807.0243701934814,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b4b4329a.94d86","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\n  value='`$tmp.ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\n  value='`$tmp.client-key`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\n  value='FIXED' />\n","comments":"","x":2304.999885559082,"y":2850.3574619293213,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"da3b4ec1.df94b","type":"switchNode","name":"switch ip-type","xml":"<switch test='`$tmp.ip-type`'>\n","comments":"","outputs":1,"x":1097.3333740234375,"y":3437.0240783691406,"z":"13e6e2ea.39c6bd","wires":[["2033ce0d.bc8622","b9c2c784.3125d8"]]},{"id":"2033ce0d.bc8622","type":"other","name":"FIXED","xml":"<outcome value='FIXED'>\n","comments":"","outputs":1,"x":1250.666732788086,"y":2685.3576374053955,"z":"13e6e2ea.39c6bd","wires":[["9d4cf962.1d0768"]]},{"id":"67c447ad.869408","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2118.3334884643555,"y":3075.35772895813,"z":"13e6e2ea.39c6bd","wires":[["2839b041.8f54d","2283280.d62a5d8","a05a62b4.2336d"]]},{"id":"2839b041.8f54d","type":"set","name":"set found-network-role to false","xml":"<set>\n<parameter name='found-network-role' value='false' />\n","comments":"","x":2353.333541870117,"y":2897.858076095581,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"2283280.d62a5d8","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`' >\n","comments":"","outputs":1,"x":2325.00040435791,"y":2942.524663925171,"z":"13e6e2ea.39c6bd","wires":[["32b23a3.5a389c6"]]},{"id":"32b23a3.5a389c6","type":"switchNode","name":"network-role matches","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role\n  == $tmp.network-role`'>\n","comments":"","outputs":1,"x":2548.333915710449,"y":2942.1914920806885,"z":"13e6e2ea.39c6bd","wires":[["a88574bd.1678d8"]]},{"id":"a88574bd.1678d8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2721.6670112609863,"y":2941.191167831421,"z":"13e6e2ea.39c6bd","wires":[["88d1efc2.912a6"]]},{"id":"88d1efc2.912a6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2873.33349609375,"y":2940.191068649292,"z":"13e6e2ea.39c6bd","wires":[["b50ce667.7886c8","32f1a205.5d725e"]]},{"id":"b50ce667.7886c8","type":"set","name":"set found-network-role to true","xml":"<set>\n<parameter name='found-network-role' value='true' />\n","comments":"","x":3091.6669921875,"y":2911.191068649292,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"32f1a205.5d725e","type":"break","name":"break","xml":"<break>\n","comments":"","x":3021.667022705078,"y":2961.191168785095,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"a05a62b4.2336d","type":"switchNode","name":"switch found-network-role","xml":"<switch test='`$found-network-role`'>\n","comments":"","outputs":1,"x":2326.667167663574,"y":3327.857654571533,"z":"13e6e2ea.39c6bd","wires":[["b91f1532.009a78","fdafd38.5ab293"]]},{"id":"fdafd38.5ab293","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2547.5003662109375,"y":3522.8578577041626,"z":"13e6e2ea.39c6bd","wires":[["77606e95.9710c"]]},{"id":"b91f1532.009a78","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2549.9998779296875,"y":3152.0241887569427,"z":"13e6e2ea.39c6bd","wires":[["68f6d18c.f9f8f"]]},{"id":"68f6d18c.f9f8f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2708.3334426879883,"y":3152.024410009384,"z":"13e6e2ea.39c6bd","wires":[["5fd87962.076fc8","9e5a04a9.fc30c8","64cad055.48cd2","db9376b.eaf6588","3310fef0.424282","804f6159.edd6c","556256da.341038"]]},{"id":"77606e95.9710c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2702.500274658203,"y":3523.1910066604614,"z":"13e6e2ea.39c6bd","wires":[["8f2afed7.bdf8","1136a4d9.72946b","55c78324.3ca87c"]]},{"id":"5fd87962.076fc8","type":"set","name":"increment vnfc-network-data_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length'\n  value='`$network-role-index + 1`' />\n  ","comments":"","x":2970.0007705688477,"y":3105.3580656051636,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9e5a04a9.fc30c8","type":"set","name":"set vnfc-subnet_length to 1, and set subnet-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-subnet-role'\n  value='`$tmp.subnet-role`' />","comments":"","x":3003.3335189819336,"y":3155.3577728271484,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"64cad055.48cd2","type":"set","name":"set vnfc-ip-assignments_length to 1, and address-family","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-address-family'\n  value='`$tmp.address-family`' />","comments":"","x":3028.3336029052734,"y":3200.3578090667725,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"db9376b.eaf6588","type":"set","name":"set vnfc-subnet-ip_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\n","comments":"","x":2945.000114440918,"y":3247.0243186950684,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"3310fef0.424282","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\n  value='`$tmp.ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\n  value='`$tmp.client-key`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\n  value='FIXED' />\n","comments":"","x":2900.0002365112305,"y":3290.357410430908,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"8f2afed7.bdf8","type":"set","name":"set found-subnet-role to false","xml":"<set>\n<parameter name='found-subnet-role' value='false' />\n","comments":"","x":2940.8336181640625,"y":3344.5247297286987,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1136a4d9.72946b","type":"for","name":"for each subnet-role","xml":"<for index='subnet-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\n","comments":"","outputs":1,"x":2912.5004806518555,"y":3389.1913175582886,"z":"13e6e2ea.39c6bd","wires":[["7fd50a06.b93e44"]]},{"id":"7fd50a06.b93e44","type":"switchNode","name":"subnet-role matches","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role\n  == $tmp.subnet-role`'>\n","comments":"","outputs":1,"x":3135.8339920043945,"y":3388.858145713806,"z":"13e6e2ea.39c6bd","wires":[["5805cc31.6906d4"]]},{"id":"5805cc31.6906d4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3309.1670875549316,"y":3387.8578214645386,"z":"13e6e2ea.39c6bd","wires":[["8587f11e.d3a04"]]},{"id":"8587f11e.d3a04","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3460.8335723876953,"y":3386.8577222824097,"z":"13e6e2ea.39c6bd","wires":[["965b10d5.e7b31","7d6b549a.45bb3c"]]},{"id":"965b10d5.e7b31","type":"set","name":"set found-subnet-role to true","xml":"<set>\n<parameter name='found-subnet-role' value='true' />\n","comments":"","x":3679.1670684814453,"y":3357.8577222824097,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"7d6b549a.45bb3c","type":"break","name":"break","xml":"<break>\n","comments":"","x":3609.1670989990234,"y":3407.857822418213,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"55c78324.3ca87c","type":"switchNode","name":"switch found-subnet-role","xml":"<switch test='`$found-subnet-role`'>\n","comments":"","outputs":1,"x":2919.1672744750977,"y":3712.857183456421,"z":"13e6e2ea.39c6bd","wires":[["9069277e.fcb1e8","a4c9692a.7873c8"]]},{"id":"a4c9692a.7873c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3124.1668090820312,"y":3869.5243701934814,"z":"13e6e2ea.39c6bd","wires":[["8164b76f.4f1de8"]]},{"id":"9069277e.fcb1e8","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3124.1664810180664,"y":3576.191110610962,"z":"13e6e2ea.39c6bd","wires":[["56d7e5b5.6be7fc"]]},{"id":"56d7e5b5.6be7fc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3282.500045776367,"y":3576.1913318634033,"z":"13e6e2ea.39c6bd","wires":[["ea54da7d.3f3198","3e2e98ab.c48318","bd191b30.5a4268","76e82015.194fb","7f3e5552.0e3d2c","bf5a6271.6d679"]]},{"id":"8164b76f.4f1de8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3279.166717529297,"y":3869.8575191497803,"z":"13e6e2ea.39c6bd","wires":[["28713321.8a25bc","53e0a7bb.fca328","4df98faf.82703"]]},{"id":"ea54da7d.3f3198","type":"set","name":"set vnfc-ip-assignments_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length' value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-address-family'\n  value='`$tmp.address-family`' />\n","comments":"","x":3534.1670532226562,"y":3592.857608795166,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"3e2e98ab.c48318","type":"set","name":"set vnfc-subnet-ip_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\n","comments":"","x":3514.166893005371,"y":3637.857668876648,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"bd191b30.5a4268","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\n  value='`$tmp.ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\n  value='`$tmp.client-key`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\n  value='FIXED' />\n","comments":"","x":3469.1670150756836,"y":3681.190760612488,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"76e82015.194fb","type":"set","name":"increment vnfc-subnet_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length'\n  value='`$subnet-role-index + 1`' />\n  ","comments":"","x":3519.1668853759766,"y":3546.191328048706,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"28713321.8a25bc","type":"set","name":"set found-address-family to false","xml":"<set>\n<parameter name='found-address-family' value='false' />\n","comments":"","x":3524.1668090820312,"y":3726.1910066604614,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"53e0a7bb.fca328","type":"for","name":"for each address-family","xml":"<for index='address-family-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\n","comments":"","outputs":1,"x":3495.8337173461914,"y":3770.85751247406,"z":"13e6e2ea.39c6bd","wires":[["c0b62546.59aab8"]]},{"id":"c0b62546.59aab8","type":"switchNode","name":"address-family matches","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role\n  == $tmp.address-family`'>\n","comments":"","outputs":1,"x":3716.1672973632812,"y":3770.524537086487,"z":"13e6e2ea.39c6bd","wires":[["ae8e0e82.f5de8"]]},{"id":"ae8e0e82.f5de8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3886.5003929138184,"y":3769.5242128372192,"z":"13e6e2ea.39c6bd","wires":[["7a31318.f63c9d"]]},{"id":"7a31318.f63c9d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4034.166877746582,"y":3768.5241136550903,"z":"13e6e2ea.39c6bd","wires":[["826ded94.a5795","e41e9f32.534a9"]]},{"id":"826ded94.a5795","type":"set","name":"set found-address-family to true","xml":"<set>\n<parameter name='found-address-family' value='true' />\n","comments":"","x":4252.500373840332,"y":3739.5241136550903,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"e41e9f32.534a9","type":"break","name":"break","xml":"<break>\n","comments":"","x":4182.50040435791,"y":3789.5242137908936,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4df98faf.82703","type":"switchNode","name":"switch found-address-family","xml":"<switch test='`$found-address-family`'>\n","comments":"","outputs":1,"x":3512.5001373291016,"y":4019.52410697937,"z":"13e6e2ea.39c6bd","wires":[["dc3802bf.10e2c","8943e1bb.8ec55"]]},{"id":"8943e1bb.8ec55","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3720.833221435547,"y":4116.191186904907,"z":"13e6e2ea.39c6bd","wires":[["572ce392.74af5c"]]},{"id":"dc3802bf.10e2c","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3712.49951171875,"y":3932.8572158813477,"z":"13e6e2ea.39c6bd","wires":[["ff709b2d.6c7448"]]},{"id":"ff709b2d.6c7448","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3870.833076477051,"y":3932.857437133789,"z":"13e6e2ea.39c6bd","wires":[["b1dce9be.3dc5b8","a107927b.81f53","b9c71fe3.0cd2a","193827f5.6035f8","fe3ad0f.f08ce3"]]},{"id":"572ce392.74af5c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3875.8331298828125,"y":4116.524335861206,"z":"13e6e2ea.39c6bd","wires":[["b07bdfd9.ad1ad","4960815f.e5bc9","d7e6b87e.300348"]]},{"id":"b1dce9be.3dc5b8","type":"set","name":"set vnfc-subnet-ip_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length' value='1' />\n","comments":"","x":4100.833297729492,"y":3976.190981864929,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"a107927b.81f53","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].vnfc-ip-address'\n  value='`$tmp.ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].vnfc-client-key'\n  value='`$tmp.client-key`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].ip-type'\n  value='FIXED' />\n","comments":"","x":4055.833251953125,"y":4019.5239973068237,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b9c71fe3.0cd2a","type":"set","name":"increment vnfc-ip-assignments_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length'\n  value='`$address-family-index + 1`' />\n  ","comments":"","x":4129.16658782959,"y":3931.1911764144897,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"57a47a87.12f354","type":"switchNode","name":"switch address-family","xml":"<switch test='`$tmp.address-family`'>\n","comments":"","outputs":1,"x":1131.666805267334,"y":2240.357734680176,"z":"13e6e2ea.39c6bd","wires":[["e1d33b8e.c7e338","30637a91.193656"]]},{"id":"e1d33b8e.c7e338","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1308.3332786560059,"y":2218.690944671631,"z":"13e6e2ea.39c6bd","wires":[["85adb8e7.0976f8"]]},{"id":"30637a91.193656","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1306.6665725708008,"y":2262.0242805480957,"z":"13e6e2ea.39c6bd","wires":[["10be448e.752b6b"]]},{"id":"85adb8e7.0976f8","type":"set","name":"set address-family to ipv4","xml":"<set>\n<parameter name='tmp.address-family' value='ipv4' />\n","comments":"","x":1494.9999923706055,"y":2218.690984725952,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"10be448e.752b6b","type":"set","name":"set address-family to ipv6","xml":"<set>\n<parameter name='tmp.address-family' value='ipv6' />\n","comments":"","x":1493.3333892822266,"y":2262.0242443084717,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b07bdfd9.ad1ad","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].vnfc-ip-address'\n  value='`$tmp.ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].vnfc-client-key'\n  value='`$tmp.client-key`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].ip-type'\n  value='FIXED' />\n","comments":"","x":4053.3330993652344,"y":4114.524302482605,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4960815f.e5bc9","type":"set","name":"set ip-address-index","xml":"<set>\n<parameter name='ip-address-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' />\n","comments":"","x":4071.66690826416,"y":4067.8578577041626,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"d7e6b87e.300348","type":"set","name":"increment vnfc-subnet-ip_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length'\n  value='`$ip-address-length + 1`' />\n","comments":"","x":4104.999755859375,"y":4159.524364471436,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"649bdd78.280204","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1475.000156402588,"y":2348.6910705566406,"z":"13e6e2ea.39c6bd","wires":[["31cb7093.bd3c8"]]},{"id":"c6d86686.1ef208","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-no-preload.log' />\n","comments":"","outputs":1,"x":556.6667022705078,"y":2217.0242443084717,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"66d4bdfe.f66fb4","type":"set","name":"set vm-network_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$db.vfc-to-network-role-mapping_length`' />\n","comments":"","x":995.0000610351562,"y":1592.024118423462,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1518dbb.eb54c24","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-no-preload2.log' />\n","comments":"","outputs":1,"x":572.5000152587891,"y":4855.35776424408,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"fe3ad0f.f08ce3","type":"set","name":"set address-family","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family'\n  value='`$tmp.address-family`' />\n  ","comments":"","x":4068.3333282470703,"y":3884.524182319641,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"193827f5.6035f8","type":"set","name":"set address-family-index","xml":"<set>\n<parameter name='address-family-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' />\n  ","comments":"","x":4085.0002403259277,"y":3842.8572702407837,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"bf5a6271.6d679","type":"set","name":"set subnet-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role'\n  value='`$tmp.subnet-role`' />\n  ","comments":"","x":3470.0002212524414,"y":3499.524253845215,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"7f3e5552.0e3d2c","type":"set","name":"set subnet-role-index","xml":"<set>\n<parameter name='subnet-role-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' />\n","comments":"","x":3488.3333129882812,"y":3454.524251937866,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"556256da.341038","type":"set","name":"set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role'\n  value='`$tmp.network-role`' />\n  ","comments":"","x":2910.0002822875977,"y":3057.857900619507,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"804f6159.edd6c","type":"set","name":"set network-role-index","xml":"<set>\n<parameter name='network-role-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`' />\n","comments":"","x":2930.0001182556152,"y":3012.8575732707977,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"ac38490b.8fcd18","type":"set","name":"set found-vnfc-name to false","xml":"<set>\n<parameter name='found-vnfc-name' value='false' />\n","comments":"","x":1703.3332901000977,"y":2488.024443626404,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"22653bfc.8b7a14","type":"for","name":"for each vnfc-name","xml":"<for silentFailure='true' index='vnfc-name-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":1673.3332290649414,"y":2538.0245265960693,"z":"13e6e2ea.39c6bd","wires":[["bf0a8e5.c63f87"]]},{"id":"bf0a8e5.c63f87","type":"switchNode","name":"vnfc-names match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-name\n  == $tmp.vnfc-name`'>\n","comments":"","outputs":1,"x":1864.9998893737793,"y":2538.024444580078,"z":"13e6e2ea.39c6bd","wires":[["4c6ca6ac.ec20d8"]]},{"id":"96b5ee9a.33f3f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2176.666690826416,"y":2534.6910705566406,"z":"13e6e2ea.39c6bd","wires":[["e1d42125.3f537","663bddf4.3a7934"]]},{"id":"e1d42125.3f537","type":"set","name":"set found-vnfc-name to true","xml":"<set>\n<parameter name='found-vnfc-name' value='true' />\n","comments":"","x":2396.6664428710938,"y":2504.690866470337,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"663bddf4.3a7934","type":"break","name":"break","xml":"<break>\n","comments":"","x":2331.6665954589844,"y":2553.0244426727295,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c6b4719a.dc6ca","type":"switchNode","name":"switch found-vnfc-name","xml":"<switch test='`$found-vnfc-name`'>\n","comments":"","outputs":1,"x":1683.333023071289,"y":2614.690870285034,"z":"13e6e2ea.39c6bd","wires":[["58adec2d.2b7574"]]},{"id":"58adec2d.2b7574","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1854.9999313354492,"y":2613.0244064331055,"z":"13e6e2ea.39c6bd","wires":[["f43cfeb6.4a8a5"]]},{"id":"f43cfeb6.4a8a5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2016.6665840148926,"y":2611.3575763702393,"z":"13e6e2ea.39c6bd","wires":[["53deae46.834f2","da81ad8c.c8b9e"]]},{"id":"53deae46.834f2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'EIPAM returned VNFC name ' + $tmp.vnfc-name + ' but could not find that under vf-module-assignments for vm-type ' + $tmp.vm-type`\" />\n","comments":"","x":2194.9999961853027,"y":2610.357671737671,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"4c6ca6ac.ec20d8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2023.333351135254,"y":2536.3577766418457,"z":"13e6e2ea.39c6bd","wires":[["96b5ee9a.33f3f"]]},{"id":"b9c2c784.3125d8","type":"other","name":"VIP","xml":"<outcome value='VIP'>\n","comments":"","outputs":1,"x":1261.6667823791504,"y":4448.691262245178,"z":"13e6e2ea.39c6bd","wires":[["400a98ce.3a1b38"]]},{"id":"9d4cf962.1d0768","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1409.3333892822266,"y":2685.024366378784,"z":"13e6e2ea.39c6bd","wires":[["ac38490b.8fcd18","22653bfc.8b7a14","c6b4719a.dc6ca","60ed3dc.3ff09c4"]]},{"id":"39fdc359.ec208c","type":"set","name":"set variables from eipam data","xml":"<set>\n<parameter name='tmp.network-role' value='`$ck-split[1]`' />\n<parameter name='tmp.subnet-role' value='`$ck-split[2]`' />\n<parameter name='tmp.address-family' value='`$ck-split[4]`' />\n","comments":"","x":1655.333366394043,"y":4175.6911153793335,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"400a98ce.3a1b38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1410.333641052246,"y":4448.3579568862915,"z":"13e6e2ea.39c6bd","wires":[["39fdc359.ec208c","9804f58a.62cd58","bceb44f3.14e468","111d3baa.2ac094"]]},{"id":"efcdf82d.885e98","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='vm-network-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":2160.0000534057617,"y":4363.691123008728,"z":"13e6e2ea.39c6bd","wires":[["b83efc26.aeed1"]]},{"id":"b83efc26.aeed1","type":"switchNode","name":"network-roles match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role\n  == $tmp.network-role`'>\n","comments":"","outputs":1,"x":2373.6667404174805,"y":4363.6910400390625,"z":"13e6e2ea.39c6bd","wires":[["e23b064.f9749f8"]]},{"id":"fd8c18a4.5267c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2711.33345413208,"y":4362.357585906982,"z":"13e6e2ea.39c6bd","wires":[["5d5f6fdc.c91e9","c0706fbf.53875"]]},{"id":"5d5f6fdc.c91e9","type":"break","name":"break","xml":"<break>\n","comments":"","x":2864.6665840148926,"y":4382.357789993286,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6e9c4629.bc3238","type":"switchNode","name":"switch tmp.vm-network-index","xml":"<switch test='`$tmp.vm-network-index`'>\n","comments":"","outputs":1,"x":2184.999931335449,"y":4482.023971557617,"z":"13e6e2ea.39c6bd","wires":[["6b87c2f7.512f5c"]]},{"id":"6b87c2f7.512f5c","type":"outcomeFalse","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":2380.0000610351562,"y":4480.357791900635,"z":"13e6e2ea.39c6bd","wires":[["2873f959.66f586"]]},{"id":"2873f959.66f586","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2531.666732788086,"y":4480.357629776001,"z":"13e6e2ea.39c6bd","wires":[["ca9da770.612e88","ac8c2d3f.4fc1","b05e43b1.66858"]]},{"id":"e23b064.f9749f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2558.000114440918,"y":4363.0242919921875,"z":"13e6e2ea.39c6bd","wires":[["fd8c18a4.5267c8"]]},{"id":"111d3baa.2ac094","type":"switchNode","name":"switch tmp.address-family","xml":"<switch test='`$tmp.address-family`'>\n","comments":"","outputs":1,"x":1643.3331680297852,"y":4676.786513328552,"z":"13e6e2ea.39c6bd","wires":[["a3736ab5.de3198","5567cb71.c8e684"]]},{"id":"a3736ab5.de3198","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1850.0000038146973,"y":4607.452527999878,"z":"13e6e2ea.39c6bd","wires":[["eb993152.19a82"]]},{"id":"5567cb71.c8e684","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1848.8094482421875,"y":4761.929349899292,"z":"13e6e2ea.39c6bd","wires":[["eaa1b6f7.672238"]]},{"id":"7b8c2093.b07e","type":"switchNode","name":"switch tmp.length","xml":"<switch test='`$tmp.length`'>\n","comments":"","outputs":1,"x":2129.524238586426,"y":4625.357593536377,"z":"13e6e2ea.39c6bd","wires":[["cc88e2a8.5dde8","144d562.63225aa","677764bc.2fd59c"]]},{"id":"cc88e2a8.5dde8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2293.0952110290527,"y":4585.833422660828,"z":"13e6e2ea.39c6bd","wires":[["cc3858da.bc14d8"]]},{"id":"144d562.63225aa","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2294.2858848571777,"y":4628.45237159729,"z":"13e6e2ea.39c6bd","wires":[["cc3858da.bc14d8"]]},{"id":"cc3858da.bc14d8","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4[0]'\n  value='`$tmp.ip-prefix`' />\n","comments":"","x":2447.6192359924316,"y":4604.167006492615,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"677764bc.2fd59c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2294.0476684570312,"y":4670.595855712891,"z":"13e6e2ea.39c6bd","wires":[["4e836d1e.c86b74"]]},{"id":"4e836d1e.c86b74","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2457.380989074707,"y":4668.929021835327,"z":"13e6e2ea.39c6bd","wires":[["f0d42fee.5d4e8","68676061.0e0c9"]]},{"id":"f0d42fee.5d4e8","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$tmp.length]'\n  value='`$tmp.ip-prefix`' />\n","comments":"","x":2633.5713272094727,"y":4644.642726898193,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"68676061.0e0c9","type":"set","name":"increment floating-ip-v4_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length'\n  value='`$tmp.length + 1`' />\n","comments":"","x":2683.5715942382812,"y":4691.309234619141,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"fd74d6c9.7458a8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2293.808952331543,"y":4741.071571350098,"z":"13e6e2ea.39c6bd","wires":[["331dc73.d5e2638"]]},{"id":"bb60c5ac.d057f8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2293.570831298828,"y":4783.6905517578125,"z":"13e6e2ea.39c6bd","wires":[["331dc73.d5e2638"]]},{"id":"331dc73.d5e2638","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6[0]'\n  value='`$tmp.ip-prefix`' />\n","comments":"","x":2455.475715637207,"y":4759.405067443848,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c6578904.ad6e68","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2289.0472717285156,"y":4832.976842880249,"z":"13e6e2ea.39c6bd","wires":[["642b2dc5.096754"]]},{"id":"642b2dc5.096754","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2452.3805923461914,"y":4831.310009002686,"z":"13e6e2ea.39c6bd","wires":[["2e0198ef.fac958","6f2a4f57.153ce"]]},{"id":"2e0198ef.fac958","type":"set","name":"set eipam data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6[$tmp.length]'\n  value='`$tmp.ip-prefix`' />\n","comments":"","x":2635.7138442993164,"y":4801.310009002686,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6f2a4f57.153ce","type":"set","name":"increment floating-ip-v6_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length'\n  value='`$tmp.length + 1`' />\n","comments":"","x":2685.714111328125,"y":4847.976516723633,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"55b59017.ac142","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >","comments":"","outputs":1,"x":2828.3332138061523,"y":448.6909704208374,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"f8e94419.c5d8f8","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":2758.3329544067383,"y":498.69096660614014,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"de97ac82.07e09","type":"for","name":"for each vm-name","xml":"<for index='vm-name-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\n","comments":"","outputs":1,"x":910.0000381469727,"y":1767.0240440368652,"z":"13e6e2ea.39c6bd","wires":[["c06c9b88.9e3118"]]},{"id":"794438e6.14a948","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":578.3332824707031,"y":1745.3576622009277,"z":"13e6e2ea.39c6bd","wires":[["6b08f283.1c6e8c"]]},{"id":"d35b17af.0f15b8","type":"set","name":"set vnf-vms_length","xml":"<set>\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' />\n","comments":"","x":586.6666793823242,"y":1695.3576612472534,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c06c9b88.9e3118","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1061.6667137145996,"y":1766.3575792312622,"z":"13e6e2ea.39c6bd","wires":[["4ca82d1d.2fb004","27b6fdad.a54e32"]]},{"id":"6ef5aea5.96cc2","type":"set","name":"set vm-type, and vm-names_length","xml":"<set>\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-type'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type`' />\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' />\n","comments":"","x":958.3333511352539,"y":1718.690788269043,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6b08f283.1c6e8c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":743.3333358764648,"y":1745.3575525283813,"z":"13e6e2ea.39c6bd","wires":[["6ef5aea5.96cc2","de97ac82.07e09"]]},{"id":"4ca82d1d.2fb004","type":"set","name":"set vm-name, and vnfc-names_length","xml":"<set>\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vm-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`' />\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vnfc-names_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' />\n","comments":"","x":1281.6665573120117,"y":1738.6908617019653,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"27b6fdad.a54e32","type":"for","name":"for each vnfc-name","xml":"<for index='vnfc-name-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":1225.0000076293945,"y":1788.6908750534058,"z":"13e6e2ea.39c6bd","wires":[["ae2ae030.8e8f3"]]},{"id":"ae2ae030.8e8f3","type":"set","name":"set vnfc-name","xml":"<set>\n<parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vnfc-names[$vnfc-name-index].vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-name`' />\n","comments":"","x":1413.333236694336,"y":1788.690821647644,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9c2146c7.85c5b8","type":"set","name":"set vnf-assignments to auto IP call","xml":"<set>\n<parameter name='auto-ip-assignment-input.vnf-topology.vnf-assignments.' \n  value='tmp.vnf-topology.vnf-assignments.' />\n\n","comments":"","x":633.3333129882812,"y":1812.0242910385132,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"64fe9b0a.eb8794","type":"set","name":"set tmp.length","xml":"<set>\n<parameter name='tmp.length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length`' />\n","comments":"","x":2119.762107849121,"y":4580.120216369629,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"eb993152.19a82","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1972.619125366211,"y":4607.26229095459,"z":"13e6e2ea.39c6bd","wires":[["64fe9b0a.eb8794","7b8c2093.b07e"]]},{"id":"eaa1b6f7.672238","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1971.190689086914,"y":4761.548007965088,"z":"13e6e2ea.39c6bd","wires":[["d0e14a9f.e8edc8","2a994463.5c93ac"]]},{"id":"d0e14a9f.e8edc8","type":"switchNode","name":"switch tmp.length","xml":"<switch test='`$tmp.length`'>\n","comments":"","outputs":1,"x":2128.3336181640625,"y":4782.976711273193,"z":"13e6e2ea.39c6bd","wires":[["fd74d6c9.7458a8","bb60c5ac.d057f8","c6578904.ad6e68"]]},{"id":"2a994463.5c93ac","type":"set","name":"set tmp.length","xml":"<set>\n<parameter name='tmp.length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length`' />\n","comments":"","x":2118.571487426758,"y":4737.739334106445,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6de6e324.feccdc","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >","comments":"","outputs":1,"x":589.166748046875,"y":5157.857647895813,"z":"13e6e2ea.39c6bd","wires":[["71573bad.e3d974"]]},{"id":"71573bad.e3d974","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":773.3333892822266,"y":5157.357983589172,"z":"13e6e2ea.39c6bd","wires":[["215c87ca.31fe88"]]},{"id":"215c87ca.31fe88","type":"for","name":"for each vnfc-network","xml":"<for silentFailure='true' index='vnfc-network-index' start='0'\n  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`' >\n","comments":"","outputs":1,"x":973.3333358764648,"y":5157.024161338806,"z":"13e6e2ea.39c6bd","wires":[["78dcb1fc.add97"]]},{"id":"78dcb1fc.add97","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1155.0001754760742,"y":5157.02432346344,"z":"13e6e2ea.39c6bd","wires":[["68fd7fdb.0b0bb","79d86468.93bb8c","72caf681.3c09d8","bc4f083.a48cbf8"]]},{"id":"9804f58a.62cd58","type":"switchNode","name":"switch vm-network_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`'>\n","comments":"","outputs":1,"x":1646.6667404174805,"y":4335.357867240906,"z":"13e6e2ea.39c6bd","wires":[["bc0b7a0.558e488","f6fb98fe.9969f8","dc787dea.bcd76"]]},{"id":"bc0b7a0.558e488","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1856.666633605957,"y":4255.357707023621,"z":"13e6e2ea.39c6bd","wires":[["1011305d.6dd12"]]},{"id":"f6fb98fe.9969f8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1857.857307434082,"y":4297.976655960083,"z":"13e6e2ea.39c6bd","wires":[["1011305d.6dd12"]]},{"id":"dc787dea.bcd76","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1860.9524765014648,"y":4420.119835853577,"z":"13e6e2ea.39c6bd","wires":[["8ca708be.1c4978"]]},{"id":"de56fb73.e42608","type":"set","name":"set tmp.vm-network-index to 0, and length to 1","xml":"<set>\n<parameter name='tmp.vm-network-index' value='0' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='1' />\n","comments":"","x":2235.000213623047,"y":4248.69128036499,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"bceb44f3.14e468","type":"set","name":"set tmp.vm-network-index to -1","xml":"<set>\n<parameter name='tmp.vm-network-index' value='-1' />\n","comments":"","x":1663.3332443237305,"y":4222.024287223816,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"c0706fbf.53875","type":"set","name":"set tmp.vm-network-index","xml":"<set>\n<parameter name='tmp.vm-network-index' value='`$vm-network-index`' />\n","comments":"","x":2925,"y":4333.690306186676,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"ca9da770.612e88","type":"set","name":"set tmp.vm-network-index","xml":"<set>\n<parameter name='tmp.vm-network-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\n","comments":"","x":2741.6669006347656,"y":4430.357140541077,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"ac8c2d3f.4fc1","type":"set","name":"increment vm-network_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$tmp.vm-network-index + 1`' />\n","comments":"","x":2748.3332443237305,"y":4520.3569803237915,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1011305d.6dd12","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1983.3332595825195,"y":4273.690958976746,"z":"13e6e2ea.39c6bd","wires":[["de56fb73.e42608","9bc9ad7d.a5c1f"]]},{"id":"9bc9ad7d.a5c1f","type":"set","name":"set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\n  value='`$tmp.network-role`' />\n","comments":"","x":2139.9998931884766,"y":4295.357623100281,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b05e43b1.66858","type":"set","name":"set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-role'\n  value='`$tmp.network-role`' />\n","comments":"","x":2710.0000534057617,"y":4475.356971740723,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"b98e5edb.f4c14","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='vm-network-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":1873.3331832885742,"y":5177.024975776672,"z":"13e6e2ea.39c6bd","wires":[["9b1d3ad3.ab09a8"]]},{"id":"9b1d3ad3.ab09a8","type":"switchNode","name":"network-roles match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role\n  == $tmp.network-role`'>\n","comments":"","outputs":1,"x":2086.999870300293,"y":5177.024892807007,"z":"13e6e2ea.39c6bd","wires":[["a61f603a.eebbb"]]},{"id":"dc35b7fb.a19518","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2424.6665840148926,"y":5175.691438674927,"z":"13e6e2ea.39c6bd","wires":[["6e019622.91b018","e2f2f37e.ee7f6"]]},{"id":"6e019622.91b018","type":"break","name":"break","xml":"<break>\n","comments":"","x":2577.999713897705,"y":5195.6916427612305,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"66124fd9.f933d","type":"switchNode","name":"switch tmp.vm-network-index","xml":"<switch test='`$tmp.vm-network-index`'>\n","comments":"","outputs":1,"x":1898.3330612182617,"y":5295.3578243255615,"z":"13e6e2ea.39c6bd","wires":[["8071dd12.2c83f"]]},{"id":"8071dd12.2c83f","type":"outcomeFalse","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":2093.3331909179688,"y":5293.691644668579,"z":"13e6e2ea.39c6bd","wires":[["c6cdd29b.1d637"]]},{"id":"c6cdd29b.1d637","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2244.9998626708984,"y":5293.691482543945,"z":"13e6e2ea.39c6bd","wires":[["859609f2.0e6308","e972ef70.b885a","21fada1c.7e5796"]]},{"id":"a61f603a.eebbb","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2271.3332443237305,"y":5176.358144760132,"z":"13e6e2ea.39c6bd","wires":[["dc35b7fb.a19518"]]},{"id":"79d86468.93bb8c","type":"switchNode","name":"switch vm-network_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`'>\n","comments":"","outputs":1,"x":1356.666648864746,"y":5142.024486541748,"z":"13e6e2ea.39c6bd","wires":[["e82cb830.2bc788","ef29aaff.5feeb8","3f87594d.ccd2f6"]]},{"id":"e82cb830.2bc788","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1566.6665420532227,"y":5062.024326324463,"z":"13e6e2ea.39c6bd","wires":[["9366b1ab.7963b"]]},{"id":"ef29aaff.5feeb8","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1567.8572158813477,"y":5104.643275260925,"z":"13e6e2ea.39c6bd","wires":[["9366b1ab.7963b"]]},{"id":"3f87594d.ccd2f6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1567.6190223693848,"y":5231.78661441803,"z":"13e6e2ea.39c6bd","wires":[["1617ddae.7763d2"]]},{"id":"68fd7fdb.0b0bb","type":"set","name":"set tmp.vm-network-index to -1","xml":"<set>\n<parameter name='tmp.vm-network-index' value='-1' />\n","comments":"","x":1373.333152770996,"y":5028.690906524658,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"e2f2f37e.ee7f6","type":"set","name":"set tmp.vm-network-index","xml":"<set>\n<parameter name='tmp.vm-network-index' value='`$vm-network-index`' />\n","comments":"","x":2638.3331298828125,"y":5147.02415895462,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"859609f2.0e6308","type":"set","name":"set tmp.vm-network-index","xml":"<set>\n<parameter name='tmp.vm-network-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\n","comments":"","x":2455.000030517578,"y":5243.690993309021,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"e972ef70.b885a","type":"set","name":"increment vm-network_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$tmp.vm-network-index + 1`' />\n","comments":"","x":2461.666374206543,"y":5333.690833091736,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9366b1ab.7963b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1693.3331680297852,"y":5080.357578277588,"z":"13e6e2ea.39c6bd","wires":[["eb386a81.76f998","1bd02c91.5c0db3"]]},{"id":"eb386a81.76f998","type":"set","name":"set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\n  value='`$tmp.network-role`' />\n","comments":"","x":1849.9998016357422,"y":5102.024242401123,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"21fada1c.7e5796","type":"set","name":"set network-role","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-role'\n  value='`$tmp.network-role`' />\n","comments":"","x":2423.333183288574,"y":5288.690824508667,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"72caf681.3c09d8","type":"set","name":"set tmp.network-role","xml":"<set>\n<parameter name='tmp.network-role'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-network-role`' />\n","comments":"","x":1340.000015258789,"y":4983.69130897522,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"bc4f083.a48cbf8","type":"for","name":"for each vnfc-subnet","xml":"<for index='vnfc-subnet-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet_length`' >\n","comments":"","outputs":1,"x":1328.3333854675293,"y":5697.024832725525,"z":"13e6e2ea.39c6bd","wires":[["8019fdeb.1f1df"]]},{"id":"8019fdeb.1f1df","type":"for","name":"for each address family","xml":"<for index='address-family-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments_length`' >\n","comments":"","outputs":1,"x":1558.3333549499512,"y":5697.024993896484,"z":"13e6e2ea.39c6bd","wires":[["a569e998.7f6f78"]]},{"id":"a569e998.7f6f78","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1743.333408355713,"y":5696.358328819275,"z":"13e6e2ea.39c6bd","wires":[["376636eb.8e155a","9932af7e.a158e","3b996dd.91cae92","47350101.675c7","499e38c5.160618","6a64c8f0.30acd8","412df0ca.09277"]]},{"id":"790f3149.355c3","type":"set","name":"set tmp.nii-index to 0, network-information-item_length to 1","xml":"<set>\n<parameter name='tmp.nii-index' value='0' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length'\n  value='1' />\n","comments":"","x":2626.666893005371,"y":5455.358157157898,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"1bd02c91.5c0db3","type":"set","name":"set tmp.vm-network-index to 0, and length to 1","xml":"<set>\n<parameter name='tmp.vm-network-index' value='0' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='1' />\n","comments":"","x":1943.3332595825195,"y":5052.024455070496,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"376636eb.8e155a","type":"switchNode","name":"switch network-information-item_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`'>\n","comments":"","outputs":1,"x":1975.0000076293945,"y":5538.024338722229,"z":"13e6e2ea.39c6bd","wires":[["66244662.cb7d98","724deb93.27dc34","1b4bbaf1.e26055"]]},{"id":"66244662.cb7d98","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2213.3334770202637,"y":5462.024338722229,"z":"13e6e2ea.39c6bd","wires":[["52993f5c.65579"]]},{"id":"724deb93.27dc34","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2214.5241508483887,"y":5504.643287658691,"z":"13e6e2ea.39c6bd","wires":[["52993f5c.65579"]]},{"id":"52993f5c.65579","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2343.3336448669434,"y":5482.024661064148,"z":"13e6e2ea.39c6bd","wires":[["790f3149.355c3","f14c3e9b.38486"]]},{"id":"9932af7e.a158e","type":"set","name":"set tmp.nii-index to -1","xml":"<set>\n<parameter name='tmp.nii-index' value='-1' />\n","comments":"","x":1919.9999694824219,"y":5428.69132232666,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"f14c3e9b.38486","type":"set","name":"set address family","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[0].ip-version'\n  value='`$tmp.ip-version`' />\n","comments":"","x":2500.000144958496,"y":5502.024826049805,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"3b996dd.91cae92","type":"set","name":"set tmp.ip-version","xml":"<set>\n<parameter name='tmp.ip-version'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\n","comments":"","x":1909.9999618530273,"y":5383.691162109375,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6f631b33.081b14","type":"for","name":"for each nii","xml":"<for silentFailure='true' index='nii-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":2478.3333129882812,"y":5571.024502754211,"z":"13e6e2ea.39c6bd","wires":[["573b51db.5edbb"]]},{"id":"573b51db.5edbb","type":"switchNode","name":"address families match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$nii-index].ip-version\n  == $tmp.ip-version`'>\n","comments":"","outputs":1,"x":2670.3336601257324,"y":5570.357917308807,"z":"13e6e2ea.39c6bd","wires":[["fc3cbc.44d57348"]]},{"id":"8ac8da2b.46a538","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3008.000373840332,"y":5569.024463176727,"z":"13e6e2ea.39c6bd","wires":[["8ddded69.8ae0f","b0d0a732.bb11c8"]]},{"id":"8ddded69.8ae0f","type":"break","name":"break","xml":"<break>\n","comments":"","x":3158.0002517700195,"y":5589.024502754211,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"bc0a4266.75c6b","type":"switchNode","name":"switch tmp.nii-index","xml":"<switch test='`$tmp.nii-index`'>\n","comments":"","outputs":1,"x":2508.3333168029785,"y":5687.023856163025,"z":"13e6e2ea.39c6bd","wires":[["cde9dac2.65fc78"]]},{"id":"cde9dac2.65fc78","type":"outcomeFalse","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":2681.6666564941406,"y":5687.024018287659,"z":"13e6e2ea.39c6bd","wires":[["6aaf3258.93c67c"]]},{"id":"6aaf3258.93c67c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2833.3333282470703,"y":5687.023856163025,"z":"13e6e2ea.39c6bd","wires":[["f1a3cb10.325278","d4d17ca1.130ce","9d7eea8d.c3dc78"]]},{"id":"fc3cbc.44d57348","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2854.66703414917,"y":5569.691169261932,"z":"13e6e2ea.39c6bd","wires":[["8ac8da2b.46a538"]]},{"id":"1b4bbaf1.e26055","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2210.9524879455566,"y":5626.785765647888,"z":"13e6e2ea.39c6bd","wires":[["734cf000.cc2c3"]]},{"id":"b0d0a732.bb11c8","type":"set","name":"set tmp.nii-index","xml":"<set>\n<parameter name='tmp.nii-index' value='`$nii-index`' />\n","comments":"","x":3188.333667755127,"y":5540.357183456421,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"f1a3cb10.325278","type":"set","name":"set tmp.nii-index","xml":"<set>\n<parameter name='tmp.nii-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`' />\n","comments":"","x":3008.333339691162,"y":5635.357025146484,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"d4d17ca1.130ce","type":"set","name":"increment nii_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length'\n  value='`$tmp.nii-index + 1`' />\n","comments":"","x":3016.6665077209473,"y":5727.02320766449,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9d7eea8d.c3dc78","type":"set","name":"set address family","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].ip-version'\n  value='`$tmp.ip-version`' />\n","comments":"","x":3011.666648864746,"y":5682.023198127747,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"47350101.675c7","type":"switchNode","name":"switch network-ips_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length`'>\n","comments":"","outputs":1,"x":1928.3335342407227,"y":5825.357683181763,"z":"13e6e2ea.39c6bd","wires":[["bf387a97.de46e8","c3e49c6c.f081a","e9d07c32.0bb59"]]},{"id":"bf387a97.de46e8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2116.6666374206543,"y":5777.0247049331665,"z":"13e6e2ea.39c6bd","wires":[["c2a40f82.95dc"]]},{"id":"c3e49c6c.f081a","type":"other","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2117.8573112487793,"y":5819.643653869629,"z":"13e6e2ea.39c6bd","wires":[["c2a40f82.95dc"]]},{"id":"c2a40f82.95dc","type":"set","name":"set tmp.ip-index to 0","xml":"<set>\n<parameter name='tmp.ip-index' value='0' />\n","comments":"","x":2288.3334770202637,"y":5792.024350166321,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"e9d07c32.0bb59","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2119.999885559082,"y":5865.357462882996,"z":"13e6e2ea.39c6bd","wires":[["91c82192.9223"]]},{"id":"91c82192.9223","type":"set","name":"set tmp.ip-index to current length","xml":"<set>\n<parameter name='tmp.ip-index'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length`' />\n","comments":"","x":2329.9999771118164,"y":5865.357686042786,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"499e38c5.160618","type":"for","name":"for each ip","xml":"<for silentFailure='true' index='ip-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' >\n","comments":"","outputs":1,"x":1879.99995803833,"y":5953.6915102005005,"z":"13e6e2ea.39c6bd","wires":[["79ecd784.3e3868"]]},{"id":"3c094b0b.214c04","type":"set","name":"set ip","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip[$target-index]'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-index].vnfc-ip-address`' />\n","comments":"","x":2156.6665534973145,"y":5967.024192810059,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"6a64c8f0.30acd8","type":"set","name":"set network-ips_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length'\n  value='`$tmp.ip-index + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' />\n","comments":"","x":1916.6669082641602,"y":6017.0241956710815,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"79ecd784.3e3868","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2018.3332595825195,"y":5953.690958976746,"z":"13e6e2ea.39c6bd","wires":[["3c094b0b.214c04","20f247de.de11d8"]]},{"id":"20f247de.de11d8","type":"set","name":"set target-index","xml":"<set>\n<parameter name='target-index' value='`$ip-index + $tmp.ip-index`' />\n","comments":"","x":2184.999969482422,"y":5922.024517059326,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"eaa55ef8.4455b","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-no-preload3.log' />\n","comments":"","outputs":1,"x":571.6666946411133,"y":5222.024455070496,"z":"13e6e2ea.39c6bd","wires":[[]]},{"id":"1617ddae.7763d2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1695.0000076293945,"y":5232.024455070496,"z":"13e6e2ea.39c6bd","wires":[["b98e5edb.f4c14","66124fd9.f933d"]]},{"id":"8ca708be.1c4978","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1985.0000076293945,"y":4420.357462882996,"z":"13e6e2ea.39c6bd","wires":[["efcdf82d.885e98","6e9c4629.bc3238"]]},{"id":"734cf000.cc2c3","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2343.333381652832,"y":5627.024455070496,"z":"13e6e2ea.39c6bd","wires":[["6f631b33.081b14","bc0a4266.75c6b"]]},{"id":"412df0ca.09277","type":"set","name":"set ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].ip-count'\n  value='`$tmp.ip-index + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' />\n","comments":"","x":1881.6666259765625,"y":6072.024361610413,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"a255596.979d8a8","type":"set","name":"set from-preload flag to false","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload' value='false' />\n","comments":"","x":630,"y":274.28570556640625,"z":"13e6e2ea.39c6bd","wires":[]},{"id":"9fcfcf11.64142","type":"switchNode","name":"switch tmp.subnet-role","xml":"<switch test='`$tmp.subnet-role`'>\n","comments":"","outputs":1,"x":1134.1429443359375,"y":2179.285888671875,"z":"13e6e2ea.39c6bd","wires":[["aae8c30b.ffd2b"]]},{"id":"aae8c30b.ffd2b","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1308.4286880493164,"y":2177.857334136963,"z":"13e6e2ea.39c6bd","wires":[["d5c26f72.2d843"]]},{"id":"d5c26f72.2d843","type":"set","name":"set tmp.subnet-role to NONE","xml":"<set>\n<parameter name='tmp.subnet-role' value='NONE' />\n","comments":"","x":1505.5715103149414,"y":2176.4287452697754,"z":"13e6e2ea.39c6bd","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.json
new file mode 100755 (executable)
index 0000000..07c10ca
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"710d7cb4.eb0774","type":"dgstart","name":"DGSTART","outputs":1,"x":101.42857360839844,"y":85.71428680419922,"z":"12fa1652.31064a","wires":[["19ecd48f.9d352b"]]},{"id":"19ecd48f.9d352b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.28570938110352,"y":125.52382469177246,"z":"12fa1652.31064a","wires":[["65563387.25435c"]]},{"id":"65563387.25435c","type":"method","name":"method vf-module-topology-operation-assign-preload","xml":"<method rpc='vf-module-topology-operation-assign-preload' mode='sync'>\n","comments":"","outputs":1,"x":236.8572006225586,"y":165.71428680419922,"z":"12fa1652.31064a","wires":[["1beaf4b3.212b0b"]]},{"id":"21bc25a8.14c9ba","type":"comment","name":"vf-module-topology-operation-assign-preload","info":"","comments":"","x":506.74967193603516,"y":28.68998622894287,"z":"12fa1652.31064a","wires":[]},{"id":"1beaf4b3.212b0b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":113.0952377319336,"y":1360.3566846847534,"z":"12fa1652.31064a","wires":[["cb4f7999.d9e4c8","8df98e43.91582","f24637ec.ea6448","d3298aef.821078","c922e93c.ce67a8","6436811c.f7b6f","7930ae51.69171","852c8af1.197bc8","5bc32471.aadd3c"]]},{"id":"cb4f7999.d9e4c8","type":"set","name":"set from-preload flag to true","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload' value='true' />\n","comments":"","x":400.71424865722656,"y":343.6899881362915,"z":"12fa1652.31064a","wires":[]},{"id":"8df98e43.91582","type":"set","name":"copy vf-module-topology from preload structure","xml":"<set>\n<parameter name='tmp.vf-module-topology.'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vf-module-topology.`' />\n","comments":"","x":460.71431732177734,"y":399.4042491912842,"z":"12fa1652.31064a","wires":[]},{"id":"7930ae51.69171","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-preload.log' />\n","comments":"","outputs":1,"x":310.71422576904297,"y":2702.880202293396,"z":"12fa1652.31064a","wires":[[]]},{"id":"f24637ec.ea6448","type":"get-resource","name":"get-resource VF_MODULE_TO_VFC_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-to-vfc-mapping[]'>\n\n","comments":"","outputs":1,"x":464.7618942260742,"y":507.0232820510864,"z":"12fa1652.31064a","wires":[["a4bf99dd.135018","e8d97ca9.49cc3"]]},{"id":"a4bf99dd.135018","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":730.5475044250488,"y":487.404109954834,"z":"12fa1652.31064a","wires":[["71b093a0.e0ad2c"]]},{"id":"e8d97ca9.49cc3","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":739.1189346313477,"y":531.6898231506348,"z":"12fa1652.31064a","wires":[["c7a9a780.3f9868"]]},{"id":"71b093a0.e0ad2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_TO_VFC_MAPPING table\" />\n","comments":"","x":905.547435760498,"y":486.54701042175293,"z":"12fa1652.31064a","wires":[]},{"id":"c7a9a780.3f9868","type":"set","name":"set vf-module-to-vfc-mapping length to 0","xml":"<set>\n<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\n","comments":"","x":988.9999084472656,"y":531.3084602355957,"z":"12fa1652.31064a","wires":[]},{"id":"d3298aef.821078","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":359.7619094848633,"y":835.3565883636475,"z":"12fa1652.31064a","wires":[["3deaf862.f775d8"]]},{"id":"3deaf862.f775d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":551.6667022705078,"y":833.9279947280884,"z":"12fa1652.31064a","wires":[["db5f31b7.9b0d8","c9f43b26.cf95a8","95f5b341.3e634","8d757725.9164f8","80c39aa5.c11278","be45f752.943938","8f68eac5.8283a8"]]},{"id":"8e0c51ba.2a0ae","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":1129.762035369873,"y":1017.3564701080322,"z":"12fa1652.31064a","wires":[["cd5f0aba.a794c8"]]},{"id":"c9f43b26.cf95a8","type":"set","name":"set vnfc-names_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' />\n","comments":"","x":801.4287109375,"y":972.0234613418579,"z":"12fa1652.31064a","wires":[]},{"id":"db5f31b7.9b0d8","type":"get-resource","name":"get-resource VFC_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-model'>\n\n","comments":"","outputs":1,"x":814.7617645263672,"y":852.0233163833618,"z":"12fa1652.31064a","wires":[["7014c553.4a705c","a2d29d20.ac5ef"]]},{"id":"7014c553.4a705c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1010.5474090576172,"y":832.4039192199707,"z":"12fa1652.31064a","wires":[["957c44b.2c20cb8"]]},{"id":"a2d29d20.ac5ef","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1019.118839263916,"y":876.6896324157715,"z":"12fa1652.31064a","wires":[["64f3e60b.9bc548"]]},{"id":"3e44d7d6.d54548","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_MODEL table\" />\n","comments":"","x":1338.8806610107422,"y":834.8800859451294,"z":"12fa1652.31064a","wires":[]},{"id":"a87ad3e9.ec603","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1338.0951538085938,"y":878.6898260116577,"z":"12fa1652.31064a","wires":[]},{"id":"9c45499c.064018","type":"comment","name":"Find this vm-type in the TOSCA data","info":"","comments":"","x":1109.7620010375977,"y":678.690034866333,"z":"12fa1652.31064a","wires":[]},{"id":"95f5b341.3e634","type":"set","name":"set db-vm-type-index to -1","xml":"<set>\n<parameter name='db-vm-type-index' value='-1' />\n","comments":"","x":811.428596496582,"y":672.0233907699585,"z":"12fa1652.31064a","wires":[]},{"id":"8d757725.9164f8","type":"for","name":"for each db vm-type","xml":"<for index='tmp-idx' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":789.7619094848633,"y":722.0233316421509,"z":"12fa1652.31064a","wires":[["8d887d24.fc061"]]},{"id":"8d887d24.fc061","type":"switchNode","name":"vm-types equal?","xml":"<switch test='`$db.vf-module-to-vfc-mapping[$tmp-idx].vm-type\n  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type`'>\n","comments":"","outputs":1,"x":1018.0952682495117,"y":720.3566036224365,"z":"12fa1652.31064a","wires":[["8f915d23.ddb28"]]},{"id":"8f915d23.ddb28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1196.4285507202148,"y":718.6899900436401,"z":"12fa1652.31064a","wires":[["5202ed9f.35e3f4"]]},{"id":"5202ed9f.35e3f4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1331.4285125732422,"y":717.0233316421509,"z":"12fa1652.31064a","wires":[["2921fb14.672284","f7267660.fa7548"]]},{"id":"f7267660.fa7548","type":"break","name":"break","xml":"<break>\n","comments":"","x":1471.4286003112793,"y":737.0233736038208,"z":"12fa1652.31064a","wires":[]},{"id":"2921fb14.672284","type":"set","name":"set db-vm-type-index to this index","xml":"<set>\n<parameter name='db-vm-type-index' value='`$tmp-idx`' />\n","comments":"","x":1555.7617683410645,"y":688.6899566650391,"z":"12fa1652.31064a","wires":[]},{"id":"80c39aa5.c11278","type":"switchNode","name":"switch db-vm-type-index","xml":"<switch test='`$db-vm-type-index`'>\n","comments":"","outputs":1,"x":806.7618942260742,"y":775.3566665649414,"z":"12fa1652.31064a","wires":[["8cd39913.f23228"]]},{"id":"8cd39913.f23228","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1026.4286422729492,"y":775.3566465377808,"z":"12fa1652.31064a","wires":[["a89fa43d.9bb628"]]},{"id":"a3308ad5.11d848","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Preload data contains vm-type ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type + ' but VF_MODULE_TO_VFC_MAPPING table does not have this vm-type'`\" />\n","comments":"","x":1349.761947631836,"y":772.0231647491455,"z":"12fa1652.31064a","wires":[]},{"id":"be45f752.943938","type":"switchNode","name":"switch naming-policy","xml":"<switch test='`$db.vfc-model.naming-policy`'>\n","comments":"","outputs":1,"x":796.428466796875,"y":1065.6899499893188,"z":"12fa1652.31064a","wires":[["c572d795.28f748","31d3de85.02eef2"]]},{"id":"c572d795.28f748","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":978.0952224731445,"y":1019.0233221054077,"z":"12fa1652.31064a","wires":[["8e0c51ba.2a0ae"]]},{"id":"31d3de85.02eef2","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":976.1904144287109,"y":1109.97549533844,"z":"12fa1652.31064a","wires":[["8b2e5d89.9a1aa"]]},{"id":"cd5f0aba.a794c8","type":"set","name":"set vnfc name to vm name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-type-index]`' />\n","comments":"","x":1354.7618789672852,"y":1017.356593132019,"z":"12fa1652.31064a","wires":[]},{"id":"e082e88d.784ca8","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1610.5951843261719,"y":1129.8566722869873,"z":"12fa1652.31064a","wires":[["3ad3c57a.a9b1fa","6dbcf922.de03b8"]]},{"id":"3b3fca2d.6db346","type":"set","name":"set variables for generating name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vf-module-customization-uuid`' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n<parameter name='naming-policy-generate-name-input.vnf-name' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.vm-name' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`' />\n","comments":"","x":1520.5950622558594,"y":1084.1422319412231,"z":"12fa1652.31064a","wires":[]},{"id":"f4cc50d3.26695","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to generate VNFC name: ' + $error-message`\" />\n","comments":"","x":2242.7379150390625,"y":1100.8089056015015,"z":"12fa1652.31064a","wires":[]},{"id":"cd517df1.447c3","type":"set","name":"set vnfc-name to generated name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\n  value='`$naming-policy-generate-name-output.vnfc-name`' />\n","comments":"","x":2135.547317504883,"y":1149.094633102417,"z":"12fa1652.31064a","wires":[]},{"id":"8b2e5d89.9a1aa","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":1128.9285507202148,"y":1109.023274421692,"z":"12fa1652.31064a","wires":[["2a95f2dd.0370be"]]},{"id":"2a95f2dd.0370be","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1290.5951843261719,"y":1109.8566493988037,"z":"12fa1652.31064a","wires":[["3b3fca2d.6db346","e082e88d.784ca8"]]},{"id":"db5c587c.0ccaa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2936.4284019470215,"y":662.0233678817749,"z":"12fa1652.31064a","wires":[["2296bb15.a1c234","7a8570f1.b8e03"]]},{"id":"7a8570f1.b8e03","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":3260.7141075134277,"y":688.5948991775513,"z":"12fa1652.31064a","wires":[[]]},{"id":"2296bb15.a1c234","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":3162.1427268981934,"y":641.4519701004028,"z":"12fa1652.31064a","wires":[]},{"id":"eb951168.0fa3a","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":2252.7620391845703,"y":629.3566608428955,"z":"12fa1652.31064a","wires":[["99139193.020a8"]]},{"id":"99139193.020a8","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":2431.7621154785156,"y":629.3566360473633,"z":"12fa1652.31064a","wires":[["39a3d2db.90ad1e"]]},{"id":"39a3d2db.90ad1e","type":"switchNode","name":"switch vnfc-name","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":2614.762046813965,"y":628.6899538040161,"z":"12fa1652.31064a","wires":[["69f3e35.4c48e1c","583536f.86c70c8"]]},{"id":"69f3e35.4c48e1c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2783.0953063964844,"y":595.3566598892212,"z":"12fa1652.31064a","wires":[["4b1a4758.a1ae08"]]},{"id":"583536f.86c70c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2784.761978149414,"y":661.5471725463867,"z":"12fa1652.31064a","wires":[["db5c587c.0ccaa8"]]},{"id":"4b1a4758.a1ae08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2913.0951499938965,"y":593.6900119781494,"z":"12fa1652.31064a","wires":[[]]},{"id":"a89fa43d.9bb628","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1179.761920928955,"y":775.3566055297852,"z":"12fa1652.31064a","wires":[["a3308ad5.11d848","eb951168.0fa3a"]]},{"id":"957c44b.2c20cb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1169.761833190918,"y":833.6899290084839,"z":"12fa1652.31064a","wires":[["3e44d7d6.d54548","eb951168.0fa3a"]]},{"id":"64f3e60b.9bc548","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1169.761833190918,"y":877.0233030319214,"z":"12fa1652.31064a","wires":[["a87ad3e9.ec603","eb951168.0fa3a"]]},{"id":"420f3ecc.4b938","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2073.928466796875,"y":1103.1900043487549,"z":"12fa1652.31064a","wires":[["f4cc50d3.26695","eb951168.0fa3a"]]},{"id":"40410f3e.29024","type":"comment","name":"Rollback any generated VNFC names","info":"","comments":"","x":2428.095169067383,"y":582.0233116149902,"z":"12fa1652.31064a","wires":[]},{"id":"2ea59c9e.768714","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":871.4285659790039,"y":1262.523151397705,"z":"12fa1652.31064a","wires":[["386d3d72.1b5e82"]]},{"id":"c922e93c.ce67a8","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":353.0952453613281,"y":1242.1898851394653,"z":"12fa1652.31064a","wires":[["1d53cd4b.5f7d63"]]},{"id":"44651758.5c8428","type":"set","name":"set vnfc-network-data_length","xml":"<set>\n<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_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\n","comments":"","x":896.4286270141602,"y":1203.8563995361328,"z":"12fa1652.31064a","wires":[]},{"id":"1d53cd4b.5f7d63","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":538.0952453613281,"y":1241.523310661316,"z":"12fa1652.31064a","wires":[["2fdadfd6.dbc9f"]]},{"id":"2fdadfd6.dbc9f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":689.7619514465332,"y":1240.5232706069946,"z":"12fa1652.31064a","wires":[["44651758.5c8428","2ea59c9e.768714"]]},{"id":"386d3d72.1b5e82","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1058.0952987670898,"y":1261.8565635681152,"z":"12fa1652.31064a","wires":[["1010480b.d08c18","8a45e464.f972b8","e53b91c7.7b5b6","c881b3dd.d344e"]]},{"id":"1010480b.d08c18","type":"set","name":"set vnfc-network-role","xml":"<set>\n<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[$vm-network-index].vnfc-network-role'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\n","comments":"","x":1244.761848449707,"y":1217.189935684204,"z":"12fa1652.31064a","wires":[]},{"id":"c881b3dd.d344e","type":"set","name":"set vnfc-subnet-role to NA","xml":"<set>\n<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[$vm-network-index].vnfc-subnet[0].vnfc-subnet-role'\n  value='NA' />\n<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[$vm-network-index].vnfc-subnet_length'\n  value='1' />\n","comments":"","x":1260.000057220459,"y":1265.2850093841553,"z":"12fa1652.31064a","wires":[]},{"id":"8a45e464.f972b8","type":"set","name":"set vnfc-ip-assignments_length","xml":"<set>\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item_length`' />\n","comments":"","x":1274.7619285583496,"y":1312.189778327942,"z":"12fa1652.31064a","wires":[]},{"id":"e53b91c7.7b5b6","type":"for","name":"for each ip-version","xml":"<for silentFailure='true' index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":1234.7619705200195,"y":1363.856608390808,"z":"12fa1652.31064a","wires":[["721dbdd7.791a84"]]},{"id":"721dbdd7.791a84","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1408.09521484375,"y":1363.8565111160278,"z":"12fa1652.31064a","wires":[["3bf78e5c.d52ef2","636f1fd0.0e89c"]]},{"id":"3bf78e5c.d52ef2","type":"set","name":"set ip-version, dhcp, ip-count","xml":"<set>\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-address-family'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-dhcp'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`' />\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ip-count'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\n","comments":"","x":1603.0953178405762,"y":1333.8566884994507,"z":"12fa1652.31064a","wires":[]},{"id":"636f1fd0.0e89c","type":"for","name":"for each ip address","xml":"<for silentFailure='true' index='ip-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip_length`' >\n","comments":"","outputs":1,"x":1573.0950736999512,"y":1383.8566102981567,"z":"12fa1652.31064a","wires":[["5eb141f0.08442"]]},{"id":"5eb141f0.08442","type":"set","name":"set IP address","xml":"<set>\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ips[$ip-index].vnfc-ip-address'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]`' />\n<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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ips[$ip-index].ip-type'\n  value='FIXED' />\n","comments":"","x":1764.7617492675781,"y":1383.8565282821655,"z":"12fa1652.31064a","wires":[]},{"id":"3ad3c57a.a9b1fa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1913.9286499023438,"y":1103.1900849342346,"z":"12fa1652.31064a","wires":[["420f3ecc.4b938"]]},{"id":"6dbcf922.de03b8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1917.2618675231934,"y":1149.8566703796387,"z":"12fa1652.31064a","wires":[["cd517df1.447c3"]]},{"id":"6436811c.f7b6f","type":"for","name":"for each preload vnf-network","xml":"<for silentFailure='true' index='vnf-network-index' start='0'\n  end='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":367.0952911376953,"y":1798.690022945404,"z":"12fa1652.31064a","wires":[["489e6b61.5ed4b4"]]},{"id":"489e6b61.5ed4b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":576.7618560791016,"y":1797.6899008750916,"z":"12fa1652.31064a","wires":[["4cb75157.ed3f8","eb154868.b2eb08","bf625347.3faf2"]]},{"id":"4cb75157.ed3f8","type":"set","name":"set found-network-name to false","xml":"<set>\n<parameter name='found-network-name' value='false' />\n","comments":"","x":816.4286804199219,"y":1438.6900005340576,"z":"12fa1652.31064a","wires":[]},{"id":"eb154868.b2eb08","type":"for","name":"for each existing vnf network","xml":"<for silentFailure='true' index='ex-vnf-network-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":804.7620162963867,"y":1488.6900854110718,"z":"12fa1652.31064a","wires":[["8b9298e1.145a48"]]},{"id":"8b9298e1.145a48","type":"switchNode","name":"switch network-names match?","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-name`'>\n","comments":"","outputs":1,"x":1081.7620849609375,"y":1488.6900434494019,"z":"12fa1652.31064a","wires":[["f5401d97.d742f"]]},{"id":"f5401d97.d742f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1285.0955352783203,"y":1488.023377418518,"z":"12fa1652.31064a","wires":[["a6191a44.3e3a78"]]},{"id":"3e55a7b2.a51328","type":"set","name":"set found-network-name to true","xml":"<set>\n<parameter name='found-network-name' value='true' />\n","comments":"","x":1659.7618942260742,"y":1465.3567094802856,"z":"12fa1652.31064a","wires":[]},{"id":"a6191a44.3e3a78","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1433.0952987670898,"y":1487.0233373641968,"z":"12fa1652.31064a","wires":[["3e55a7b2.a51328","c988f241.6ba0e"]]},{"id":"c988f241.6ba0e","type":"break","name":"break","xml":"<break>\n","comments":"","x":1586.4286880493164,"y":1510.3568361997604,"z":"12fa1652.31064a","wires":[]},{"id":"bf625347.3faf2","type":"switchNode","name":"switch found-network-name","xml":"<switch test='`$found-network-name`'>\n","comments":"","outputs":1,"x":786.4285202026367,"y":2119.35649394989,"z":"12fa1652.31064a","wires":[["b206c980.70b6f8","608eac4.0288254"]]},{"id":"b206c980.70b6f8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":993.4284744262695,"y":1735.3565855026245,"z":"12fa1652.31064a","wires":[["7be5eb0d.034284"]]},{"id":"7be5eb0d.034284","type":"switchNode","name":"switch network-roles match?","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-role`'>\n","comments":"","outputs":1,"x":1196.7616729736328,"y":1735.3563804626465,"z":"12fa1652.31064a","wires":[["f43759aa.1fb938"]]},{"id":"f43759aa.1fb938","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1396.7617225646973,"y":1735.3565435409546,"z":"12fa1652.31064a","wires":[["ce923577.439d28"]]},{"id":"ce923577.439d28","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1570.095085144043,"y":1735.3564939498901,"z":"12fa1652.31064a","wires":[["b5c5e69.cdda018","fe21ec89.87ead","87756b21.ef62b8","70be9e10.72ae7","8c373e2d.03cca"]]},{"id":"b5c5e69.cdda018","type":"set","name":"set new vnf-network data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-role'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].neutron-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].neutron-id`' />\n","comments":"","x":1828.0950355529785,"y":1612.0233144760132,"z":"12fa1652.31064a","wires":[]},{"id":"fe21ec89.87ead","type":"set","name":"set cur-vnf-network-index","xml":"<set>\n<parameter name='cur-vnf-network-index'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' />\n","comments":"","x":1829.7618255615234,"y":1563.689736366272,"z":"12fa1652.31064a","wires":[]},{"id":"87756b21.ef62b8","type":"set","name":"increment current vnf-network length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$cur-vnf-network-index + 1`' />\n","comments":"","x":1861.4284133911133,"y":1658.6900148391724,"z":"12fa1652.31064a","wires":[]},{"id":"c816157a.9f7e68","type":"for","name":"for each preload subnet","xml":"<for index='subnet-index' start='0'\n  end='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":2503.4285202026367,"y":2085.0231618881226,"z":"12fa1652.31064a","wires":[["2905b9f.a43aa46"]]},{"id":"82055682.392668","type":"switchNode","name":"switch subnet-ids match?","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-id\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`'>\n","comments":"","outputs":1,"x":4107.927658081055,"y":1966.0233840942383,"z":"12fa1652.31064a","wires":[["79c97dcd.b47344"]]},{"id":"5738f507.814e7c","type":"switchNode","name":"switch subnet-names match?","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-name\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`'>\n","comments":"","outputs":1,"x":4119.5944900512695,"y":2066.023063659668,"z":"12fa1652.31064a","wires":[["b4c1c7fa.c1b8d8"]]},{"id":"70be9e10.72ae7","type":"set","name":"set cur-subnet-index to 0","xml":"<set>\n<parameter name='cur-subnet-index' value='0' />\n","comments":"","x":1824.7617645263672,"y":1705.3565168380737,"z":"12fa1652.31064a","wires":[]},{"id":"5597bc8c.17abe4","type":"switchNode","name":"switch subnet-id","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-id`'>\n","comments":"","outputs":1,"x":3729.594680786133,"y":1942.3565292358398,"z":"12fa1652.31064a","wires":[["d9ef280d.9e6328","494ea68b.c1f408"]]},{"id":"d9ef280d.9e6328","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3917.9279861450195,"y":1917.3562803268433,"z":"12fa1652.31064a","wires":[["fa6d89c9.d73cf8"]]},{"id":"494ea68b.c1f408","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3917.6899490356445,"y":1966.6417655944824,"z":"12fa1652.31064a","wires":[["82055682.392668"]]},{"id":"2e9b3a87.471216","type":"switchNode","name":"switch subnet-name","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-name`'>\n","comments":"","outputs":1,"x":3739.595169067383,"y":2039.022915840149,"z":"12fa1652.31064a","wires":[["5f10ed16.b667f4","661bc495.853a7c"]]},{"id":"5f10ed16.b667f4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3914.5949325561523,"y":2017.3560857772827,"z":"12fa1652.31064a","wires":[["3903073b.90ca38"]]},{"id":"661bc495.853a7c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3914.3568954467773,"y":2066.641571044922,"z":"12fa1652.31064a","wires":[["5738f507.814e7c"]]},{"id":"73a010dc.11d51","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3537.9280128479004,"y":1991.689860343933,"z":"12fa1652.31064a","wires":[["5597bc8c.17abe4","2e9b3a87.471216","c36b38d4.da9f08","7488330e.ae075c"]]},{"id":"852c8af1.197bc8","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":321.4285659790039,"y":2886.6899852752686,"z":"12fa1652.31064a","wires":[["36587c5a.374214"]]},{"id":"36587c5a.374214","type":"for","name":"for each vm-network","xml":"<for index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":527.6190757751465,"y":2886.4517936706543,"z":"12fa1652.31064a","wires":[["5f533bab.b3a6e4"]]},{"id":"5f533bab.b3a6e4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":733.3333015441895,"y":2885.0233001708984,"z":"12fa1652.31064a","wires":[["ce7af9b8.cab5c8","bdfbd2a2.f0c23","b00da185.c29ca","3812a1fc.76e38e"]]},{"id":"ce7af9b8.cab5c8","type":"set","name":"set tmp.network-role","xml":"<set>\n<parameter name='tmp.network-role'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\n","comments":"","x":929.0475997924805,"y":2837.880365371704,"z":"12fa1652.31064a","wires":[]},{"id":"bdfbd2a2.f0c23","type":"for","name":"for each vnf-network","xml":"<for index='vnf-network-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":926.1904640197754,"y":2892.16632270813,"z":"12fa1652.31064a","wires":[["ca0b8fd4.7749d"]]},{"id":"b00da185.c29ca","type":"set","name":"set found-network to false","xml":"<set>\n<parameter name='found-network' value='false' />\n","comments":"","x":946.1904487609863,"y":2789.3090076446533,"z":"12fa1652.31064a","wires":[]},{"id":"ca0b8fd4.7749d","type":"switchNode","name":"network-role matches?","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\n  == $tmp.network-role`'>\n","comments":"","outputs":1,"x":1150.4761390686035,"y":2892.1661491394043,"z":"12fa1652.31064a","wires":[["a77f691c.58cd28"]]},{"id":"a77f691c.58cd28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1327.6188888549805,"y":2891.7376823425293,"z":"12fa1652.31064a","wires":[["92338465.d78118"]]},{"id":"92338465.d78118","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1476.1904792785645,"y":2890.7376556396484,"z":"12fa1652.31064a","wires":[["7529d138.b3c64","bd0bbace.4b4578","f57907cf.0ebc48"]]},{"id":"7529d138.b3c64","type":"set","name":"set network-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\n","comments":"","x":1643.3334465026855,"y":2847.880609512329,"z":"12fa1652.31064a","wires":[]},{"id":"bd0bbace.4b4578","type":"set","name":"set found-network to true","xml":"<set>\n<parameter name='found-network' value='true' />\n","comments":"","x":1680.476245880127,"y":2889.3089447021484,"z":"12fa1652.31064a","wires":[]},{"id":"f57907cf.0ebc48","type":"break","name":"break","xml":"<break>\n","comments":"","x":1620.4760780334473,"y":2932.1661834716797,"z":"12fa1652.31064a","wires":[]},{"id":"3812a1fc.76e38e","type":"switchNode","name":"switch found-network","xml":"<switch test='`$found-network`'>\n","comments":"","outputs":1,"x":926.1904640197754,"y":2973.5945110321045,"z":"12fa1652.31064a","wires":[["13e8d11b.10877f"]]},{"id":"13e8d11b.10877f","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1100.4761199951172,"y":2973.59468460083,"z":"12fa1652.31064a","wires":[["61cb14f9.f0fadc"]]},{"id":"61cb14f9.f0fadc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1251.904712677002,"y":2972.1661224365234,"z":"12fa1652.31064a","wires":[["eb951168.0fa3a","c6664d05.c2339"]]},{"id":"c6664d05.c2339","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Unable to find network-id for network with network-role ' + $tmp.network-role`\" />\n","comments":"","x":1433.0952033996582,"y":2971.6899070739746,"z":"12fa1652.31064a","wires":[]},{"id":"608eac4.0288254","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":983.0953674316406,"y":2505.356367111206,"z":"12fa1652.31064a","wires":[["13d87860.cdb998"]]},{"id":"13d87860.cdb998","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1129.7619438171387,"y":2505.35652923584,"z":"12fa1652.31064a","wires":[["682a3cc.9cd4cc4","f3276db4.466d1","86a3405e.9eb5d"]]},{"id":"682a3cc.9cd4cc4","type":"set","name":"set new vnf-network data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-role'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-name'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-id'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].neutron-id'\n  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].neutron-id`' />\n","comments":"","x":1343.0953178405762,"y":2503.689781188965,"z":"12fa1652.31064a","wires":[]},{"id":"42ba8f62.0c3b1","type":"set","name":"set cur-vnf-network-index","xml":"<set>\n<parameter name='cur-vnf-network-index'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' />\n","comments":"","x":1728.0953750610352,"y":2465.3558807373047,"z":"12fa1652.31064a","wires":[]},{"id":"f3276db4.466d1","type":"set","name":"increment current vnf-network length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$cur-vnf-network-index + 1`' />\n","comments":"","x":1376.4287643432617,"y":2553.689929008484,"z":"12fa1652.31064a","wires":[]},{"id":"8f68eac5.8283a8","type":"set","name":"set data for vm","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\n  value='`$db.vfc-model.nfc-naming-code`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function'\n  value='`$db.vfc-model.nfc-function`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid'\n  value='`$db.vfc-model.invariant-uuid`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid'\n  value='`$db.vfc-model.uuid`' />\n","comments":"","x":777.0952606201172,"y":923.6899862289429,"z":"12fa1652.31064a","wires":[]},{"id":"86a3405e.9eb5d","type":"switchNode","name":"switch vnf-network_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`'>\n","comments":"","outputs":1,"x":1346.428539276123,"y":2432.023359298706,"z":"12fa1652.31064a","wires":[["6eddfd74.49f4f4","7c38cb2b.2116b4","3b87c567.23389a"]]},{"id":"6eddfd74.49f4f4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1538.0951232910156,"y":2387.02352142334,"z":"12fa1652.31064a","wires":[["b339bde7.dc09e"]]},{"id":"7c38cb2b.2116b4","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1538.0953273773193,"y":2427.023443222046,"z":"12fa1652.31064a","wires":[["b339bde7.dc09e"]]},{"id":"3b87c567.23389a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1536.428581237793,"y":2467.023281097412,"z":"12fa1652.31064a","wires":[["42ba8f62.0c3b1"]]},{"id":"b339bde7.dc09e","type":"set","name":"set cur-vnf-network-index to 0","xml":"<set>\n<parameter name='cur-vnf-network-index' value='0' />\n","comments":"","x":1729.7619743347168,"y":2402.0231761932373,"z":"12fa1652.31064a","wires":[]},{"id":"8c373e2d.03cca","type":"switchNode","name":"switch subnet-data[0].sdnc-subnet-id","xml":"<switch test=\"`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[0].sdnc-subnet-id`\">\n","comments":"","outputs":1,"x":1864.595817565918,"y":1953.5231199264526,"z":"12fa1652.31064a","wires":[["52f64978.b78868","b9dc1667.6bc068"]]},{"id":"52f64978.b78868","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":2111.428367614746,"y":1787.5232667922974,"z":"12fa1652.31064a","wires":[["21e19628.b86eda"]]},{"id":"b9dc1667.6bc068","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2104.761863708496,"y":2135.523271560669,"z":"12fa1652.31064a","wires":[["c90b05e8.00a658"]]},{"id":"f6db4323.ce19b","type":"for","name":"for every existing subnet","xml":"<for index='ex-subnet-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":2498.9280700683594,"y":1762.5235090255737,"z":"12fa1652.31064a","wires":[["6478d14e.ad367"]]},{"id":"6478d14e.ad367","type":"set","name":"copy subnet data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`' />\n","comments":"","x":2715.594825744629,"y":1760.8568019866943,"z":"12fa1652.31064a","wires":[]},{"id":"21e19628.b86eda","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2276.428367614746,"y":1786.1898927688599,"z":"12fa1652.31064a","wires":[["f6db4323.ce19b","a93819a1.e5bdb8"]]},{"id":"a93819a1.e5bdb8","type":"set","name":"set subnet-data length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data_length'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' />\n","comments":"","x":2493.094955444336,"y":1809.189974784851,"z":"12fa1652.31064a","wires":[]},{"id":"5f454f7.d5c62b","type":"comment","name":"no subnets in preload, copy all of them","info":"","comments":"","x":2244.7616958618164,"y":1729.190011024475,"z":"12fa1652.31064a","wires":[]},{"id":"242ab477.0be38c","type":"switchNode","name":"switch ip-version matches?","xml":"<switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].ip-version\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`'>\n","comments":"","outputs":1,"x":3172.928642272949,"y":1994.3563585281372,"z":"12fa1652.31064a","wires":[["12828404.8769ec"]]},{"id":"12828404.8769ec","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3372.9287338256836,"y":1993.3565216064453,"z":"12fa1652.31064a","wires":[["73a010dc.11d51"]]},{"id":"5efc21e1.13e11","type":"for","name":"for every existing subnet","xml":"<for index='ex-subnet-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":2916.26163482666,"y":1995.6898975372314,"z":"12fa1652.31064a","wires":[["242ab477.0be38c"]]},{"id":"2905b9f.a43aa46","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2704.5950469970703,"y":2084.023313522339,"z":"12fa1652.31064a","wires":[["5efc21e1.13e11","19550d0c.5e1f83","69b02c7d.dd3ca4","9a10c321.41189","5efb3a03.d86314"]]},{"id":"19550d0c.5e1f83","type":"set","name":"set tmp.found-match to false","xml":"<set>\n<parameter name='tmp.found-match' value='false' />\n","comments":"","x":2927.5950469970703,"y":1945.3568096160889,"z":"12fa1652.31064a","wires":[]},{"id":"fa6d89c9.d73cf8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4049.595100402832,"y":1917.3567657470703,"z":"12fa1652.31064a","wires":[[]]},{"id":"3903073b.90ca38","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4052.9282760620117,"y":2017.3565654754639,"z":"12fa1652.31064a","wires":[[]]},{"id":"c36b38d4.da9f08","type":"set","name":"set match to true","xml":"<set>\n<parameter name='match' value='true' />\n","comments":"","x":3736.261993408203,"y":1857.3566818237305,"z":"12fa1652.31064a","wires":[]},{"id":"79c97dcd.b47344","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4317.928848266602,"y":1964.0233116149902,"z":"12fa1652.31064a","wires":[["522677d0.7b7a78"]]},{"id":"b4c1c7fa.c1b8d8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":4317.928520202637,"y":2064.023313522339,"z":"12fa1652.31064a","wires":[["440bbb49.74a244"]]},{"id":"522677d0.7b7a78","type":"set","name":"set match to false","xml":"<set>\n<parameter name='match' value='false' />\n","comments":"","x":4486.261528015137,"y":1962.3566875457764,"z":"12fa1652.31064a","wires":[]},{"id":"440bbb49.74a244","type":"set","name":"set match to false","xml":"<set>\n<parameter name='match' value='false' />\n","comments":"","x":4484.595024108887,"y":2062.356565475464,"z":"12fa1652.31064a","wires":[]},{"id":"7488330e.ae075c","type":"switchNode","name":"switch match","xml":"<switch test='`$match`'>\n","comments":"","outputs":1,"x":3716.261993408203,"y":2139.0233993530273,"z":"12fa1652.31064a","wires":[["7b9f2fb1.02d5e"]]},{"id":"7b9f2fb1.02d5e","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3867.9283561706543,"y":2137.356565475464,"z":"12fa1652.31064a","wires":[["631e756c.5d1c1c"]]},{"id":"631e756c.5d1c1c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":4019.5951042175293,"y":2137.356565475464,"z":"12fa1652.31064a","wires":[["94203d36.7288","bc4876b1.4bf468"]]},{"id":"94203d36.7288","type":"set","name":"set tmp.found-match to true","xml":"<set>\n<parameter name='tmp.found-match' value='true' />\n","comments":"","x":4236.261528015137,"y":2110.690061569214,"z":"12fa1652.31064a","wires":[]},{"id":"bc4876b1.4bf468","type":"break","name":"break","xml":"<break>\n","comments":"","x":4171.261852264404,"y":2157.356735229492,"z":"12fa1652.31064a","wires":[]},{"id":"69b02c7d.dd3ca4","type":"switchNode","name":"switch tmp.found-match","xml":"<switch test='`$tmp.found-match`'>\n","comments":"","outputs":1,"x":2906.2617950439453,"y":2165.689987182617,"z":"12fa1652.31064a","wires":[["423962f8.56b9bc"]]},{"id":"423962f8.56b9bc","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3094.5950241088867,"y":2164.023313522339,"z":"12fa1652.31064a","wires":[["110c975b.70b889"]]},{"id":"110c975b.70b889","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3246.2617721557617,"y":2162.356565475464,"z":"12fa1652.31064a","wires":[["eb951168.0fa3a","404634d4.2421ac","d753f57b.2e1858"]]},{"id":"404634d4.2421ac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Could not find subnet match for network-name '\n      + $mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`\" />\n","comments":"","x":3421.2617721557617,"y":2175.690061569214,"z":"12fa1652.31064a","wires":[]},{"id":"9a10c321.41189","type":"set","name":"copy subnet data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].sdnc-subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].ip-version'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].subnet-name'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`' />\n","comments":"","x":2887.9285202026367,"y":2214.023313522339,"z":"12fa1652.31064a","wires":[]},{"id":"5efb3a03.d86314","type":"set","name":"increment cur-subnet-index","xml":"<set>\n<parameter name='cur-subnet-index' value='`$cur-subnet-index + 1`' />\n","comments":"","x":2917.92862701416,"y":2257.356575012207,"z":"12fa1652.31064a","wires":[]},{"id":"115868de.991a07","type":"set","name":"set subnet-data length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data_length'\n  value='`$cur-subnet-index`' />\n","comments":"","x":2499.9286193847656,"y":2184.190022468567,"z":"12fa1652.31064a","wires":[]},{"id":"473ab719.346838","type":"comment","name":"copy matching subnet","info":"","comments":"","x":2646.928466796875,"y":2036.3566846847534,"z":"12fa1652.31064a","wires":[]},{"id":"c90b05e8.00a658","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2270.428581237793,"y":2136.18999004364,"z":"12fa1652.31064a","wires":[["c816157a.9f7e68","115868de.991a07"]]},{"id":"5bc32471.aadd3c","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-preload-x.log' />\n","comments":"","outputs":1,"x":338.42858123779297,"y":1373.6899900436401,"z":"12fa1652.31064a","wires":[[]]},{"id":"d753f57b.2e1858","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-preloadxxx.log' />\n","comments":"","outputs":1,"x":3420.714168548584,"y":2128.927816390991,"z":"12fa1652.31064a","wires":[[]]}]
\ No newline at end of file
index 9e374c5..94b28d6 100755 (executable)
@@ -1 +1 @@
-[{"id":"8742d12.7a1d7b","type":"dgstart","name":"DGSTART","outputs":1,"x":183,"y":176.02430057525635,"z":"42cbb89a.8c64f","wires":[["894b3de3.f71528"]]},{"id":"894b3de3.f71528","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":296.8571357727051,"y":215.8338384628296,"z":"42cbb89a.8c64f","wires":[["f890db1d.3600f"]]},{"id":"f890db1d.3600f","type":"method","name":"method vf-module-topology-operation-assign","xml":"<method rpc='vf-module-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":296.42862701416016,"y":256.02430057525635,"z":"42cbb89a.8c64f","wires":[["c8a1e002.809438"]]},{"id":"7dcb9f29.bd27d8","type":"comment","name":"vf-module-topology-operation-assign","info":"","comments":"","x":588.3210983276367,"y":119,"z":"42cbb89a.8c64f","wires":[]},{"id":"f5ba158b.f70238","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":588.1905097961426,"y":431.548122882843,"z":"42cbb89a.8c64f","wires":[["2d4867a.0da5a18","56323370.3acb6c"]]},{"id":"2d4867a.0da5a18","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":850.2381248474121,"y":408.6910090446472,"z":"42cbb89a.8c64f","wires":[["9093ce89.dbd2"]]},{"id":"56323370.3acb6c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":793.9047698974609,"y":454.07199811935425,"z":"42cbb89a.8c64f","wires":[["83310546.dd5548"]]},{"id":"9093ce89.dbd2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1040.0952892303467,"y":408.69104051589966,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"83310546.dd5548","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":1058.9047775268555,"y":454.40531063079834,"z":"42cbb89a.8c64f","wires":[]},{"id":"a85265fb.59c4f8","type":"get-resource","name":"get-resource VF_MODULE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-model'>\n\n","comments":"","outputs":1,"x":635.5237770080566,"y":522.6910729408264,"z":"42cbb89a.8c64f","wires":[["c3c0e66.56b1a98","8973ae47.d019f"]]},{"id":"b078e35d.a7a8b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1076.9521980285645,"y":547.1195454597473,"z":"42cbb89a.8c64f","wires":[]},{"id":"c3c0e66.56b1a98","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":901.3094673156738,"y":503.0719037055969,"z":"42cbb89a.8c64f","wires":[["2e22b269.a520a6"]]},{"id":"8973ae47.d019f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":909.8808975219727,"y":547.3576169013977,"z":"42cbb89a.8c64f","wires":[["b078e35d.a7a8b"]]},{"id":"2e22b269.a520a6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n","comments":"","x":1076.309398651123,"y":502.21480417251587,"z":"42cbb89a.8c64f","wires":[]},{"id":"7aa1bb6.19ed144","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":630.6190414428711,"y":731.2624082565308,"z":"42cbb89a.8c64f","wires":[["9220ab58.177838","a7e6546c.a7384"]]},{"id":"9220ab58.177838","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":871.3333129882812,"y":708.4051485061646,"z":"42cbb89a.8c64f","wires":[["56bd0e83.72fec"]]},{"id":"a7e6546c.a7384","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":871.0951538085938,"y":749.3576669692993,"z":"42cbb89a.8c64f","wires":[["8c7195ad.71de6"]]},{"id":"c8a1e002.809438","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":237.99999237060547,"y":2426.024260520935,"z":"42cbb89a.8c64f","wires":[["f5ba158b.f70238","a85265fb.59c4f8","7aa1bb6.19ed144","5b156e7.3ede59","78f55d30.9b559c","e85f12eb.c3b7d8","bd4f4b52.b86c9","19a8adcf.8ba972","d68b1f8a.c36f8","ce657ede.d0e7d","dc1a7960.cce6c8","63912568.dc6aac","a1685cb6.6af2e","13ade228.a692e6","bbe284c2.19a1b","dc5bef63.7bbf58","606dd497.672abc","fa9f3efa.3d4728","6e166208.bcc654","a6edf90b.02862","514505ea.10acfc","3f52ef.03031512","75cfcd56.417424","cfc556e3.250c1","bf867b12.1be738","c5587f72.e69778","993e8c87.965df8","f20188a.3ff6c78","3b0dea46.13d54e","7b3e5db3.2dc124","3aff63fe.fa9cd4","4765e816.cfcec","7e0e98ac.d87bf","bb37fcda.2b247","8328b041.fafc2","14eb9411.7f3a24","4cd290dc.dfcc9","d44a8be9.4bdcc","978b88f8.1b362"]]},{"id":"56bd0e83.72fec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":1037.999927520752,"y":707.6909036636353,"z":"42cbb89a.8c64f","wires":[]},{"id":"8c7195ad.71de6","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1033.3332977294922,"y":749.0242853164673,"z":"42cbb89a.8c64f","wires":[["f8dadf0d.b36748"]]},{"id":"f8dadf0d.b36748","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1284.6665153503418,"y":748.690972328186,"z":"42cbb89a.8c64f","wires":[["84f14cdf.d12da"]]},{"id":"84f14cdf.d12da","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1514.6666069030762,"y":748.0243263244629,"z":"42cbb89a.8c64f","wires":[["b5e9b140.524d"]]},{"id":"5b156e7.3ede59","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":579.6666641235352,"y":662.6909074783325,"z":"42cbb89a.8c64f","wires":[]},{"id":"f8350d6.6984bf","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1836.3332443237305,"y":719.024284362793,"z":"42cbb89a.8c64f","wires":[]},{"id":"78f55d30.9b559c","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":569.6666717529297,"y":799.3576040267944,"z":"42cbb89a.8c64f","wires":[["fd955bd1.7d5d98"]]},{"id":"fd955bd1.7d5d98","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":748.000057220459,"y":798.6909799575806,"z":"42cbb89a.8c64f","wires":[["dd7488b1.39828"]]},{"id":"dd7488b1.39828","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":907.9999656677246,"y":798.0242834091187,"z":"42cbb89a.8c64f","wires":[]},{"id":"e85f12eb.c3b7d8","type":"switchNode","name":"switch vnf order status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":592.6666946411133,"y":870.6910009384155,"z":"42cbb89a.8c64f","wires":[["627847e5.85df","7eed7e27.fd9a"]]},{"id":"627847e5.85df","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":792.9999961853027,"y":844.3575849533081,"z":"42cbb89a.8c64f","wires":[["f151c486.4a1088"]]},{"id":"f151c486.4a1088","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":933.0000076293945,"y":844.357626914978,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"7eed7e27.fd9a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":789.666633605957,"y":886.0242624282837,"z":"42cbb89a.8c64f","wires":[["4fcdf97f.3cb7b"]]},{"id":"4fcdf97f.3cb7b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`\" />\n","comments":"","x":949.666633605957,"y":885.6909494400024,"z":"42cbb89a.8c64f","wires":[]},{"id":"bd4f4b52.b86c9","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":596.333381652832,"y":962.6909217834473,"z":"42cbb89a.8c64f","wires":[["30be5b0c.6ffa0c","9c2f0421.be6e48"]]},{"id":"30be5b0c.6ffa0c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":853.7143363952637,"y":929.8336954116821,"z":"42cbb89a.8c64f","wires":[["4684f1cb.f822d8"]]},{"id":"4684f1cb.f822d8","type":"set","name":"set vf-module-index=0","xml":"<set>\n<parameter name='vf-module-index' value='0' />\n","comments":"","x":1041.3333740234375,"y":930.500470161438,"z":"42cbb89a.8c64f","wires":[]},{"id":"9c2f0421.be6e48","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":854.142879486084,"y":994.119553565979,"z":"42cbb89a.8c64f","wires":[["71865ce8.e6eb4c"]]},{"id":"afae93fd.db33b","type":"set","name":"set vf-module-index = vf-module_length","xml":"<set>\n<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n","comments":"","x":1239.3334197998047,"y":974.3099489212036,"z":"42cbb89a.8c64f","wires":[]},{"id":"24832982.cd0fe6","type":"for","name":"for each existing VF module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1198.4285125732422,"y":1018.4051790237427,"z":"42cbb89a.8c64f","wires":[["8d346fb9.665898"]]},{"id":"71865ce8.e6eb4c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":990.8571586608887,"y":994.1194791793823,"z":"42cbb89a.8c64f","wires":[["afae93fd.db33b","24832982.cd0fe6"]]},{"id":"8d346fb9.665898","type":"switchNode","name":"switch vf-module-information.vf-module-id == service-data.vnfs.vnf[].vf-modules.vf-module[].vf-module-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\n","comments":"","outputs":1,"x":1702.0476150512695,"y":1017.9765901565552,"z":"42cbb89a.8c64f","wires":[["8ff6f911.252038"]]},{"id":"8ff6f911.252038","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2144.666664123535,"y":1017.548041343689,"z":"42cbb89a.8c64f","wires":[["c71f4ab4.b4a088"]]},{"id":"c71f4ab4.b4a088","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\n       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n","comments":"","x":2296.571544647217,"y":1017.5480279922485,"z":"42cbb89a.8c64f","wires":[]},{"id":"bee5bef3.86a98","type":"comment","name":"make sure this VF module doesn't exist already","info":"","comments":"","x":1728.4999618530273,"y":972.604082107544,"z":"42cbb89a.8c64f","wires":[]},{"id":"19a8adcf.8ba972","type":"set","name":"set new vf-module_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\n","comments":"","x":601.3333206176758,"y":1057.6908559799194,"z":"42cbb89a.8c64f","wires":[]},{"id":"d68b1f8a.c36f8","type":"set","name":"set vf-module-topology data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\n<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\n<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\n","comments":"","x":607.8333396911621,"y":1170.1909627914429,"z":"42cbb89a.8c64f","wires":[]},{"id":"e4522356.5a7e2","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\n   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n","comments":"","x":1368.7855987548828,"y":1329.4288892745972,"z":"42cbb89a.8c64f","wires":[]},{"id":"ce657ede.d0e7d","type":"switchNode","name":"switch aic-clli","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\n","comments":"","outputs":1,"x":567.8332595825195,"y":1443.3812294006348,"z":"42cbb89a.8c64f","wires":[["a44684c3.293ee8"]]},{"id":"a44684c3.293ee8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":713.1189498901367,"y":1443.3812980651855,"z":"42cbb89a.8c64f","wires":[["a1923c55.11e4c8"]]},{"id":"a1923c55.11e4c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`\" />\n","comments":"","x":860.2618103027344,"y":1442.9527320861816,"z":"42cbb89a.8c64f","wires":[]},{"id":"dc1a7960.cce6c8","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":606.6904754638672,"y":1243.5245008468628,"z":"42cbb89a.8c64f","wires":[["6c625f2a.03864","97f875f7.37eb4"]]},{"id":"97f875f7.37eb4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":820.9366683959961,"y":1261.6753568649292,"z":"42cbb89a.8c64f","wires":[["ecec7a39.3d0b9"]]},{"id":"ecec7a39.3d0b9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":995.9366416931152,"y":1261.6753931045532,"z":"42cbb89a.8c64f","wires":[]},{"id":"6c625f2a.03864","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":829.8652648925781,"y":1219.9610900878906,"z":"42cbb89a.8c64f","wires":[["3c76069e.89c31a"]]},{"id":"3c76069e.89c31a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region not found in AAI\" />\n","comments":"","x":996.214542388916,"y":1219.2666673660278,"z":"42cbb89a.8c64f","wires":[]},{"id":"63912568.dc6aac","type":"set","name":"set vf-module-parameters","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-parameters.'\n  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\n","comments":"","x":603.595287322998,"y":1892.810320854187,"z":"42cbb89a.8c64f","wires":[]},{"id":"a1685cb6.6af2e","type":"set","name":"set order-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":619.2262573242188,"y":5094.417000770569,"z":"42cbb89a.8c64f","wires":[]},{"id":"13ade228.a692e6","type":"get-resource","name":"get-resource VF_MODULE_TO_VFC_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-to-vfc-mapping[]'>\n\n","comments":"","outputs":1,"x":676.9286880493164,"y":1946.6671075820923,"z":"42cbb89a.8c64f","wires":[["fae8f604.21bc6","da093ea1.9e3bd"]]},{"id":"fae8f604.21bc6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":942.7143783569336,"y":1927.0479383468628,"z":"42cbb89a.8c64f","wires":[["e21cede9.2e7c6"]]},{"id":"da093ea1.9e3bd","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":951.2858085632324,"y":1971.3336515426636,"z":"42cbb89a.8c64f","wires":[["d38e8911.141148"]]},{"id":"e21cede9.2e7c6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_TO_VFC_MAPPING table\" />\n","comments":"","x":1117.7143096923828,"y":1926.1908388137817,"z":"42cbb89a.8c64f","wires":[]},{"id":"bbe284c2.19a1b","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\n","comments":"","outputs":1,"x":577.0476989746094,"y":2575.667359352112,"z":"42cbb89a.8c64f","wires":[["9dcee5b9.30ecb8"]]},{"id":"8cc05378.a5e4a","type":"get-resource","name":"get-resource VFC_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-model'>\n\n","comments":"","outputs":1,"x":1018.9524993896484,"y":2067.5720205307007,"z":"42cbb89a.8c64f","wires":[["26da1d88.b25212","d0f431cf.4dd9c8"]]},{"id":"6f26da35.19f5f4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1389.3808479309082,"y":2092.000412940979,"z":"42cbb89a.8c64f","wires":[]},{"id":"26da1d88.b25212","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1214.7381172180176,"y":2047.9527711868286,"z":"42cbb89a.8c64f","wires":[["65dd23cf.74f37c"]]},{"id":"d0f431cf.4dd9c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1223.3095474243164,"y":2092.2384843826294,"z":"42cbb89a.8c64f","wires":[["6f26da35.19f5f4"]]},{"id":"65dd23cf.74f37c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_MODEL table\" />\n","comments":"","x":1389.7380485534668,"y":2047.0956716537476,"z":"42cbb89a.8c64f","wires":[]},{"id":"9dcee5b9.30ecb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":768.9524917602539,"y":2574.2387285232544,"z":"42cbb89a.8c64f","wires":[["8cc05378.a5e4a","d7e120d8.399ab","265d99fe.8adbae","faf10db5.cade38","c3472b79.c794e8","b691f5a2.df4868","1b9a0f89.b41b2","6fdd1d65.dd9ee4"]]},{"id":"514505ea.10acfc","type":"set","name":"set vm_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\n  value='`$db.vf-module-to-vfc-mapping_length`' />\n","comments":"","x":568.833366394043,"y":2006.8577852249146,"z":"42cbb89a.8c64f","wires":[]},{"id":"d7e120d8.399ab","type":"set","name":"set vm data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\n   value='`$db.vfc-model.nfc-naming-code`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\n   value='`$db.vfc-model.vm-type-tag`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\n   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":969.6667518615723,"y":2193.52449798584,"z":"42cbb89a.8c64f","wires":[]},{"id":"b5e9b140.524d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1663.0000686645508,"y":746.9440250396729,"z":"42cbb89a.8c64f","wires":[["f8350d6.6984bf","4a2b4adf.81c83c"]]},{"id":"4a2b4adf.81c83c","type":"break","name":"break","xml":"<break>","comments":"","x":1798.0000343322754,"y":768.6106109619141,"z":"42cbb89a.8c64f","wires":[]},{"id":"7323ab19.f1fb84","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-module-model.invariant-uuid`' />\n","comments":"","x":982.1665992736816,"y":1484.7772226333618,"z":"42cbb89a.8c64f","wires":[]},{"id":"dc5bef63.7bbf58","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":626.0236740112305,"y":1507.6016664505005,"z":"42cbb89a.8c64f","wires":[["f771c9c6.034628","c8403571.75d8a"]]},{"id":"f771c9c6.034628","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":831.6903457641602,"y":1484.7446298599243,"z":"42cbb89a.8c64f","wires":[["7323ab19.f1fb84"]]},{"id":"c8403571.75d8a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":833.1189422607422,"y":1529.0302209854126,"z":"42cbb89a.8c64f","wires":[["f25740a0.0c3fa"]]},{"id":"f25740a0.0c3fa","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":987.4046783447266,"y":1528.4587931632996,"z":"42cbb89a.8c64f","wires":[]},{"id":"a2c866ca.334548","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$db.vf-module-model.uuid`' />\n","comments":"","x":983.1188697814941,"y":1573.3158988952637,"z":"42cbb89a.8c64f","wires":[]},{"id":"606dd497.672abc","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":598.642692565918,"y":1596.1404037475586,"z":"42cbb89a.8c64f","wires":[["19203891.bc30cf","7d8dc9ab.34846"]]},{"id":"19203891.bc30cf","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":832.6426658630371,"y":1573.28333568573,"z":"42cbb89a.8c64f","wires":[["a2c866ca.334548"]]},{"id":"7d8dc9ab.34846","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":834.0712623596191,"y":1617.5689268112183,"z":"42cbb89a.8c64f","wires":[["1c4736a4.9d5379"]]},{"id":"1c4736a4.9d5379","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\n","comments":"","x":988.3569984436035,"y":1616.9974989891052,"z":"42cbb89a.8c64f","wires":[]},{"id":"838f9e47.a657b8","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$db.vf-module-model.version`' />\n","comments":"","x":980.2618026733398,"y":1662.1731061935425,"z":"42cbb89a.8c64f","wires":[]},{"id":"fa9f3efa.3d4728","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":606.7855644226074,"y":1684.9975509643555,"z":"42cbb89a.8c64f","wires":[["5233d71a.ced7f","da1652ca.e4ec5"]]},{"id":"5233d71a.ced7f","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":829.7855491638184,"y":1662.140513420105,"z":"42cbb89a.8c64f","wires":[["838f9e47.a657b8"]]},{"id":"da1652ca.e4ec5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":831.2141456604004,"y":1706.4261045455933,"z":"42cbb89a.8c64f","wires":[["993309bc.316d8"]]},{"id":"993309bc.316d8","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n","comments":"","x":985.4998817443848,"y":1705.8546767234802,"z":"42cbb89a.8c64f","wires":[]},{"id":"26ba33d6.4f7d64","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$db.vf-module-model.name`' />\n","comments":"","x":980.2618026733398,"y":1749.3159284591675,"z":"42cbb89a.8c64f","wires":[]},{"id":"6e166208.bcc654","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":601.7855644226074,"y":1772.1403732299805,"z":"42cbb89a.8c64f","wires":[["3a68c66b.a88062","d0a0d796.04cde8"]]},{"id":"3a68c66b.a88062","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":829.7855491638184,"y":1749.28333568573,"z":"42cbb89a.8c64f","wires":[["26ba33d6.4f7d64"]]},{"id":"d0a0d796.04cde8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":831.2141456604004,"y":1793.5689268112183,"z":"42cbb89a.8c64f","wires":[["c0cc4286.ab4b48"]]},{"id":"c0cc4286.ab4b48","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\n","comments":"","x":985.4998817443848,"y":1792.9974989891052,"z":"42cbb89a.8c64f","wires":[]},{"id":"a6edf90b.02862","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":616.2378997802734,"y":1844.649362564087,"z":"42cbb89a.8c64f","wires":[]},{"id":"265d99fe.8adbae","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":971.3332405090332,"y":2302.777416229248,"z":"42cbb89a.8c64f","wires":[["46caa348.dae174"]]},{"id":"faf10db5.cade38","type":"set","name":"set vm-name-length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\n  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\n","comments":"","x":994.6666946411133,"y":2237.7776737213135,"z":"42cbb89a.8c64f","wires":[]},{"id":"d2eec622.8295e","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1437.761863708496,"y":2325.396562576294,"z":"42cbb89a.8c64f","wires":[["b331dbfa.3b84d","cf215d89.9ffde"]]},{"id":"b331dbfa.3b84d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1733.4761517842617,"y":2298.253825187683,"z":"42cbb89a.8c64f","wires":[["aa4dcc25.6f274"]]},{"id":"cf215d89.9ffde","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1736.8095016479492,"y":2349.9204683303833,"z":"42cbb89a.8c64f","wires":[["ecbc795a.f3f258"]]},{"id":"7dcd8e5b.a33308","type":"set","name":"set variables for generating unique name NEW","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $db.vfc-model.nfc-naming-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='3' />\n\n<!--\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`\" />\n-->\n","comments":"","x":1394.4285774230957,"y":2273.7298889160156,"z":"42cbb89a.8c64f","wires":[]},{"id":"ecbc795a.f3f258","type":"set","name":"set generated name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":1921.3332176208496,"y":2349.3964862823486,"z":"42cbb89a.8c64f","wires":[]},{"id":"aa4dcc25.6f274","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":1901.3332646687832,"y":2297.682336807251,"z":"42cbb89a.8c64f","wires":[]},{"id":"3f52ef.03031512","type":"set","name":"set vf-module-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\n   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n","comments":"","x":569.4285469055176,"y":1113.3725385665894,"z":"42cbb89a.8c64f","wires":[]},{"id":"46caa348.dae174","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1135.738182067871,"y":2302.4203205108643,"z":"42cbb89a.8c64f","wires":[["7dcd8e5b.a33308","d2eec622.8295e"]]},{"id":"c3472b79.c794e8","type":"get-resource","name":"get-resource VFC_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\n  pfx='db.vfc-to-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":1098.595329284668,"y":2425.277389526367,"z":"42cbb89a.8c64f","wires":[["cf0687bd.e598e","4a704ca7.8ab134"]]},{"id":"cf0687bd.e598e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1385.8095321655273,"y":2405.658236503601,"z":"42cbb89a.8c64f","wires":[["5d120833.737138"]]},{"id":"4a704ca7.8ab134","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1394.3809623718262,"y":2449.943949699402,"z":"42cbb89a.8c64f","wires":[["6debb183.b41518"]]},{"id":"5d120833.737138","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VFC_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1560.8094635009766,"y":2404.80113697052,"z":"42cbb89a.8c64f","wires":[]},{"id":"b691f5a2.df4868","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\n","comments":"","outputs":1,"x":991.6906204223633,"y":2736.468231201172,"z":"42cbb89a.8c64f","wires":[["36d0034e.833ba4"]]},{"id":"36d0034e.833ba4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1198.1190719604492,"y":2733.134736061096,"z":"42cbb89a.8c64f","wires":[["13d5efa4.e01b18","6684e114.507f68","185f4372.c123c5","91a5c44c.608108","b2d4a39c.3d0218","1875199d.3e005e","fc08b3d2.5d259","e36efe57.44154"]]},{"id":"13d5efa4.e01b18","type":"for","name":"for each network","xml":"<for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\n","comments":"","outputs":1,"x":1407.166633605957,"y":2565.2774925231934,"z":"42cbb89a.8c64f","wires":[["a15c432c.8bcf7"]]},{"id":"6684e114.507f68","type":"set","name":"set network-index to -1","xml":"<set>\n<parameter name='network-index' value='-1' />\n","comments":"","x":1427.1667022705078,"y":2522.4204893112183,"z":"42cbb89a.8c64f","wires":[]},{"id":"a15c432c.8bcf7","type":"switchNode","name":"switch network-role matches","xml":"<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\n","comments":"","outputs":1,"x":1635.737907409668,"y":2563.8486824035645,"z":"42cbb89a.8c64f","wires":[["ac115be5.329f08"]]},{"id":"ac115be5.329f08","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1834.3095741271973,"y":2563.848886489868,"z":"42cbb89a.8c64f","wires":[["9146a0a9.0e19b"]]},{"id":"9146a0a9.0e19b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1975.7381420135498,"y":2562.4203147888184,"z":"42cbb89a.8c64f","wires":[["fb415bb3.75456","d6f312f.548dff"]]},{"id":"fb415bb3.75456","type":"set","name":"set network-index to idx","xml":"<set>\n<parameter name='network-index' value='`$idx`' />\n","comments":"","x":2154.30965423584,"y":2539.563310623169,"z":"42cbb89a.8c64f","wires":[]},{"id":"d6f312f.548dff","type":"break","name":"break","xml":"<break>","comments":"","x":2102.8808937072754,"y":2585.2774906158447,"z":"42cbb89a.8c64f","wires":[]},{"id":"185f4372.c123c5","type":"switchNode","name":"switch network-index","xml":"<switch test='`$network-index`'>\n","comments":"","outputs":1,"x":1419.0714721679688,"y":2614.0871295928955,"z":"42cbb89a.8c64f","wires":[["39711ad5.6dbf8e"]]},{"id":"39711ad5.6dbf8e","type":"outcomeTrue","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1613.3571968078613,"y":2614.0870265960693,"z":"42cbb89a.8c64f","wires":[["d971a29a.9569"]]},{"id":"d971a29a.9569","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`\" />\n","comments":"","x":1770.5000457763672,"y":2612.6584968566895,"z":"42cbb89a.8c64f","wires":[]},{"id":"75cfcd56.417424","type":"for","name":"for each cloud-region relationship","xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":628.9442901611328,"y":1332.0311841964722,"z":"42cbb89a.8c64f","wires":[["6d704691.40d188"]]},{"id":"6d704691.40d188","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n","comments":"","outputs":1,"x":876.6228332519531,"y":1331.7811136245728,"z":"42cbb89a.8c64f","wires":[["832009c2.286ea"]]},{"id":"832009c2.286ea","type":"outcome","name":"complex","xml":"<outcome value='complex'>\n","comments":"","outputs":1,"x":1046.0871543884277,"y":1331.1739358901978,"z":"42cbb89a.8c64f","wires":[["aa276ae6.6a9938"]]},{"id":"ce4135e5.834cf8","type":"execute","name":"split related-link","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n","comments":"","outputs":1,"x":1386.1823120117188,"y":1285.6025114059448,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"aa276ae6.6a9938","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1205.8490142822266,"y":1332.269299507141,"z":"42cbb89a.8c64f","wires":[["ce4135e5.834cf8","cc8ebfcf.73556","e4522356.5a7e2"]]},{"id":"cc8ebfcf.73556","type":"break","name":"break","xml":"<break>","comments":"","x":1355.848976135254,"y":1375.602596282959,"z":"42cbb89a.8c64f","wires":[]},{"id":"91a5c44c.608108","type":"set","name":"set network-role and tag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\n","comments":"","x":1428.8333549499512,"y":2710.277316093445,"z":"42cbb89a.8c64f","wires":[]},{"id":"1b9a0f89.b41b2","type":"set","name":"set vm-network-length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\n  value='`$db.vfc-to-network-role-mapping_length`' />\n","comments":"","x":985.4999465942383,"y":3125.277581214905,"z":"42cbb89a.8c64f","wires":[]},{"id":"b2d4a39c.3d0218","type":"switchNode","name":"switch ipv4-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\n","comments":"","outputs":1,"x":1421.452407836914,"y":2793.610643386841,"z":"42cbb89a.8c64f","wires":[["f334dedf.542f88","bfe3b92b.eed028"]]},{"id":"dba4692f.8d24f","type":"set","name":"set network-information-index to -1","xml":"<set>\n<parameter name='network-information-index' value='-1' />\n\n","comments":"","x":1830.97603225708,"y":2758.6107482910156,"z":"42cbb89a.8c64f","wires":[]},{"id":"f334dedf.542f88","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1598.1189270019531,"y":2758.6107835769653,"z":"42cbb89a.8c64f","wires":[["dba4692f.8d24f"]]},{"id":"bfe3b92b.eed028","type":"other","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1596.8808784484863,"y":2824.5629262924194,"z":"42cbb89a.8c64f","wires":[["4e61e87f.09738"]]},{"id":"5c8aa855.64c57","type":"set","name":"set network-information-index to 0","xml":"<set>\n<parameter name='network-information-index' value='0' />\n","comments":"","x":2001.4521408081055,"y":2799.086787223816,"z":"42cbb89a.8c64f","wires":[]},{"id":"4e61e87f.09738","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1764.0713539123535,"y":2823.8963918685913,"z":"42cbb89a.8c64f","wires":[["5c8aa855.64c57","2a3f7a55.150f16"]]},{"id":"2a3f7a55.150f16","type":"set","name":"set ip-version 4, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='4' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\n","comments":"","x":2018.4047241210938,"y":2845.753743171692,"z":"42cbb89a.8c64f","wires":[]},{"id":"1875199d.3e005e","type":"switchNode","name":"switch ipv6-ip-version","xml":"<switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\n","comments":"","outputs":1,"x":1421.9286041259766,"y":2920.515425682068,"z":"42cbb89a.8c64f","wires":[["14cad0ce.875937","c6e6105f.d3fb48"]]},{"id":"14cad0ce.875937","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1600.7380981445312,"y":2890.753237724304,"z":"42cbb89a.8c64f","wires":[["850ae6e3.97486"]]},{"id":"c6e6105f.d3fb48","type":"other","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1602.1666526794434,"y":2955.038794517517,"z":"42cbb89a.8c64f","wires":[["3a97eaa4.4dbd5e"]]},{"id":"d01561e6.8cd2a8","type":"set","name":"increment network-information-index","xml":"<set>\n<parameter name='network-information-index' value='`$network-information-index + 1`' />\n","comments":"","x":2007.880744934082,"y":2929.5628242492676,"z":"42cbb89a.8c64f","wires":[]},{"id":"3a97eaa4.4dbd5e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1757.4048118591309,"y":2954.0865335464478,"z":"42cbb89a.8c64f","wires":[["d01561e6.8cd2a8","eec3daa5.99fad8"]]},{"id":"850ae6e3.97486","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1743.404727935791,"y":2890.0868558883667,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"fc08b3d2.5d259","type":"switchNode","name":"switch network-information-index","xml":"<switch test='`$network-information-index`'>\n","comments":"","outputs":1,"x":1457.166618347168,"y":3056.9436712265015,"z":"42cbb89a.8c64f","wires":[["e7281cfc.e21008","d353f555.e50738"]]},{"id":"e7281cfc.e21008","type":"outcome","name":"-1","xml":"<outcome value='-1'>","comments":"","outputs":1,"x":1675.4999752044678,"y":3033.610417366028,"z":"42cbb89a.8c64f","wires":[["693a68fa.318578"]]},{"id":"d353f555.e50738","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1675.2619380950928,"y":3079.562731742859,"z":"42cbb89a.8c64f","wires":[["bdc04062.cb736"]]},{"id":"693a68fa.318578","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1812.166690826416,"y":3031.9440774917603,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"bdc04062.cb736","type":"set","name":"set network-information-item_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\n   value='`$network-information-index + 1`' />\n","comments":"","x":1903.8333053588867,"y":3076.9438695907593,"z":"42cbb89a.8c64f","wires":[]},{"id":"cfc556e3.250c1","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":584,"y":3223.943766593933,"z":"42cbb89a.8c64f","wires":[["3c13f67.7a17c0a"]]},{"id":"3c13f67.7a17c0a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":787.5715255737305,"y":3224.181971549988,"z":"42cbb89a.8c64f","wires":[["13ff9beb.57fecc"]]},{"id":"e36efe57.44154","type":"set","name":"save network-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\n  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\n","comments":"This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing","x":1400.9761810302734,"y":2660.2773237228394,"z":"42cbb89a.8c64f","wires":[]},{"id":"13ff9beb.57fecc","type":"for","name":"for each network-role","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":988.999885559082,"y":3223.2770223617554,"z":"42cbb89a.8c64f","wires":[["7e085b6a.57a1e4"]]},{"id":"7e085b6a.57a1e4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1190.9047012329102,"y":3222.5150594711304,"z":"42cbb89a.8c64f","wires":[["6e764b1a.339424"]]},{"id":"6e764b1a.339424","type":"for","name":"for each network-information-item","xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":1435.6665725708008,"y":3222.039451599121,"z":"42cbb89a.8c64f","wires":[["c862c7eb.4210b"]]},{"id":"952a7c8b.3108b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":680.666633605957,"y":3427.943877220154,"z":"42cbb89a.8c64f","wires":[["d51d4403.6e23e","53daab82.db7afc","a091bfcc.a138b","f5c55689.e07468","5377172.64f6b68"]]},{"id":"d51d4403.6e23e","type":"get-resource","name":"get-resource EIPAM_IP_SUBNETS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n    AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\n  pfx='db.eipam-ip-subnets[]'>\n\n","comments":"","outputs":1,"x":1060.6666564941406,"y":3389.6103734970093,"z":"42cbb89a.8c64f","wires":[["cfbb3239.b8a848","97b51176.70bd1"]]},{"id":"a77bfa66.d4c0d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in EIPAM_IP_SUBNETS table for network ID '\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\n        + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`\" />\n","comments":"","x":1450.6665954589844,"y":3411.2771348953247,"z":"42cbb89a.8c64f","wires":[]},{"id":"cfbb3239.b8a848","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1276.0238647460938,"y":3367.2294931411743,"z":"42cbb89a.8c64f","wires":[["a90f1733.6a3458"]]},{"id":"97b51176.70bd1","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1284.5952949523926,"y":3411.515206336975,"z":"42cbb89a.8c64f","wires":[["a77bfa66.d4c0d"]]},{"id":"a90f1733.6a3458","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading EIPAM_IP_SUBNETS table\" />\n","comments":"","x":1451.023796081543,"y":3366.3723936080933,"z":"42cbb89a.8c64f","wires":[]},{"id":"53daab82.db7afc","type":"for","name":"for each record in EIPAM_IP_SUBNETS","xml":"<for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\n","comments":"","outputs":1,"x":1079.9524688720703,"y":3694.8485612869263,"z":"42cbb89a.8c64f","wires":[["560fda47.3a4684"]]},{"id":"560fda47.3a4684","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1336.3810195922852,"y":3695.8008489608765,"z":"42cbb89a.8c64f","wires":[["c24dc02e.13602","de66f812.e4a","a3a38e6a.079dd8","c4da5ccb.f7a33","c10c36fb.5411d8"]]},{"id":"c24dc02e.13602","type":"get-resource","name":"get-resource EIPAM_IP_SUBNET_KEYS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n","comments":"","outputs":1,"x":1647.809585571289,"y":3532.2294569015503,"z":"42cbb89a.8c64f","wires":[["5d37056c.fc355c","7b62aa65.c2e794"]]},{"id":"c7bc51ba.e369f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $db.eipam-ip-subnets[$subnets-index].entity-id`\" />","comments":"","x":2062.809585571289,"y":3552.2294569015503,"z":"42cbb89a.8c64f","wires":[]},{"id":"5d37056c.fc355c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1888.1668548583984,"y":3508.1818151474,"z":"42cbb89a.8c64f","wires":[["725f1d1f.458d3c"]]},{"id":"7b62aa65.c2e794","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1896.7382850646973,"y":3552.4675283432007,"z":"42cbb89a.8c64f","wires":[["c7bc51ba.e369f"]]},{"id":"725f1d1f.458d3c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading EIPAM_IP_SUBNET_KEYS table\" />\n","comments":"","x":2063.1667861938477,"y":3507.324715614319,"z":"42cbb89a.8c64f","wires":[]},{"id":"a091bfcc.a138b","type":"set","name":"set max-level to -1","xml":"<set>\n<parameter name='max-level' value='-1' />\n","comments":"","x":1008.7619323730469,"y":3455.5629892349243,"z":"42cbb89a.8c64f","wires":[]},{"id":"de66f812.e4a","type":"for","name":"for each record in EIPAM_IP_SUBNET_KEYS","xml":"<for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n","comments":"","outputs":1,"x":1662.3334045410156,"y":3601.27721118927,"z":"42cbb89a.8c64f","wires":[["5a06105e.465d3"]]},{"id":"5a06105e.465d3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1949.0000534057617,"y":3599.6105489730835,"z":"42cbb89a.8c64f","wires":[["4455ac5e.d4cc4c"]]},{"id":"4455ac5e.d4cc4c","type":"switchNode","name":"switch level > max-level?","xml":"<switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\n","comments":"","outputs":1,"x":2165.6666717529297,"y":3599.6104669570923,"z":"42cbb89a.8c64f","wires":[["3b237dae.c892d2"]]},{"id":"3b237dae.c892d2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2357.333599090576,"y":3599.6104612350464,"z":"42cbb89a.8c64f","wires":[["4415570e.226f78"]]},{"id":"4415570e.226f78","type":"set","name":"set max-level, selected-entity-id, selected-plan-name","xml":"<set>\n<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\n<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\n<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\n","comments":"","x":2649.0001068115234,"y":3597.943717956543,"z":"42cbb89a.8c64f","wires":[]},{"id":"a3a38e6a.079dd8","type":"get-resource","name":"get-resource EIPAM_IP_SUBNET_KEYS","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\n  pfx='db.eipam-ip-subnet-keys[]'>\n\n","comments":"","outputs":1,"x":1649.000015258789,"y":3673.1819162368774,"z":"42cbb89a.8c64f","wires":[["eee51654.117c8","5c3a3f7f.5c2fc"]]},{"id":"e9fcdcdb.26176","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\n        + $selected-entity-id`\" />","comments":"","x":2064.000015258789,"y":3693.1819162368774,"z":"42cbb89a.8c64f","wires":[]},{"id":"eee51654.117c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1889.3572845458984,"y":3649.134274482727,"z":"42cbb89a.8c64f","wires":[["498c375.2ce3148"]]},{"id":"5c3a3f7f.5c2fc","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1897.9287147521973,"y":3693.419987678528,"z":"42cbb89a.8c64f","wires":[["e9fcdcdb.26176"]]},{"id":"498c375.2ce3148","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading EIPAM_IP_SUBNET_KEYS table\" />\n","comments":"","x":2064.3572158813477,"y":3648.277174949646,"z":"42cbb89a.8c64f","wires":[]},{"id":"665a903a.39a88","type":"for","name":"for each record in EIPAM_IP_SUBNET_KEYS","xml":"<for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\n","comments":"","outputs":1,"x":2094.952362060547,"y":3741.753373146057,"z":"42cbb89a.8c64f","wires":[["a2d16cc2.be0708"]]},{"id":"980d5ef5.8056a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1787.8093643188477,"y":3825.562809944153,"z":"42cbb89a.8c64f","wires":[["665a903a.39a88","41a4c10f.9fd3c8","e5baa84e.6704a","c3b40e73.c92d68","dd718ed9.581ee"]]},{"id":"c4da5ccb.f7a33","type":"for","name":"for each ip in ip-count","xml":"<for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\n","comments":"","outputs":1,"x":1586.142807006836,"y":3825.5644369125366,"z":"42cbb89a.8c64f","wires":[["980d5ef5.8056a"]]},{"id":"a2d16cc2.be0708","type":"set","name":"set eipam data for level","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\n   value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\n","comments":"","x":2401.8571243286133,"y":3741.5161390304565,"z":"42cbb89a.8c64f","wires":[]},{"id":"41a4c10f.9fd3c8","type":"set","name":"set eipam data pools_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\n   value='`$db.eipam-ip-subnet-keys_length`' />\n","comments":"","x":2041.142677307129,"y":3787.2297563552856,"z":"42cbb89a.8c64f","wires":[]},{"id":"bf867b12.1be738","type":"set","name":"set plans-index to 0","xml":"<set>\n<parameter name='plans-index' value='0' />\n","comments":"","x":592.7619171142578,"y":3167.8960371017456,"z":"42cbb89a.8c64f","wires":[]},{"id":"f5c55689.e07468","type":"set","name":"increment plans-index","xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n","comments":"","x":1024.0952224731445,"y":4086.8962841033936,"z":"42cbb89a.8c64f","wires":[]},{"id":"c10c36fb.5411d8","type":"set","name":"set eipam requests_length","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests_length'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\n","comments":"","x":1596.6191711425781,"y":3967.229808807373,"z":"42cbb89a.8c64f","wires":[]},{"id":"5377172.64f6b68","type":"set","name":"set eipam plan-name, address-family","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].address-family'\n   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\n","comments":"","x":1072.6666564941406,"y":4039.7527656555176,"z":"42cbb89a.8c64f","wires":[]},{"id":"c5587f72.e69778","type":"set","name":"set eipam plans_length","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\n","comments":"","x":596.4285697937012,"y":4111.944158554077,"z":"42cbb89a.8c64f","wires":[]},{"id":"993e8c87.965df8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":547.7975158691406,"y":5273.035320281982,"z":"42cbb89a.8c64f","wires":[]},{"id":"f20188a.3ff6c78","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":567.5832290649414,"y":4963.01509475708,"z":"42cbb89a.8c64f","wires":[]},{"id":"3b0dea46.13d54e","type":"set","name":"copy vf-module-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\n","comments":"","x":612.4642333984375,"y":4914.8006067276,"z":"42cbb89a.8c64f","wires":[]},{"id":"77c153ff.a0fdb4","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\n","comments":"","outputs":1,"x":542.678466796875,"y":5225.26513671875,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"285a17dd.85f258","type":"execute","name":"call EIPAM assignIPAddress","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">","comments":"","outputs":1,"x":976.5952911376953,"y":4200.9052267074585,"z":"42cbb89a.8c64f","wires":[["b1f94fd5.364d08"]]},{"id":"b1f94fd5.364d08","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1190.5952911376953,"y":4200.9052267074585,"z":"42cbb89a.8c64f","wires":[["82176bb2.df71d"]]},{"id":"82176bb2.df71d","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while obtaining new address blocks from EIPAM.\" />\n","comments":"","x":1329.5952911376953,"y":4200.9052267074585,"z":"42cbb89a.8c64f","wires":[]},{"id":"e5baa84e.6704a","type":"set","name":"set eipam client-key, mask","xml":"<set>\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\n   value='`$generate-unique-name-output.generated-name`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\n   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\n<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\n   value='32' />\n","comments":"","x":2038.2857284545898,"y":3921.0397844314575,"z":"42cbb89a.8c64f","wires":[]},{"id":"3aff63fe.fa9cd4","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":576,"y":4310.276859283447,"z":"42cbb89a.8c64f","wires":[["ad1f9498.166c78"]]},{"id":"ad1f9498.166c78","type":"for","name":"for each vm-network","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":784.6666831970215,"y":4310.2771854400635,"z":"42cbb89a.8c64f","wires":[["73045686.87b318"]]},{"id":"73045686.87b318","type":"for","name":"for each network-information-item","xml":"<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\n","comments":"","outputs":1,"x":1049.6666717529297,"y":4311.94352722168,"z":"42cbb89a.8c64f","wires":[["cc6a69ef.11f9a"]]},{"id":"7b3e5db3.2dc124","type":"set","name":"set plans-index = 0","xml":"<set>\n<parameter name='plans-index' value='0' />\n","comments":"","x":582.9999923706055,"y":4255.276947021484,"z":"42cbb89a.8c64f","wires":[]},{"id":"c72201c5.58c788","type":"for","name":"for each eipam request","xml":"<for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\n","comments":"","outputs":1,"x":1819.6666259765625,"y":4283.6108322143555,"z":"42cbb89a.8c64f","wires":[["e9abc0c8.773628"]]},{"id":"e9abc0c8.773628","type":"set","name":"set ip address","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\n  value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\n","comments":"","x":2031.3332633972168,"y":4281.944003105164,"z":"42cbb89a.8c64f","wires":[]},{"id":"7f6bf992.219d08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1619.6664581298828,"y":4308.610345840454,"z":"42cbb89a.8c64f","wires":[["c72201c5.58c788","34f6a11b.b8862e"]]},{"id":"34f6a11b.b8862e","type":"set","name":"increment plans-index","xml":"<set>\n<parameter name='plans-index' value='`$plans-index + 1`' />\n","comments":"","x":1814.66650390625,"y":4330.27668762207,"z":"42cbb89a.8c64f","wires":[]},{"id":"7e0e98ac.d87bf","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vf-module-name\" value=\"`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`\" />\n<parameter name=\"model-invariant-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vf-module-object-path`\" />\n","comments":"","outputs":1,"x":577.9999694824219,"y":4455.27702999115,"z":"42cbb89a.8c64f","wires":[["6df7b312.843a2c","49ca605b.c0502"]]},{"id":"b5ccad1f.ec4688","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":1071.333396911621,"y":4508.610199928284,"z":"42cbb89a.8c64f","wires":[]},{"id":"6df7b312.843a2c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":747.3573303222656,"y":4422.229174613953,"z":"42cbb89a.8c64f","wires":[["f5336f18.2c59b"]]},{"id":"49ca605b.c0502","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":755.9286842346191,"y":4484.8481550216675,"z":"42cbb89a.8c64f","wires":[["e6f82602.adde08"]]},{"id":"421ab118.9b761","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n","comments":"","x":1082.3572845458984,"y":4440.372731208801,"z":"42cbb89a.8c64f","wires":[]},{"id":"4765e816.cfcec","type":"set","name":"set  vf-module-object-path","xml":"<set>\n<parameter name='vf-module-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n\n\n","comments":"","x":593.6666259765625,"y":4378.27685546875,"z":"42cbb89a.8c64f","wires":[]},{"id":"9b005e27.ead9e","type":"save","name":"save vf-module relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module:relationship-list\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`\" />\n","comments":"","outputs":1,"x":1037.3094787597656,"y":4584.000018119812,"z":"42cbb89a.8c64f","wires":[["40b049d4.b5d508","90c1d6d6.aba8e"]]},{"id":"40b049d4.b5d508","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1262.1428108215332,"y":4544.871940612793,"z":"42cbb89a.8c64f","wires":[["69557a8b.b931b4"]]},{"id":"90c1d6d6.aba8e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1270.7142639160156,"y":4622.491083145142,"z":"42cbb89a.8c64f","wires":[["826a647c.0d8d58"]]},{"id":"27342a59.1dd1fe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module relationships in AAI\" />\n","comments":"","x":1597.1429443359375,"y":4564.681837081909,"z":"42cbb89a.8c64f","wires":[]},{"id":"bb37fcda.2b247","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":578.3095092773438,"y":4585.666521072388,"z":"42cbb89a.8c64f","wires":[["72590ab7.d86dcc"]]},{"id":"72590ab7.d86dcc","type":"for","name":"for each vm-network","xml":"<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":788.9761867523193,"y":4584.000344276428,"z":"42cbb89a.8c64f","wires":[["9b005e27.ead9e"]]},{"id":"8bee56c5.166f68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":1598.9762382507324,"y":4639.666376113892,"z":"42cbb89a.8c64f","wires":[]},{"id":"eec3daa5.99fad8","type":"set","name":"set ip-version 6, use-dhcp, and ip-count","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\n   value='6' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\n   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\n","comments":"","x":2017.7857208251953,"y":2974.2381496429443,"z":"42cbb89a.8c64f","wires":[]},{"id":"c862c7eb.4210b","type":"switchNode","name":"switch use-dhcp","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n","comments":"","outputs":1,"x":1683.500114440918,"y":3221.3808994293213,"z":"42cbb89a.8c64f","wires":[["890ce3ec.63743"]]},{"id":"890ce3ec.63743","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1853.5000267028809,"y":3219.9525022506714,"z":"42cbb89a.8c64f","wires":[["952a7c8b.3108b"]]},{"id":"cc6a69ef.11f9a","type":"switchNode","name":"switch use-dhcp","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\n","comments":"","outputs":1,"x":1290.642837524414,"y":4310.666822433472,"z":"42cbb89a.8c64f","wires":[["356204bc.cebf84"]]},{"id":"356204bc.cebf84","type":"outcome","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1460.642749786377,"y":4309.238425254822,"z":"42cbb89a.8c64f","wires":[["7f6bf992.219d08"]]},{"id":"8328b041.fafc2","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":577.309455871582,"y":4715.667015075684,"z":"42cbb89a.8c64f","wires":[["eb342e48.a6583"]]},{"id":"eb342e48.a6583","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":772.3094863891602,"y":4715.000022888184,"z":"42cbb89a.8c64f","wires":[["7a82dc04.86f99c"]]},{"id":"858885b6.5193e8","type":"save","name":"save VIPR_CONFIGURATION","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')\" >","comments":"","outputs":1,"x":1163.976188659668,"y":4737.667673110962,"z":"42cbb89a.8c64f","wires":[["22e39666.b50efa"]]},{"id":"8650b418.d123","type":"comment","name":"Not a failure","info":"","comments":"","x":1683.976089477539,"y":4737.6676778793335,"z":"42cbb89a.8c64f","wires":[]},{"id":"22e39666.b50efa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1373.976173400879,"y":4737.66782283783,"z":"42cbb89a.8c64f","wires":[["c5a9e28c.b12c1"]]},{"id":"c5a9e28c.b12c1","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1517.3096160888672,"y":4737.667660713196,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"dd718ed9.581ee","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":2127.3094940185547,"y":3875.666248321533,"z":"42cbb89a.8c64f","wires":[["50b7dc37.4a2dd4"]]},{"id":"50b7dc37.4a2dd4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2414.6905364990234,"y":3873.523669242859,"z":"42cbb89a.8c64f","wires":[["8e15d184.1846f"]]},{"id":"c3b40e73.c92d68","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\n<parameter name='generate-unique-name-input.prefix' value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`\" />\n<parameter name='generate-unique-name-input.index-length' value='' />\n","comments":"","x":2080.6428260803223,"y":3830.6664094924927,"z":"42cbb89a.8c64f","wires":[]},{"id":"8e15d184.1846f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":2582.547649383545,"y":3872.9521808624268,"z":"42cbb89a.8c64f","wires":[]},{"id":"6fdd1d65.dd9ee4","type":"switchNode","name":"switch ecomp-generated-naming == 'Y'","xml":"<switch test=\"$db.vfc-model.ecomp-generated-naming == 'Y'\">\n","comments":"","outputs":1,"x":1057.3095626831055,"y":2137.333580970764,"z":"42cbb89a.8c64f","wires":[["1e0ee877.417498"]]},{"id":"1e0ee877.417498","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1288.976173400879,"y":2136.3332118988037,"z":"42cbb89a.8c64f","wires":[["438dfe04.53215"]]},{"id":"438dfe04.53215","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`\" />\n","comments":"","x":1435.6429138183594,"y":2135.666666984558,"z":"42cbb89a.8c64f","wires":[]},{"id":"eb61c884.195028","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1547.3097381591797,"y":4688.999374389648,"z":"42cbb89a.8c64f","wires":[["fe2bdfdc.c7d078"]]},{"id":"a4699dbe.2bdf2","type":"comment","name":"Not a failure","info":"","comments":"","x":1870.6427917480469,"y":4687.333196640015,"z":"42cbb89a.8c64f","wires":[]},{"id":"fe2bdfdc.c7d078","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1693.3096733093262,"y":4689.0000076293945,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"7a82dc04.86f99c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":940.642879486084,"y":4713.99986743927,"z":"42cbb89a.8c64f","wires":[["695784e2.6196ec","858885b6.5193e8"]]},{"id":"695784e2.6196ec","type":"delete","name":"delete any pre-existing records in VIPR_CONFIGURATION","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1253.976203918457,"y":4689.334007263184,"z":"42cbb89a.8c64f","wires":[["eb61c884.195028"]]},{"id":"f30ede2a.6a271","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >","comments":"","outputs":1,"x":2960.6429481506348,"y":4325.666910648346,"z":"42cbb89a.8c64f","wires":[["3e0756bb.f7be2a"]]},{"id":"380f2e3a.9189b2","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`\" />\n","comments":"","x":2830.642910003662,"y":4279.000282764435,"z":"42cbb89a.8c64f","wires":[]},{"id":"3e0756bb.f7be2a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3265.6428565979004,"y":4324.000210285187,"z":"42cbb89a.8c64f","wires":[["6c6d4ba3.796714"]]},{"id":"6c6d4ba3.796714","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table on rollback\" />\n","comments":"","x":3455.6428833007812,"y":4323.8099455833435,"z":"42cbb89a.8c64f","wires":[]},{"id":"8aef50f1.e391e","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":2895.6429176330566,"y":4370.6669545173645,"z":"42cbb89a.8c64f","wires":[["4c2b10fb.217ea"]]},{"id":"4c2b10fb.217ea","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3132.309543609619,"y":4370.6668972969055,"z":"42cbb89a.8c64f","wires":[["497b9970.c89e8"]]},{"id":"497b9970.c89e8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in EIPAM unassign IP address on rollback\" />\n","comments":"","x":3322.3095703125,"y":4370.476632595062,"z":"42cbb89a.8c64f","wires":[]},{"id":"78e6782f.e4964","type":"comment","name":"roll back EIPAM","info":"","comments":"","x":2805.6429481506348,"y":4225.667236169179,"z":"42cbb89a.8c64f","wires":[]},{"id":"785ac55a.5e876c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2637.3095741271973,"y":4329.000406742096,"z":"42cbb89a.8c64f","wires":[["380f2e3a.9189b2","f30ede2a.6a271","8aef50f1.e391e"]]},{"id":"f5336f18.2c59b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":905.6428985595703,"y":4421.999845504761,"z":"42cbb89a.8c64f","wires":[["421ab118.9b761","b7ca3c2a.8306f"]]},{"id":"e6f82602.adde08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":910.6428375244141,"y":4484.666189193726,"z":"42cbb89a.8c64f","wires":[["b5ccad1f.ec4688","b7ca3c2a.8306f"]]},{"id":"69557a8b.b931b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1430.6428146362305,"y":4544.666210174561,"z":"42cbb89a.8c64f","wires":[["27342a59.1dd1fe","b7ca3c2a.8306f"]]},{"id":"826a647c.0d8d58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1425.642734527588,"y":4622.66605091095,"z":"42cbb89a.8c64f","wires":[["8bee56c5.166f68","b7ca3c2a.8306f"]]},{"id":"d38e8911.141148","type":"set","name":"set vf-module-to-vfc-mapping length to 0","xml":"<set>\n<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\n","comments":"","x":1204.500099182129,"y":1970.952314376831,"z":"42cbb89a.8c64f","wires":[]},{"id":"6debb183.b41518","type":"set","name":"set vfc-to-network-role-mapping length to 0","xml":"<set>\n<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\n","comments":"","x":1657.7857818603516,"y":2449.9523401260376,"z":"42cbb89a.8c64f","wires":[]},{"id":"14eb9411.7f3a24","type":"switchNode","name":"switch plans-index > 0","xml":"<switch test='`$plans-index &gt; 0`'>\n","comments":"","outputs":1,"x":593.5000762939453,"y":4201.3808126449585,"z":"42cbb89a.8c64f","wires":[["d8f73141.9175b8"]]},{"id":"d8f73141.9175b8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":776.3572158813477,"y":4201.381022453308,"z":"42cbb89a.8c64f","wires":[["285a17dd.85f258"]]},{"id":"b7ca3c2a.8306f","type":"switchNode","name":"switch plans-index > 0","xml":"<switch test='`$plans-index &gt; 0`'>\n","comments":"","outputs":1,"x":2284.6665000915527,"y":4328.286042690277,"z":"42cbb89a.8c64f","wires":[["abc3aaf1.1a8d3"]]},{"id":"abc3aaf1.1a8d3","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2467.523639678955,"y":4328.286252498627,"z":"42cbb89a.8c64f","wires":[["785ac55a.5e876c"]]},{"id":"4cd290dc.dfcc9","type":"set","name":"set service-type","xml":"<set>\n<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":573.6666145324707,"y":4154.9522161483765,"z":"42cbb89a.8c64f","wires":[]},{"id":"1ae4b5e5.907d6a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n","comments":"","x":312,"y":4912.7742395401,"z":"42cbb89a.8c64f","wires":[]},{"id":"a036b971.c69728","type":"comment","name":"Fix $ in value","info":"","comments":"","x":817.7499465942383,"y":4918.0243883132935,"z":"42cbb89a.8c64f","wires":[]},{"id":"d44a8be9.4bdcc","type":"call","name":"call check for VNF-API-preload and copy","xml":"<call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >\n","comments":"","outputs":1,"x":647.1668701171875,"y":5024.941292762756,"z":"42cbb89a.8c64f","wires":[[]]},{"id":"8a361b3a.5865b8","type":"returnFailure","name":"MARKER Node","xml":"\n","comments":"","x":1517,"y":2230,"z":"42cbb89a.8c64f","wires":[]},{"id":"978b88f8.1b362","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n<!--\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/service-topology/'`\"/>\n -->\n","comments":"","x":583.083251953125,"y":5156.3330078125,"z":"42cbb89a.8c64f","wires":[]}]
+[{"id":"26435c0d.fc79a4","type":"dgstart","name":"DGSTART","outputs":1,"x":120,"y":77.02430057525635,"z":"656aafb.8a6395","wires":[["e2d1700f.ddcd"]]},{"id":"e2d1700f.ddcd","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":233.85713577270508,"y":116.83383846282959,"z":"656aafb.8a6395","wires":[["7041aa61.644a04"]]},{"id":"7041aa61.644a04","type":"method","name":"method vf-module-topology-operation-assign","xml":"<method rpc='vf-module-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":233.42862701416016,"y":157.02430057525635,"z":"656aafb.8a6395","wires":[["65acec70.9c56c4"]]},{"id":"c730118a.e21ce","type":"comment","name":"vf-module-topology-operation-assign","info":"","comments":"","x":525.3210983276367,"y":20,"z":"656aafb.8a6395","wires":[]},{"id":"6fb1dec4.0529f","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":525.1905097961426,"y":332.548122882843,"z":"656aafb.8a6395","wires":[["108c83b4.cef43c","ad04160f.641278"]]},{"id":"108c83b4.cef43c","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":787.2381248474121,"y":309.6910090446472,"z":"656aafb.8a6395","wires":[["1ba480fd.d952ef"]]},{"id":"ad04160f.641278","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":730.9047698974609,"y":355.07199811935425,"z":"656aafb.8a6395","wires":[["f06e1d11.aac0f"]]},{"id":"1ba480fd.d952ef","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":977.0952892303467,"y":309.69104051589966,"z":"656aafb.8a6395","wires":[[]]},{"id":"f06e1d11.aac0f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":995.9047775268555,"y":355.40531063079834,"z":"656aafb.8a6395","wires":[]},{"id":"62441125.66a0b","type":"get-resource","name":"get-resource VF_MODULE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-model'>\n\n","comments":"","outputs":1,"x":572.5237770080566,"y":423.6910729408264,"z":"656aafb.8a6395","wires":[["107fd326.9ba41d","ca0f147f.907428"]]},{"id":"4ea2965.8808268","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1013.9521980285645,"y":448.1195454597473,"z":"656aafb.8a6395","wires":[]},{"id":"107fd326.9ba41d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":838.3094673156738,"y":404.0719037055969,"z":"656aafb.8a6395","wires":[["4f40032c.c4bacc"]]},{"id":"ca0f147f.907428","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":846.8808975219727,"y":448.3576169013977,"z":"656aafb.8a6395","wires":[["4ea2965.8808268"]]},{"id":"4f40032c.c4bacc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n","comments":"","x":1013.309398651123,"y":403.21480417251587,"z":"656aafb.8a6395","wires":[]},{"id":"488e702.2bac09","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":567.6190414428711,"y":632.2624082565308,"z":"656aafb.8a6395","wires":[["24f9c122.2250be","d25bd1ae.c2c51"]]},{"id":"24f9c122.2250be","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":808.3333129882812,"y":609.4051485061646,"z":"656aafb.8a6395","wires":[["505fc81a.807868"]]},{"id":"d25bd1ae.c2c51","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":808.0951538085938,"y":650.3576669692993,"z":"656aafb.8a6395","wires":[["9ec01ab9.e2ba98"]]},{"id":"110bcecd.ba7661","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":154.5238037109375,"y":2918.929323196411,"z":"656aafb.8a6395","wires":[["e1906aa5.79edf8","4579baea.4e1ce4","99398bc4.52b678","deb3a0da.1b837","ec603470.f9c408","64628347.fcadac","24ff0c47.3546a4","bbb0684c.92c108","73ee4632.723818","6b10e668.07ccf8","ef4d2a4.c7047d8","93254957.8f37d8","d4ff85a5.3e2f38","fb3addee.0067e","74b7384e.7dc558","eb5208b9.6edea8","8fbc261.8df31d8","f9c64c2d.c2c64","c027e91b.5ae848","5866abdc.5ae8b4","5cfaa9c0.9d8738","a9429c24.2435a","dd018545.07e8e8","74133334.aced1c","bf94cb16.e2d428","f2c3fa39.f42268","df5aea18.782d88","3fd43ef9.658b62"]]},{"id":"505fc81a.807868","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":974.999927520752,"y":608.6909036636353,"z":"656aafb.8a6395","wires":[]},{"id":"9ec01ab9.e2ba98","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":970.3332977294922,"y":650.0242853164673,"z":"656aafb.8a6395","wires":[["25b275ee.8e053a"]]},{"id":"25b275ee.8e053a","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1221.6665954589844,"y":649.6910133361816,"z":"656aafb.8a6395","wires":[["d30b08f1.d32668"]]},{"id":"d30b08f1.d32668","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1451.6666069030762,"y":649.0243263244629,"z":"656aafb.8a6395","wires":[["68c36e5e.1e03f"]]},{"id":"e2b3c75a.fbe358","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":516.6666641235352,"y":563.6909074783325,"z":"656aafb.8a6395","wires":[]},{"id":"dd7dd66d.514b18","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1773.3332443237305,"y":620.024284362793,"z":"656aafb.8a6395","wires":[]},{"id":"a941c95a.005118","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":506.6666717529297,"y":700.3576040267944,"z":"656aafb.8a6395","wires":[["d2524204.b0f77"]]},{"id":"d2524204.b0f77","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":685.000057220459,"y":699.6909799575806,"z":"656aafb.8a6395","wires":[["4e3ba237.282e2c"]]},{"id":"4e3ba237.282e2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":844.9999656677246,"y":699.0242834091187,"z":"656aafb.8a6395","wires":[]},{"id":"e1906aa5.79edf8","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":536.6667633056641,"y":1673.6910963058472,"z":"656aafb.8a6395","wires":[["69dd7fc2.bfa07","e3821c4a.5365d"]]},{"id":"69dd7fc2.bfa07","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":794.0477180480957,"y":1640.833869934082,"z":"656aafb.8a6395","wires":[["12e01545.41510b"]]},{"id":"12e01545.41510b","type":"set","name":"set vf-module-index=0","xml":"<set>\n<parameter name='vf-module-index' value='0' />\n","comments":"","x":981.6667556762695,"y":1641.500644683838,"z":"656aafb.8a6395","wires":[]},{"id":"e3821c4a.5365d","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":794.476261138916,"y":1705.119728088379,"z":"656aafb.8a6395","wires":[["3625b8e4.8a6ed8"]]},{"id":"431edeca.30bd2","type":"set","name":"set vf-module-index = vf-module_length","xml":"<set>\n<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\n","comments":"","x":1179.6668014526367,"y":1685.3101234436035,"z":"656aafb.8a6395","wires":[]},{"id":"261c711c.8a8afe","type":"for","name":"for each existing VF module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1138.7618942260742,"y":1729.4053535461426,"z":"656aafb.8a6395","wires":[["ffc7b05f.851d6"]]},{"id":"3625b8e4.8a6ed8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":931.1905403137207,"y":1705.1196537017822,"z":"656aafb.8a6395","wires":[["431edeca.30bd2","261c711c.8a8afe"]]},{"id":"ffc7b05f.851d6","type":"switchNode","name":"switch vf-module-information.vf-module-id == service-data.vnfs.vnf[].vf-modules.vf-module[].vf-module-id","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\n","comments":"","outputs":1,"x":1642.3809967041016,"y":1728.976764678955,"z":"656aafb.8a6395","wires":[["9819f262.00a9b"]]},{"id":"9819f262.00a9b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2085.000045776367,"y":1728.5482158660889,"z":"656aafb.8a6395","wires":[["fa80d8c4.eff008"]]},{"id":"fa80d8c4.eff008","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\n       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`\" />\n","comments":"","x":2236.904926300049,"y":1728.5482025146484,"z":"656aafb.8a6395","wires":[]},{"id":"c7fe0b36.b32f28","type":"comment","name":"make sure this VF module doesn't exist already","info":"","comments":"","x":1668.8333435058594,"y":1683.6042566299438,"z":"656aafb.8a6395","wires":[]},{"id":"4579baea.4e1ce4","type":"set","name":"set new vf-module_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\n","comments":"","x":547.3333435058594,"y":1784.690951347351,"z":"656aafb.8a6395","wires":[]},{"id":"99398bc4.52b678","type":"set","name":"set vf-module-topology data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\n<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\n<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\n<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\n","comments":"","x":553.8333625793457,"y":1897.1910581588745,"z":"656aafb.8a6395","wires":[]},{"id":"873da3a5.72cd5","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\n   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n","comments":"","x":1314.7856216430664,"y":2056.428984642029,"z":"656aafb.8a6395","wires":[]},{"id":"deb3a0da.1b837","type":"switchNode","name":"switch aic-clli","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\n","comments":"","outputs":1,"x":513.8332824707031,"y":2170.3813247680664,"z":"656aafb.8a6395","wires":[["7cf3e2b0.e4015c"]]},{"id":"7cf3e2b0.e4015c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":659.1189727783203,"y":2170.381393432617,"z":"656aafb.8a6395","wires":[["20446503.96b8aa"]]},{"id":"20446503.96b8aa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`\" />\n","comments":"","x":806.261833190918,"y":2169.9528274536133,"z":"656aafb.8a6395","wires":[]},{"id":"ec603470.f9c408","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":552.6904983520508,"y":1970.5245962142944,"z":"656aafb.8a6395","wires":[["b56be644.999f38","db27dd5b.ccee4"]]},{"id":"db27dd5b.ccee4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":766.9366912841797,"y":1988.6754522323608,"z":"656aafb.8a6395","wires":[["aea5f281.3febe"]]},{"id":"aea5f281.3febe","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":941.9366645812988,"y":1988.6754884719849,"z":"656aafb.8a6395","wires":[]},{"id":"b56be644.999f38","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":775.8652877807617,"y":1946.9611854553223,"z":"656aafb.8a6395","wires":[["3fc25aad.735066"]]},{"id":"3fc25aad.735066","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region not found in AAI\" />\n","comments":"","x":942.2145652770996,"y":1946.2667627334595,"z":"656aafb.8a6395","wires":[]},{"id":"64628347.fcadac","type":"set","name":"set vf-module-parameters","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-parameters.'\n  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\n","comments":"","x":546.3095703125,"y":2654.2869262695312,"z":"656aafb.8a6395","wires":[]},{"id":"68c36e5e.1e03f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1600.0000686645508,"y":647.9440250396729,"z":"656aafb.8a6395","wires":[["dd7dd66d.514b18","d5f2edac.9d2be"]]},{"id":"d5f2edac.9d2be","type":"break","name":"break","xml":"<break>\n","comments":"","x":1735.0000343322754,"y":669.6106109619141,"z":"656aafb.8a6395","wires":[]},{"id":"ba680463.606c28","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-module-model.invariant-uuid`' />\n","comments":"","x":928.1666221618652,"y":2211.7773180007935,"z":"656aafb.8a6395","wires":[]},{"id":"24ff0c47.3546a4","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":572.0236968994141,"y":2234.601761817932,"z":"656aafb.8a6395","wires":[["dea644df.085118","73169093.cd052"]]},{"id":"dea644df.085118","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":777.6903686523438,"y":2211.744725227356,"z":"656aafb.8a6395","wires":[["ba680463.606c28"]]},{"id":"73169093.cd052","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":779.1189651489258,"y":2256.0303163528442,"z":"656aafb.8a6395","wires":[["79238a6c.919764"]]},{"id":"79238a6c.919764","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":933.4047012329102,"y":2255.458888530731,"z":"656aafb.8a6395","wires":[]},{"id":"1f14efed.62082","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$db.vf-module-model.uuid`' />\n","comments":"","x":929.1188926696777,"y":2300.3159942626953,"z":"656aafb.8a6395","wires":[]},{"id":"bbb0684c.92c108","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":544.6427154541016,"y":2323.1404991149902,"z":"656aafb.8a6395","wires":[["88d9b82d.799bb8","a27f6a.0dcca098"]]},{"id":"88d9b82d.799bb8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":778.6426887512207,"y":2300.2834310531616,"z":"656aafb.8a6395","wires":[["1f14efed.62082"]]},{"id":"a27f6a.0dcca098","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":780.0712852478027,"y":2344.56902217865,"z":"656aafb.8a6395","wires":[["c2e02ca.0b685d"]]},{"id":"c2e02ca.0b685d","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\n","comments":"","x":934.3570213317871,"y":2343.997594356537,"z":"656aafb.8a6395","wires":[]},{"id":"62153199.201c2","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$db.vf-module-model.version`' />\n","comments":"","x":926.2618255615234,"y":2389.173201560974,"z":"656aafb.8a6395","wires":[]},{"id":"73ee4632.723818","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":552.785587310791,"y":2411.997646331787,"z":"656aafb.8a6395","wires":[["26a8f04b.475c8","476c4b25.1c1b84"]]},{"id":"26a8f04b.475c8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":775.785572052002,"y":2389.1406087875366,"z":"656aafb.8a6395","wires":[["62153199.201c2"]]},{"id":"476c4b25.1c1b84","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":777.214168548584,"y":2433.426199913025,"z":"656aafb.8a6395","wires":[["c4b078c0.a8ed28"]]},{"id":"c4b078c0.a8ed28","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\n","comments":"","x":931.4999046325684,"y":2432.854772090912,"z":"656aafb.8a6395","wires":[]},{"id":"e657442c.ead3c8","type":"set","name":"set from DB","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$db.vf-module-model.name`' />\n","comments":"","x":926.2618255615234,"y":2476.316023826599,"z":"656aafb.8a6395","wires":[]},{"id":"6b10e668.07ccf8","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":547.785587310791,"y":2499.140468597412,"z":"656aafb.8a6395","wires":[["f168f0ce.54b45","33cec373.42738c"]]},{"id":"f168f0ce.54b45","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":775.785572052002,"y":2476.2834310531616,"z":"656aafb.8a6395","wires":[["e657442c.ead3c8"]]},{"id":"33cec373.42738c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":777.214168548584,"y":2520.56902217865,"z":"656aafb.8a6395","wires":[["ea01df66.59c76"]]},{"id":"ea01df66.59c76","type":"set","name":"set from input","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\n","comments":"","x":931.4999046325684,"y":2519.997594356537,"z":"656aafb.8a6395","wires":[]},{"id":"ef4d2a4.c7047d8","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\n  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":562.237922668457,"y":2571.6494579315186,"z":"656aafb.8a6395","wires":[]},{"id":"93254957.8f37d8","type":"set","name":"set vf-module-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\n   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n","comments":"","x":515.4285697937012,"y":1840.372633934021,"z":"656aafb.8a6395","wires":[]},{"id":"d4ff85a5.3e2f38","type":"for","name":"for each cloud-region relationship","xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":574.9443130493164,"y":2059.031279563904,"z":"656aafb.8a6395","wires":[["82c8e882.337268"]]},{"id":"82c8e882.337268","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n","comments":"","outputs":1,"x":822.6228561401367,"y":2058.7812089920044,"z":"656aafb.8a6395","wires":[["78be2657.4761c8"]]},{"id":"78be2657.4761c8","type":"outcome","name":"complex","xml":"<outcome value='complex'>\n","comments":"","outputs":1,"x":992.0871772766113,"y":2058.1740312576294,"z":"656aafb.8a6395","wires":[["292c6898.f5d278"]]},{"id":"f6d1d3fe.3f36b","type":"execute","name":"split related-link","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n","comments":"","outputs":1,"x":1332.1823348999023,"y":2012.6026067733765,"z":"656aafb.8a6395","wires":[[]]},{"id":"292c6898.f5d278","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1151.8490371704102,"y":2059.2693948745728,"z":"656aafb.8a6395","wires":[["f6d1d3fe.3f36b","fd0333a4.b3c89","873da3a5.72cd5"]]},{"id":"fd0333a4.b3c89","type":"break","name":"break","xml":"<break>\n","comments":"","x":1301.8489990234375,"y":2102.6026916503906,"z":"656aafb.8a6395","wires":[]},{"id":"c622ee1f.60898","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":530.7142791748047,"y":259.88143253326416,"z":"656aafb.8a6395","wires":[[]]},{"id":"5866abdc.5ae8b4","type":"set","name":"set order-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":560.5953598022461,"y":5992.23706048727,"z":"656aafb.8a6395","wires":[]},{"id":"a9429c24.2435a","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":497.16666412353516,"y":6084.855390489101,"z":"656aafb.8a6395","wires":[]},{"id":"c027e91b.5ae848","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":501.4523696899414,"y":5944.5853652358055,"z":"656aafb.8a6395","wires":[]},{"id":"f9c64c2d.c2c64","type":"set","name":"copy vf-module-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='tmp.vf-module-topology.' />\n","comments":"","x":546.3333740234375,"y":5896.3708772063255,"z":"656aafb.8a6395","wires":[]},{"id":"5cfaa9c0.9d8738","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\n","comments":"","outputs":1,"x":492.04761505126953,"y":6037.085206925869,"z":"656aafb.8a6395","wires":[[]]},{"id":"74b7384e.7dc558","type":"save","name":"update vf-module","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vf-module-name\" value=\"`$tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name`\" />\n<parameter name=\"model-invariant-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$tmp.vf-module-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vf-module-object-path`\" />\n<parameter name=\"automated-assignment\" value=\"`$automated-assignment`\" />","comments":"","outputs":1,"x":540.4762268066406,"y":4220.039322853088,"z":"656aafb.8a6395","wires":[["652740cb.83ab2","4329d4e9.833ffc"]]},{"id":"93ef82f6.77bf8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":1045.5239028930664,"y":4254.80075353384,"z":"656aafb.8a6395","wires":[]},{"id":"652740cb.83ab2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":715.5478668212891,"y":4188.419944763184,"z":"656aafb.8a6395","wires":[["ed63435e.aa384"]]},{"id":"4329d4e9.833ffc","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":724.1192398071289,"y":4257.03903478384,"z":"656aafb.8a6395","wires":[["abbcc2f3.09db4"]]},{"id":"bc498ebb.62e89","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n","comments":"","x":1050.5478210449219,"y":4206.563501358032,"z":"656aafb.8a6395","wires":[]},{"id":"fb3addee.0067e","type":"set","name":"set vf-module-object-path","xml":"<set>\n<parameter name='vf-module-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-data.service-topology.service-topology-identifier.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vf-modules/vf-module/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n + '/vf-module-data/vf-module-topology/'`\"/>\n\n","comments":"","x":562.1428718566895,"y":4012.89657497406,"z":"656aafb.8a6395","wires":[]},{"id":"35075c06.3ff5b4","type":"save","name":"save vf-module relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module:relationship-list\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/' +\n        $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`\" />\n","comments":"","outputs":1,"x":1330.8332557678223,"y":5011.524610519409,"z":"656aafb.8a6395","wires":[["eebf0c8d.02687","17cb2186.384fde"]]},{"id":"eebf0c8d.02687","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1550.6665992736816,"y":4982.396354675293,"z":"656aafb.8a6395","wires":[["9626c0d4.cffb4"]]},{"id":"17cb2186.384fde","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1559.2381324768066,"y":5035.01549911499,"z":"656aafb.8a6395","wires":[["d7b5caa2.dbe748"]]},{"id":"a5942506.20edd8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module relationships in AAI\" />\n","comments":"","x":1885.666732788086,"y":5002.206251144409,"z":"656aafb.8a6395","wires":[]},{"id":"eb5208b9.6edea8","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":524.1667404174805,"y":4826.191459655762,"z":"656aafb.8a6395","wires":[["2895f74a.780eb8"]]},{"id":"c51b1efc.3f796","type":"for","name":"for each vm-network","xml":"<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`' >\n","comments":"","outputs":1,"x":907.4999923706055,"y":5195.524995565414,"z":"656aafb.8a6395","wires":[["19879c24.7f2f24"]]},{"id":"2c0c296.d55dad6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No l3-network found in AAI for network ID '\n      + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`\" />\n","comments":"","x":1887.5001068115234,"y":5052.19079208374,"z":"656aafb.8a6395","wires":[]},{"id":"8fbc261.8df31d8","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":509.9285430908203,"y":5817.237373292446,"z":"656aafb.8a6395","wires":[["64726337.9e62cc"]]},{"id":"64726337.9e62cc","type":"for","name":"for each vm","xml":"<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":704.9285736083984,"y":5816.570381104946,"z":"656aafb.8a6395","wires":[["6bfd6084.d709f"]]},{"id":"ad3cf09c.9226f","type":"save","name":"save VIPR_CONFIGURATION","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , $prop.cloud-region.cloud-owner )\" >","comments":"","outputs":1,"x":1096.5952758789062,"y":5839.2380313277245,"z":"656aafb.8a6395","wires":[["5e616199.78de3"]]},{"id":"b9d57fe1.533e5","type":"comment","name":"Not a failure","info":"","comments":"","x":1616.5951766967773,"y":5839.238036096096,"z":"656aafb.8a6395","wires":[]},{"id":"5e616199.78de3","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1306.5952606201172,"y":5839.238181054592,"z":"656aafb.8a6395","wires":[["26b1e0ff.8c0e"]]},{"id":"26b1e0ff.8c0e","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1449.9287033081055,"y":5839.238018929958,"z":"656aafb.8a6395","wires":[[]]},{"id":"5588e4f4.192e3c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1479.928825378418,"y":5790.569732606411,"z":"656aafb.8a6395","wires":[["6ef1b6fa.74d458"]]},{"id":"47184014.145f","type":"comment","name":"Not a failure","info":"","comments":"","x":1803.2618789672852,"y":5788.903554856777,"z":"656aafb.8a6395","wires":[]},{"id":"6ef1b6fa.74d458","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1625.9287605285645,"y":5790.570365846157,"z":"656aafb.8a6395","wires":[[]]},{"id":"6bfd6084.d709f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":873.2619667053223,"y":5815.570225656033,"z":"656aafb.8a6395","wires":[["a8168d5b.f3523","ad3cf09c.9226f"]]},{"id":"a8168d5b.f3523","type":"delete","name":"delete any pre-existing records in VIPR_CONFIGURATION","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1186.5952911376953,"y":5790.904365479946,"z":"656aafb.8a6395","wires":[["5588e4f4.192e3c"]]},{"id":"ed63435e.aa384","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":873.8334350585938,"y":4188.190615653992,"z":"656aafb.8a6395","wires":[["bc498ebb.62e89","78341ff5.2c4ba"]]},{"id":"abbcc2f3.09db4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":874.8333511352539,"y":4254.85690587759,"z":"656aafb.8a6395","wires":[["93ef82f6.77bf8","78341ff5.2c4ba"]]},{"id":"9626c0d4.cffb4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1719.166603088379,"y":4982.190624237061,"z":"656aafb.8a6395","wires":[["a5942506.20edd8","b9195698.e1ca38"]]},{"id":"d7b5caa2.dbe748","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1714.166603088379,"y":5035.190466880798,"z":"656aafb.8a6395","wires":[["2c0c296.d55dad6","b9195698.e1ca38"]]},{"id":"dd018545.07e8e8","type":"execute","name":"execute RestApiCallNode - get preload-list","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value=\"`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`\" />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-preload\" />\n\n","comments":"","outputs":1,"x":601.6666946411133,"y":2737.024694442749,"z":"656aafb.8a6395","wires":[["38fd8c9e.bc06d4","31fd432b.0f5fac"]]},{"id":"38fd8c9e.bc06d4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":865.0000101725259,"y":2700.3579107920323,"z":"656aafb.8a6395","wires":[["4a068e1a.966a4"]]},{"id":"31fd432b.0f5fac","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":868.3332977294922,"y":2775.3579063415527,"z":"656aafb.8a6395","wires":[["f560d3ad.ba84f"]]},{"id":"4a068e1a.966a4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1026.6666984558105,"y":2698.691195487976,"z":"656aafb.8a6395","wires":[["2f57bab0.882396"]]},{"id":"f560d3ad.ba84f","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1023.3333053588867,"y":2775.357748031616,"z":"656aafb.8a6395","wires":[["c91133f9.d9e49"]]},{"id":"2f57bab0.882396","type":"switchNode","name":"switch mdsal-preload.response-code","xml":"<switch test='`$mdsal-preload.response-code`'>\n","comments":"","outputs":1,"x":1255,"y":2698.6912364959717,"z":"656aafb.8a6395","wires":[["29f6cde1.82aa82","c5e747b2.1f3448"]]},{"id":"29f6cde1.82aa82","type":"outcome","name":"404 (not found)","xml":"<outcome value='404'>\n","comments":"","outputs":1,"x":1506.6667366027832,"y":2662.024610519409,"z":"656aafb.8a6395","wires":[["57da7d13.9d23e4"]]},{"id":"57da7d13.9d23e4","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-assign-no-preload","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-no-preload' mode='sync' >\n","comments":"","outputs":1,"x":1903.3332061767578,"y":2660.357738494873,"z":"656aafb.8a6395","wires":[["176979e3.8dfcd6"]]},{"id":"176979e3.8dfcd6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2273.333354949951,"y":2658.6912746429443,"z":"656aafb.8a6395","wires":[["21d1dcd4.4f6544"]]},{"id":"21d1dcd4.4f6544","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":2429.9999465942383,"y":2657.0245685577393,"z":"656aafb.8a6395","wires":[]},{"id":"c5e747b2.1f3448","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1481.6667747497559,"y":2718.691237449646,"z":"656aafb.8a6395","wires":[["95f3102e.43dbf"]]},{"id":"95f3102e.43dbf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving preload-information\" />\n","comments":"","x":1646.6665840148926,"y":2717.0244903564453,"z":"656aafb.8a6395","wires":[]},{"id":"c91133f9.d9e49","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-assign-preload","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-preload' mode='sync' >\n","comments":"","outputs":1,"x":1386.6665954589844,"y":2777.024496078491,"z":"656aafb.8a6395","wires":[["91af88ba.737b58"]]},{"id":"91af88ba.737b58","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1742.3334579467773,"y":2775.3581142425537,"z":"656aafb.8a6395","wires":[["76f92896.248a58"]]},{"id":"76f92896.248a58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1897.333381652832,"y":2775.3581943511963,"z":"656aafb.8a6395","wires":[]},{"id":"2895f74a.780eb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":714.6668090820312,"y":4827.024694442749,"z":"656aafb.8a6395","wires":[["c51b1efc.3f796","df1e2be4.7bff88"]]},{"id":"df1e2be4.7bff88","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":901.3335113525391,"y":4483.691401481628,"z":"656aafb.8a6395","wires":[["36bfaf08.699ea"]]},{"id":"93dc27d7.d2e7f8","type":"save","name":"save vnfc to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vnfc\" \n\tkey=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\" >\n<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`\" />\n<parameter name=\"nfc-naming-code\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`\" />\n<parameter name=\"nfc-function\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function`\" />\n<parameter name=\"model-invariant-id\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid`\" />\n<parameter name=\"orchestration-status\" value=\"`PendingCreate`\" />\n<parameter name=\"prov-status\" value=\"`PREPROV`\" />\n","comments":"","outputs":1,"x":1264.6667137145996,"y":4310.691418647766,"z":"656aafb.8a6395","wires":[["d084a25f.130fa","f5b7c328.fea4e"]]},{"id":"36bfaf08.699ea","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1069.6668128967285,"y":4484.358228683472,"z":"656aafb.8a6395","wires":[["93dc27d7.d2e7f8","716e53c6.f8971c","5e637da9.e8c6f4","397a51e2.a9811e"]]},{"id":"d084a25f.130fa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1453.6666946411133,"y":4286.358032166958,"z":"656aafb.8a6395","wires":[["9256f0a5.e0827"]]},{"id":"8809f864.0b9208","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error saving vnfc to AAI\" />\n","comments":"","x":1794.6669082641602,"y":4322.167888045311,"z":"656aafb.8a6395","wires":[]},{"id":"9256f0a5.e0827","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1620.8334426879883,"y":4302.152465760708,"z":"656aafb.8a6395","wires":[["8809f864.0b9208","6dd31c8a.306554"]]},{"id":"397a51e2.a9811e","type":"save","name":"save vnfc relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc:relationship-list\"\n   key=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"generic-vnf\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/generic-vnfs/generic-vnf/' +\n        $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"vf-module\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/generic-vnfs/generic-vnf/' +\n        $vf-module-topology-operation-input.vnf-information.vnf-id +\n        '/vf-modules/vf-module/' +\n        $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","outputs":1,"x":1276.3333778381348,"y":4408.691504478455,"z":"656aafb.8a6395","wires":[["b73184ef.8eab58","47b09b6b.b72904"]]},{"id":"43675438.e22aec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vnfc relationships in AAI\" />\n","comments":"","x":1786.3333129882812,"y":4400.358340263367,"z":"656aafb.8a6395","wires":[]},{"id":"ea558d44.ab434","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error updating vnfc relationships\" />\n","comments":"","x":1781.5002212524414,"y":4452.0095472335815,"z":"656aafb.8a6395","wires":[]},{"id":"1450e757.7e8919","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1608.1665687561035,"y":4382.009128570557,"z":"656aafb.8a6395","wires":[["43675438.e22aec","6dd31c8a.306554"]]},{"id":"43b26d4f.2168a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1608.1666450500488,"y":4435.008887290955,"z":"656aafb.8a6395","wires":[["ea558d44.ab434","6dd31c8a.306554"]]},{"id":"b73184ef.8eab58","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1451.33345413208,"y":4382.0247983932495,"z":"656aafb.8a6395","wires":[["1450e757.7e8919"]]},{"id":"47b09b6b.b72904","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1459.904987335205,"y":4434.643942832947,"z":"656aafb.8a6395","wires":[["43b26d4f.2168a4"]]},{"id":"716e53c6.f8971c","type":"for","name":"for each vnfc-network-role","xml":"<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`' >\n","comments":"","outputs":1,"x":1283.0000038146973,"y":4670.357853889465,"z":"656aafb.8a6395","wires":[["5174a4c6.f867ec"]]},{"id":"74133334.aced1c","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":532.6667251586914,"y":3303.024682998657,"z":"656aafb.8a6395","wires":[["4fef35f2.d4b31c"]]},{"id":"da513051.0c80f","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":909.3334655761719,"y":3006.6916103363037,"z":"656aafb.8a6395","wires":[["39475bd5.415024"]]},{"id":"39475bd5.415024","type":"for","name":"for each vnfc-network-role","xml":"<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`' >\n","comments":"","outputs":1,"x":1122.1667785644531,"y":3006.5246181488037,"z":"656aafb.8a6395","wires":[["39bd0525.e9673a"]]},{"id":"39bd0525.e9673a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1315.5003280639648,"y":3005.8581142425537,"z":"656aafb.8a6395","wires":[["211a45be.e73e6a","3d73ced8.240982","9348f910.7316b8","dc00b3e.1e7765","1a36dc6b.f54da4","66e2bf1b.b4a97"]]},{"id":"211a45be.e73e6a","type":"set","name":"set found-network-role to false","xml":"<set>\n<parameter name='found-network-role' value='false' />\n","comments":"","x":1549.1669311523438,"y":2909.191512107849,"z":"656aafb.8a6395","wires":[]},{"id":"3d73ced8.240982","type":"for","name":"for each vnf-network","xml":"<for index='vnf-network-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":1517.5001831054688,"y":2957.5246047973633,"z":"656aafb.8a6395","wires":[["c4db9112.14214"]]},{"id":"9348f910.7316b8","type":"set","name":"set tmp.network-role","xml":"<set>\n<parameter name='tmp.network-role' 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-network-role`' />\n","comments":"","x":1520.8335189819336,"y":2862.5247631073,"z":"656aafb.8a6395","wires":[]},{"id":"c4db9112.14214","type":"switchNode","name":"network-roles match?","xml":"<switch test='`$tmp.network-role\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\n","comments":"","outputs":1,"x":1730.8334426879883,"y":2955.857936859131,"z":"656aafb.8a6395","wires":[["43a60930.0fb2c8"]]},{"id":"43a60930.0fb2c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1910.8336563110352,"y":2954.1915950775146,"z":"656aafb.8a6395","wires":[["a2149f57.02558"]]},{"id":"a2149f57.02558","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2040.8334197998047,"y":2954.1913528442383,"z":"656aafb.8a6395","wires":[["8953ca67.9978f8","7d1c2cc.f6fa6d4"]]},{"id":"8953ca67.9978f8","type":"set","name":"set found-network-role to true","xml":"<set>\n<parameter name='found-network-role' value='true' />\n","comments":"","x":2237.500255584717,"y":2922.5246028900146,"z":"656aafb.8a6395","wires":[]},{"id":"7d1c2cc.f6fa6d4","type":"break","name":"break","xml":"<break>\n","comments":"","x":2167.500171661377,"y":2972.524850845337,"z":"656aafb.8a6395","wires":[]},{"id":"dc00b3e.1e7765","type":"switchNode","name":"switch found-network-role","xml":"<switch test='`$found-network-role`'>\n","comments":"","outputs":1,"x":1532.5001792907715,"y":3005.857961654663,"z":"656aafb.8a6395","wires":[["9701b094.853bb"]]},{"id":"9701b094.853bb","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1722.5002365112305,"y":3005.858205795288,"z":"656aafb.8a6395","wires":[["1a02e5e2.37764a"]]},{"id":"ffec08a5.88c838","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Cannot find VNF network role ' + $tmp.network-role`\" />\n","comments":"","x":2032.500099182129,"y":3004.5251054763794,"z":"656aafb.8a6395","wires":[]},{"id":"6787e7f7.3e3718","type":"comment","name":"Loop through and determine network and subnet ids, and store them in context memory","info":"","comments":"","x":984.1667251586914,"y":2901.191452026367,"z":"656aafb.8a6395","wires":[]},{"id":"1a36dc6b.f54da4","type":"set","name":"store network-id","xml":"<set>\n<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].network-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\n","comments":"","x":1500.8334312438965,"y":3052.857961654663,"z":"656aafb.8a6395","wires":[]},{"id":"66e2bf1b.b4a97","type":"for","name":"for each vnfc-subnet-role","xml":"<for index='subnet-role-index' start='0'\n  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`' >\n","comments":"","outputs":1,"x":1525.833366394043,"y":3206.1914081573486,"z":"656aafb.8a6395","wires":[["4b5ec7f4.4e5d08"]]},{"id":"4b5ec7f4.4e5d08","type":"for","name":"for each vnfc-address-family","xml":"<for index='address-family-index' start='0'\n  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`' >\n","comments":"","outputs":1,"x":1770.8333587646484,"y":3206.1912994384766,"z":"656aafb.8a6395","wires":[["7266ee36.9fc2e"]]},{"id":"89d10c7.03b9cf","type":"set","name":"set found-subnet to false","xml":"<set>\n<parameter name='found-subnet' value='false' />\n","comments":"","x":2190.833366394043,"y":3152.8580465316772,"z":"656aafb.8a6395","wires":[]},{"id":"3b7448f8.d9ff38","type":"for","name":"for each vnf address family","xml":"<for silentFailure='true' index='vnf-address-family-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":2195.833251953125,"y":3199.524227142334,"z":"656aafb.8a6395","wires":[["fec50717.207ed8"]]},{"id":"b1a77703.c09158","type":"set","name":"set tmp.address-family and tmp.subnet-role","xml":"<set>\n<parameter name='tmp.address-family'\n  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`' />\n<parameter name='tmp.subnet-role'\n  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-subnet-role`' />\n","comments":"","x":2247.4999923706055,"y":3106.1912155151367,"z":"656aafb.8a6395","wires":[]},{"id":"fec50717.207ed8","type":"switchNode","name":"address-families match?","xml":"<switch test='`$tmp.address-family\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\n","comments":"","outputs":1,"x":2442.499931335449,"y":3197.857805252075,"z":"656aafb.8a6395","wires":[["d38a96f4.39fe88"]]},{"id":"d38a96f4.39fe88","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2622.499897003174,"y":3197.858211517334,"z":"656aafb.8a6395","wires":[["cca1b8aa.7bfbf8"]]},{"id":"ee552abf.ebd808","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3089.1663818359375,"y":3194.5246362686157,"z":"656aafb.8a6395","wires":[["fb5002c1.eb703","7ece3f26.2fecd"]]},{"id":"fb5002c1.eb703","type":"set","name":"set found-subnet to true","xml":"<set>\n<parameter name='found-subnet' value='true' />\n","comments":"","x":3269.166664123535,"y":3164.524552345276,"z":"656aafb.8a6395","wires":[]},{"id":"7ece3f26.2fecd","type":"break","name":"break","xml":"<break>\n","comments":"","x":3215.8331336975098,"y":3212.8581342697144,"z":"656aafb.8a6395","wires":[]},{"id":"293030b5.eb0f5","type":"switchNode","name":"switch found-subnet","xml":"<switch test='`$found-subnet`'>\n","comments":"","outputs":1,"x":2172.499954223633,"y":3244.5243101119995,"z":"656aafb.8a6395","wires":[["6c505583.2996fc"]]},{"id":"6c505583.2996fc","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2350.833293914795,"y":3244.5245542526245,"z":"656aafb.8a6395","wires":[["35168b08.f767a4"]]},{"id":"a7c172c7.b1211","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Cannot find VNF address family '\n      + $tmp.address-family\n      + ' for subnet role '\n      + $tmp.subnet-role`\" />\n","comments":"","x":2667.499782562256,"y":3241.524631500244,"z":"656aafb.8a6395","wires":[]},{"id":"d0c8a716.7b7cf8","type":"set","name":"store subnet-id (from sdnc-subnet-id)","xml":"<set>\n<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].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\n","comments":"","x":2220.833122253418,"y":3289.8576459884644,"z":"656aafb.8a6395","wires":[]},{"id":"bf94cb16.e2d428","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vfmoduleb.log' />\n","comments":"","outputs":1,"x":523.3333129882812,"y":3966.071620941162,"z":"656aafb.8a6395","wires":[[]]},{"id":"5174a4c6.f867ec","type":"for","name":"for each vnfc-subnetwork-role","xml":"<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`' >\n","comments":"","outputs":1,"x":1541.6667671203613,"y":4669.691248893738,"z":"656aafb.8a6395","wires":[["2c378b11.4bddb4"]]},{"id":"2c378b11.4bddb4","type":"for","name":"for each vnfc-address-family","xml":"<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`' >\n","comments":"","outputs":1,"x":1805.6667518615723,"y":4668.691336631775,"z":"656aafb.8a6395","wires":[["12b644ea.1cc82b"]]},{"id":"bcbaadbf.dbba4","type":"for","name":"for each vnfc-ip-address","xml":"<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`' >\n","comments":"","outputs":1,"x":2219.333179473877,"y":4730.357754707336,"z":"656aafb.8a6395","wires":[["76052f92.1b8d1"]]},{"id":"12b644ea.1cc82b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2018.3333778381348,"y":4668.691336631775,"z":"656aafb.8a6395","wires":[["84e0a123.150f7","bcbaadbf.dbba4"]]},{"id":"84e0a123.150f7","type":"set","name":"set tmp.address-family","xml":"<set>\n<parameter name='tmp.address-family'\n  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`' />\n","comments":"","x":2218.333667755127,"y":4583.691409111023,"z":"656aafb.8a6395","wires":[]},{"id":"76052f92.1b8d1","type":"switchNode","name":"switch address family","xml":"<switch test='`$tmp.address-family`'>\n","comments":"","outputs":1,"x":2458.3332710266113,"y":4728.691576957703,"z":"656aafb.8a6395","wires":[["98314889.e73bb8","42639bc.b7f5764"]]},{"id":"98314889.e73bb8","type":"outcome","name":"ipv4","xml":"<outcome value='ipv4'>\n","comments":"","outputs":1,"x":2655.476276397705,"y":4632.262837409973,"z":"656aafb.8a6395","wires":[["39883e35.d1bea2"]]},{"id":"42639bc.b7f5764","type":"outcome","name":"ipv6","xml":"<outcome value='ipv6'>\n","comments":"","outputs":1,"x":2653.0953483581543,"y":4812.024868965149,"z":"656aafb.8a6395","wires":[["bfd7e037.4b715"]]},{"id":"d15e1933.103cb8","type":"comment","name":"Fixed IPs","info":"","comments":"","x":1390.0001665751133,"y":4610.35808467865,"z":"656aafb.8a6395","wires":[]},{"id":"265ee3cd.79724c","type":"save","name":"save l3-interface-ipv4-address-list object to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-interface-ipv4-address-list\" \n\tkey=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\n\t  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\" >\n<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`\" />\n<parameter name=\"l3-interface-ipv4-prefix-length\" value=\"32\" />\n<parameter name=\"is-floating\" value=\"false\" />\n","comments":"","outputs":1,"x":3098.8094062805176,"y":4580.595917383831,"z":"656aafb.8a6395","wires":[["d3e44cdf.4ddf"]]},{"id":"39883e35.d1bea2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2805.476276397705,"y":4632.262756029766,"z":"656aafb.8a6395","wires":[["265ee3cd.79724c","c6039477.bd3778"]]},{"id":"28b581c.b31507e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error creating l3-interface-ipv4-address-list object in AAI\" />\n","comments":"","x":3682.142925262451,"y":4598.929576555889,"z":"656aafb.8a6395","wires":[]},{"id":"45328b00.36e7d4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3512.309280395508,"y":4580.580409685772,"z":"656aafb.8a6395","wires":[["28b581c.b31507e","a3fa30dc.ae097"]]},{"id":"d3e44cdf.4ddf","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3355.4761657714844,"y":4580.596079508465,"z":"656aafb.8a6395","wires":[["45328b00.36e7d4"]]},{"id":"c6039477.bd3778","type":"save","name":"save l3-interface-ipv4-address-list relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l3-interface-ipv4-address-list:relationship-list\"\n   key=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\n\t  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\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/' +\n        $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`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"subnet\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/' +\n        $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 +\n        '/subnets/subnet/' +\n        $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`\" />\n","comments":"","outputs":1,"x":3093.8096504211426,"y":4678.929336229961,"z":"656aafb.8a6395","wires":[["3cecedfa.c612b2","93e79eb8.b37ea"]]},{"id":"6212c320.740dac","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating l3-interface-ipv4-address-list relationships in AAI\" />\n","comments":"","x":3680.47603225708,"y":4670.596007982891,"z":"656aafb.8a6395","wires":[]},{"id":"8bf9ee91.86e21","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error updating l3-interface-ipv4-address-list relationships\" />\n","comments":"","x":3680.642894744873,"y":4720.580465952557,"z":"656aafb.8a6395","wires":[]},{"id":"34a6760c.cb568a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3513.975902557373,"y":4650.580381075542,"z":"656aafb.8a6395","wires":[["6212c320.740dac","a3fa30dc.ae097"]]},{"id":"6650bc97.17d3c4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3513.9759788513184,"y":4703.58013979594,"z":"656aafb.8a6395","wires":[["8bf9ee91.86e21","a3fa30dc.ae097"]]},{"id":"3cecedfa.c612b2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3357.1427879333496,"y":4650.596050898235,"z":"656aafb.8a6395","wires":[["34a6760c.cb568a"]]},{"id":"93e79eb8.b37ea","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3365.7143211364746,"y":4703.2151953379325,"z":"656aafb.8a6395","wires":[["6650bc97.17d3c4"]]},{"id":"bc227347.5fb69","type":"save","name":"save l3-interface-ipv6-address-list object to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-interface-ipv6-address-list\" \n\tkey=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\n\t  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\" >\n<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`\" />\n<parameter name=\"l3-interface-ipv6-prefix-length\" value=\"128\" />\n<parameter name=\"is-floating\" value=\"false\" />\n","comments":"","outputs":1,"x":3097.6191444396973,"y":4759.643973350525,"z":"656aafb.8a6395","wires":[["1fb322aa.72fa5d"]]},{"id":"bfd7e037.4b715","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2804.2860145568848,"y":4811.31081199646,"z":"656aafb.8a6395","wires":[["bc227347.5fb69","f572b571.7d6058"]]},{"id":"1839ffe6.a2c79","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error creating l3-interface-ipv6-address-list object in AAI\" />\n","comments":"","x":3680.952663421631,"y":4777.977632522583,"z":"656aafb.8a6395","wires":[]},{"id":"ee8a14f4.c59418","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3511.1190185546875,"y":4759.628465652466,"z":"656aafb.8a6395","wires":[["1839ffe6.a2c79","a3fa30dc.ae097"]]},{"id":"1fb322aa.72fa5d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3354.285903930664,"y":4759.644135475159,"z":"656aafb.8a6395","wires":[["ee8a14f4.c59418"]]},{"id":"f572b571.7d6058","type":"save","name":"save l3-interface-ipv6-address-list relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"l3-interface-ipv6-address-list:relationship-list\"\n   key=\"vnfc.vnfc-name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\n\t  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\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/' +\n        $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`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"subnet\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/' +\n        $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 +\n        '/subnets/subnet/' +\n        $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`\" />\n","comments":"","outputs":1,"x":3092.6193885803223,"y":4857.977392196655,"z":"656aafb.8a6395","wires":[["383116c9.6e3b7a","7fb50e74.bb6da"]]},{"id":"2666fdb.a988302","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating l3-interface-ipv6-address-list relationships in AAI\" />\n","comments":"","x":3679.2857704162598,"y":4849.644063949585,"z":"656aafb.8a6395","wires":[]},{"id":"4c4c7b91.8f9554","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error updating l3-interface-ipv6-address-list relationships\" />\n","comments":"","x":3679.4526329040527,"y":4899.6285219192505,"z":"656aafb.8a6395","wires":[]},{"id":"724dddd1.2bc264","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3512.7856407165527,"y":4829.628437042236,"z":"656aafb.8a6395","wires":[["2666fdb.a988302","a3fa30dc.ae097"]]},{"id":"12599dec.9c3eb2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3512.785717010498,"y":4882.628195762634,"z":"656aafb.8a6395","wires":[["4c4c7b91.8f9554","a3fa30dc.ae097"]]},{"id":"383116c9.6e3b7a","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3355.9525260925293,"y":4829.644106864929,"z":"656aafb.8a6395","wires":[["724dddd1.2bc264"]]},{"id":"7fb50e74.bb6da","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3364.5240592956543,"y":4882.2632513046265,"z":"656aafb.8a6395","wires":[["12599dec.9c3eb2"]]},{"id":"4fef35f2.d4b31c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":734.0000610351562,"y":3301.691195487976,"z":"656aafb.8a6395","wires":[["da513051.0c80f","a8f24b00.6e6ea8"]]},{"id":"19879c24.7f2f24","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1097.3333129882812,"y":5195.024434804916,"z":"656aafb.8a6395","wires":[["f58bd68b.96d2d8","35075c06.3ff5b4","1beb085d.4f4938","a9d5066.8dca3f8"]]},{"id":"b881adbd.34b62","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":1743.6668319702148,"y":5280.691266775131,"z":"656aafb.8a6395","wires":[["50e1c37e.6412bc"]]},{"id":"abdac62e.d1e218","type":"save","name":"save vip-ipv4-address-list object to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vip-ipv4-address-list\" \n\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]\" >\n<parameter name=\"vip-ipv4-address\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]`\" />\n<parameter name=\"vip-ipv4-prefix-length\" value=\"32\" />\n<parameter name=\"is-floating\" value=\"false\" />\n","comments":"","outputs":1,"x":1828.3333435058594,"y":5148.691194295883,"z":"656aafb.8a6395","wires":[["e508c954.f3e1a8","77e92049.e845e"]]},{"id":"1beb085d.4f4938","type":"for","name":"for each floating ipv4 address","xml":"<for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\n","comments":"","outputs":1,"x":1336.3333358764648,"y":5206.691266775131,"z":"656aafb.8a6395","wires":[["84ebc3a1.1bd9a"]]},{"id":"84ebc3a1.1bd9a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1562.3333358764648,"y":5204.691266775131,"z":"656aafb.8a6395","wires":[["abdac62e.d1e218","e39d949a.8de478","b881adbd.34b62"]]},{"id":"6fb5a1ed.fdbd3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error saving vip-ipv4-address-list in AAI\" />\n","comments":"","x":2390.3333435058594,"y":5138.691194295883,"z":"656aafb.8a6395","wires":[]},{"id":"146ffdae.698b32","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error saving vip-ipv4-address-list\" />\n","comments":"","x":2390.5002059936523,"y":5188.675652265549,"z":"656aafb.8a6395","wires":[]},{"id":"5b85e928.efe4b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2223.8332138061523,"y":5118.675567388535,"z":"656aafb.8a6395","wires":[["6fb5a1ed.fdbd3","15f1245b.88e65c"]]},{"id":"92d5910a.67fa2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2223.8332901000977,"y":5171.6753261089325,"z":"656aafb.8a6395","wires":[["146ffdae.698b32","15f1245b.88e65c"]]},{"id":"e508c954.f3e1a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2067.000099182129,"y":5118.691237211227,"z":"656aafb.8a6395","wires":[["5b85e928.efe4b8"]]},{"id":"77e92049.e845e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2075.571632385254,"y":5171.310381650925,"z":"656aafb.8a6395","wires":[["92d5910a.67fa2"]]},{"id":"50e1c37e.6412bc","type":"save","name":"save vip-ipv4-address-list relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vip-ipv4-address-list:relationship-list\"\n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"subnet\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\n        + '/subnets/subnet/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"vnfc\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/vnfcs/vnfc/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`\" />\n","comments":"","outputs":1,"x":1990.666618347168,"y":5279.691755056381,"z":"656aafb.8a6395","wires":[["de4986c8.89d8c8","144fc410.ec0dac"]]},{"id":"49dd0458.91528c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vip-ipv4-address-list relationships in AAI\" />\n","comments":"","x":2560.3330268859863,"y":5271.691724598408,"z":"656aafb.8a6395","wires":[]},{"id":"d62e9338.a68f3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error updating vip-ipv4-address-list relationships\" />\n","comments":"","x":2560.4998893737793,"y":5321.676182568073,"z":"656aafb.8a6395","wires":[]},{"id":"6b0665c4.4b3d9c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2393.8328971862793,"y":5251.676097691059,"z":"656aafb.8a6395","wires":[["49dd0458.91528c","15f1245b.88e65c"]]},{"id":"c2b853df.f2b9a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2393.8329734802246,"y":5304.675856411457,"z":"656aafb.8a6395","wires":[["d62e9338.a68f3","15f1245b.88e65c"]]},{"id":"de4986c8.89d8c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2236.999782562256,"y":5251.691767513752,"z":"656aafb.8a6395","wires":[["6b0665c4.4b3d9c"]]},{"id":"144fc410.ec0dac","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2245.571315765381,"y":5304.310911953449,"z":"656aafb.8a6395","wires":[["c2b853df.f2b9a"]]},{"id":"cdcc9317.be9ce","type":"save","name":"save vip-ipv6-address-list object to A&AI","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"vip-ipv6-address-list\" \n\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]\" >\n<parameter name=\"vip-ipv6-address\" value=\"`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]`\" />\n<parameter name=\"vip-ipv6-prefix-length\" value=\"128\" />\n<parameter name=\"is-floating\" value=\"false\" />\n","comments":"","outputs":1,"x":1828.3333358764648,"y":5382.024274587631,"z":"656aafb.8a6395","wires":[["230dacf3.4a16a4","54ad1405.aa30cc"]]},{"id":"a9d5066.8dca3f8","type":"for","name":"for each floating ipv6 address","xml":"<for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\n","comments":"","outputs":1,"x":1336.3333282470703,"y":5440.024347066879,"z":"656aafb.8a6395","wires":[["5199f1df.36f62"]]},{"id":"5199f1df.36f62","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1562.3333282470703,"y":5438.024347066879,"z":"656aafb.8a6395","wires":[["cdcc9317.be9ce","26b0e418.f619fc","a070538.5dbd6b"]]},{"id":"3318552.b80aeaa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error saving vip-ipv6-address-list in AAI\" />\n","comments":"","x":2390.333335876465,"y":5372.024274587631,"z":"656aafb.8a6395","wires":[]},{"id":"1b255130.bd94cf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error saving vip-ipv6-address-list\" />\n","comments":"","x":2390.500198364258,"y":5422.008732557297,"z":"656aafb.8a6395","wires":[]},{"id":"3381b5ad.78767a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2223.833206176758,"y":5352.008647680283,"z":"656aafb.8a6395","wires":[["3318552.b80aeaa","15f1245b.88e65c"]]},{"id":"ce31be4d.d70b5","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2223.833282470703,"y":5405.0084064006805,"z":"656aafb.8a6395","wires":[["1b255130.bd94cf","15f1245b.88e65c"]]},{"id":"230dacf3.4a16a4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2067.0000915527344,"y":5352.0243175029755,"z":"656aafb.8a6395","wires":[["3381b5ad.78767a"]]},{"id":"54ad1405.aa30cc","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2075.5716247558594,"y":5404.643461942673,"z":"656aafb.8a6395","wires":[["ce31be4d.d70b5"]]},{"id":"793d4d94.714a34","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vip-ipv6-address-list relationships in AAI\" />\n","comments":"","x":2555.3332176208496,"y":5498.357821285725,"z":"656aafb.8a6395","wires":[]},{"id":"6a436f8e.78398","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Not-found error updating vip-ipv6-address-list relationships\" />\n","comments":"","x":2555.5000801086426,"y":5548.34227925539,"z":"656aafb.8a6395","wires":[]},{"id":"1c470c9d.ff22d3","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2388.8330879211426,"y":5478.342194378376,"z":"656aafb.8a6395","wires":[["793d4d94.714a34","15f1245b.88e65c"]]},{"id":"e202479d.1d6968","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2388.833164215088,"y":5531.341953098774,"z":"656aafb.8a6395","wires":[["6a436f8e.78398","15f1245b.88e65c"]]},{"id":"765444d8.0caaac","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2231.999973297119,"y":5478.357864201069,"z":"656aafb.8a6395","wires":[["1c470c9d.ff22d3"]]},{"id":"a0f773e5.64822","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2240.571506500244,"y":5530.977008640766,"z":"656aafb.8a6395","wires":[["e202479d.1d6968"]]},{"id":"a8f24b00.6e6ea8","type":"for","name":"for each vm-network","xml":"<for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\n","comments":"","outputs":1,"x":935.9999923706055,"y":3582.3578214645386,"z":"656aafb.8a6395","wires":[["8dd3a0d0.b72fe"]]},{"id":"8dd3a0d0.b72fe","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1121.3333129882812,"y":3582.357699394226,"z":"656aafb.8a6395","wires":[["1b999958.1d4637","db6bf02.1b7f81","9dee4850.38f7f8","5aefc0c6.72b57"]]},{"id":"1b999958.1d4637","type":"for","name":"for each vnf network","xml":"<for index='vnf-network-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":1311.9999313354492,"y":3413.6908388137817,"z":"656aafb.8a6395","wires":[["af319386.d8bea"]]},{"id":"db6bf02.1b7f81","type":"set","name":"set tmp.network-role","xml":"<set>\n<parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\n","comments":"","x":1313.6665649414062,"y":3372.024193763733,"z":"656aafb.8a6395","wires":[]},{"id":"af319386.d8bea","type":"switchNode","name":"network-roles match?","xml":"<switch test='`$tmp.network-role\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`'>\n","comments":"","outputs":1,"x":1525.3331909179688,"y":3412.0241708755493,"z":"656aafb.8a6395","wires":[["83fc8e4a.66111"]]},{"id":"83fc8e4a.66111","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1705.3334045410156,"y":3410.357829093933,"z":"656aafb.8a6395","wires":[["f89f6fb1.ce177"]]},{"id":"f89f6fb1.ce177","type":"break","name":"break","xml":"<break>\n","comments":"","x":1831.9999160766602,"y":3410.3576650619507,"z":"656aafb.8a6395","wires":[]},{"id":"535bda3e.da5a64","type":"set","name":"set found-address-family to false","xml":"<set>\n<parameter name='found-address-family' value='false' />\n","comments":"","x":1960.3329772949219,"y":3504.023684501648,"z":"656aafb.8a6395","wires":[]},{"id":"c35fd68c.b1f3f8","type":"for","name":"for each vnf address family","xml":"<for silentFailure='true' index='vnf-address-family-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":1943.6662292480469,"y":3550.6900272369385,"z":"656aafb.8a6395","wires":[["5f1beee8.dced4"]]},{"id":"9dad225a.a23d2","type":"set","name":"set tmp.address-family to ipv4","xml":"<set>\n<parameter name='tmp.address-family' value='ipv4' />\n","comments":"","x":1953.6664199829102,"y":3459.0239267349243,"z":"656aafb.8a6395","wires":[]},{"id":"5f1beee8.dced4","type":"switchNode","name":"address-families match?","xml":"<switch test='`$tmp.address-family\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\n","comments":"","outputs":1,"x":2190.332908630371,"y":3549.0236053466797,"z":"656aafb.8a6395","wires":[["81938e82.28d5b"]]},{"id":"81938e82.28d5b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2370.333122253418,"y":3547.3572635650635,"z":"656aafb.8a6395","wires":[["63835f8b.ef06d"]]},{"id":"63835f8b.ef06d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2500.3328857421875,"y":3547.357021331787,"z":"656aafb.8a6395","wires":[["1b769099.d3d3cf","6af0f6a6.18c998"]]},{"id":"1b769099.d3d3cf","type":"set","name":"set found-address-family to true","xml":"<set>\n<parameter name='found-address-family' value='true' />\n","comments":"","x":2708.66650390625,"y":3517.356855392456,"z":"656aafb.8a6395","wires":[]},{"id":"6af0f6a6.18c998","type":"break","name":"break","xml":"<break>\n","comments":"","x":2626.9996376037598,"y":3565.6905193328857,"z":"656aafb.8a6395","wires":[]},{"id":"f0c850c3.1ce61","type":"switchNode","name":"switch found-address-family","xml":"<switch test='`$found-address-family`'>\n","comments":"","outputs":1,"x":1943.6662826538086,"y":3599.02344417572,"z":"656aafb.8a6395","wires":[["ca5d557e.a14708"]]},{"id":"ca5d557e.a14708","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2128.666290283203,"y":3599.0236825942993,"z":"656aafb.8a6395","wires":[["69400aa4.fada84"]]},{"id":"86734b97.d60128","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Cannot find VNF address family '\n      + $tmp.address-family\n      + ' for network role '\n      + $tmp.network-role`\" />\n","comments":"","x":2431.9995460510254,"y":3597.690411567688,"z":"656aafb.8a6395","wires":[]},{"id":"299ccd1c.a70782","type":"set","name":"store ipv4-subnet-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\n","comments":"","x":1920.3330459594727,"y":3644.356943130493,"z":"656aafb.8a6395","wires":[]},{"id":"9dee4850.38f7f8","type":"switchNode","name":"switch floating-ip-v4_length > 0","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length &gt; 0`'>\n","comments":"","outputs":1,"x":1350.0001907348633,"y":3557.0246391296387,"z":"656aafb.8a6395","wires":[["7ae4ebf5.7539e4"]]},{"id":"7ae4ebf5.7539e4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1570.0000648498535,"y":3558.6911668777466,"z":"656aafb.8a6395","wires":[["159a0743.b26849"]]},{"id":"7266ee36.9fc2e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1979.9999618530273,"y":3205.3578701019287,"z":"656aafb.8a6395","wires":[["b1a77703.c09158","89d10c7.03b9cf","3b7448f8.d9ff38","293030b5.eb0f5","d0c8a716.7b7cf8"]]},{"id":"159a0743.b26849","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1719.9999618530273,"y":3557.0243740081787,"z":"656aafb.8a6395","wires":[["9dad225a.a23d2","299ccd1c.a70782","535bda3e.da5a64","c35fd68c.b1f3f8","f0c850c3.1ce61"]]},{"id":"561a591b.9b4f18","type":"set","name":"set found-address-family to false","xml":"<set>\n<parameter name='found-address-family' value='false' />\n","comments":"","x":1958.3333358764648,"y":3733.6911220550537,"z":"656aafb.8a6395","wires":[]},{"id":"5c5af123.1a7de","type":"for","name":"for each vnf address family","xml":"<for silentFailure='true' index='vnf-address-family-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\n","comments":"","outputs":1,"x":1941.6665878295898,"y":3780.3574647903442,"z":"656aafb.8a6395","wires":[["88be915b.ce341"]]},{"id":"1a268d2e.ae5ee3","type":"set","name":"set tmp.address-family to ipv6","xml":"<set>\n<parameter name='tmp.address-family' value='ipv6' />\n","comments":"","x":1951.6667785644531,"y":3688.69136428833,"z":"656aafb.8a6395","wires":[]},{"id":"88be915b.ce341","type":"switchNode","name":"address-families match?","xml":"<switch test='`$tmp.address-family\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\n","comments":"","outputs":1,"x":2188.333267211914,"y":3778.6910429000854,"z":"656aafb.8a6395","wires":[["10eb00c5.61646f"]]},{"id":"10eb00c5.61646f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2368.333480834961,"y":3777.0247011184692,"z":"656aafb.8a6395","wires":[["6480aa39.47ab24"]]},{"id":"6480aa39.47ab24","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2498.3332443237305,"y":3777.024458885193,"z":"656aafb.8a6395","wires":[["c8d1871.7e52978","b1b263f6.757c7"]]},{"id":"c8d1871.7e52978","type":"set","name":"set found-address-family to true","xml":"<set>\n<parameter name='found-address-family' value='true' />\n","comments":"","x":2706.666862487793,"y":3747.024292945862,"z":"656aafb.8a6395","wires":[]},{"id":"b1b263f6.757c7","type":"break","name":"break","xml":"<break>\n","comments":"","x":2624.9999961853027,"y":3795.3579568862915,"z":"656aafb.8a6395","wires":[]},{"id":"55422769.94a368","type":"switchNode","name":"switch found-address-family","xml":"<switch test='`$found-address-family`'>\n","comments":"","outputs":1,"x":1941.6666412353516,"y":3828.690881729126,"z":"656aafb.8a6395","wires":[["a368ce0f.2d2c9"]]},{"id":"a368ce0f.2d2c9","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2126.666648864746,"y":3828.691120147705,"z":"656aafb.8a6395","wires":[["bfa736d9.400938"]]},{"id":"a301e98.5098518","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Cannot find VNF address family '\n      + $tmp.address-family\n      + ' for network role '\n      + $tmp.network-role`\" />\n","comments":"","x":2444.999954223633,"y":3827.357901573181,"z":"656aafb.8a6395","wires":[]},{"id":"b8e23b5c.5e7058","type":"set","name":"store ipv6-subnet-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\n","comments":"","x":1918.3334045410156,"y":3874.024380683899,"z":"656aafb.8a6395","wires":[]},{"id":"5aefc0c6.72b57","type":"switchNode","name":"switch floating-ip-v6_length > 0","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length &gt; 0`'>\n","comments":"","outputs":1,"x":1348.000602722168,"y":3788.3587951660156,"z":"656aafb.8a6395","wires":[["18819685.2ef3c9"]]},{"id":"18819685.2ef3c9","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1568.0004234313965,"y":3788.3586044311523,"z":"656aafb.8a6395","wires":[["3f110736.222aa8"]]},{"id":"3f110736.222aa8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1718.0003204345703,"y":3786.6918115615845,"z":"656aafb.8a6395","wires":[["1a268d2e.ae5ee3","b8e23b5c.5e7058","561a591b.9b4f18","5c5af123.1a7de","55422769.94a368"]]},{"id":"cb68aeb2.207c1","type":"save","name":"save vip-ipv6-address-list relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vip-ipv6-address-list:relationship-list\"\n   key=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\n\t  AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\n\t  AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"subnet\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/l3-networks/l3-network/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id\n        + '/subnets/subnet/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id`\" />\n    <parameter name=\"relationship-list.relationship[1].related-to\" value=\"vnfc\" />\n    <parameter name=\"relationship-list.relationship[1].related-link\"\n      value=\"`'/aai/v$/network/vnfcs/vnfc/'\n        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`\" />\n","comments":"","outputs":1,"x":1987.6668167114258,"y":5507.0242831707,"z":"656aafb.8a6395","wires":[["765444d8.0caaac","a0f773e5.64822"]]},{"id":"78341ff5.2c4ba","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":1218.6667251586914,"y":4158.69089025259,"z":"656aafb.8a6395","wires":[[]]},{"id":"6dd31c8a.306554","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":1966.6666946411133,"y":4275.02439725399,"z":"656aafb.8a6395","wires":[[]]},{"id":"b9195698.e1ca38","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":2088.6667251586914,"y":4947.024355828762,"z":"656aafb.8a6395","wires":[[]]},{"id":"15f1245b.88e65c","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":3112.6667251586914,"y":5101.024355828762,"z":"656aafb.8a6395","wires":[[]]},{"id":"a3fa30dc.ae097","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":4078.6667251586914,"y":4507.024355828762,"z":"656aafb.8a6395","wires":[[]]},{"id":"5e637da9.e8c6f4","type":"set","name":"set created_flag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag' value='true' />\n","comments":"","x":1258.6667251586914,"y":4361.024355828762,"z":"656aafb.8a6395","wires":[]},{"id":"f58bd68b.96d2d8","type":"set","name":"set created-flag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag' value='true' />\n","comments":"","x":1292.6667251586914,"y":5079.024355828762,"z":"656aafb.8a6395","wires":[]},{"id":"e39d949a.8de478","type":"set","name":"set created-ipv4-flag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag' value='true' />\n","comments":"","x":1765.666690826416,"y":5207.024435698986,"z":"656aafb.8a6395","wires":[]},{"id":"26b0e418.f619fc","type":"set","name":"set created-ipv6-flag","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag' value='true' />\n","comments":"","x":1767.666690826416,"y":5443.024435698986,"z":"656aafb.8a6395","wires":[]},{"id":"f5b7c328.fea4e","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1458.6666946411133,"y":4336.024291932583,"z":"656aafb.8a6395","wires":[["9256f0a5.e0827"]]},{"id":"f2c3fa39.f42268","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-assign' mode='sync' >\n","comments":"","outputs":1,"x":685.6665420532227,"y":5704.357654511929,"z":"656aafb.8a6395","wires":[["71fbe8c7.acb798"]]},{"id":"71fbe8c7.acb798","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1029.99995803833,"y":5703.691149652004,"z":"656aafb.8a6395","wires":[["cdb7e69d.10a6f8"]]},{"id":"cdb7e69d.10a6f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1184.9998321533203,"y":5703.6909455657005,"z":"656aafb.8a6395","wires":[["32eeeb9b.d1bbb4","8d1d7626.5fce58","e19306eb.5c38b8"]]},{"id":"32eeeb9b.d1bbb4","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":1529.9997634887695,"y":5652.024806916714,"z":"656aafb.8a6395","wires":[[]]},{"id":"8d1d7626.5fce58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1356.6665573120117,"y":5747.024484574795,"z":"656aafb.8a6395","wires":[]},{"id":"723699b0.0c1668","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":2933.333297729492,"y":2838.6909141540527,"z":"656aafb.8a6395","wires":[[]]},{"id":"1a02e5e2.37764a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1869.9999389648438,"y":3005.357699394226,"z":"656aafb.8a6395","wires":[["ffec08a5.88c838","723699b0.0c1668"]]},{"id":"35168b08.f767a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2498.3331718444824,"y":3243.6911191940308,"z":"656aafb.8a6395","wires":[["a7c172c7.b1211","723699b0.0c1668"]]},{"id":"69400aa4.fada84","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2271.6666870117188,"y":3598.690951347351,"z":"656aafb.8a6395","wires":[["86734b97.d60128","723699b0.0c1668"]]},{"id":"bfa736d9.400938","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2274.9999389648438,"y":3828.690951347351,"z":"656aafb.8a6395","wires":[["a301e98.5098518","723699b0.0c1668"]]},{"id":"e19306eb.5c38b8","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vlantaggingfailure.log' />\n","comments":"","outputs":1,"x":1356.6664581298828,"y":5700.3574494719505,"z":"656aafb.8a6395","wires":[[]]},{"id":"65acec70.9c56c4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":220.8928680419922,"y":508.5714416503906,"z":"656aafb.8a6395","wires":[["c622ee1f.60898","6fb1dec4.0529f","62441125.66a0b","e2b3c75a.fbe358","488e702.2bac09","a941c95a.005118","680a67ac.f6fd08","c61bcc80.d7888"]]},{"id":"62f0c3ca.57e7dc","type":"switchNode","name":"switch: param[].name","xml":"<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$p].name`\">\n","comments":"","outputs":1,"x":1114.4643325805664,"y":862.6906051635742,"z":"656aafb.8a6395","wires":[["61bc2ca2.ad18a4","2b6eed19.318972"]]},{"id":"aa0fa7ab.8025e8","type":"for","name":"for p in vf-module-input-parameters.param[]","xml":"<for silentFailure='true' index='p' start='0' end='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":820.5714797973633,"y":863.190637588501,"z":"656aafb.8a6395","wires":[["62f0c3ca.57e7dc"]]},{"id":"150dc5a2.bf963a","type":"set","name":"set tmp.exist.vf_module_label = true","xml":"<set>\n<parameter name='tmp.exist.vf_module_label' value='true' />","comments":"","x":1656.3572616577148,"y":911.5477752685547,"z":"656aafb.8a6395","wires":[]},{"id":"a6cc427b.66186","type":"set","name":"set tmp.exist.sdnc-model-name = true","xml":"<set>\n<parameter name='tmp.exist.sdnc-model-name' value='true' />\n","comments":"","x":1659.0713691711426,"y":862.5477905273438,"z":"656aafb.8a6395","wires":[]},{"id":"680a67ac.f6fd08","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":499.8810043334961,"y":757.5001182556152,"z":"656aafb.8a6395","wires":[["aa0fa7ab.8025e8","aaa89921.844e38","49f206e1.beafa8"]]},{"id":"64580434.533b0c","type":"comment","name":"SELF-SERVE FORK","info":"","comments":"","x":484.1666946411133,"y":896.309648513794,"z":"656aafb.8a6395","wires":[]},{"id":"61bc2ca2.ad18a4","type":"outcome","name":"sdnc_model_name","xml":"<outcome value='sdnc_model_name'>\n","comments":"","outputs":1,"x":1370.6429083687917,"y":862.5953995840889,"z":"656aafb.8a6395","wires":[["a6cc427b.66186"]]},{"id":"2b6eed19.318972","type":"outcome","name":"vf_module_label","xml":"<outcome value='vf_module_label'>\n","comments":"","outputs":1,"x":1373.5000305175781,"y":912.0239715576172,"z":"656aafb.8a6395","wires":[["150dc5a2.bf963a"]]},{"id":"df5aea18.782d88","type":"switchNode","name":"switch from-preload","xml":"<switch test='`$from-preload`'>\n","comments":"","outputs":1,"x":543.5714416503906,"y":4080.8338327407837,"z":"656aafb.8a6395","wires":[["9e3a4c7.20f7cb","3eb1842b.07b66c"]]},{"id":"9e3a4c7.20f7cb","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":715.4761734008789,"y":4058.214853286743,"z":"656aafb.8a6395","wires":[["23f55617.a6809a"]]},{"id":"3eb1842b.07b66c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":717.1428260803223,"y":4103.214692115784,"z":"656aafb.8a6395","wires":[["44b086bf.0581a8"]]},{"id":"23f55617.a6809a","type":"set","name":"set automated-assignment to true","xml":"<set>\n<parameter name='automated-assignment' value='true' />\n","comments":"","x":930.4761581420898,"y":4056.5480241775513,"z":"656aafb.8a6395","wires":[]},{"id":"44b086bf.0581a8","type":"set","name":"set automated-assignment to false","xml":"<set>\n<parameter name='automated-assignment' value='false' />\n","comments":"","x":928.8094787597656,"y":4101.547944068909,"z":"656aafb.8a6395","wires":[]},{"id":"cca1b8aa.7bfbf8","type":"switchNode","name":"subnet-roles match?","xml":"<switch test='`$tmp.subnet-role\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].subnet-role`'>\n","comments":"","outputs":1,"x":2792.1427154541016,"y":3197.214653968811,"z":"656aafb.8a6395","wires":[["2548701.3a0df9"]]},{"id":"2548701.3a0df9","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2958.809356689453,"y":3195.8811960220337,"z":"656aafb.8a6395","wires":[["ee552abf.ebd808"]]},{"id":"dfd45ccd.c4422","type":"get-resource","name":"get VF_MODEL.sdnc_model_name","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT sdnc_model_name from VF_MODEL \n  \tWHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid \n  \tAND sdnc_model_name is not null'\n  pfx='db.vf-model-name'>\n\n","comments":"","outputs":1,"x":1287.5953979492188,"y":1306.6665954589844,"z":"656aafb.8a6395","wires":[["fd95d92.7e94c28","26b9ca0e.2c89c6","823653d0.65ac9"]]},{"id":"fd95d92.7e94c28","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1537.952522277832,"y":1217.0475358963013,"z":"656aafb.8a6395","wires":[["8fba96ee.8fee48"]]},{"id":"26b9ca0e.2c89c6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1543.6667709350586,"y":1404.190447807312,"z":"656aafb.8a6395","wires":[["349a24c6.0478dc"]]},{"id":"8fba96ee.8fee48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n","comments":"","x":1718.9525032043457,"y":1217.1904430389404,"z":"656aafb.8a6395","wires":[]},{"id":"89c4448.1656bb8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1039.440788269043,"y":1306.8568725585938,"z":"656aafb.8a6395","wires":[["dfd45ccd.c4422"]]},{"id":"5ca1b441.87f4cc","type":"call","name":"call self-serve-vf-module-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-assign' mode='sync' >\n","comments":"","outputs":1,"x":2360.6305236816406,"y":946.6550559997559,"z":"656aafb.8a6395","wires":[["f1df99cb.fe0ae8"]]},{"id":"e3880e9a.6b928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create self-serve assignment for vf-module with vf-module-id=' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`\" />\n","comments":"","x":2744.7019004821777,"y":946.6550064086914,"z":"656aafb.8a6395","wires":[]},{"id":"c61bcc80.d7888","type":"switchNode","name":"switch: tmp.exist.sdnc-model-name && tmp.exist.vf_module_label == true","xml":"<switch test=\"`$tmp.exist.sdnc-model-name == 'true' and $tmp.exist.vf_module_label == 'true'`\">\n","comments":"","outputs":1,"x":676.9404449462891,"y":1020.2619457244873,"z":"656aafb.8a6395","wires":[["89c4448.1656bb8","e054a7ea.0bc638"]]},{"id":"e054a7ea.0bc638","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1043.5478515625,"y":947.6190376281738,"z":"656aafb.8a6395","wires":[["3cc0bc38.f6e114"]]},{"id":"f1df99cb.fe0ae8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2580.9281044006348,"y":946.143087387085,"z":"656aafb.8a6395","wires":[["e3880e9a.6b928"]]},{"id":"621aeca7.9d6ba4","type":"get-resource","name":"get VF_MODULE_MODEL.vf-module-label","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT vf_module_label from VF_MODULE_MODEL \n  \tWHERE vf_customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\n  \tAND vf_module_label is not null '\n  pfx='db.vf-module-label'>\n\n","comments":"","outputs":1,"x":1815.8335647583008,"y":1306.9048557281494,"z":"656aafb.8a6395","wires":[["defe2da.a8aefd","184bb121.e6155f","4cfef7ff.e18338"]]},{"id":"defe2da.a8aefd","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2091.190788269043,"y":1306.9999866485596,"z":"656aafb.8a6395","wires":[["e88f142c.6a2668"]]},{"id":"184bb121.e6155f","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2101.7621459960938,"y":1354.7142524719238,"z":"656aafb.8a6395","wires":[["349a24c6.0478dc"]]},{"id":"e88f142c.6a2668","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n","comments":"","x":2265.333297729492,"y":1307.5714321136475,"z":"656aafb.8a6395","wires":[]},{"id":"349a24c6.0478dc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2275.167350769043,"y":1403.761962890625,"z":"656aafb.8a6395","wires":[["110bcecd.ba7661"]]},{"id":"4cfef7ff.e18338","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2095.5478591918945,"y":1257.9049110412598,"z":"656aafb.8a6395","wires":[["3cc0bc38.f6e114"]]},{"id":"823653d0.65ac9","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1541.6072845458984,"y":1306.666660308838,"z":"656aafb.8a6395","wires":[["621aeca7.9d6ba4"]]},{"id":"aaa89921.844e38","type":"set","name":"initialize tmp.exist.sdnc-model-name && tmp.exist.vf_module_label = false","xml":"<set>\n<parameter name='tmp.exist.sdnc-model-name' value='false' />\n<parameter name='tmp.exist.vf_module_label' value='false' />\n","comments":"","x":912.4643096923828,"y":757.7737798690796,"z":"656aafb.8a6395","wires":[]},{"id":"9d399f15.80c96","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":2307.499767303467,"y":1096.4999752044678,"z":"656aafb.8a6395","wires":[]},{"id":"e82c3ee8.852e5","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vnfend.log' />\n","comments":"","outputs":1,"x":2299.5473098754883,"y":1050.9915189743042,"z":"656aafb.8a6395","wires":[[]]},{"id":"c5cea72e.a0e218","type":"set","name":"set order-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":2370.2378273010254,"y":999.95241355896,"z":"656aafb.8a6395","wires":[]},{"id":"3cc0bc38.f6e114","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2081.3332557678223,"y":946.3332176208496,"z":"656aafb.8a6395","wires":[["5ca1b441.87f4cc","c5cea72e.a0e218","e82c3ee8.852e5","9d399f15.80c96"]]},{"id":"a070538.5dbd6b","type":"for","name":"for each vnfc","xml":"<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`' >\n","comments":"","outputs":1,"x":1743.0951919555664,"y":5508.571428060532,"z":"656aafb.8a6395","wires":[["cb68aeb2.207c1"]]},{"id":"49f206e1.beafa8","type":"switchNode","name":"switch: vf-module-input-parameters.param_length","xml":"<switch test=\"`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`\">\n","comments":"","outputs":1,"x":840.3214874267578,"y":806.2500638961792,"z":"656aafb.8a6395","wires":[["9757e46f.a990d8"]]},{"id":"9757e46f.a990d8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1103.8929061889648,"y":806.5358037948608,"z":"656aafb.8a6395","wires":[["4b5c3601.c8dfa8"]]},{"id":"4b5c3601.c8dfa8","type":"set","name":"set vf-module-input-parameters.param_length = 0","xml":"<set>\n<parameter name='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length' value='0' />\n","comments":"","x":1377.6071472167969,"y":806.3929653167725,"z":"656aafb.8a6395","wires":[]},{"id":"3fd43ef9.658b62","type":"switchNode","name":"switch vf-module-name","xml":"<switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\n","comments":"","outputs":1,"x":538.5714263916016,"y":1565.7143383026123,"z":"656aafb.8a6395","wires":[["281f6295.d9b7ee"]]},{"id":"281f6295.d9b7ee","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":764.5714263916016,"y":1565.7143211364746,"z":"656aafb.8a6395","wires":[["82f1413d.5dc9d"]]},{"id":"82f1413d.5dc9d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"vf-module-information.vf-module-request-input.vf-module-name is a required input\" />\n","comments":"","x":915.9999923706055,"y":1565.714319229126,"z":"656aafb.8a6395","wires":[]},{"id":"cb63cf1e.5203","type":"comment","name":"MOVED vf-module-name validation from validate-vf-module-input","info":"","comments":"","x":538.5713958740234,"y":1531.428554534912,"z":"656aafb.8a6395","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.json
new file mode 100755 (executable)
index 0000000..191d4d6
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"da992f0d.44b67","type":"dgstart","name":"DGSTART","outputs":1,"x":107.14286041259766,"y":82.41365623474121,"z":"2ba0710a.b44d9e","wires":[["29e9e0f0.ab074"]]},{"id":"29e9e0f0.ab074","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":220.4285659790039,"y":122.65176773071289,"z":"2ba0710a.b44d9e","wires":[["dd50fd26.cc415"]]},{"id":"dd50fd26.cc415","type":"method","name":"method vf-module-topology-operation-changeassign","xml":"<method rpc='vf-module-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":238.5714874267578,"y":162.4136562347412,"z":"2ba0710a.b44d9e","wires":[["79c3b148.07a3b"]]},{"id":"84faf9e0.06e608","type":"comment","name":"vf-module-topology-operation-changeassign","info":"","comments":"","x":501.4877166748047,"y":30,"z":"2ba0710a.b44d9e","wires":[]},{"id":"aa720c01.4c6e7","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":510.6666717529297,"y":261.2707939147949,"z":"2ba0710a.b44d9e","wires":[["3b4345f8.88f5da","9b9ac81b.174ef8"]]},{"id":"3b4345f8.88f5da","type":"outcome","name":"CreateVfModuleInstance","xml":"<outcome value='CreateVfModuleInstance'>\n","comments":"","outputs":1,"x":761.7142868041992,"y":238.41368007659912,"z":"2ba0710a.b44d9e","wires":[["ccd84558.5e15b8"]]},{"id":"9b9ac81b.174ef8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":705.380931854248,"y":283.79466915130615,"z":"2ba0710a.b44d9e","wires":[["a167f526.deb558"]]},{"id":"ccd84558.5e15b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":951.5714511871338,"y":238.41371154785156,"z":"2ba0710a.b44d9e","wires":[[]]},{"id":"a167f526.deb558","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'changeassign' then request-action must be 'CreateVfModuleInstance'\" />\n","comments":"","x":970.3809394836426,"y":284.12798166275024,"z":"2ba0710a.b44d9e","wires":[]},{"id":"79c3b148.07a3b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":168.80953979492188,"y":567.4135789871216,"z":"2ba0710a.b44d9e","wires":[["aa720c01.4c6e7","90150697.a2a2c8","ddad7416.ec53f8","7481a399.651aec","789b525a.90b4fc","1f5309e4.307236","330bb03c.c4cdb","1c2f9838.87e268","3b1e9078.a68f7","337b1a6d.584e26","314a3525.aeef7a"]]},{"id":"ddad7416.ec53f8","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":555.476188659668,"y":392.4136209487915,"z":"2ba0710a.b44d9e","wires":[["3fc75bd8.6f4574","1f664b90.09cc14"]]},{"id":"3fc75bd8.6f4574","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":796.1904602050781,"y":369.5563611984253,"z":"2ba0710a.b44d9e","wires":[["949ad32b.c8c7f"]]},{"id":"1f664b90.09cc14","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":795.9523010253906,"y":410.50887966156006,"z":"2ba0710a.b44d9e","wires":[["668a21d8.a0d4c"]]},{"id":"949ad32b.c8c7f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":962.8570747375488,"y":368.842116355896,"z":"2ba0710a.b44d9e","wires":[]},{"id":"668a21d8.a0d4c","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":958.1904449462891,"y":410.175498008728,"z":"2ba0710a.b44d9e","wires":[["14976276.b78b0e"]]},{"id":"14976276.b78b0e","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1209.5236625671387,"y":409.8421850204468,"z":"2ba0710a.b44d9e","wires":[["523c9343.8fbaac"]]},{"id":"523c9343.8fbaac","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1439.523754119873,"y":409.17553901672363,"z":"2ba0710a.b44d9e","wires":[["f5a35f00.3f44e"]]},{"id":"90150697.a2a2c8","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":499.52378845214844,"y":330.50879287719727,"z":"2ba0710a.b44d9e","wires":[]},{"id":"ac73b0ea.21603","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1761.1903915405273,"y":380.1754970550537,"z":"2ba0710a.b44d9e","wires":[]},{"id":"7481a399.651aec","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":491.1904716491699,"y":457.1754951477051,"z":"2ba0710a.b44d9e","wires":[["a2c7110a.b07f3"]]},{"id":"a2c7110a.b07f3","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":669.5238571166992,"y":456.5088710784912,"z":"2ba0710a.b44d9e","wires":[["14c1d831.ad77d8"]]},{"id":"14c1d831.ad77d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":829.5237655639648,"y":455.8421745300293,"z":"2ba0710a.b44d9e","wires":[]},{"id":"f5a35f00.3f44e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1587.8572158813477,"y":408.0952377319336,"z":"2ba0710a.b44d9e","wires":[["ac73b0ea.21603","27cfdd4f.df7ab2"]]},{"id":"27cfdd4f.df7ab2","type":"break","name":"break","xml":"<break>\n","comments":"","x":1722.8571815490723,"y":429.7618236541748,"z":"2ba0710a.b44d9e","wires":[]},{"id":"1f5309e4.307236","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":563.8095016479492,"y":555.746992111206,"z":"2ba0710a.b44d9e","wires":[["80e850ee.91cd9","9214dd99.21076"]]},{"id":"80e850ee.91cd9","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":814.523811340332,"y":534.5563955307007,"z":"2ba0710a.b44d9e","wires":[["eec0405.a5d16c"]]},{"id":"9214dd99.21076","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":814.2856521606445,"y":575.5089139938354,"z":"2ba0710a.b44d9e","wires":[["f33c6312.8a8e1"]]},{"id":"eec0405.a5d16c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":981.1904258728027,"y":533.8421506881714,"z":"2ba0710a.b44d9e","wires":[]},{"id":"f33c6312.8a8e1","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":976.523796081543,"y":575.1755323410034,"z":"2ba0710a.b44d9e","wires":[["ff8c25ec.120d28"]]},{"id":"ff8c25ec.120d28","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1282.8569564819336,"y":574.8422679901123,"z":"2ba0710a.b44d9e","wires":[["6d5e6d3d.3851f4"]]},{"id":"6d5e6d3d.3851f4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1552.8570098876953,"y":572.5088729858398,"z":"2ba0710a.b44d9e","wires":[["7503373e.1a2f08"]]},{"id":"789b525a.90b4fc","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":519.5237731933594,"y":505.5088310241699,"z":"2ba0710a.b44d9e","wires":[]},{"id":"46be91f0.a8549","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1882.8571014404297,"y":543.5088520050049,"z":"2ba0710a.b44d9e","wires":[]},{"id":"330bb03c.c4cdb","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":516.1904754638672,"y":623.8422508239746,"z":"2ba0710a.b44d9e","wires":[["557bb4da.8e9aec"]]},{"id":"557bb4da.8e9aec","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":694.5238609313965,"y":623.1756267547607,"z":"2ba0710a.b44d9e","wires":[["6bf84696.1d93b8"]]},{"id":"6bf84696.1d93b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":854.5237693786621,"y":622.5089302062988,"z":"2ba0710a.b44d9e","wires":[]},{"id":"7503373e.1a2f08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1686.1905517578125,"y":571.4286127090454,"z":"2ba0710a.b44d9e","wires":[["46be91f0.a8549","b1e36853.28a4e8"]]},{"id":"b1e36853.28a4e8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1821.190517425537,"y":593.0951986312866,"z":"2ba0710a.b44d9e","wires":[]},{"id":"1c2f9838.87e268","type":"set","name":"set order-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\n  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\n","comments":"","x":525.4762001037598,"y":909.0803050994873,"z":"2ba0710a.b44d9e","wires":[]},{"id":"6832f202.dc2d6c","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":507.14281463623047,"y":714.7469882965088,"z":"2ba0710a.b44d9e","wires":[["758b5b66.face94","1f6160f.207619f"]]},{"id":"758b5b66.face94","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":679.1429100036621,"y":733.4613170623779,"z":"2ba0710a.b44d9e","wires":[["4fcc550b.db322c"]]},{"id":"4ebc5b7f.a7cbb4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":850.333366394043,"y":685.7470607757568,"z":"2ba0710a.b44d9e","wires":[[]]},{"id":"4fcc550b.db322c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status + ' instead of PendingDelete'`\" />\n","comments":"","x":864.8095664978027,"y":733.4613580703735,"z":"2ba0710a.b44d9e","wires":[]},{"id":"3b1e9078.a68f7","type":"set","name":"copy ONAP model information","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.onap-model-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.onap-model-information.' />\n\n","comments":"","x":537.142822265625,"y":862.4136772155762,"z":"2ba0710a.b44d9e","wires":[]},{"id":"337b1a6d.584e26","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":485.4761085510254,"y":957.4136009216309,"z":"2ba0710a.b44d9e","wires":[]},{"id":"1f6160f.207619f","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":703.8095397949219,"y":684.9999704360962,"z":"2ba0710a.b44d9e","wires":[["4ebc5b7f.a7cbb4"]]},{"id":"314a3525.aeef7a","type":"get-resource","name":"get-resource VF_MODULE_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-module-model'>\n\n","comments":"","outputs":1,"x":558.8095092773438,"y":795.7469310760498,"z":"2ba0710a.b44d9e","wires":[["decf8bc6.2dd9f8","aad15991.71cb48"]]},{"id":"ec18997a.e36f68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":1000.2379302978516,"y":820.1754035949707,"z":"2ba0710a.b44d9e","wires":[]},{"id":"decf8bc6.2dd9f8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":824.5951995849609,"y":776.1277618408203,"z":"2ba0710a.b44d9e","wires":[["3537c70d.082bb8"]]},{"id":"aad15991.71cb48","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":833.1666297912598,"y":820.4134750366211,"z":"2ba0710a.b44d9e","wires":[["ec18997a.e36f68"]]},{"id":"3537c70d.082bb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODULE_MODEL table\" />\n","comments":"","x":999.5951309204102,"y":775.2706623077393,"z":"2ba0710a.b44d9e","wires":[]},{"id":"f3e2ca2e.68db28","type":"comment","name":"check removed with US622450","info":"","comments":"","x":462.8571472167969,"y":675.7142944335938,"z":"2ba0710a.b44d9e","wires":[]}]
\ No newline at end of file
index 046856c..c69caaa 100644 (file)
@@ -1,682 +1 @@
-[
-    {
-        "id": "9308e75f.05f858",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 103.33332824707031,
-        "y": 78.33332824707031,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "878f150c.2e48d8"
-            ]
-        ]
-    },
-    {
-        "id": "878f150c.2e48d8",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 178.61903381347656,
-        "y": 118.57143974304199,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "a015909f.179d2"
-            ]
-        ]
-    },
-    {
-        "id": "a015909f.179d2",
-        "type": "method",
-        "name": "method vf-module-topology-operation-deactivate",
-        "xml": "<method rpc='vf-module-topology-operation-deactivate' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 228.42862701416016,
-        "y": 158.33332443237305,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "c7c25d58.df7b4"
-            ]
-        ]
-    },
-    {
-        "id": "b22c04d8.425a68",
-        "type": "comment",
-        "name": "vf-module-topology-operation-deactivate",
-        "info": "",
-        "comments": "",
-        "x": 497.67818450927734,
-        "y": 25.9196720123291,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "9077c4fc.db6fb8",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 506.85713958740234,
-        "y": 257.190465927124,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "36986752.8db598",
-                "ae847a12.f2ba48"
-            ]
-        ]
-    },
-    {
-        "id": "36986752.8db598",
-        "type": "outcome",
-        "name": "DeleteVfModuleInstance",
-        "xml": "<outcome value='DeleteVfModuleInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 768.9047546386719,
-        "y": 234.33335208892822,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "6bfdb413.6dba6c"
-            ]
-        ]
-    },
-    {
-        "id": "ae847a12.f2ba48",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 712.5713996887207,
-        "y": 279.71434116363525,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "840b0e33.1be94"
-            ]
-        ]
-    },
-    {
-        "id": "6bfdb413.6dba6c",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 958.7619190216064,
-        "y": 234.33338356018066,
-        "z": "66718f17.55d5b",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "840b0e33.1be94",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n",
-        "comments": "",
-        "x": 977.5714073181152,
-        "y": 280.04765367507935,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "c7c25d58.df7b4",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 126.66666412353516,
-        "y": 541.666618347168,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "9077c4fc.db6fb8",
-                "bf2aa82.3dc7e58",
-                "3439a9d8.ab9236",
-                "8fb6cdcf.b16af",
-                "cd383d34.c434c",
-                "e644f473.82cda8",
-                "2f8a8aae.f43eb6",
-                "6a53a509.21c6fc",
-                "a3c6b6a0.82de08",
-                "fcd4522.e4775b",
-                "b1395859.6a0108",
-                "762c177b.08d768"
-            ]
-        ]
-    },
-    {
-        "id": "3439a9d8.ab9236",
-        "type": "switchNode",
-        "name": "switch service-data.vnfs.vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 553.3333129882812,
-        "y": 401.66664123535156,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "6917fb8.2adad04",
-                "9afc044d.1d85f8"
-            ]
-        ]
-    },
-    {
-        "id": "6917fb8.2adad04",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 794.0475845336914,
-        "y": 378.80938148498535,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "683e93db.bf1b8c"
-            ]
-        ]
-    },
-    {
-        "id": "9afc044d.1d85f8",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 793.8094253540039,
-        "y": 419.7618999481201,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "93864c89.1db7a"
-            ]
-        ]
-    },
-    {
-        "id": "683e93db.bf1b8c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n",
-        "comments": "",
-        "x": 960.7141990661621,
-        "y": 378.09513664245605,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "93864c89.1db7a",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 956.0475692749023,
-        "y": 419.4285182952881,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "816952d1.278e1"
-            ]
-        ]
-    },
-    {
-        "id": "816952d1.278e1",
-        "type": "switchNode",
-        "name": "switch service data vnf == input vnf",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1207.380786895752,
-        "y": 419.09520530700684,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "4dae753e.0c4bac"
-            ]
-        ]
-    },
-    {
-        "id": "4dae753e.0c4bac",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1437.3808784484863,
-        "y": 418.4285593032837,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "3161b7a1.0cc078"
-            ]
-        ]
-    },
-    {
-        "id": "bf2aa82.3dc7e58",
-        "type": "set",
-        "name": "set vnf-index to -1",
-        "xml": "<set>\n<parameter name='vnf-index' value='-1' />\n",
-        "comments": "",
-        "x": 502.3809356689453,
-        "y": 333.0951404571533,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "78c0e49e.7d500c",
-        "type": "set",
-        "name": "set vnf-index to idx",
-        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
-        "comments": "",
-        "x": 1759.0475158691406,
-        "y": 389.42851734161377,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "8fb6cdcf.b16af",
-        "type": "switchNode",
-        "name": "switch vnf-index",
-        "xml": "<switch test='`$vnf-index`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 492.38094329833984,
-        "y": 469.76183700561523,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "ee9f9bc9.c74618"
-            ]
-        ]
-    },
-    {
-        "id": "ee9f9bc9.c74618",
-        "type": "outcome",
-        "name": "-1",
-        "xml": "<outcome value='-1'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 670.7143287658691,
-        "y": 469.09521293640137,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "d0b968e1.02fc78"
-            ]
-        ]
-    },
-    {
-        "id": "d0b968e1.02fc78",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n",
-        "comments": "",
-        "x": 830.7142372131348,
-        "y": 468.42851638793945,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "3161b7a1.0cc078",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 1585.714340209961,
-        "y": 417.34825801849365,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "78c0e49e.7d500c",
-                "d8a1c30a.67ec2"
-            ]
-        ]
-    },
-    {
-        "id": "d8a1c30a.67ec2",
-        "type": "break",
-        "name": "break",
-        "xml": "<break>\n",
-        "comments": "",
-        "x": 1720.7143058776855,
-        "y": 439.01484394073486,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "e644f473.82cda8",
-        "type": "switchNode",
-        "name": "switch service-data...vf-module_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 566.6666259765625,
-        "y": 591.6666660308838,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "dabca98f.b55858",
-                "d754c5bd.ecf668"
-            ]
-        ]
-    },
-    {
-        "id": "dabca98f.b55858",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 817.3809356689453,
-        "y": 570.4760694503784,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "13063c42.536de4"
-            ]
-        ]
-    },
-    {
-        "id": "d754c5bd.ecf668",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 817.1427764892578,
-        "y": 611.4285879135132,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "601e343c.8c78cc"
-            ]
-        ]
-    },
-    {
-        "id": "13063c42.536de4",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n",
-        "comments": "",
-        "x": 984.047550201416,
-        "y": 569.7618246078491,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "601e343c.8c78cc",
-        "type": "for",
-        "name": "for each vf-module",
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 979.3809204101562,
-        "y": 611.0952062606812,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "8c46688e.150378"
-            ]
-        ]
-    },
-    {
-        "id": "8c46688e.150378",
-        "type": "switchNode",
-        "name": "switch service data vf-module == input vf-module",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1285.7140808105469,
-        "y": 610.76194190979,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "f337ae4d.c9823"
-            ]
-        ]
-    },
-    {
-        "id": "f337ae4d.c9823",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1555.7141342163086,
-        "y": 608.4285469055176,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "4421d8b3.cc5a98"
-            ]
-        ]
-    },
-    {
-        "id": "cd383d34.c434c",
-        "type": "set",
-        "name": "set vf-module-index to -1",
-        "xml": "<set>\n<parameter name='vf-module-index' value='-1' />\n",
-        "comments": "",
-        "x": 522.3809204101562,
-        "y": 526.428503036499,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "26c56276.cbbaee",
-        "type": "set",
-        "name": "set vf-module-index to idx",
-        "xml": "<set>\n<parameter name='vf-module-index' value='`$idx`' />\n",
-        "comments": "",
-        "x": 1885.714225769043,
-        "y": 579.4285259246826,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "2f8a8aae.f43eb6",
-        "type": "switchNode",
-        "name": "switch vf-module-index",
-        "xml": "<switch test='`$vf-module-index`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 514.0476036071777,
-        "y": 663.0952157974243,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "18ce1819.ff8848"
-            ]
-        ]
-    },
-    {
-        "id": "18ce1819.ff8848",
-        "type": "outcome",
-        "name": "-1",
-        "xml": "<outcome value='-1'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 692.380989074707,
-        "y": 662.4285917282104,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "966d8d53.6b6fa"
-            ]
-        ]
-    },
-    {
-        "id": "966d8d53.6b6fa",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n",
-        "comments": "",
-        "x": 852.3808975219727,
-        "y": 661.7618951797485,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "4421d8b3.cc5a98",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 1689.0476760864258,
-        "y": 607.3482866287231,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "26c56276.cbbaee",
-                "8db1d4c2.4e5f98"
-            ]
-        ]
-    },
-    {
-        "id": "8db1d4c2.4e5f98",
-        "type": "break",
-        "name": "break",
-        "xml": "<break>\n",
-        "comments": "",
-        "x": 1824.0476417541504,
-        "y": 629.0148725509644,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "6a53a509.21c6fc",
-        "type": "set",
-        "name": "set order-status to PendingDelete",
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingDelete' />\n",
-        "comments": "",
-        "x": 550.0000305175781,
-        "y": 903.3332681655884,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "a3c6b6a0.82de08",
-        "type": "set",
-        "name": "set vf-module-status to PendingDelete",
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-topology.vf-module-assignments.vf-module-status' value='PendingDelete' />\n",
-        "comments": "",
-        "x": 561.3333435058594,
-        "y": 725.0000095367432,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "fcd4522.e4775b",
-        "type": "save",
-        "name": "update vf-module to PendingDelete",
-        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 551.6667175292969,
-        "y": 786.666618347168,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "1e182c2d.f61464",
-                "7c1bc2f6.54919c"
-            ]
-        ]
-    },
-    {
-        "id": "19ff43f6.90e7bc",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n",
-        "comments": "",
-        "x": 971.6667938232422,
-        "y": 811.6666450500488,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "1e182c2d.f61464",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 784.3573608398438,
-        "y": 768.6191148757935,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "b0f96d27.7ef2b"
-            ]
-        ]
-    },
-    {
-        "id": "7c1bc2f6.54919c",
-        "type": "not-found",
-        "name": "not-found",
-        "xml": "<outcome value='not-found'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 792.9287910461426,
-        "y": 812.9048280715942,
-        "z": "66718f17.55d5b",
-        "wires": [
-            [
-                "19ff43f6.90e7bc"
-            ]
-        ]
-    },
-    {
-        "id": "b0f96d27.7ef2b",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n",
-        "comments": "",
-        "x": 974.3573875427246,
-        "y": 768.4288501739502,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "b1395859.6a0108",
-        "type": "set",
-        "name": "copy input data",
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n",
-        "comments": "",
-        "x": 489.9999694824219,
-        "y": 856.6666259765625,
-        "z": "66718f17.55d5b",
-        "wires": []
-    },
-    {
-        "id": "762c177b.08d768",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "comments": "",
-        "x": 488.33331298828125,
-        "y": 953.3333129882812,
-        "z": "66718f17.55d5b",
-        "wires": []
-    }
-]
+[{"id":"13071f3.b7d9ce1","type":"dgstart","name":"DGSTART","outputs":1,"x":100,"y":82.85714721679688,"z":"9879faaf.578818","wires":[["aeabe994.f8df78"]]},{"id":"aeabe994.f8df78","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.28571319580078,"y":123.09526062011719,"z":"9879faaf.578818","wires":[["396a8522.a9e2ca"]]},{"id":"396a8522.a9e2ca","type":"method","name":"method vf-module-topology-operation-deactivate","xml":"<method rpc='vf-module-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":225.09529876708984,"y":162.8571434020996,"z":"9879faaf.578818","wires":[["bd866b95.6f7af8"]]},{"id":"6558f1be.58032","type":"comment","name":"vf-module-topology-operation-deactivate","info":"","comments":"","x":494.34485626220703,"y":30.443490982055664,"z":"9879faaf.578818","wires":[]},{"id":"88623168.6874f","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":503.52381134033203,"y":261.7142848968506,"z":"9879faaf.578818","wires":[["6a841189.d0d6b","75789769.e51bc8"]]},{"id":"6a841189.d0d6b","type":"outcome","name":"DeleteVfModuleInstance","xml":"<outcome value='DeleteVfModuleInstance'>\n","comments":"","outputs":1,"x":765.5714263916016,"y":238.85717105865479,"z":"9879faaf.578818","wires":[["8cc46eff.ba0dc"]]},{"id":"75789769.e51bc8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":709.2380714416504,"y":284.2381601333618,"z":"9879faaf.578818","wires":[["16129ba.dc43964"]]},{"id":"8cc46eff.ba0dc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":955.4285907745361,"y":238.85720252990723,"z":"9879faaf.578818","wires":[[]]},{"id":"16129ba.dc43964","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n","comments":"","x":974.2380790710449,"y":284.5714726448059,"z":"9879faaf.578818","wires":[]},{"id":"bd866b95.6f7af8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":163.33333587646484,"y":627.8571338653564,"z":"9879faaf.578818","wires":[["88623168.6874f","1049d50a.0bf20b","d78c8798.03c208","e4675d09.2b00d","4f2b2a2c.598fa4","fe8ce13.f8c932","23a16cba.a08e54","68811534.7548ec","37836293.8a32be","bcec521d.e4f3f","ecefd25.6df343","7fdaa4ba.1e989c","6479e61d.234e48","d5cf2da3.75dd1"]]},{"id":"d78c8798.03c208","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":549.9999847412109,"y":406.1904602050781,"z":"9879faaf.578818","wires":[["a8fe6112.36125","20ca97dd.7de2c8"]]},{"id":"a8fe6112.36125","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":790.7142562866211,"y":383.3332004547119,"z":"9879faaf.578818","wires":[["7fc607f0.18d098"]]},{"id":"20ca97dd.7de2c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":790.4760971069336,"y":424.2857189178467,"z":"9879faaf.578818","wires":[["e1eb34fc.63e7a8"]]},{"id":"7fc607f0.18d098","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":957.3808708190918,"y":382.6189556121826,"z":"9879faaf.578818","wires":[]},{"id":"e1eb34fc.63e7a8","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":952.714241027832,"y":423.95233726501465,"z":"9879faaf.578818","wires":[["978adb95.1c9808"]]},{"id":"978adb95.1c9808","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1204.0474586486816,"y":423.6190242767334,"z":"9879faaf.578818","wires":[["2370e2ab.dca6be"]]},{"id":"2370e2ab.dca6be","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1434.047550201416,"y":422.95237827301025,"z":"9879faaf.578818","wires":[["30b4374c.141a18"]]},{"id":"1049d50a.0bf20b","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":499.047607421875,"y":337.6189594268799,"z":"9879faaf.578818","wires":[]},{"id":"8cbdf2c0.29c63","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1755.7141876220703,"y":393.95233631134033,"z":"9879faaf.578818","wires":[]},{"id":"e4675d09.2b00d","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":489.04761505126953,"y":474.2856559753418,"z":"9879faaf.578818","wires":[["47db849e.30270c"]]},{"id":"47db849e.30270c","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":667.3810005187988,"y":473.61903190612793,"z":"9879faaf.578818","wires":[["dc1e72ee.c74b3"]]},{"id":"dc1e72ee.c74b3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":827.3809089660645,"y":472.952335357666,"z":"9879faaf.578818","wires":[]},{"id":"30b4374c.141a18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1582.3810119628906,"y":421.8720769882202,"z":"9879faaf.578818","wires":[["8cbdf2c0.29c63","3a37ad6f.aa2402"]]},{"id":"3a37ad6f.aa2402","type":"break","name":"break","xml":"<break>\n","comments":"","x":1717.3809776306152,"y":443.5386629104614,"z":"9879faaf.578818","wires":[]},{"id":"fe8ce13.f8c932","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":563.3332977294922,"y":596.1904850006104,"z":"9879faaf.578818","wires":[["b0abce56.c29c2","9790b40d.9d6b28"]]},{"id":"b0abce56.c29c2","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":814.047607421875,"y":574.999888420105,"z":"9879faaf.578818","wires":[["f30c800c.a6fd4"]]},{"id":"9790b40d.9d6b28","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":813.8094482421875,"y":615.9524068832397,"z":"9879faaf.578818","wires":[["ba9a5b3d.831648"]]},{"id":"f30c800c.a6fd4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":980.7142219543457,"y":574.2856435775757,"z":"9879faaf.578818","wires":[]},{"id":"ba9a5b3d.831648","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":976.0475921630859,"y":615.6190252304077,"z":"9879faaf.578818","wires":[["7616e353.b44a6c"]]},{"id":"7616e353.b44a6c","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1282.3807525634766,"y":615.2857608795166,"z":"9879faaf.578818","wires":[["1ba3253d.82b1bb"]]},{"id":"1ba3253d.82b1bb","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1552.3808059692383,"y":612.9523658752441,"z":"9879faaf.578818","wires":[["ea9fdaef.8b5c38"]]},{"id":"4f2b2a2c.598fa4","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":519.0475921630859,"y":530.9523220062256,"z":"9879faaf.578818","wires":[]},{"id":"deaa7aac.717e78","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1882.3808975219727,"y":583.9523448944092,"z":"9879faaf.578818","wires":[]},{"id":"23a16cba.a08e54","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":510.7142753601074,"y":667.6190347671509,"z":"9879faaf.578818","wires":[["bc010e95.612a6"]]},{"id":"bc010e95.612a6","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":689.0476608276367,"y":666.952410697937,"z":"9879faaf.578818","wires":[["dec2ac79.d9a78"]]},{"id":"dec2ac79.d9a78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":849.0475692749023,"y":666.2857141494751,"z":"9879faaf.578818","wires":[]},{"id":"ea9fdaef.8b5c38","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1685.7143478393555,"y":611.8721055984497,"z":"9879faaf.578818","wires":[["deaa7aac.717e78","f772ee69.83042"]]},{"id":"f772ee69.83042","type":"break","name":"break","xml":"<break>\n","comments":"","x":1820.71431350708,"y":633.5386915206909,"z":"9879faaf.578818","wires":[]},{"id":"68811534.7548ec","type":"set","name":"set order-status to PendingDelete","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\n  value='PendingDelete' />\n","comments":"","x":548.3334045410156,"y":1121.9047660827637,"z":"9879faaf.578818","wires":[]},{"id":"37836293.8a32be","type":"set","name":"set vf-module-status to PendingDelete","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-topology.vf-module-assignments.vf-module-status' value='PendingDelete' />\n","comments":"","x":559.6667175292969,"y":943.5715074539185,"z":"9879faaf.578818","wires":[]},{"id":"bcec521d.e4f3f","type":"save","name":"update vf-module to PendingDelete","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vf-module\"\n   key=\"vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\n      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n","comments":"","outputs":1,"x":550.0000915527344,"y":1005.2381162643433,"z":"9879faaf.578818","wires":[["ef5b4d43.e0382","d6456b4b.1e9658"]]},{"id":"cd129c6d.597f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vf-module found in AAI for vf module ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`\" />\n","comments":"","x":942.8573112487793,"y":1031.6667289733887,"z":"9879faaf.578818","wires":[]},{"id":"ef5b4d43.e0382","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":782.6907348632812,"y":987.1906127929688,"z":"9879faaf.578818","wires":[["28df6473.5f7f9c"]]},{"id":"d6456b4b.1e9658","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":791.2621650695801,"y":1031.4763259887695,"z":"9879faaf.578818","wires":[["cd129c6d.597f"]]},{"id":"28df6473.5f7f9c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vf-module in AAI\" />\n","comments":"","x":945.5479049682617,"y":988.42893409729,"z":"9879faaf.578818","wires":[]},{"id":"ecefd25.6df343","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\n   value='$vf-module-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\n   value='$vf-module-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\n   value='$vf-module-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\n   value='$vf-module-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\n   value='$vf-module-topology-operation-input.vf-module-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\n   value='$vf-module-topology-operation-input.vf-module-request-input.' />\n\n","comments":"","x":488.3333435058594,"y":1075.2381238937378,"z":"9879faaf.578818","wires":[]},{"id":"7fdaa4ba.1e989c","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":486.66668701171875,"y":1171.9048109054565,"z":"9879faaf.578818","wires":[]},{"id":"6479e61d.234e48","type":"switchNode","name":"switch vlan-vnfc-instance-group_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\n","comments":"","outputs":1,"x":563.3332977294922,"y":756.1904830932617,"z":"9879faaf.578818","wires":[["be1e70ac.411ba","be0d4928.ca9998","20551dc0.451a22"]]},{"id":"be1e70ac.411ba","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":796.1904754638672,"y":709.047571182251,"z":"9879faaf.578818","wires":[["3a138253.a29bde"]]},{"id":"be0d4928.ca9998","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":796.1903667449951,"y":754.761833190918,"z":"9879faaf.578818","wires":[["3a138253.a29bde"]]},{"id":"20551dc0.451a22","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":794.7618179321289,"y":803.8094940185547,"z":"9879faaf.578818","wires":[["f82088b8.905898"]]},{"id":"3a138253.a29bde","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":924.7618713378906,"y":729.0475482940674,"z":"9879faaf.578818","wires":[[]]},{"id":"f82088b8.905898","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1129.2857208251953,"y":803.2855625152588,"z":"9879faaf.578818","wires":[["80fabf7b.14c17"]]},{"id":"80fabf7b.14c17","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1467.618984222412,"y":802.619140625,"z":"9879faaf.578818","wires":[["4fa8ba6e.f33474"]]},{"id":"4fa8ba6e.f33474","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":1617.618881225586,"y":800.9522953033447,"z":"9879faaf.578818","wires":[]},{"id":"d5cf2da3.75dd1","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":492.85713958740234,"y":879.9998893737793,"z":"9879faaf.578818","wires":[["ddc0e538.28e1d8"]]},{"id":"ddc0e538.28e1d8","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":669.5238800048828,"y":879.3810844421387,"z":"9879faaf.578818","wires":[["380a3916.dbad36"]]},{"id":"380a3916.dbad36","type":"save","name":"update vnfc to PendingDelete","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc\"\n   key=\"vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n","comments":"","outputs":1,"x":884.2857513427734,"y":878.5713691711426,"z":"9879faaf.578818","wires":[["6aa9d43c.d59dfc","ffb27a5e.b18188"]]},{"id":"191b9efa.36be11","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No vnfc found in AAI for vnfc name ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`\" />\n","comments":"","x":1247.1427955627441,"y":897.5714683532715,"z":"9879faaf.578818","wires":[]},{"id":"6aa9d43c.d59dfc","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1084.119155883789,"y":854.0953531265259,"z":"9879faaf.578818","wires":[["2b9f56c7.63713a"]]},{"id":"ffb27a5e.b18188","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1092.690586090088,"y":898.3810663223267,"z":"9879faaf.578818","wires":[["191b9efa.36be11"]]},{"id":"2b9f56c7.63713a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating vnfc in AAI\" />\n","comments":"","x":1249.8333892822266,"y":854.3336734771729,"z":"9879faaf.578818","wires":[]}]
\ No newline at end of file
index 505d3a2..f22c022 100755 (executable)
@@ -1 +1 @@
-[{"id":"3634132b.aae9cc","type":"dgstart","name":"DGSTART","outputs":1,"x":111.42857360839844,"y":85.27079892158508,"z":"4bbef54d.3c199c","wires":[["b811bd8c.58626"]]},{"id":"b811bd8c.58626","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":226.7142791748047,"y":124.8422462940216,"z":"4bbef54d.3c199c","wires":[["903f1211.d11ba"]]},{"id":"903f1211.d11ba","type":"method","name":"method vf-module-topology-operation-unassign","xml":"<method rpc='vf-module-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":233.52387237548828,"y":165.27079510688782,"z":"4bbef54d.3c199c","wires":[["3e241fed.dce8d"]]},{"id":"4bbac542.26042c","type":"comment","name":"vf-module-topology-operation-unassign","info":"","comments":"","x":505.77342987060547,"y":32.85714268684387,"z":"4bbef54d.3c199c","wires":[]},{"id":"7d0a0f77.67fe3","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":514.9523849487305,"y":264.1279366016388,"z":"4bbef54d.3c199c","wires":[["858f056.ea102f8","69293fca.60217"]]},{"id":"858f056.ea102f8","type":"outcome","name":"DeleteVfModuleInstance","xml":"<outcome value='DeleteVfModuleInstance'>\n","comments":"","outputs":1,"x":777,"y":241.270822763443,"z":"4bbef54d.3c199c","wires":[["bd986f3d.05e4d"]]},{"id":"69293fca.60217","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":720.6666450500488,"y":286.65181183815,"z":"4bbef54d.3c199c","wires":[["4b2c39f.c1425c8"]]},{"id":"bd986f3d.05e4d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":966.8571643829346,"y":241.27085423469543,"z":"4bbef54d.3c199c","wires":[[]]},{"id":"4b2c39f.c1425c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n","comments":"","x":985.6666526794434,"y":286.9851243495941,"z":"4bbef54d.3c199c","wires":[]},{"id":"3e241fed.dce8d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":134.76190948486328,"y":548.6040890216827,"z":"4bbef54d.3c199c","wires":[["7d0a0f77.67fe3","4fda8279.7e1a2c","54011fb9.04278","dd0c290.fa2dfd8","cf3cb3a4.71148","c7d85a41.4cf3c8","3700f1e7.c7a0de","d32fc0f1.b0335","face273e.1dbef8","3cafd812.76e3b8","ea148e30.283d3","12418747.0556a9","177346be.1e3b89","7391d4c.0a61d2c","9e6f1a75.404bf8"]]},{"id":"54011fb9.04278","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":561.4285583496094,"y":408.60411190986633,"z":"4bbef54d.3c199c","wires":[["2f8b9c68.d88264","801d20e1.503d5"]]},{"id":"2f8b9c68.d88264","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":802.1428298950195,"y":385.7468521595001,"z":"4bbef54d.3c199c","wires":[["9a288953.c31b18"]]},{"id":"801d20e1.503d5","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":801.904670715332,"y":426.6993706226349,"z":"4bbef54d.3c199c","wires":[["b9fd5234.dea25"]]},{"id":"9a288953.c31b18","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":968.8094444274902,"y":385.0326073169708,"z":"4bbef54d.3c199c","wires":[]},{"id":"b9fd5234.dea25","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":964.1428146362305,"y":426.36598896980286,"z":"4bbef54d.3c199c","wires":[["37afdfcf.8df9b"]]},{"id":"37afdfcf.8df9b","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1215.47603225708,"y":426.0326759815216,"z":"4bbef54d.3c199c","wires":[["4d313f64.53af3"]]},{"id":"4d313f64.53af3","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1445.4761238098145,"y":425.36602997779846,"z":"4bbef54d.3c199c","wires":[["743dde83.7b049"]]},{"id":"4fda8279.7e1a2c","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":510.47618103027344,"y":340.0326111316681,"z":"4bbef54d.3c199c","wires":[]},{"id":"955acb16.2e9198","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1767.1427612304688,"y":396.36598801612854,"z":"4bbef54d.3c199c","wires":[]},{"id":"dd0c290.fa2dfd8","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":500.47618865966797,"y":476.69930768013,"z":"4bbef54d.3c199c","wires":[["7a7787fa.85d6c8"]]},{"id":"7a7787fa.85d6c8","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":678.8095741271973,"y":476.03268361091614,"z":"4bbef54d.3c199c","wires":[["b1e4fb77.0ad6d8"]]},{"id":"b1e4fb77.0ad6d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":838.8094825744629,"y":475.3659870624542,"z":"4bbef54d.3c199c","wires":[]},{"id":"743dde83.7b049","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1593.809585571289,"y":424.2857286930084,"z":"4bbef54d.3c199c","wires":[["955acb16.2e9198","227b40bb.b89e1"]]},{"id":"227b40bb.b89e1","type":"break","name":"break","xml":"<break>\n","comments":"","x":1728.8095512390137,"y":445.95231461524963,"z":"4bbef54d.3c199c","wires":[]},{"id":"c7d85a41.4cf3c8","type":"switchNode","name":"switch service-data...vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":574.7618713378906,"y":598.6041367053986,"z":"4bbef54d.3c199c","wires":[["1d3ba2f9.4d00cd","b4ccb8c5.aa3838"]]},{"id":"1d3ba2f9.4d00cd","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":825.4761810302734,"y":577.4135401248932,"z":"4bbef54d.3c199c","wires":[["f4f84ccb.bce1a"]]},{"id":"b4ccb8c5.aa3838","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":825.2380218505859,"y":618.366058588028,"z":"4bbef54d.3c199c","wires":[["f90e4678.074348"]]},{"id":"f4f84ccb.bce1a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":992.1427955627441,"y":576.6992952823639,"z":"4bbef54d.3c199c","wires":[]},{"id":"f90e4678.074348","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":987.4761657714844,"y":618.0326769351959,"z":"4bbef54d.3c199c","wires":[["7b6c52f9.40101c"]]},{"id":"7b6c52f9.40101c","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1293.809326171875,"y":617.6994125843048,"z":"4bbef54d.3c199c","wires":[["63e22dc4.06f384"]]},{"id":"63e22dc4.06f384","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1563.8093795776367,"y":615.3660175800323,"z":"4bbef54d.3c199c","wires":[["84f0d1b4.6509b"]]},{"id":"cf3cb3a4.71148","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":530.4761657714844,"y":533.3659737110138,"z":"4bbef54d.3c199c","wires":[]},{"id":"feddd314.78bc1","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1893.809471130371,"y":586.3659965991974,"z":"4bbef54d.3c199c","wires":[]},{"id":"3700f1e7.c7a0de","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":522.1428489685059,"y":670.0326864719391,"z":"4bbef54d.3c199c","wires":[["30d75429.dce6dc"]]},{"id":"30d75429.dce6dc","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":700.4762344360352,"y":669.3660624027252,"z":"4bbef54d.3c199c","wires":[["dc3fcd3f.7fb5a"]]},{"id":"dc3fcd3f.7fb5a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":860.4761428833008,"y":668.6993658542633,"z":"4bbef54d.3c199c","wires":[]},{"id":"84f0d1b4.6509b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1697.142921447754,"y":614.2857573032379,"z":"4bbef54d.3c199c","wires":[["feddd314.78bc1","bb579fe6.15d06"]]},{"id":"bb579fe6.15d06","type":"break","name":"break","xml":"<break>\n","comments":"","x":1832.1428871154785,"y":635.9523432254791,"z":"4bbef54d.3c199c","wires":[]},{"id":"d32fc0f1.b0335","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":511.42855072021484,"y":738.6041233539581,"z":"4bbef54d.3c199c","wires":[["a6a4bb26.1f3248","3d378319.cd568c"]]},{"id":"a6a4bb26.1f3248","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":689.7619361877441,"y":713.604165315628,"z":"4bbef54d.3c199c","wires":[["586d3384.e6473c"]]},{"id":"3d378319.cd568c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":686.428539276123,"y":758.6041061878204,"z":"4bbef54d.3c199c","wires":[["9f24bb12.d8e6c8"]]},{"id":"586d3384.e6473c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Order status must not be Created\" />\n","comments":"","x":858.0951766967773,"y":713.6040947437286,"z":"4bbef54d.3c199c","wires":[]},{"id":"9f24bb12.d8e6c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":861.4285507202148,"y":758.2707817554474,"z":"4bbef54d.3c199c","wires":[[]]},{"id":"3cafd812.76e3b8","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >","comments":"","outputs":1,"x":638.0952758789062,"y":855.2707741260529,"z":"4bbef54d.3c199c","wires":[["29a4dd2c.571cc2"]]},{"id":"face273e.1dbef8","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`\" />\n","comments":"","x":508.0952453613281,"y":808.6041061878204,"z":"4bbef54d.3c199c","wires":[]},{"id":"29a4dd2c.571cc2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":943.0951843261719,"y":853.6040737628937,"z":"4bbef54d.3c199c","wires":[["7b359e3e.4af98"]]},{"id":"7b359e3e.4af98","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table\" />\n","comments":"","x":1133.0952110290527,"y":853.4138090610504,"z":"4bbef54d.3c199c","wires":[]},{"id":"7391d4c.0a61d2c","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":571.4285736083984,"y":950.2707951068878,"z":"4bbef54d.3c199c","wires":[["f775a31f.14032"]]},{"id":"f775a31f.14032","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":808.0951995849609,"y":950.2707378864288,"z":"4bbef54d.3c199c","wires":[["fbea9023.f0a21"]]},{"id":"fbea9023.f0a21","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in EIPAM unassign IP address\" />\n","comments":"","x":998.0952262878418,"y":950.0804731845856,"z":"4bbef54d.3c199c","wires":[]},{"id":"ea148e30.283d3","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":503.09523010253906,"y":995.2707560062408,"z":"4bbef54d.3c199c","wires":[["dd94f1e3.ff795"]]},{"id":"dd94f1e3.ff795","type":"for","name":"for each vm","xml":"<for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":698.0952606201172,"y":994.6037638187408,"z":"4bbef54d.3c199c","wires":[["ec57ffa3.2de6d"]]},{"id":"5d88eeac.72f3c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1446.4289016723633,"y":992.9364054203033,"z":"4bbef54d.3c199c","wires":[["6706540e.3756bc"]]},{"id":"cd37cc6b.08ecc","type":"comment","name":"Not a failure","info":"","comments":"","x":1769.7619552612305,"y":991.2702276706696,"z":"4bbef54d.3c199c","wires":[]},{"id":"6706540e.3756bc","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1592.4288368225098,"y":992.9370386600494,"z":"4bbef54d.3c199c","wires":[[]]},{"id":"ec57ffa3.2de6d","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":866.428653717041,"y":993.6036083698273,"z":"4bbef54d.3c199c","wires":[["6b0a27e8.69d2a8"]]},{"id":"6b0a27e8.69d2a8","type":"delete","name":"delete any records in VIPR_CONFIGURATION","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1153.0953674316406,"y":993.2710382938385,"z":"4bbef54d.3c199c","wires":[["5d88eeac.72f3c"]]},{"id":"e25e36f2.2bb898","type":"for","name":"for each vf module","xml":"<for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1079.2696990966797,"y":1083.6039497852325,"z":"4bbef54d.3c199c","wires":[["50854db5.0c09d4"]]},{"id":"54369fbe.68bda","type":"comment","name":"Remove VF Module from service data","info":"","comments":"","x":458.09519958496094,"y":1038.8423902988434,"z":"4bbef54d.3c199c","wires":[]},{"id":"50854db5.0c09d4","type":"set","name":"move vf module to remove one","xml":"<set>\n\t<parameter name=\"tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].\" value=\"$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].\" />\n\t\n","comments":"","x":1322.8608322143555,"y":1082.6279156208038,"z":"4bbef54d.3c199c","wires":[]},{"id":"12418747.0556a9","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":525.5276184082031,"y":1094.9456207752228,"z":"4bbef54d.3c199c","wires":[["96160dc8.1f5f6","66823801.7689b8"]]},{"id":"96160dc8.1f5f6","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":720.8609848022461,"y":1045.8502275943756,"z":"4bbef54d.3c199c","wires":[["12a46b54.143dd5"]]},{"id":"12a46b54.143dd5","type":"set","name":"Remove vf modules","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.\" value=\"\"/>\n\n","comments":"","x":892.8607559204102,"y":1045.8503468036652,"z":"4bbef54d.3c199c","wires":[]},{"id":"66823801.7689b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":719.5277404785156,"y":1140.6120369434357,"z":"4bbef54d.3c199c","wires":[["2bcfe8b8.486238"]]},{"id":"e9f7f8ad.ae21a8","type":"set","name":"set new vf module length","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$lastidx`\"/>\n\n\t\n","comments":"","x":1098.1572341918945,"y":1211.326426744461,"z":"4bbef54d.3c199c","wires":[]},{"id":"74efe5f4.b4841c","type":"set","name":"Remove the last vf module in the list","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx].\" value=\"\"/>\n","comments":"","x":1133.8608474731445,"y":1167.4375641345978,"z":"4bbef54d.3c199c","wires":[]},{"id":"2bcfe8b8.486238","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":876.7656707763672,"y":1139.850038766861,"z":"4bbef54d.3c199c","wires":[["e25e36f2.2bb898","74efe5f4.b4841c","e9f7f8ad.ae21a8","97e35dd8.d7e27"]]},{"id":"177346be.1e3b89","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":498.09523010253906,"y":1271.4612438678741,"z":"4bbef54d.3c199c","wires":[]},{"id":"9e6f1a75.404bf8","type":"set","name":"set service-type","xml":"<set>\n<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":499.7618865966797,"y":901.1904366016388,"z":"4bbef54d.3c199c","wires":[]},{"id":"97e35dd8.d7e27","type":"set","name":"set lastidx","xml":"<set>\n<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":1052.000015258789,"y":1123.8422634601593,"z":"4bbef54d.3c199c","wires":[]}]
+[{"id":"ef42c66b.3dfe28","type":"dgstart","name":"DGSTART","outputs":1,"x":102.85714721679688,"y":80.98508262634277,"z":"5b67a0de.c1191","wires":[["d058f552.773d88"]]},{"id":"d058f552.773d88","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":218.14285278320312,"y":120.5565299987793,"z":"5b67a0de.c1191","wires":[["f16f3e1d.c41f4"]]},{"id":"f16f3e1d.c41f4","type":"method","name":"method vf-module-topology-operation-unassign","xml":"<method rpc='vf-module-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":224.95244598388672,"y":160.9850788116455,"z":"5b67a0de.c1191","wires":[["a61f59cb.b2a0f8"]]},{"id":"63457f36.a0099","type":"comment","name":"vf-module-topology-operation-unassign","info":"","comments":"","x":497.2020034790039,"y":28.571426391601562,"z":"5b67a0de.c1191","wires":[]},{"id":"d0a30d4d.0df84","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":506.3809585571289,"y":259.8422203063965,"z":"5b67a0de.c1191","wires":[["286c8282.164dee","46a465e0.79a2dc"]]},{"id":"286c8282.164dee","type":"outcome","name":"DeleteVfModuleInstance","xml":"<outcome value='DeleteVfModuleInstance'>\n","comments":"","outputs":1,"x":768.4285736083984,"y":236.98510646820068,"z":"5b67a0de.c1191","wires":[["e6a80960.aadf88"]]},{"id":"46a465e0.79a2dc","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":712.0952186584473,"y":282.3660955429077,"z":"5b67a0de.c1191","wires":[["201f9acb.f9a0c6"]]},{"id":"e6a80960.aadf88","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":958.285737991333,"y":236.98513793945312,"z":"5b67a0de.c1191","wires":[[]]},{"id":"201f9acb.f9a0c6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'\" />\n","comments":"","x":977.0952262878418,"y":282.6994080543518,"z":"5b67a0de.c1191","wires":[]},{"id":"a61f59cb.b2a0f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":126.19048309326172,"y":544.3183727264404,"z":"5b67a0de.c1191","wires":[["d0a30d4d.0df84","783364b6.6904cc","e6cab1bb.99be3","61397b35.1bab24","1add5b5f.d4eb55","6de9253c.11193c","48995b46.021df4","e2eff761.4bbdf8","bd0ec889.7e7588","8cb124a1.258a58","c72a7ac6.668cf8","c2fdd3aa.623e","86f3563e.50aea8","29e2cbda.b6f204","6ad45119.09e6e","f8285267.508dc"]]},{"id":"e6cab1bb.99be3","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":552.8571319580078,"y":404.318395614624,"z":"5b67a0de.c1191","wires":[["e850c155.14d9","94b90f2e.f54da"]]},{"id":"e850c155.14d9","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":793.571403503418,"y":381.4611358642578,"z":"5b67a0de.c1191","wires":[["c95d8e3c.02d6d"]]},{"id":"94b90f2e.f54da","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":793.3332443237305,"y":422.4136543273926,"z":"5b67a0de.c1191","wires":[["fbba99b5.d636c8"]]},{"id":"c95d8e3c.02d6d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs defined in MD-SAL\" />\n","comments":"","x":960.2380180358887,"y":380.7468910217285,"z":"5b67a0de.c1191","wires":[]},{"id":"fbba99b5.d636c8","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":955.5713882446289,"y":422.08027267456055,"z":"5b67a0de.c1191","wires":[["1d38ac25.ac4374"]]},{"id":"1d38ac25.ac4374","type":"switchNode","name":"switch service data vnf == input vnf","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":1206.9046058654785,"y":421.7469596862793,"z":"5b67a0de.c1191","wires":[["d0831ba0.3cd008"]]},{"id":"d0831ba0.3cd008","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1436.904697418213,"y":421.08031368255615,"z":"5b67a0de.c1191","wires":[["5f48041a.63d50c"]]},{"id":"783364b6.6904cc","type":"set","name":"set vnf-index to -1","xml":"<set>\n<parameter name='vnf-index' value='-1' />\n","comments":"","x":501.9047546386719,"y":335.7468948364258,"z":"5b67a0de.c1191","wires":[]},{"id":"91307255.722ca","type":"set","name":"set vnf-index to idx","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1758.5713348388672,"y":392.08027172088623,"z":"5b67a0de.c1191","wires":[]},{"id":"61397b35.1bab24","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":491.9047622680664,"y":472.4135913848877,"z":"5b67a0de.c1191","wires":[["9df4c462.b59e38"]]},{"id":"9df4c462.b59e38","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":670.2381477355957,"y":471.7469673156738,"z":"5b67a0de.c1191","wires":[["c5f1b68.18c2948"]]},{"id":"c5f1b68.18c2948","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`\" />\n","comments":"","x":830.2380561828613,"y":471.0802707672119,"z":"5b67a0de.c1191","wires":[]},{"id":"5f48041a.63d50c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1585.2381591796875,"y":420.0000123977661,"z":"5b67a0de.c1191","wires":[["91307255.722ca","2cb9f7a8.b8ebd8"]]},{"id":"2cb9f7a8.b8ebd8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1720.238124847412,"y":441.6665983200073,"z":"5b67a0de.c1191","wires":[]},{"id":"6de9253c.11193c","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":516.1904449462891,"y":594.3183994293213,"z":"5b67a0de.c1191","wires":[["69656837.f07e48","eff3e23.a78002"]]},{"id":"69656837.f07e48","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":700.2380828857422,"y":573.1278038024902,"z":"5b67a0de.c1191","wires":[["f062a39d.b6fa"]]},{"id":"eff3e23.a78002","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":699.9999237060547,"y":614.080322265625,"z":"5b67a0de.c1191","wires":[["59a3035.20c9dfc"]]},{"id":"f062a39d.b6fa","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":866.9046974182129,"y":572.4135589599609,"z":"5b67a0de.c1191","wires":[]},{"id":"59a3035.20c9dfc","type":"for","name":"for each vf-module","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":862.2380676269531,"y":613.746940612793,"z":"5b67a0de.c1191","wires":[["b620cec7.82ead"]]},{"id":"b620cec7.82ead","type":"switchNode","name":"switch service data vf-module == input vf-module","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\n","comments":"","outputs":1,"x":1168.5712280273438,"y":613.4136762619019,"z":"5b67a0de.c1191","wires":[["7e8af19c.886a5"]]},{"id":"7e8af19c.886a5","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1438.5712814331055,"y":611.0802812576294,"z":"5b67a0de.c1191","wires":[["b7f034b3.b621e8"]]},{"id":"1add5b5f.d4eb55","type":"set","name":"set vf-module-index to -1","xml":"<set>\n<parameter name='vf-module-index' value='-1' />\n","comments":"","x":521.9047393798828,"y":529.0802574157715,"z":"5b67a0de.c1191","wires":[]},{"id":"167f6da.3ade892","type":"set","name":"set vf-module-index to idx","xml":"<set>\n<parameter name='vf-module-index' value='`$idx`' />\n","comments":"","x":1768.5713729858398,"y":582.0802602767944,"z":"5b67a0de.c1191","wires":[]},{"id":"48995b46.021df4","type":"switchNode","name":"switch vf-module-index","xml":"<switch test='`$vf-module-index`'>\n","comments":"","outputs":1,"x":513.5714225769043,"y":665.7469701766968,"z":"5b67a0de.c1191","wires":[["5c3ff9de.44bb78"]]},{"id":"5c3ff9de.44bb78","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":691.9048080444336,"y":665.0803461074829,"z":"5b67a0de.c1191","wires":[["7bd45ad0.114894"]]},{"id":"7bd45ad0.114894","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`\" />\n","comments":"","x":851.9047164916992,"y":664.413649559021,"z":"5b67a0de.c1191","wires":[]},{"id":"b7f034b3.b621e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1571.9048233032227,"y":610.000020980835,"z":"5b67a0de.c1191","wires":[["167f6da.3ade892","8443b090.2daf6"]]},{"id":"8443b090.2daf6","type":"break","name":"break","xml":"<break>\n","comments":"","x":1706.9047889709473,"y":631.6666069030762,"z":"5b67a0de.c1191","wires":[]},{"id":"892a56a9.303a58","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":502.8571243286133,"y":734.3184070587158,"z":"5b67a0de.c1191","wires":[["9285d8d3.d319a8","95b7cb21.1f05f8"]]},{"id":"9285d8d3.d319a8","type":"outcome","name":"Created","xml":"<outcome value='Created'>\n","comments":"","outputs":1,"x":681.1905097961426,"y":709.3184490203857,"z":"5b67a0de.c1191","wires":[["a5b8b544.86dbb8"]]},{"id":"95b7cb21.1f05f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":677.8571128845215,"y":754.3183898925781,"z":"5b67a0de.c1191","wires":[["a74c3534.fd0f58"]]},{"id":"a5b8b544.86dbb8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Order status must not be Created\" />\n","comments":"","x":849.5237503051758,"y":709.3183784484863,"z":"5b67a0de.c1191","wires":[]},{"id":"a74c3534.fd0f58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":852.8571243286133,"y":753.9850654602051,"z":"5b67a0de.c1191","wires":[[]]},{"id":"bd0ec889.7e7588","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id\" >","comments":"","outputs":1,"x":629.5238494873047,"y":850.9850578308105,"z":"5b67a0de.c1191","wires":[["beb8bd2a.4a234"]]},{"id":"e2eff761.4bbdf8","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`\" />\n","comments":"","x":499.52381896972656,"y":804.3183898925781,"z":"5b67a0de.c1191","wires":[]},{"id":"beb8bd2a.4a234","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":934.5237579345703,"y":849.3183574676514,"z":"5b67a0de.c1191","wires":[["662d57d9.522928"]]},{"id":"662d57d9.522928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating EIPAM_IP_ASSIGNMENTS table\" />\n","comments":"","x":1124.5237846374512,"y":849.1280927658081,"z":"5b67a0de.c1191","wires":[]},{"id":"86f3563e.50aea8","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":562.8571472167969,"y":945.9850788116455,"z":"5b67a0de.c1191","wires":[["a2d0cafc.365ad8"]]},{"id":"a2d0cafc.365ad8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":799.5237731933594,"y":945.9850215911865,"z":"5b67a0de.c1191","wires":[["7f146f30.6259a"]]},{"id":"7f146f30.6259a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error in EIPAM unassign IP address\" />\n","comments":"","x":989.5237998962402,"y":945.7947568893433,"z":"5b67a0de.c1191","wires":[]},{"id":"8cb124a1.258a58","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":494.5238037109375,"y":990.9850397109985,"z":"5b67a0de.c1191","wires":[["e87db48e.4a5268"]]},{"id":"e87db48e.4a5268","type":"for","name":"for each vm","xml":"<for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\n","comments":"","outputs":1,"x":689.5238342285156,"y":990.3180475234985,"z":"5b67a0de.c1191","wires":[["af538482.333f58"]]},{"id":"be98fd19.fa07","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1396.190902709961,"y":988.6506500244141,"z":"5b67a0de.c1191","wires":[["1a47c8d9.c80497"]]},{"id":"24a33e60.d3d282","type":"comment","name":"Not a failure","info":"","comments":"","x":1674.5238990783691,"y":986.9844522476196,"z":"5b67a0de.c1191","wires":[]},{"id":"1a47c8d9.c80497","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID\"/>\n<parameter name=\"field3\" value=\"`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`\"/>\n<parameter name=\"field4\" value=\"Failed to insert VIPR_CONFIGURATION record\"/>\n","comments":"","outputs":1,"x":1542.1908378601074,"y":988.6512832641602,"z":"5b67a0de.c1191","wires":[[]]},{"id":"af538482.333f58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":857.8572273254395,"y":989.317892074585,"z":"5b67a0de.c1191","wires":[["12e7b0fe.3d6a6f"]]},{"id":"12e7b0fe.3d6a6f","type":"delete","name":"delete any records in VIPR_CONFIGURATION","xml":"<delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\n     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\n     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >","comments":"","outputs":1,"x":1144.523941040039,"y":988.9853219985962,"z":"5b67a0de.c1191","wires":[["be98fd19.fa07"]]},{"id":"838f69b9.58a6a8","type":"for","name":"for each vf module","xml":"<for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":1068.3649291992188,"y":1619.651578426361,"z":"5b67a0de.c1191","wires":[["60fee760.6f5948"]]},{"id":"7761a206.13b90c","type":"comment","name":"Remove VF Module from service data","info":"","comments":"","x":447.1904296875,"y":1574.890018939972,"z":"5b67a0de.c1191","wires":[]},{"id":"60fee760.6f5948","type":"set","name":"move vf module to remove one","xml":"<set>\n\t<parameter name=\"tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx].\" value=\"$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].\" />\n\t\n","comments":"","x":1311.9560623168945,"y":1618.6755442619324,"z":"5b67a0de.c1191","wires":[]},{"id":"c72a7ac6.668cf8","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":514.6228485107422,"y":1630.9932494163513,"z":"5b67a0de.c1191","wires":[["b9bfc718.c37be8","cd1dd4e9.b606c8"]]},{"id":"b9bfc718.c37be8","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":709.9562149047852,"y":1581.8978562355042,"z":"5b67a0de.c1191","wires":[["f977d1d1.c527e"]]},{"id":"f977d1d1.c527e","type":"set","name":"Remove vf modules","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.\" value=\"\"/>\n\n","comments":"","x":881.9559860229492,"y":1581.8979754447937,"z":"5b67a0de.c1191","wires":[]},{"id":"cd1dd4e9.b606c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":708.6229705810547,"y":1676.6596655845642,"z":"5b67a0de.c1191","wires":[["a88e0432.333698"]]},{"id":"fa887e6e.ecc74","type":"set","name":"set new vf module length","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length\" value=\"`$lastidx`\"/>\n\n\t\n","comments":"","x":1087.2524642944336,"y":1747.3740553855896,"z":"5b67a0de.c1191","wires":[]},{"id":"bcf186df.a18ec8","type":"set","name":"Remove the last vf module in the list","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx].\" value=\"\"/>\n","comments":"","x":1122.9560775756836,"y":1703.4851927757263,"z":"5b67a0de.c1191","wires":[]},{"id":"a88e0432.333698","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":865.8609008789062,"y":1675.8976674079895,"z":"5b67a0de.c1191","wires":[["838f69b9.58a6a8","bcf186df.a18ec8","fa887e6e.ecc74","15a93259.6757ce"]]},{"id":"c2fdd3aa.623e","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":487.1904602050781,"y":1807.5088725090027,"z":"5b67a0de.c1191","wires":[]},{"id":"29e2cbda.b6f204","type":"set","name":"set service-type","xml":"<set>\n<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":491.1904602050781,"y":896.9047203063965,"z":"5b67a0de.c1191","wires":[]},{"id":"15a93259.6757ce","type":"set","name":"set lastidx","xml":"<set>\n<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\n","comments":"EIPAM plug-in needs this attribute set with this name","x":1041.0952453613281,"y":1659.8898921012878,"z":"5b67a0de.c1191","wires":[]},{"id":"e824533b.f1a97","type":"switchNode","name":"switch vf-module_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\n","comments":"","outputs":1,"x":1513.3570709228516,"y":1308.0714979171753,"z":"5b67a0de.c1191","wires":[["c4b2eea1.4d80f"]]},{"id":"c4b2eea1.4d80f","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1697.6427764892578,"y":1308.0714845657349,"z":"5b67a0de.c1191","wires":[["3da2c63e.60caaa"]]},{"id":"27e1e4c.0d3421c","type":"update","name":"update EIPAM_IP_ASSIGNMENTS to PENDING_DELETE...","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource\" resource=\"SQL\"\nkey=\"UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $aai.instance-group.instance-group[$ig-index].id\" >","comments":"","outputs":1,"x":2127.6427307128906,"y":1307.881142616272,"z":"5b67a0de.c1191","wires":[[]]},{"id":"262889ce.11f6b6","type":"set","name":"set status variable","xml":"<set>\n<parameter name='tmp.status' value=\"`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`\" />\n","comments":"","x":1997.642692565918,"y":1261.2145147323608,"z":"5b67a0de.c1191","wires":[]},{"id":"70154422.eceb0c","type":"execute","name":"execute EIPAM unassign IP addresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"unassignIPAddress\">\n<parameter name=\"deleteEIPAM_status\" value=\"`$tmp.status`\" />\n","comments":"","outputs":1,"x":2062.6427001953125,"y":1352.8811864852905,"z":"5b67a0de.c1191","wires":[[]]},{"id":"68a97dc0.9e79b4","type":"comment","name":"roll back EIPAM floating addresses","info":"","comments":"","x":2106.928421020508,"y":1215.0243409474688,"z":"5b67a0de.c1191","wires":[]},{"id":"6ad45119.09e6e","type":"switchNode","name":"switch network-instance-group-function","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\n","comments":"","outputs":1,"x":561.1904830932617,"y":1123.5714311599731,"z":"5b67a0de.c1191","wires":[["78d3972b.dcca58","e57c9eb6.ec585"]]},{"id":"78d3972b.dcca58","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":786.1904525756836,"y":1091.904764175415,"z":"5b67a0de.c1191","wires":[["87fca876.3556d8"]]},{"id":"e57c9eb6.ec585","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":785.9523162841797,"y":1162.857159614563,"z":"5b67a0de.c1191","wires":[["13ee6f1d.03ba61"]]},{"id":"87fca876.3556d8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":912.8571891784668,"y":1090.2380962371826,"z":"5b67a0de.c1191","wires":[[]]},{"id":"13ee6f1d.03ba61","type":"get-resource","name":"get-resource instance group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n  resource=\"instance-groups\" \n  key=\"instance-group.instance-group-function = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function\n    AND instance-group.instance-group-type = 'L3-NETWORK'\"\n  pfx='aai.instance-group' local-only='false' >\n\n","comments":"","outputs":1,"x":982.0238723754883,"y":1161.9047365188599,"z":"5b67a0de.c1191","wires":[["718f3db5.71b6e4"]]},{"id":"718f3db5.71b6e4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1183.690502166748,"y":1162.7381105422974,"z":"5b67a0de.c1191","wires":[["71308ae6.49d8c4"]]},{"id":"8ee09b6d.6b7648","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1333.6904907226562,"y":1361.0716438293457,"z":"5b67a0de.c1191","wires":[["e824533b.f1a97","33645ae3.fb2c56"]]},{"id":"3da2c63e.60caaa","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1823.6904106140137,"y":1307.7381982803345,"z":"5b67a0de.c1191","wires":[["262889ce.11f6b6","27e1e4c.0d3421c","70154422.eceb0c"]]},{"id":"33645ae3.fb2c56","type":"for","name":"for each network-instance-group","xml":"<for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":1533.6904220581055,"y":1416.071533203125,"z":"5b67a0de.c1191","wires":[["2d035f6f.76a97"]]},{"id":"2d035f6f.76a97","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":1838.6902618408203,"y":1416.0715789794922,"z":"5b67a0de.c1191","wires":[["3d2e877b.9d4ba8"]]},{"id":"3d2e877b.9d4ba8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2060.357032775879,"y":1414.7383575439453,"z":"5b67a0de.c1191","wires":[["9348b4f3.6b18a8"]]},{"id":"9348b4f3.6b18a8","type":"for","name":"for each network","xml":"<for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\n","comments":"","outputs":1,"x":2216.0713691711426,"y":1413.452483177185,"z":"5b67a0de.c1191","wires":[["7e561649.5ff568"]]},{"id":"7e561649.5ff568","type":"set","name":"clear vlan-tag-id and set network-status to unassigned","xml":"<set>\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\n  value='' />\n<parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\n  value='unassigned' />\n","comments":"","x":2527.499801635742,"y":1412.0239458084106,"z":"5b67a0de.c1191","wires":[]},{"id":"71308ae6.49d8c4","type":"for","name":"for each returned instance-group","xml":"<for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\n","comments":"","outputs":1,"x":1407.1905059814453,"y":1159.7381143569946,"z":"5b67a0de.c1191","wires":[["e8cd59c1.f78268"]]},{"id":"e8cd59c1.f78268","type":"for","name":"for each relationship","xml":"<for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1658.8571472167969,"y":1158.7381134033203,"z":"5b67a0de.c1191","wires":[["4421cf44.a8694"]]},{"id":"4421cf44.a8694","type":"for","name":"for each relationship-data","xml":"<for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":1885.5238189697266,"y":1158.0714874267578,"z":"5b67a0de.c1191","wires":[["b68ab651.5c5668"]]},{"id":"b68ab651.5c5668","type":"switchNode","name":"switch relationship-key == service-instance.service-instance-id","xml":"<switch test=\"`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\n  == 'service-instance.service-instance-id'`\">\n","comments":"","outputs":1,"x":2243.857406616211,"y":1158.071406364441,"z":"5b67a0de.c1191","wires":[["c36caaa6.259718"]]},{"id":"c36caaa6.259718","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2540.5238647460938,"y":1158.0714387893677,"z":"5b67a0de.c1191","wires":[["143545fd.16713a"]]},{"id":"143545fd.16713a","type":"switchNode","name":"switch relationship-value == this service-instance-id","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\n  == $service-data.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":2805.5236892700195,"y":1158.0714082717896,"z":"5b67a0de.c1191","wires":[["d8dc66f3.86a4a8"]]},{"id":"d8dc66f3.86a4a8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3065.5236587524414,"y":1158.0713987350464,"z":"5b67a0de.c1191","wires":[["8ee09b6d.6b7648"]]},{"id":"f8285267.508dc","type":"for","name":"for each vm-type","xml":"<for silentFailure='true' index='vm-type-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":493.6904602050781,"y":1508.4850826263428,"z":"5b67a0de.c1191","wires":[["aaba4d09.53267"]]},{"id":"aaba4d09.53267","type":"for","name":"for each vnfc","xml":"<for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":670.3572006225586,"y":1507.8662776947021,"z":"5b67a0de.c1191","wires":[["bbf5185b.cb6e88"]]},{"id":"bbf5185b.cb6e88","type":"save","name":"delete vnfc in A&AI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"vnfc\"\n   key=\"vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name\">\n","comments":"","outputs":1,"x":855.119026184082,"y":1507.0566759109497,"z":"5b67a0de.c1191","wires":[[]]},{"id":"7835733b.e5fecc","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1057.142837524414,"y":724.2857279777527,"z":"5b67a0de.c1191","wires":[]}]
\ No newline at end of file
index bc4869c..1a37064 100644 (file)
@@ -1,271 +1 @@
-[
-    {
-        "id": "95a3ee2.905f31",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 98.33332824707031,
-        "y": 85,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "cb0de0b2.53b5e"
-            ]
-        ]
-    },
-    {
-        "id": "cb0de0b2.53b5e",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 173.61903381347656,
-        "y": 125.23811149597168,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "88f9b16e.fd717"
-            ]
-        ]
-    },
-    {
-        "id": "88f9b16e.fd717",
-        "type": "method",
-        "name": "method vf-module-topology-operation",
-        "xml": "<method rpc='vf-module-topology-operation' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 187.76195526123047,
-        "y": 164.9999942779541,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "cc0d87ea.42e588"
-            ]
-        ]
-    },
-    {
-        "id": "504658a3.49bd28",
-        "type": "comment",
-        "name": "vf-module-topology-operation",
-        "info": "",
-        "comments": "",
-        "x": 492.67818450927734,
-        "y": 32.58634376525879,
-        "z": "6872ec11.8012f4",
-        "wires": []
-    },
-    {
-        "id": "cc0d87ea.42e588",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 161.16670989990234,
-        "y": 349.36017322540283,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "fa856f03.28331",
-                "7676bb7a.aad3e4",
-                "ed140240.696ee"
-            ]
-        ]
-    },
-    {
-        "id": "fa856f03.28331",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "comments": "",
-        "x": 453.3333320617676,
-        "y": 531.1909055709839,
-        "z": "6872ec11.8012f4",
-        "wires": []
-    },
-    {
-        "id": "7676bb7a.aad3e4",
-        "type": "switchNode",
-        "name": "switch svc-action",
-        "xml": "<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 460.9047088623047,
-        "y": 367.5714159011841,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "865715e6.66c8a8",
-                "60defca7.7eed64",
-                "e80f4202.f64da",
-                "933b1870.467508",
-                "2ee18070.6515e"
-            ]
-        ]
-    },
-    {
-        "id": "865715e6.66c8a8",
-        "type": "outcome",
-        "name": "assign",
-        "xml": "<outcome value='assign'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 673.7142486572266,
-        "y": 292.85723400115967,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "176e8d1f.b28273"
-            ]
-        ]
-    },
-    {
-        "id": "60defca7.7eed64",
-        "type": "outcome",
-        "name": "unassign",
-        "xml": "<outcome value='unassign'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 682.0952339172363,
-        "y": 439.0479259490967,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "b794ebfe.90b468"
-            ]
-        ]
-    },
-    {
-        "id": "933b1870.467508",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 673.8094635009766,
-        "y": 488.57139110565186,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "65cfc979.37f8c8"
-            ]
-        ]
-    },
-    {
-        "id": "65cfc979.37f8c8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
-        "comments": "",
-        "x": 857.9999084472656,
-        "y": 488.57145595550537,
-        "z": "6872ec11.8012f4",
-        "wires": []
-    },
-    {
-        "id": "ed140240.696ee",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:validate-vf-module-input",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 583.4166107177734,
-        "y": 242.3810567855835,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "176e8d1f.b28273",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-assign",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1035.8571014404297,
-        "y": 292.4286947250366,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "d080b6cc.baf0a8",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1047.8570594787598,
-        "y": 389.0953378677368,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "b794ebfe.90b468",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-unassign",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1042.190330505371,
-        "y": 438.7620573043823,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "e80f4202.f64da",
-        "type": "outcome",
-        "name": "deactivate",
-        "xml": "<outcome value='deactivate'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 686.1903266906738,
-        "y": 389.7620153427124,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "d080b6cc.baf0a8"
-            ]
-        ]
-    },
-    {
-        "id": "6dfc037a.3d846c",
-        "type": "call",
-        "name": "call GENERIC-RESOURCE-API:vf-module-topology-operation-activate",
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 1048.3333053588867,
-        "y": 339.9999837875366,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "2ee18070.6515e",
-        "type": "outcome",
-        "name": "activate",
-        "xml": "<outcome value='activate'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 678.3332710266113,
-        "y": 340.6666650772095,
-        "z": "6872ec11.8012f4",
-        "wires": [
-            [
-                "6dfc037a.3d846c"
-            ]
-        ]
-    }
-]
+[{"id":"aac134ec.6cf1b8","type":"dgstart","name":"DGSTART","outputs":1,"x":130,"y":85,"z":"e4792a03.590918","wires":[["937a93d5.41f8b"]]},{"id":"937a93d5.41f8b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":243.28570556640625,"y":125.23811149597168,"z":"e4792a03.590918","wires":[["1ff0b858.8b6048"]]},{"id":"1ff0b858.8b6048","type":"method","name":"method vf-module-topology-operation","xml":"<method rpc='vf-module-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":217.42862701416016,"y":164.9999942779541,"z":"e4792a03.590918","wires":[["e6e0449c.e0ce68"]]},{"id":"b858ba31.1d36a8","type":"comment","name":"vf-module-topology-operation","info":"","comments":"","x":524.344856262207,"y":32.58634376525879,"z":"e4792a03.590918","wires":[]},{"id":"e6e0449c.e0ce68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":199.50003814697266,"y":404.3601722717285,"z":"e4792a03.590918","wires":[["6a5a06d.b6909f8","5dfb397c.6005b8","b60fc0ca.3f1f1"]]},{"id":"6a5a06d.b6909f8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":485.0000305175781,"y":577.8575611114502,"z":"e4792a03.590918","wires":[]},{"id":"5dfb397c.6005b8","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":495.9046401977539,"y":402.57139682769775,"z":"e4792a03.590918","wires":[["3f3819ab.205506","c0da133d.5bf54","dc742571.a62c58","b0109a9a.d288c8","2db6534f.dfd25c","69657262.5b917c"]]},{"id":"3f3819ab.205506","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":705.3809204101562,"y":292.85723400115967,"z":"e4792a03.590918","wires":[["bbd51bfa.9a57d8"]]},{"id":"c0da133d.5bf54","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":713.761905670166,"y":439.0479259490967,"z":"e4792a03.590918","wires":[["a83fc83c.53eca8"]]},{"id":"b0109a9a.d288c8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":705.4761619567871,"y":535.2380466461182,"z":"e4792a03.590918","wires":[["fc77d9ee.2a5968"]]},{"id":"fc77d9ee.2a5968","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":899.6665878295898,"y":535.238115310669,"z":"e4792a03.590918","wires":[]},{"id":"b60fc0ca.3f1f1","type":"call","name":"call GENERIC-RESOURCE-API:validate-vf-module-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\n","comments":"","outputs":1,"x":615.0832824707031,"y":242.3810567855835,"z":"e4792a03.590918","wires":[[]]},{"id":"bbd51bfa.9a57d8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1077.523754119873,"y":292.4286985397339,"z":"e4792a03.590918","wires":[[]]},{"id":"80ccbb30.d5a208","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1089.5237121582031,"y":389.0953416824341,"z":"e4792a03.590918","wires":[[]]},{"id":"a83fc83c.53eca8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1083.8569831848145,"y":438.7620611190796,"z":"e4792a03.590918","wires":[[]]},{"id":"dc742571.a62c58","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":717.8569984436035,"y":389.7620153427124,"z":"e4792a03.590918","wires":[["80ccbb30.d5a208"]]},{"id":"cfe9d851.6e01b8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1081.99995803833,"y":339.9999876022339,"z":"e4792a03.590918","wires":[[]]},{"id":"2db6534f.dfd25c","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":709.999942779541,"y":340.6666650772095,"z":"e4792a03.590918","wires":[["cfe9d851.6e01b8"]]},{"id":"69657262.5b917c","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":728.3333206176758,"y":486.6666555404663,"z":"e4792a03.590918","wires":[["2b822e27.0073f2"]]},{"id":"2b822e27.0073f2","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-operation-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1097.4283905029297,"y":486.38079166412354,"z":"e4792a03.590918","wires":[[]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.json
new file mode 100755 (executable)
index 0000000..93b247d
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"c7e145ff.4a2448","type":"dgstart","name":"DGSTART","outputs":1,"x":117.14286041259766,"y":78.12794303894043,"z":"f8623c76.ed22f","wires":[["4d645b04.22fa54"]]},{"id":"4d645b04.22fa54","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":230.4285659790039,"y":118.36605453491211,"z":"f8623c76.ed22f","wires":[["8e54a82b.88a9a8"]]},{"id":"8e54a82b.88a9a8","type":"method","name":"method vf-module-topology-vlan-tagging-activate","xml":"<method rpc='vf-module-topology-vlan-tagging-activate' mode='sync'>\n","comments":"","outputs":1,"x":240.2381591796875,"y":159.79461288452148,"z":"f8623c76.ed22f","wires":[["128f0aa3.631805"]]},{"id":"23993fe5.d3beb","type":"comment","name":"vf-module-topology-vlan-tagging-activate","info":"","comments":"","x":511.4877166748047,"y":25.71428680419922,"z":"f8623c76.ed22f","wires":[]},{"id":"128f0aa3.631805","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":217.0713119506836,"y":441.8091812133789,"z":"f8623c76.ed22f","wires":[["4de83b3e.7339e4","314c4136.fad54e","994f5fb2.d428e","bfec4006.e78cc","3f5e80f8.43f3d"]]},{"id":"1bd3656.2bf729b","type":"save","name":"custom query: get network data","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.aai.network\">\n      <parameter name=\"start[0]\" value=\"`'/cloud-infrastructure/cloud-regions/cloud-region/' + $prop.cloud-region.cloud-owner + '/' + $tmp.cloud-region-id`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/network-name-fromNetwork-role?networkRole='  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`\" /> \n","comments":"","outputs":1,"x":1313.499927520752,"y":911.5710401535034,"z":"f8623c76.ed22f","wires":[["94461ef4.7a565","4d42768a.5be4e8"]]},{"id":"4de83b3e.7339e4","type":"set","name":"copy data to tmp.vlan-vnfc-instance-groups.","xml":"<set>\n<parameter name='tmp.vlan-vnfc-instance-groups.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.`' />\n","comments":"","x":567.7855682373047,"y":415.1425132751465,"z":"f8623c76.ed22f","wires":[]},{"id":"314c4136.fad54e","type":"for","name":"for each vlan-vnfc-instance-group","xml":"<for index='vvig-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\n","comments":"","outputs":1,"x":535.1665649414062,"y":565.380690574646,"z":"f8623c76.ed22f","wires":[["bc7425fd.85f968"]]},{"id":"ea000c2b.93031","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1077.547607421875,"y":891.3329725265503,"z":"f8623c76.ed22f","wires":[["82881598.cb97f8","480bafe1.fdbc1","1525986d.5a8cd8","5fd8515d.3ee35","db226bb9.e68798","1bd3656.2bf729b","3bcd4a19.f3bd46","e25841f.c6162c","fa1a8ecb.b1f77","b4588ad2.5d2198","f1a8d7b0.c91308"]]},{"id":"82881598.cb97f8","type":"switchNode","name":"switch vnf-sub-interface-groups_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`'>\n","comments":"","outputs":1,"x":1343.7381286621094,"y":546.8091764450073,"z":"f8623c76.ed22f","wires":[["d09111f.8af6ef"]]},{"id":"d09111f.8af6ef","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1572.3096389770508,"y":545.3806657791138,"z":"f8623c76.ed22f","wires":[["d38a1148.34416"]]},{"id":"d38a1148.34416","type":"set","name":"set vnf-sub-interface-groups_length to 0","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\n  value='0' />\n","comments":"","x":1809.452407836914,"y":545.3805799484253,"z":"f8623c76.ed22f","wires":[]},{"id":"924e996c.d0bb48","type":"set","name":"set vsig-index to the last entry","xml":"<set>\n<parameter name='vsig-index'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' />\n","comments":"","x":1758.9762649536133,"y":746.9044075012207,"z":"f8623c76.ed22f","wires":[]},{"id":"bc7425fd.85f968","type":"switchNode","name":"switch vnfc_length","xml":"<switch test='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`'>\n","comments":"","outputs":1,"x":778.0236701965332,"y":563.9521369934082,"z":"f8623c76.ed22f","wires":[["abb1fcfc.281d2","1de529d8.736ff6","26174c8d.8d4ce4"]]},{"id":"abb1fcfc.281d2","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":947.0713443756104,"y":522.9997215270996,"z":"f8623c76.ed22f","wires":[["af404756.1502e8"]]},{"id":"1de529d8.736ff6","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":947.0712356567383,"y":568.7139835357666,"z":"f8623c76.ed22f","wires":[["af404756.1502e8"]]},{"id":"26174c8d.8d4ce4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":928.9761123657227,"y":891.3331460952759,"z":"f8623c76.ed22f","wires":[["ea000c2b.93031"]]},{"id":"af404756.1502e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1071.35693359375,"y":544.428243637085,"z":"f8623c76.ed22f","wires":[[]]},{"id":"9e16e25c.b3dbd","type":"set","name":"set vnf-sub-interface-groups data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role'\n  value='`$parent-port-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfc-instance-group-function'\n  value='`$vnfc-instance-group-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].network-instance-group-function'\n  value='`$network-instance-group-function`' />\n","comments":"","x":1765.8808135986328,"y":794.999566078186,"z":"f8623c76.ed22f","wires":[]},{"id":"6c761169.81249","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":806.6666259765625,"y":231.66665649414062,"z":"f8623c76.ed22f","wires":[["bb64e2d0.1df7e"]]},{"id":"bb64e2d0.1df7e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":979.2380752563477,"y":232.61893367767334,"z":"f8623c76.ed22f","wires":[["b860ab4a.fcb248"]]},{"id":"b860ab4a.fcb248","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"Failed call to AAI custom query: cloud-region-fromVnf\" />\n","comments":"","outputs":1,"x":1192.2381057739258,"y":232.6190414428711,"z":"f8623c76.ed22f","wires":[[]]},{"id":"994f5fb2.d428e","type":"save","name":"custom query: get cloud region from vnf","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource&amp;nodesOnly=true'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.aai.vnf\">\n<parameter name=\"start[0]\" value=\"`'/network/generic-vnfs/generic-vnf/' + $vf-module-topology-operation-input.vnf-information.vnf-id `\" />\n<parameter name=\"start_length\" value=\"1\" />\n<parameter name=\"query\" value=\"query/cloud-region-fromVnf\" /> \n","comments":"","outputs":1,"x":562.09521484375,"y":253.66653442382812,"z":"f8623c76.ed22f","wires":[["6c761169.81249","a7d24b92.b65f08"]]},{"id":"a7d24b92.b65f08","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":820.3809204101562,"y":282.5237121582031,"z":"f8623c76.ed22f","wires":[["dd9771e5.d43e1"]]},{"id":"dd9771e5.d43e1","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":984.6666297912598,"y":281.09519386291504,"z":"f8623c76.ed22f","wires":[["98ce4ec2.8c32"]]},{"id":"98ce4ec2.8c32","type":"configure","name":"set error-message","xml":"<set>\n<parameter name=\"error-message\" value=\"No cloud region returned from AAI: cloud-region-fromVnf\" />\n","comments":"","outputs":1,"x":1185.2380905151367,"y":280.80951499938965,"z":"f8623c76.ed22f","wires":[[]]},{"id":"bfec4006.e78cc","type":"for","name":"for each returned result","xml":"<for index='result-idx' start='0' end='`$tmp.aai.vnf.results_length`' >\n","comments":"","outputs":1,"x":510.71429443359375,"y":346.19032764434814,"z":"f8623c76.ed22f","wires":[["bcb365c9.75cbe8"]]},{"id":"bcb365c9.75cbe8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":719.0475921630859,"y":346.19032764434814,"z":"f8623c76.ed22f","wires":[["4a45cd40.974cd4"]]},{"id":"4a45cd40.974cd4","type":"switchNode","name":"switch cloud-region-id","xml":"<switch test='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\n","comments":"","outputs":1,"x":940.7145385742188,"y":346.1904401779175,"z":"f8623c76.ed22f","wires":[["3d6615d0.1256ba","b0a77184.8d1c"]]},{"id":"3d6615d0.1256ba","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1132.3811073303223,"y":326.19039821624756,"z":"f8623c76.ed22f","wires":[["abb75880.9fd958"]]},{"id":"b0a77184.8d1c","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1130.7143783569336,"y":365.9524450302124,"z":"f8623c76.ed22f","wires":[["68553cd5.256e34"]]},{"id":"abb75880.9fd958","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1274.0477809906006,"y":326.19043922424316,"z":"f8623c76.ed22f","wires":[[]]},{"id":"68553cd5.256e34","type":"set","name":"set tmp.cloud-region-id","xml":"<set>\n<parameter name='tmp.cloud-region-id' value='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\n","comments":"","x":1320.7144622802734,"y":366.1904640197754,"z":"f8623c76.ed22f","wires":[]},{"id":"4d42768a.5be4e8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1526.666690826416,"y":934.9999370574951,"z":"f8623c76.ed22f","wires":[["fd537148.a0b2f"]]},{"id":"94461ef4.7a565","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1518.3333549499512,"y":886.666600227356,"z":"f8623c76.ed22f","wires":[["fd537148.a0b2f"]]},{"id":"fd537148.a0b2f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get network data for network role '\n  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`\" />\n","comments":"","x":1689.9999046325684,"y":906.6666431427002,"z":"f8623c76.ed22f","wires":[]},{"id":"3bcd4a19.f3bd46","type":"set","name":"set network-name","xml":"<set>\n<parameter name='network-name' value='`$tmp.aai.network.results[0].l3-network.network-name`' />\n","comments":"","x":1271.6666374206543,"y":988.3332920074463,"z":"f8623c76.ed22f","wires":[]},{"id":"e25841f.c6162c","type":"for","name":"for each source vnfc","xml":"<for index='src-vnfc-index' start='0'\n  end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":1276.6664733886719,"y":1316.6666355133057,"z":"f8623c76.ed22f","wires":[["677e7d2a.343fc4"]]},{"id":"677e7d2a.343fc4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1471.666519165039,"y":1314.9999284744263,"z":"f8623c76.ed22f","wires":[["f961adcb.1c2af","9397b293.f8635"]]},{"id":"480bafe1.fdbc1","type":"set","name":"set keys","xml":"<set>\n<parameter name='parent-port-role'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vnic-interface-role`' />\n<parameter name='vnfc-instance-group-function'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function`' />\n<parameter name='network-instance-group-function'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`' />\n","comments":"","x":1248.333381652832,"y":598.3333168029785,"z":"f8623c76.ed22f","wires":[]},{"id":"1525986d.5a8cd8","type":"set","name":"set vsig-index to -1","xml":"<set>\n<parameter name='vsig-index' value='-1' />\n","comments":"","x":1283.3334274291992,"y":644.9999847412109,"z":"f8623c76.ed22f","wires":[]},{"id":"5fd8515d.3ee35","type":"for","name":"for each existing vnf-sub-interface-group","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' >\n","comments":"","outputs":1,"x":1345.0000076293945,"y":691.6667556762695,"z":"f8623c76.ed22f","wires":[["4fbd326c.a9a0cc"]]},{"id":"4fbd326c.a9a0cc","type":"switchNode","name":"keys match?","xml":"<switch test='`\n  $parent-port-role == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].parent-port-role\n  and $vnfc-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].vnfc-instance-group-function\n  and $network-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].network-instance-group-function\n`'>\n","comments":"","outputs":1,"x":1593.3332748413086,"y":691.6666736602783,"z":"f8623c76.ed22f","wires":[["28761c8c.b18924"]]},{"id":"28761c8c.b18924","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1738.3333206176758,"y":689.9999866485596,"z":"f8623c76.ed22f","wires":[["8436a64.f3e1958"]]},{"id":"8436a64.f3e1958","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1866.6666259765625,"y":688.3333129882812,"z":"f8623c76.ed22f","wires":[["7aff3935.274a78","bbbc8753.39f638"]]},{"id":"7aff3935.274a78","type":"set","name":"set vsig-index","xml":"<set>\n<parameter name='vsig-index' value='`$idx`' />\n","comments":"","x":2009.9998741149902,"y":663.33331823349,"z":"f8623c76.ed22f","wires":[]},{"id":"bbbc8753.39f638","type":"break","name":"break","xml":"<break>\n","comments":"","x":1990.0000801086426,"y":711.666675567627,"z":"f8623c76.ed22f","wires":[]},{"id":"db226bb9.e68798","type":"switchNode","name":"switch vsig-index","xml":"<switch test='`$vsig-index`'>\n","comments":"","outputs":1,"x":1269.9997825622559,"y":796.6666660308838,"z":"f8623c76.ed22f","wires":[["88036190.85c2d"]]},{"id":"88036190.85c2d","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1431.6666221618652,"y":796.6666259765625,"z":"f8623c76.ed22f","wires":[["65e1a06b.40c8d"]]},{"id":"65e1a06b.40c8d","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1556.6664848327637,"y":795.3333034515381,"z":"f8623c76.ed22f","wires":[["924e996c.d0bb48","9e16e25c.b3dbd","634e9705.eebe18"]]},{"id":"634e9705.eebe18","type":"set","name":"increment vnf-sub-interface-groups_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\n  value='`$vsig-index + 1`' />\n","comments":"","x":1796.6666870117188,"y":840.0000333786011,"z":"f8623c76.ed22f","wires":[]},{"id":"fa1a8ecb.b1f77","type":"switchNode","name":"switch dest vnfc_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`'>\n","comments":"","outputs":1,"x":1288.3334197998047,"y":1048.3332529067993,"z":"f8623c76.ed22f","wires":[["820cab8e.b0a978"]]},{"id":"820cab8e.b0a978","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1471.6666259765625,"y":1046.6666259765625,"z":"f8623c76.ed22f","wires":[["c8c6057e.d0ebc8"]]},{"id":"c8c6057e.d0ebc8","type":"set","name":"set dest vnfc_length to 0","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\n  value='0' />\n","comments":"","x":1666.666648864746,"y":1045.0000009536743,"z":"f8623c76.ed22f","wires":[]},{"id":"b4588ad2.5d2198","type":"set","name":"set dest-vnfc-index","xml":"<set>\n<parameter name='dest-vnfc-index'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`' />\n","comments":"","x":1276.6666717529297,"y":1106.6667108535767,"z":"f8623c76.ed22f","wires":[]},{"id":"f961adcb.1c2af","type":"save","name":"custom query: get interfaces","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n      resource=\"custom-query\"\n      key=\"format = 'resource'\"\n      force=\"true\"\n      local-only=\"false\"\n      pfx=\"tmp.aai.interfaces\">\n      <parameter name=\"start[0]\" value=\"`'/network/vnfcs/vnfc/' + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`\" />\n      <parameter name=\"start_length\" value=\"1\" /> \n      <parameter name=\"query\" value=\"`'/query/vserver-l-interfaces-fromVnfc?networkName=' + $network-name`\" /> \n","comments":"","outputs":1,"x":1741.6666564941406,"y":1200.8333911895752,"z":"f8623c76.ed22f","wires":[["cc75fd6f.53ed","8bb0874e.d41028","35031a2.12d7ee6"]]},{"id":"8bb0874e.d41028","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1954.8333435058594,"y":1201.7622365951538,"z":"f8623c76.ed22f","wires":[["9940332d.0af4b"]]},{"id":"cc75fd6f.53ed","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1946.5000076293945,"y":1153.4288997650146,"z":"f8623c76.ed22f","wires":[["36014b65.267994"]]},{"id":"36014b65.267994","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Failed to get interface data for network name '\n  + $network-name\n  + ' and vnfc '\n  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`\" />\n","comments":"","x":2114.83309173584,"y":1152.4290027618408,"z":"f8623c76.ed22f","wires":[]},{"id":"fb0ab57b.9d3938","type":"for","name":"for each result","xml":"<for silentFailure='true' index='idx1' start='0' end='`$tmp.aai.interfaces.results_length`' >\n","comments":"","outputs":1,"x":1844.9999961853027,"y":1390.3332967758179,"z":"f8623c76.ed22f","wires":[["7b84b9a8.a6c2b8"]]},{"id":"7b84b9a8.a6c2b8","type":"switchNode","name":"is this a vserver?","xml":"<switch test='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`'>\n","comments":"","outputs":1,"x":2032.1428489685059,"y":1390.3332891464233,"z":"f8623c76.ed22f","wires":[["d1b3ff59.b9bfb","54274d50.c5b564"]]},{"id":"d1b3ff59.b9bfb","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2199.285739353725,"y":1364.6191155569895,"z":"f8623c76.ed22f","wires":[["47972c2.d2955d4"]]},{"id":"54274d50.c5b564","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2199.2856706891744,"y":1416.0477883475169,"z":"f8623c76.ed22f","wires":[["563e6367.89bc2c"]]},{"id":"9e7e51c.18085b","type":"set","name":"set vserver-id and name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-id'\n  value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-name'\n  value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-name`' />\n","comments":"","x":2514.1667518615723,"y":1366.6667022705078,"z":"f8623c76.ed22f","wires":[]},{"id":"4927e77b.7b0a38","type":"for","name":"for each l-interface","xml":"<for silentFailure='true' index='int-index' start='0'\n  end='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' >\n","comments":"","outputs":1,"x":2495.8334197998047,"y":1456.6667442321777,"z":"f8623c76.ed22f","wires":[["a03b94a5.a12ef8"]]},{"id":"f992641e.69e578","type":"set","name":"set vnic_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic_length'\n  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' />\n","comments":"","x":2485.8332557678223,"y":1411.6666622161865,"z":"f8623c76.ed22f","wires":[]},{"id":"47972c2.d2955d4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2325.83341217041,"y":1363.9999561309814,"z":"f8623c76.ed22f","wires":[[]]},{"id":"563e6367.89bc2c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2324.166576385498,"y":1415.6666536331177,"z":"f8623c76.ed22f","wires":[["9e7e51c.18085b","f992641e.69e578","4927e77b.7b0a38"]]},{"id":"a03b94a5.a12ef8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2657.499927520752,"y":1456.6667051315308,"z":"f8623c76.ed22f","wires":[["da69715f.94b6a","edceb3b0.14efe"]]},{"id":"da69715f.94b6a","type":"set","name":"set vnic-port-id and name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-id'\n  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-name'\n  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-name`' />\n","comments":"","x":2842.5000953674316,"y":1428.3334112167358,"z":"f8623c76.ed22f","wires":[]},{"id":"edceb3b0.14efe","type":"for","name":"for each result","xml":"<for silentFailure='true' index='idx2' start='0' end='`$tmp.aai.interfaces.results_length`' >\n","comments":"","outputs":1,"x":2809.166736602783,"y":1473.333441734314,"z":"f8623c76.ed22f","wires":[["c43c06df.d5c808"]]},{"id":"c43c06df.d5c808","type":"switchNode","name":"is this our interface?","xml":"<switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.interface-id\n  == $tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`'>\n","comments":"","outputs":1,"x":3002.499858856201,"y":1471.666787147522,"z":"f8623c76.ed22f","wires":[["4c0806f5.32a7c8"]]},{"id":"4c0806f5.32a7c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3174.166778564453,"y":1470.0000371932983,"z":"f8623c76.ed22f","wires":[["9f6ae548.e06038"]]},{"id":"3777ff14.c0513","type":"for","name":"for each sub l-interface","xml":"<for silentFailure='true' index='sub-int-index' start='0'\n  end='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' >\n","comments":"","outputs":1,"x":2150.83394241333,"y":1662.5001344680786,"z":"f8623c76.ed22f","wires":[["926fef64.9dec8"]]},{"id":"9f6ae548.e06038","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1975.833396911621,"y":1615.8335447311401,"z":"f8623c76.ed22f","wires":[["3777ff14.c0513","4b6cc5aa.4b4eec"]]},{"id":"b1ec7d5.6bc228","type":"set","name":"set sub-interface_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface_length'\n  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' />\n","comments":"","x":2534.1669960021973,"y":1584.1667928695679,"z":"f8623c76.ed22f","wires":[]},{"id":"926fef64.9dec8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2329.167121887207,"y":1660.8335485458374,"z":"f8623c76.ed22f","wires":[["3ddfbe84.bb2f02","e5e18282.8be47"]]},{"id":"3ddfbe84.bb2f02","type":"set","name":"set sub-interface-port-id and name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-id'\n  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-name'\n  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-name`' />\n","comments":"","x":2539.1670303344727,"y":1630.833152770996,"z":"f8623c76.ed22f","wires":[]},{"id":"e5e18282.8be47","type":"for","name":"for each result","xml":"<for silentFailure='true' index='idx3' start='0' end='`$tmp.aai.interfaces.results_length`' >\n","comments":"","outputs":1,"x":2482.500217437744,"y":1684.1666793823242,"z":"f8623c76.ed22f","wires":[["7cde3c9c.a7b444"]]},{"id":"7cde3c9c.a7b444","type":"switchNode","name":"is this our sub-interface?","xml":"<switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.interface-id\n  == $tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`'>\n","comments":"","outputs":1,"x":2687.4999809265137,"y":1682.500054359436,"z":"f8623c76.ed22f","wires":[["2e797ab5.331e56"]]},{"id":"2e797ab5.331e56","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2870.833484649658,"y":1680.833306312561,"z":"f8623c76.ed22f","wires":[["beeb2940.977e28"]]},{"id":"beeb2940.977e28","type":"switchNode","name":"switch vlan-interface","xml":"<switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\n","comments":"","outputs":1,"x":3044.1667442321777,"y":1680.8334283828735,"z":"f8623c76.ed22f","wires":[["a886aaa5.a50a88","26296b80.f2c3a4"]]},{"id":"a886aaa5.a50a88","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3215.833324432373,"y":1654.1667070388794,"z":"f8623c76.ed22f","wires":[["1aa5dd41.0ac273"]]},{"id":"26296b80.f2c3a4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3215.8332557678223,"y":1705.5953798294067,"z":"f8623c76.ed22f","wires":[["ec1afc13.71ed"]]},{"id":"1aa5dd41.0ac273","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3350.833667755127,"y":1652.5000944137573,"z":"f8623c76.ed22f","wires":[[]]},{"id":"ec1afc13.71ed","type":"for","name":"for each result","xml":"<for silentFailure='true' index='idx4' start='0' end='`$tmp.aai.interfaces.results_length`' >\n","comments":"","outputs":1,"x":3370.833324432373,"y":1704.833333015442,"z":"f8623c76.ed22f","wires":[["a14caea3.219c2"]]},{"id":"a14caea3.219c2","type":"switchNode","name":"is this our vlan-interface?","xml":"<switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-interface\n  == $tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\n","comments":"","outputs":1,"x":3577.5002098083496,"y":1702.5000562667847,"z":"f8623c76.ed22f","wires":[["4560edb.1312014"]]},{"id":"4560edb.1312014","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3765.833324432373,"y":1700.833333015442,"z":"f8623c76.ed22f","wires":[["14852af5.9d3e25"]]},{"id":"c6c2c72f.3a89a8","type":"set","name":"set vlan-id-inner","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.lower-tag-id'\n  value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`' />\n","comments":"","x":4387.499423980713,"y":1767.5001745224,"z":"f8623c76.ed22f","wires":[]},{"id":"8bad2f56.15d21","type":"set","name":"increment dest-vnfc-index","xml":"<set>\n<parameter name='dest-vnfc-index' value='`$dest-vnfc-index + 1`' />\n","comments":"","x":1882.5000953674316,"y":1721.6665964126587,"z":"f8623c76.ed22f","wires":[]},{"id":"f1a8d7b0.c91308","type":"set","name":"set dest vnfc_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\n  value='`$dest-vnfc-index`' />\n","comments":"","x":1264.9999313354492,"y":1651.666732788086,"z":"f8623c76.ed22f","wires":[]},{"id":"4b6cc5aa.4b4eec","type":"switchNode","name":"switch sub-interface_length","xml":"<switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`'>\n","comments":"","outputs":1,"x":2164.166576385498,"y":1566.6667928695679,"z":"f8623c76.ed22f","wires":[["47257f1c.167e7","a5bf4aca.ad6b78"]]},{"id":"47257f1c.167e7","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2355.8335666656494,"y":1538.333264350891,"z":"f8623c76.ed22f","wires":[["3d39a9b5.2adb26"]]},{"id":"a5bf4aca.ad6b78","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2355.833652496338,"y":1584.7619524002075,"z":"f8623c76.ed22f","wires":[["b1ec7d5.6bc228"]]},{"id":"3d39a9b5.2adb26","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2485.8334980010986,"y":1536.6666955947876,"z":"f8623c76.ed22f","wires":[[]]},{"id":"14852af5.9d3e25","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3895.833148956299,"y":1700.0000495910645,"z":"f8623c76.ed22f","wires":[["c14b73d3.1ad8","7c3e4161.6f73d"]]},{"id":"c14b73d3.1ad8","type":"switchNode","name":"switch vlan-id-outer","xml":"<switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`'>\n","comments":"","outputs":1,"x":4064.1665687561035,"y":1649.999966621399,"z":"f8623c76.ed22f","wires":[["e8f9eac.741b218","725f703b.5cee3"]]},{"id":"7c3e4161.6f73d","type":"switchNode","name":"switch vlan-id-inner","xml":"<switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`'>\n","comments":"","outputs":1,"x":4059.1664085388184,"y":1739.999888420105,"z":"f8623c76.ed22f","wires":[["8923abb6.2dbd48","62b2ad9b.0fa3b4"]]},{"id":"e8f9eac.741b218","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4232.499828338623,"y":1623.3332796096802,"z":"f8623c76.ed22f","wires":[["61becc28.cce2e4"]]},{"id":"725f703b.5cee3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4232.499759674072,"y":1674.7619524002075,"z":"f8623c76.ed22f","wires":[["a88547d7.d958c8"]]},{"id":"8923abb6.2dbd48","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4230.833324432373,"y":1716.6666536331177,"z":"f8623c76.ed22f","wires":[["ca757dd6.520e8"]]},{"id":"62b2ad9b.0fa3b4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4230.833255767822,"y":1768.095326423645,"z":"f8623c76.ed22f","wires":[["c6c2c72f.3a89a8"]]},{"id":"a88547d7.d958c8","type":"set","name":"set vlan-id-outer","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.upper-tag-id'\n  value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`' />\n","comments":"","x":4389.166744232178,"y":1673.9998865127563,"z":"f8623c76.ed22f","wires":[]},{"id":"61becc28.cce2e4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4365.833080291748,"y":1620.0000276565552,"z":"f8623c76.ed22f","wires":[[]]},{"id":"ca757dd6.520e8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4365.833080291748,"y":1716.6666536331177,"z":"f8623c76.ed22f","wires":[[]]},{"id":"3f5e80f8.43f3d","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":488.3333320617676,"y":1696.6666345596313,"z":"f8623c76.ed22f","wires":[]},{"id":"9940332d.0af4b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2095.0000019073486,"y":1201.6666316986084,"z":"f8623c76.ed22f","wires":[[]]},{"id":"35031a2.12d7ee6","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1950.0000305175781,"y":1250.0000190734863,"z":"f8623c76.ed22f","wires":[["ddf754e6.0660b8"]]},{"id":"ddf754e6.0660b8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1687.5000228881836,"y":1545.0000228881836,"z":"f8623c76.ed22f","wires":[["fb0ab57b.9d3938","8bad2f56.15d21"]]},{"id":"9397b293.f8635","type":"set","name":"set vnfc-name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnfc-name'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`' />\n","comments":"","x":1698.3333168029785,"y":1123.3332967758179,"z":"f8623c76.ed22f","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.json
new file mode 100755 (executable)
index 0000000..3a32d71
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"84739dbd.562b4","type":"dgstart","name":"DGSTART","outputs":1,"x":120,"y":95,"z":"b47e4028.e9a92","wires":[["fa00f3bb.df6cd"]]},{"id":"fa00f3bb.df6cd","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":233.85713577270508,"y":134.80953788757324,"z":"b47e4028.e9a92","wires":[["17b1d2c2.856c2d"]]},{"id":"17b1d2c2.856c2d","type":"method","name":"method vf-module-topology-vlan-tagging-assign","xml":"<method rpc='vf-module-topology-vlan-tagging-assign' mode='sync'>\n","comments":"","outputs":1,"x":237.76195526123047,"y":176.66666316986084,"z":"b47e4028.e9a92","wires":[["b7a3821f.fc675"]]},{"id":"122d37e0.d78888","type":"comment","name":"vf-module-topology-vlan-tagging-assign","info":"","comments":"","x":525.3210983276367,"y":37.97569942474365,"z":"b47e4028.e9a92","wires":[]},{"id":"73a704cf.e221cc","type":"get-resource","name":"get-resource group uuids","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select distinct vmvm.vm_type, rg.group_uuid from VF_MODULE_TO_VFC_MAPPING vmvm, VFC_MODEL vm,\n  RESOURCE_GROUP_TO_TARGET_NODE_MAPPING rgm, RESOURCE_GROUP rg\n\twhere vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tand vmvm.vfc_customization_uuid = vm.customization_uuid\n\tand vmvm.vm_type = vm.vm_type\n\tand vm.uuid = rgm.target_node_uuid\n\tand rgm.target_type = 'CVFC'\n\tand rgm.group_uuid = rg.group_uuid\"\n  pfx='db.group-uuids[]'>\n\n","comments":"","outputs":1,"x":413.0000457763672,"y":1503.3333415985107,"z":"b47e4028.e9a92","wires":[["4b097e30.86422","1268ca71.5e3336","22ed74ea.6b1b1c"]]},{"id":"4b097e30.86422","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":662.1190910339355,"y":1413.714147567749,"z":"b47e4028.e9a92","wires":[["881c6e66.6f00e"]]},{"id":"1268ca71.5e3336","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":667.0238304138184,"y":1489.3331089019775,"z":"b47e4028.e9a92","wires":[["12fdec15.45d1b4"]]},{"id":"afd16428.1e4408","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error getting group uuids from DB\" />\n","comments":"","x":976.6667442321777,"y":1413.6666221618652,"z":"b47e4028.e9a92","wires":[]},{"id":"22ed74ea.6b1b1c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":665.5718688964844,"y":1571.5716552734375,"z":"b47e4028.e9a92","wires":[["dc17103b.405dd"]]},{"id":"2e66316f.2aaede","type":"set","name":"set tmp.vm-type_length","xml":"<set>\n<parameter name='tmp.vm-type_length' value='`$db.vm-type-inst-func_length`' />\n","comments":"","x":4934.214881896973,"y":731.5960290431976,"z":"b47e4028.e9a92","wires":[]},{"id":"9616311b.542ae","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4711.357864379883,"y":884.1675074100494,"z":"b47e4028.e9a92","wires":[["2e66316f.2aaede","d2ae3323.a20bc","2c14cb5b.c7d874","f2e246cf.107018"]]},{"id":"d2ae3323.a20bc","type":"for","name":"for each db vm-type","xml":"<for index='vm-type-index' start='0' end='`$db.vm-type-inst-func_length`' >\n","comments":"","outputs":1,"x":4922.215019226074,"y":763.024307012558,"z":"b47e4028.e9a92","wires":[["50b30664.abbed8"]]},{"id":"50b30664.abbed8","type":"set","name":"set tmp.vm-type[].vm-type and instance-group-function","xml":"<set>\n<parameter name='tmp.vm-type[$vm-type-index].vm-type' value='`$db.vm-type-inst-func[$vm-type-index].vm-type`' />\n<parameter name='tmp.vm-type[$vm-type-index].instance-group-function' value='`$db.vm-type-inst-func[$vm-type-index].attribute-value`' />\n","comments":"","x":5236.500591278076,"y":763.0245864391327,"z":"b47e4028.e9a92","wires":[]},{"id":"2c14cb5b.c7d874","type":"for","name":"for each instance group","xml":"<for index='ig-index' start='0' end='`$tmp.vm-type_length`' >\n","comments":"","outputs":1,"x":4936.453136444092,"y":1053.548066854477,"z":"b47e4028.e9a92","wires":[["1c6f5b80.b9f625"]]},{"id":"1c6f5b80.b9f625","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5138.453170776367,"y":1052.1194140911102,"z":"b47e4028.e9a92","wires":[["3b0c05dc.2414da","c88a2d60.323cb","688d429e.2c231c","a9d55515.96d218","44b58669.183b78","61275292.ea0b2c","daa6fa1b.194cd8","a65f8578.358528","9572812.43b0d8","28ac4224.2be28e"]]},{"id":"8c47a6b5.66f338","type":"comment","name":"TODO: retrieve instance-group from A&AI","info":"","comments":"","x":5463.643356323242,"y":1127.3103320598602,"z":"b47e4028.e9a92","wires":[]},{"id":"e2862d21.e8842","type":"set","name":"set vlan-vnfc-instance-group data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-id'\n  value=\"bgb-net-inst-group-1\" />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-function'\n  value=\"`$tmp.vm-type[$ig-index].instance-group-function`\" />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnf-id'\n  value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":5837.881393432617,"y":1171.8337695598602,"z":"b47e4028.e9a92","wires":[]},{"id":"f2e246cf.107018","type":"set","name":"set vlan-vnfc-instance-group_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length'\n  value='`$tmp.vm-type_length`' />\n","comments":"","x":4969.50065612793,"y":813.1672656536102,"z":"b47e4028.e9a92","wires":[]},{"id":"a9d55515.96d218","type":"set","name":"set vnfc_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' />\n","comments":"","x":5382.833786010742,"y":1519.8337695598602,"z":"b47e4028.e9a92","wires":[]},{"id":"881c6e66.6f00e","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":812.9999809265137,"y":1413.3331279754639,"z":"b47e4028.e9a92","wires":[["afd16428.1e4408"]]},{"id":"44b58669.183b78","type":"for","name":"for each vnfc","xml":"<for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":5369.5003662109375,"y":1624.1667964458466,"z":"b47e4028.e9a92","wires":[["9baf3641.f4fbc8"]]},{"id":"3b0c05dc.2414da","type":"set","name":"set found-vm-type to false","xml":"<set>\n<parameter name='found-vm-type' value='false' />\n","comments":"","x":5413.500411987305,"y":1312.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"c88a2d60.323cb","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":5387.500411987305,"y":1366.1667773723602,"z":"b47e4028.e9a92","wires":[["742589d9.79f2d8"]]},{"id":"742589d9.79f2d8","type":"switchNode","name":"vm-types match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type\n  == $tmp.vm-type[$ig-index].vm-type`'>\n","comments":"","outputs":1,"x":5587.500411987305,"y":1365.1667773723602,"z":"b47e4028.e9a92","wires":[["cc993dc7.e829a"]]},{"id":"cc993dc7.e829a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5755.500411987305,"y":1364.1667773723602,"z":"b47e4028.e9a92","wires":[["2c85978.0797b68"]]},{"id":"2c85978.0797b68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5911.500411987305,"y":1364.1667773723602,"z":"b47e4028.e9a92","wires":[["c2de66da.adf908","7b235f79.2456"]]},{"id":"c2de66da.adf908","type":"set","name":"set found-vm-type to true","xml":"<set>\n<parameter name='found-vm-type' value='true' />\n","comments":"","x":6129.500411987305,"y":1334.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"7b235f79.2456","type":"break","name":"break","xml":"<break>\n","comments":"","x":6071.500411987305,"y":1384.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"688d429e.2c231c","type":"switchNode","name":"switch found-vm-type","xml":"<switch test='`$found-vm-type`'>\n","comments":"","outputs":1,"x":5401.500411987305,"y":1446.1667773723602,"z":"b47e4028.e9a92","wires":[["5b4e5adb.ebfc74"]]},{"id":"5b4e5adb.ebfc74","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":5585.500411987305,"y":1446.1667773723602,"z":"b47e4028.e9a92","wires":[["463f1ac9.ab06a4"]]},{"id":"463f1ac9.ab06a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5741.500411987305,"y":1446.1667773723602,"z":"b47e4028.e9a92","wires":[["9485f45e.dde5c8","a844387a.824798"]]},{"id":"a844387a.824798","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'AAI provided vm-type ' +\n      $tmp.vm-type[$ig-index].vm-type + ' but that was not found in vf-module-assignments.vms'`\" />\n","comments":"","x":5909.500411987305,"y":1466.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"9485f45e.dde5c8","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":6081.83366394043,"y":1425.8332812786102,"z":"b47e4028.e9a92","wires":[[]]},{"id":"cf61ffc1.46d9f","type":"set","name":"set vnfc name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[$vnfc-index].vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`' />\n","comments":"","x":5735.500457763672,"y":1550.166758298874,"z":"b47e4028.e9a92","wires":[]},{"id":"9baf3641.f4fbc8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5553.500289916992,"y":1623.1667773723602,"z":"b47e4028.e9a92","wires":[["cf61ffc1.46d9f","fb2ba3c9.274db","3d91abff.5eaaa4"]]},{"id":"fb2ba3c9.274db","type":"save","name":"save instance-group relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"instance-group:relationship-list\"\n   key=\"instance-group.id = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"vnfc\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/vnfcs/vnfc/' +\n        $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`\" />\n","comments":"","outputs":1,"x":5793.500335693359,"y":1621.166758298874,"z":"b47e4028.e9a92","wires":[["845c383c.277dc8","8e7375eb.ebbee8"]]},{"id":"845c383c.277dc8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":6013.333679199219,"y":1592.0385024547577,"z":"b47e4028.e9a92","wires":[["39d3f6b9.39218a"]]},{"id":"8e7375eb.ebbee8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":6021.905212402344,"y":1644.657646894455,"z":"b47e4028.e9a92","wires":[["f06696dc.dc5f68"]]},{"id":"61275292.ea0b2c","type":"switchNode","name":"DUMMY switch vm-type","xml":"<switch test='`$tmp.vm-type[$ig-index].vm-type`'>\n","comments":"","outputs":1,"x":5407.500289916992,"y":1199.1667773723602,"z":"b47e4028.e9a92","wires":[["bb2ba824.932678","79d4dac2.814e14"]]},{"id":"bb2ba824.932678","type":"outcome","name":"vm-type-5","xml":"<outcome value='vm-type-5'>\n","comments":"","outputs":1,"x":5601.500411987305,"y":1171.1667773723602,"z":"b47e4028.e9a92","wires":[["e2862d21.e8842"]]},{"id":"79d4dac2.814e14","type":"outcome","name":"vm-type-6","xml":"<outcome value='vm-type-6'>\n","comments":"","outputs":1,"x":5603.500411987305,"y":1217.1667773723602,"z":"b47e4028.e9a92","wires":[["dd634dbd.a8bf3"]]},{"id":"dd634dbd.a8bf3","type":"set","name":"set vlan-vnfc-instance-group data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-id'\n  value=\"bgb-net-inst-group-2\" />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-function'\n  value=\"`$tmp.vm-type[$ig-index].instance-group-function`\" />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnf-id'\n  value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":5835.500411987305,"y":1217.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"39d3f6b9.39218a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":6183.500411987305,"y":1591.1667773723602,"z":"b47e4028.e9a92","wires":[["d3d8f852.725398","558f4bd3.863124"]]},{"id":"f06696dc.dc5f68","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":6181.500411987305,"y":1643.1667773723602,"z":"b47e4028.e9a92","wires":[["17e16892.ac0c77","558f4bd3.863124"]]},{"id":"d3d8f852.725398","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error creating instance-group relationship to vnfc\" />\n","comments":"","x":6361.500411987305,"y":1591.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"17e16892.ac0c77","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Not-found error relating instance group '\n      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].instance-group-id\n      + ' to vnfc '\n      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`\" />\n","comments":"","x":6359.500411987305,"y":1641.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"558f4bd3.863124","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":6553.500411987305,"y":1537.1667773723602,"z":"b47e4028.e9a92","wires":[[]]},{"id":"3d91abff.5eaaa4","type":"set","name":"set data-created","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[$vnfc-index].data-created' value='true' />\n","comments":"","x":5739.500411987305,"y":1699.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"daa6fa1b.194cd8","type":"set","name":"set vm-type (tmp)","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vm-type'\n  value='`$tmp.vm-type[$ig-index].vm-type`' />\n","comments":"","x":5385.500411987305,"y":1257.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"d048ce24.237da","type":"set","name":"DUMMY set first vnic-group data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].vnic-interface-role'\n  value='network-role-5' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].sub-interface-capability-policy-name'\n  value='SDNC_Policy.Config_MS_TestSubInterfaceCapabilityVlanTagging01.*' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].network-collection-function'\n  value='network-collection-function-5' />\n","comments":"","x":6365.500411987305,"y":1841.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"120733c7.ca097c","type":"comment","name":"TODO: get TOSCA data","info":"","comments":"","x":5401.500411987305,"y":1769.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"a65f8578.358528","type":"switchNode","name":"switch vnfc_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc_length`'>\n","comments":"","outputs":1,"x":5389.500411987305,"y":1815.1667773723602,"z":"b47e4028.e9a92","wires":[["9c786886.745c48","8a536d16.65c42","aee0285a.6d2328"]]},{"id":"9c786886.745c48","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":5575.500411987305,"y":1759.1667773723602,"z":"b47e4028.e9a92","wires":[["e8ce841a.7b1498"]]},{"id":"aee0285a.6d2328","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":5573.929000854492,"y":1943.4524219036102,"z":"b47e4028.e9a92","wires":[["b640c124.919db"]]},{"id":"8a536d16.65c42","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":5573.500411987305,"y":1801.1667773723602,"z":"b47e4028.e9a92","wires":[["e8ce841a.7b1498"]]},{"id":"e8ce841a.7b1498","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":5711.500411987305,"y":1777.1667773723602,"z":"b47e4028.e9a92","wires":[[]]},{"id":"b640c124.919db","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5737.500411987305,"y":1942.1667773723602,"z":"b47e4028.e9a92","wires":[["96bfda47.08a858","52d6996a.a96b78"]]},{"id":"96bfda47.08a858","type":"switchNode","name":"DUMMY switch vm-type","xml":"<switch test='`$tmp.vm-type[$ig-index].vm-type`'>\n","comments":"","outputs":1,"x":5947.500411987305,"y":1871.1667773723602,"z":"b47e4028.e9a92","wires":[["53ef78e8.b92498","337f56ea.cd954a"]]},{"id":"53ef78e8.b92498","type":"outcome","name":"vm-type-5","xml":"<outcome value='vm-type-5'>\n","comments":"","outputs":1,"x":6141.500534057617,"y":1843.1667773723602,"z":"b47e4028.e9a92","wires":[["d048ce24.237da"]]},{"id":"337f56ea.cd954a","type":"outcome","name":"vm-type-6","xml":"<outcome value='vm-type-6'>\n","comments":"","outputs":1,"x":6143.500534057617,"y":1889.1667773723602,"z":"b47e4028.e9a92","wires":[["bc9a2845.e7d7b8"]]},{"id":"bc9a2845.e7d7b8","type":"set","name":"DUMMY set first vnic-group data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].vnic-interface-role'\n  value='network-role-6' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].sub-interface-capability-policy-name'\n  value='SDNC_Policy.Config_MS_TestSubInterfaceCapabilityVlanTagging01.*' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vnfcs.vnfc[0].network-collection-function'\n  value='network-collection-function-6' />\n","comments":"","x":6363.500411987305,"y":1889.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"52d6996a.a96b78","type":"get-resource","name":"get-resource vnic counts","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select ipv4-count, ipv6-count from VF_MODULE_TO_VFC_MAPPING vmvm, VFC_TO_NETWORK_ROLE_MAPPING vnrm\n\twhere vmvm.vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tand vmvm.vm_type = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vm-type\n\tand vmvm.vfc_customization_uuid = vnrm.vfc_customization_uuid\"\n  pfx='db.ip-counts'>\n\n","comments":"","outputs":1,"x":5953.500534057617,"y":2017.1667773723602,"z":"b47e4028.e9a92","wires":[["9cdbf2e1.b72b6","6b06972c.2beaa8"]]},{"id":"6b06972c.2beaa8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":6139.500411987305,"y":1993.1667773723602,"z":"b47e4028.e9a92","wires":[["472f1b53.015fa4"]]},{"id":"9cdbf2e1.b72b6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":6146.405197143555,"y":2042.7859179973602,"z":"b47e4028.e9a92","wires":[["622625a8.2f1acc"]]},{"id":"115158bc.b293c7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error getting IP counts from TOSCA\" />\n","comments":"","x":6473.500534057617,"y":1991.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"aaf7198c.630318","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Not-found error getting IP counts from TOSCA for VM type '\n      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$ig-index].vm-type`\" />\n","comments":"","x":6473.500534057617,"y":2041.1667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"d6af967f.3bb488","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":6683.500534057617,"y":1939.1667773723602,"z":"b47e4028.e9a92","wires":[[]]},{"id":"12fdec15.45d1b4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":818.9999046325684,"y":1490.3331089019775,"z":"b47e4028.e9a92","wires":[[]]},{"id":"28ac4224.2be28e","type":"get-resource","name":"get-resource instance group function","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select attribute_value from VF_MODULE_MODEL vmm, VF_MODEL vf, ATTRIBUTE_VALUE_PAIR avp\n\twhere vmm.customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tand vmm.vf_customization_uuid = vf.customization_uuid\n\tand vf.uuid = avp.resource_uuid\n\tand vmm.vf_customization_uuid = avp.resource_customization_uuid\n\tand avp.attribute_name = $tmp.vm-type[$ig-index].instance-group-function\"\n  pfx='db.attribute-value'>\n\n","comments":"","outputs":1,"x":5445.000289916992,"y":1016.6667773723602,"z":"b47e4028.e9a92","wires":[["26952ac4.2bb826","3171fe2a.9cbe32","fe8c8e5.f712d7"]]},{"id":"9572812.43b0d8","type":"execute","name":"instance-group-function starts with 'get_input='?","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"startsWith\" emitsOutcome='true' >\n<parameter name=\"source\" value=\"`$tmp.vm-type[$ig-index].instance-group-function`\" />\n<parameter name=\"target\" value=\"get_input=\" />\n","comments":"","outputs":1,"x":5483.000289916992,"y":890.6667773723602,"z":"b47e4028.e9a92","wires":[["43b4ce83.bedb1","91883493.44df88"]]},{"id":"91883493.44df88","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":5739.000289916992,"y":924.6667773723602,"z":"b47e4028.e9a92","wires":[["f23425c5.588cf8"]]},{"id":"43b4ce83.bedb1","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":5739.000297546387,"y":838.6669900417328,"z":"b47e4028.e9a92","wires":[["5f6db9ea.a70418"]]},{"id":"60117b57.b4fc44","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-assign-rollback","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' >\n","comments":"","outputs":1,"x":6241.000301361084,"y":814.3333327770233,"z":"b47e4028.e9a92","wires":[[]]},{"id":"935eed0b.82ea5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Instance group function retrieved from TOSCA data is '\n      + $tmp.vm-type[$ig-index].instance-group-function\n      + ' but does not start with get_input='`\" />\n","comments":"","x":6069.000301361084,"y":856.3333327770233,"z":"b47e4028.e9a92","wires":[]},{"id":"4a0b0c56.a3a1e4","type":"execute","name":"truncate past 'get_input=' part","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\n  <parameter name='result' value='tmp.truncated-value' />\n  <parameter name='string' value='`$db.parameters[$parameter-index].attribute-value`' />\n  <parameter name='begin-index' value='10' />\n","comments":"","outputs":1,"x":3240.000030517578,"y":732.0002918243408,"z":"b47e4028.e9a92","wires":[[]]},{"id":"c4aacbc.35d4538","type":"comment","name":"Chop off 'get_input=' from front of instance group function","info":"","comments":"","x":5795.000228881836,"y":771.000321149826,"z":"b47e4028.e9a92","wires":[]},{"id":"26952ac4.2bb826","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":5659.000289916992,"y":974.6667773723602,"z":"b47e4028.e9a92","wires":[["f782ad84.9919b"]]},{"id":"3171fe2a.9cbe32","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":5665.905075073242,"y":1016.2859179973602,"z":"b47e4028.e9a92","wires":[["f782ad84.9919b"]]},{"id":"f72523e0.3a5a9","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":6659.452877044678,"y":1210.8576381206512,"z":"b47e4028.e9a92","wires":[[]]},{"id":"a69b3646.ba6638","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to determine instance group function name for '\n      + $tmp.vm-type[$ig-index].instance-group-function`\" />\n","comments":"","x":5997.000289916992,"y":988.6667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"5f6db9ea.a70418","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5889.000297546387,"y":836.6669900417328,"z":"b47e4028.e9a92","wires":[["60117b57.b4fc44","935eed0b.82ea5"]]},{"id":"f782ad84.9919b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5821.000289916992,"y":990.6667773723602,"z":"b47e4028.e9a92","wires":[["a69b3646.ba6638","60117b57.b4fc44"]]},{"id":"fe8c8e5.f712d7","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":5661.000289916992,"y":1058.6667773723602,"z":"b47e4028.e9a92","wires":[["fd8ab42d.1aec78"]]},{"id":"fd8ab42d.1aec78","type":"set","name":"overwrite instance group function","xml":"<set>\n<parameter name='tmp.vm-type[$ig-index].instance-group-function'\n  value='`$db.attribute-value`' />\n","comments":"","x":5877.000289916992,"y":1058.6667773723602,"z":"b47e4028.e9a92","wires":[]},{"id":"472f1b53.015fa4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":6287.000289916992,"y":1992.6667773723602,"z":"b47e4028.e9a92","wires":[["d6af967f.3bb488","115158bc.b293c7"]]},{"id":"622625a8.2f1acc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":6295.000289916992,"y":2040.6667773723602,"z":"b47e4028.e9a92","wires":[["d6af967f.3bb488","aaf7198c.630318"]]},{"id":"f23425c5.588cf8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":5890.333541870117,"y":924.9997851848602,"z":"b47e4028.e9a92","wires":[["d209577c.d09538"]]},{"id":"d209577c.d09538","type":"set","name":"overwrite instance-group-function name","xml":"<set>\n<parameter name='tmp.vm-type[$ig-index].instance-group-function' value='`$tmp.truncated-value`' />\n","comments":"","x":6150.333633422852,"y":948.3331725597382,"z":"b47e4028.e9a92","wires":[]},{"id":"2dfb03a0.76eedc","type":"comment","name":"No subinterfaces to be created","info":"","comments":"","x":1021.3331985473633,"y":1486.9998245239258,"z":"b47e4028.e9a92","wires":[]},{"id":"d6a108ce.e84058","type":"get-resource","name":"get-resource parameters","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select attribute_name, attribute_value from ATTRIBUTE_VALUE_PAIR\n\twhere resource_uuid = $db.group-uuids[$group-index].group-uuid\n\tand attribute_name in ('vfc_instance_group_function','vfc_parent_port_role','network_collection_function')\"\n  pfx='db.parameters[]'>\n\n","comments":"","outputs":1,"x":1491.3334350585938,"y":575.9998474121094,"z":"b47e4028.e9a92","wires":[["a4afe263.1d375","9c57368f.cc2798","360f7297.4df8ee"]]},{"id":"4f1a6b56.d0d9c4","type":"for","name":"for each group uuid","xml":"<for index='group-index' start='0' end='`$db.group-uuids_length`' >\n","comments":"","outputs":1,"x":1022.6665954589844,"y":1568.6663818359375,"z":"b47e4028.e9a92","wires":[["cb3116d3.3e0178"]]},{"id":"a4afe263.1d375","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1687.999984741211,"y":501.33313941955566,"z":"b47e4028.e9a92","wires":[["f3d0f3fc.d2397"]]},{"id":"9c57368f.cc2798","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1691.2381286621094,"y":549.9523067474365,"z":"b47e4028.e9a92","wires":[["38b5a92d.df9d76"]]},{"id":"f3d0f3fc.d2397","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error getting parameters from ATTRIBUTE_VALUE_PAIR table\" />\n","comments":"","x":1836.547622680664,"y":501.28577041625977,"z":"b47e4028.e9a92","wires":[]},{"id":"38b5a92d.df9d76","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find parameters ATTRIBUTE_VALUE_PAIR table for group ' + $db.group-uuids[$group-index].group-uuid`\" />\n","comments":"","x":1840.3333740234375,"y":550.3333740234375,"z":"b47e4028.e9a92","wires":[]},{"id":"360f7297.4df8ee","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1684.6667938232422,"y":710.6665306091309,"z":"b47e4028.e9a92","wires":[["d4f2099f.01cce8"]]},{"id":"dc17103b.405dd","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":818.6665954589844,"y":1570.6663818359375,"z":"b47e4028.e9a92","wires":[["4f1a6b56.d0d9c4"]]},{"id":"d4f2099f.01cce8","type":"for","name":"for each parameter","xml":"<for index='parameter-index' start='0' end='`$db.parameters_length`' >\n","comments":"","outputs":1,"x":1860.6667938232422,"y":710.6665306091309,"z":"b47e4028.e9a92","wires":[["4ed288af.675838"]]},{"id":"4ed288af.675838","type":"switchNode","name":"switch attribute-name","xml":"<switch test='`$db.parameters[$parameter-index].attribute-name`'>\n","comments":"","outputs":1,"x":2070.666793823242,"y":708.6665306091309,"z":"b47e4028.e9a92","wires":[["521b1d95.d56654","87067f4.d4d328","dc6d8794.884ec8"]]},{"id":"521b1d95.d56654","type":"outcome","name":"vfc_parent_port_role","xml":"<outcome value='vfc_parent_port_role'>\n","comments":"","outputs":1,"x":2306.333251953125,"y":592.3331909179688,"z":"b47e4028.e9a92","wires":[["94730a30.6be618"]]},{"id":"87067f4.d4d328","type":"outcome","name":"vfc_instance_group_function","xml":"<outcome value='vfc_instance_group_function'>\n","comments":"","outputs":1,"x":2332.9999465942383,"y":738.6664772033691,"z":"b47e4028.e9a92","wires":[["aa0389e6.47be48"]]},{"id":"dc6d8794.884ec8","type":"outcome","name":"network_collection_function","xml":"<outcome value='network_collection_function'>\n","comments":"","outputs":1,"x":2327.6665954589844,"y":858.6665172576904,"z":"b47e4028.e9a92","wires":[["84e024fa.3032d8"]]},{"id":"aa0389e6.47be48","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2558.9999465942383,"y":737.6664772033691,"z":"b47e4028.e9a92","wires":[["c9562823.b83258","8a2ae114.7b5fc","91fc7b41.155df8"]]},{"id":"84e024fa.3032d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2558.9999465942383,"y":858.6664772033691,"z":"b47e4028.e9a92","wires":[["c9562823.b83258","8a2ae114.7b5fc","8c34c0a7.286db"]]},{"id":"c9562823.b83258","type":"execute","name":"starts with 'get_input='?","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"startsWith\" emitsOutcome='true' >\n<parameter name=\"source\" value=\"`$db.parameters[$parameter-index].attribute-value`\" />\n<parameter name=\"target\" value=\"get_input=\" />\n","comments":"","outputs":1,"x":2837.666778564453,"y":700.9998035430908,"z":"b47e4028.e9a92","wires":[["76cf72a3.2c8a7c","e409b4e7.5c7e18"]]},{"id":"76cf72a3.2c8a7c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3039.666774749756,"y":662.9999647140503,"z":"b47e4028.e9a92","wires":[["e0ac34b2.d8e248"]]},{"id":"e409b4e7.5c7e18","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3039.666778564453,"y":732.9998035430908,"z":"b47e4028.e9a92","wires":[["4a0b0c56.a3a1e4"]]},{"id":"91fc7b41.155df8","type":"set","name":"set vfc-instance-group-function value","xml":"<set>\n<parameter name='db.group-uuids[$group-index].vfc-instance-group-function' value='`$db.mapped-value.attribute-value`' />\n","comments":"","x":2882.333450317383,"y":854.3331108093262,"z":"b47e4028.e9a92","wires":[]},{"id":"8c34c0a7.286db","type":"set","name":"set network-collection-function value","xml":"<set>\n<parameter name='db.group-uuids[$group-index].network-collection-function' value='`$db.mapped-value.attribute-value`' />\n","comments":"","x":2879.333450317383,"y":902.6665077209473,"z":"b47e4028.e9a92","wires":[]},{"id":"cb3116d3.3e0178","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1211.6665954589844,"y":1568.3328857421875,"z":"b47e4028.e9a92","wires":[["ca18b446.544648","c625b42e.798378","24b7267.1df7bda","45843b31.c96d54","f833746b.1da0b8","a78de9bc.9c1a98","9d55b433.493f78","607082a0.d4249c","712bdfb7.74ee2","b6b5f931.eb4598","6c45eb32.9476b4","54ac6f71.5bbed","6ea857c3.2c1b58","e6e58901.9f43c8","885a5381.33f42","7ba342c.2344dbc","dfadd88e.36b558","d6a108ce.e84058","ecfd0fc4.045e","11be98c3.df80d7","34aa0803.4c3f08","65531882.49e7d8","18de97dd.b1aee8","e0a1c55a.c2c798","9f02d7a9.1c3a78","e95311b7.510f6","79bfeb99.430a74"]]},{"id":"11be98c3.df80d7","type":"get-resource","name":"get-resource instance group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n  resource=\"instance-groups\" \n  key=\"instance-group.instance-group-function = $db.group-uuids[$group-index].vfc-instance-group-function\n    AND instance-group.instance-group-type = 'VNFC'\"\n  pfx='aai.instance-group' local-only='false' >\n\n","comments":"","outputs":1,"x":1512.333164215088,"y":1013.8329200744629,"z":"b47e4028.e9a92","wires":[["2c8f4549.fc1f8a","eb4f7227.341d2"]]},{"id":"eb4f7227.341d2","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1726.5792922973633,"y":1036.9837646484375,"z":"b47e4028.e9a92","wires":[["a9147101.d3e86"]]},{"id":"2c8f4549.fc1f8a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1735.5079536437988,"y":990.2695093154907,"z":"b47e4028.e9a92","wires":[["c1ac3025.61603"]]},{"id":"9e43dd49.5a752","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":421.3333435058594,"y":3041.666540145874,"z":"b47e4028.e9a92","wires":[]},{"id":"b7a3821f.fc675","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":121.66665649414062,"y":2009.666404724121,"z":"b47e4028.e9a92","wires":[["73a704cf.e221cc","9e43dd49.5a752"]]},{"id":"e0ac34b2.d8e248","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Parameter value for '\n        + $db.parameters[$parameter-index].attribute-name\n        + ' is '\n        + $db.parameters[$parameter-index].attribute-value\n        + ' but was expected to start with get_input='`\" />\n","comments":"","x":3185.666778564453,"y":662.6663074493408,"z":"b47e4028.e9a92","wires":[]},{"id":"8a2ae114.7b5fc","type":"get-resource","name":"get-resource instance group function","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select attribute_value from VF_MODULE_MODEL vmm, VF_MODEL vf, ATTRIBUTE_VALUE_PAIR avp\n\twhere vmm.customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tand vmm.vf_customization_uuid = vf.customization_uuid\n\tand vf.uuid = avp.resource_uuid\n\tand vmm.vf_customization_uuid = avp.resource_customization_uuid\n\tand avp.attribute_name = $tmp.truncated-value\"\n  pfx='db.mapped-value'>\n\n","comments":"","outputs":1,"x":2876.6666145324707,"y":796.6665725708008,"z":"b47e4028.e9a92","wires":[["324c2535.eee8aa","839877d1.d651b8"]]},{"id":"324c2535.eee8aa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":3094.000068664551,"y":774.6665668487549,"z":"b47e4028.e9a92","wires":[["3f68af66.76793"]]},{"id":"839877d1.d651b8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":3100.904853820801,"y":816.2857074737549,"z":"b47e4028.e9a92","wires":[["b12f7607.be9608"]]},{"id":"3f68af66.76793","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'System error retrieving mapped parameter value for '\n        + $db.parameters[$parameter-index].attribute-name`\" />\n","comments":"","x":3251.666534423828,"y":773.3332462310791,"z":"b47e4028.e9a92","wires":[]},{"id":"b12f7607.be9608","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Unable to find mapped parameter value for '\n        + $db.parameters[$parameter-index].attribute-name\n        + ' value '\n        + $tmp.truncated-value`\" />\n","comments":"","x":3251.666816711426,"y":814.9999408721924,"z":"b47e4028.e9a92","wires":[]},{"id":"94730a30.6be618","type":"set","name":"set vfc_parent_port_role value","xml":"<set>\n<parameter name='db.group-uuids[$group-index].vfc_parent_port_role' value='`$db.parameters[$parameter-index].attribute-value`' />\n","comments":"","x":2550.0000228881836,"y":591.6666488647461,"z":"b47e4028.e9a92","wires":[]},{"id":"c1ac3025.61603","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Unable to find AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].vfc-instance-group-function\n        + ' and instance-group-type VNFC'`\" />\n","comments":"","x":1893.6665306091309,"y":988.8333911895752,"z":"b47e4028.e9a92","wires":[]},{"id":"a9147101.d3e86","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'System error getting AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].vfc-instance-group-function\n        + ' and instance-group-type VNFC'`\" />\n","comments":"","x":1893.6664657592773,"y":1036.8333797454834,"z":"b47e4028.e9a92","wires":[]},{"id":"18236b4f.7d3b25","type":"for","name":"for each existing vlan-vnfc-instance-group","xml":"<for index='vvig-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\n","comments":"","outputs":1,"x":2256.666519165039,"y":1300.3335075378418,"z":"b47e4028.e9a92","wires":[["3c6ce8f8.909cb8"]]},{"id":"3c6ce8f8.909cb8","type":"switchNode","name":"instance-group-id exists already?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id\n == $aai.instance-group.instance-group[$aai-ig-index].id`'>\n","comments":"","outputs":1,"x":2582.666519165039,"y":1300.3335075378418,"z":"b47e4028.e9a92","wires":[["19d5c419.1f3fdc"]]},{"id":"ca18b446.544648","type":"switchNode","name":"switch existing vlan-vnfc-instance-group_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\n","comments":"","outputs":1,"x":1578.3332824707031,"y":1270.3335180282593,"z":"b47e4028.e9a92","wires":[["de3bc458.faade8","7cda058.8f04dfc","17bb1c1.4cf0fe4"]]},{"id":"de3bc458.faade8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1838.3332824707031,"y":1234.3335180282593,"z":"b47e4028.e9a92","wires":[["b24476d0.6a1e28"]]},{"id":"b24476d0.6a1e28","type":"set","name":"set vvig-index to 0","xml":"<set>\n<parameter name='vvig-index' value='0' />\n","comments":"","x":2016.9999694824219,"y":1233.3334712982178,"z":"b47e4028.e9a92","wires":[]},{"id":"7cda058.8f04dfc","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1836.3332824707031,"y":1276.3335180282593,"z":"b47e4028.e9a92","wires":[["e996e2b3.26634"]]},{"id":"e996e2b3.26634","type":"break","name":"break","xml":"<break>\n","comments":"","x":1980.3332824707031,"y":1276.3335180282593,"z":"b47e4028.e9a92","wires":[]},{"id":"17bb1c1.4cf0fe4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1838.3332824707031,"y":1320.3335180282593,"z":"b47e4028.e9a92","wires":[["bd9d1f00.4179b"]]},{"id":"19d5c419.1f3fdc","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2796.666519165039,"y":1298.3335075378418,"z":"b47e4028.e9a92","wires":[["fad5dc3c.3bbc9"]]},{"id":"fad5dc3c.3bbc9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Instance group id '\n        + $aai.instance-group.instance-group[$aai-ig-index].id\n        + ' already exists in MD-SAL under vlan-vnfc-instance-groups'`\" />\n","comments":"","x":2946.666519165039,"y":1296.3335075378418,"z":"b47e4028.e9a92","wires":[]},{"id":"c625b42e.798378","type":"set","name":"set vlan-vnfc-instance-group data","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id'\n  value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function'\n  value='`$db.group-uuids[$group-index].vfc-instance-group-function`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnf-id'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\n","comments":"","x":1537.4999694824219,"y":1376.8336296081543,"z":"b47e4028.e9a92","wires":[]},{"id":"24b7267.1df7bda","type":"set","name":"set new vlan-vnfc-instance-group_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length'\n  value='`$vvig-index + 1`' />\n","comments":"","x":1556.8331680297852,"y":1428.1668100357056,"z":"b47e4028.e9a92","wires":[]},{"id":"607082a0.d4249c","type":"set","name":"set vnfc_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' />\n","comments":"","x":1478.0001182556152,"y":1753.0001907348633,"z":"b47e4028.e9a92","wires":[]},{"id":"712bdfb7.74ee2","type":"for","name":"for each vnfc","xml":"<for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":1473.0001182556152,"y":1853.999870300293,"z":"b47e4028.e9a92","wires":[["a0d4952d.f2b928"]]},{"id":"f833746b.1da0b8","type":"set","name":"set found-vm-type to false","xml":"<set>\n<parameter name='found-vm-type' value='false' />\n","comments":"","x":1508.6667251586914,"y":1555.3332386016846,"z":"b47e4028.e9a92","wires":[]},{"id":"a78de9bc.9c1a98","type":"for","name":"for each vm-type","xml":"<for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\n","comments":"","outputs":1,"x":1482.6667251586914,"y":1609.3332386016846,"z":"b47e4028.e9a92","wires":[["c521ab26.8c7ae8"]]},{"id":"c521ab26.8c7ae8","type":"switchNode","name":"vm-types match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type\n  == $db.group-uuids[$group-index].vm-type`'>\n","comments":"","outputs":1,"x":1682.6667251586914,"y":1608.3332386016846,"z":"b47e4028.e9a92","wires":[["f3e12d9b.faa59"]]},{"id":"f3e12d9b.faa59","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1850.6667251586914,"y":1607.3332386016846,"z":"b47e4028.e9a92","wires":[["a967e904.3972f8"]]},{"id":"a967e904.3972f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2006.6667251586914,"y":1607.3332386016846,"z":"b47e4028.e9a92","wires":[["83f5ed69.3b11f","27aa0191.883b9e"]]},{"id":"83f5ed69.3b11f","type":"set","name":"set found-vm-type to true","xml":"<set>\n<parameter name='found-vm-type' value='true' />\n","comments":"","x":2224.6667251586914,"y":1577.3332386016846,"z":"b47e4028.e9a92","wires":[]},{"id":"27aa0191.883b9e","type":"break","name":"break","xml":"<break>\n","comments":"","x":2166.6667251586914,"y":1627.3332386016846,"z":"b47e4028.e9a92","wires":[]},{"id":"9d55b433.493f78","type":"switchNode","name":"switch found-vm-type","xml":"<switch test='`$found-vm-type`'>\n","comments":"","outputs":1,"x":1496.6667251586914,"y":1689.3332386016846,"z":"b47e4028.e9a92","wires":[["1457c945.a28ef7"]]},{"id":"1457c945.a28ef7","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1680.6667251586914,"y":1689.3332386016846,"z":"b47e4028.e9a92","wires":[["ccbdbb96.9ea6f8"]]},{"id":"ccbdbb96.9ea6f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1836.6667251586914,"y":1689.3332386016846,"z":"b47e4028.e9a92","wires":[["914147aa.da8c48"]]},{"id":"914147aa.da8c48","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'TOSCA provided vm-type ' +\n      $db.group-uuids[$group-index].vm-type + ' but that was not found in vf-module-assignments.vms'`\" />\n","comments":"","x":2006.3334159851074,"y":1689.3331680297852,"z":"b47e4028.e9a92","wires":[]},{"id":"7ec1f150.8a298","type":"set","name":"set vnfc name","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`' />\n","comments":"","x":1825.6668395996094,"y":1798.3332405090332,"z":"b47e4028.e9a92","wires":[]},{"id":"a0d4952d.f2b928","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1643.666648864746,"y":1854.666501045227,"z":"b47e4028.e9a92","wires":[["7ec1f150.8a298","52160f29.32a73","e7172e6c.e2771"]]},{"id":"52160f29.32a73","type":"save","name":"save instance-group relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"instance-group:relationship-list\"\n   key=\"instance-group.id = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"vnfc\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/vnfcs/vnfc/' +\n        $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`\" />\n","comments":"","outputs":1,"x":1883.6666946411133,"y":1852.6664819717407,"z":"b47e4028.e9a92","wires":[["8fdc613f.8aa0e","4907cdeb.66fbb4"]]},{"id":"8fdc613f.8aa0e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2103.5000381469727,"y":1823.5382261276245,"z":"b47e4028.e9a92","wires":[["b780e1fd.8ecea"]]},{"id":"4907cdeb.66fbb4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2112.0715713500977,"y":1876.1573705673218,"z":"b47e4028.e9a92","wires":[["d399b84f.393178"]]},{"id":"b780e1fd.8ecea","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2273.6667709350586,"y":1822.666501045227,"z":"b47e4028.e9a92","wires":[["1c990e06.afc822"]]},{"id":"d399b84f.393178","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2271.6667709350586,"y":1874.666501045227,"z":"b47e4028.e9a92","wires":[["5eba244f.78562c"]]},{"id":"1c990e06.afc822","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error creating instance-group relationship to vnfc\" />\n","comments":"","x":2451.6667709350586,"y":1822.666501045227,"z":"b47e4028.e9a92","wires":[]},{"id":"5eba244f.78562c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Not-found error relating instance group '\n      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id\n      + ' to vnfc '\n      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`\" />\n","comments":"","x":2449.6667709350586,"y":1872.666501045227,"z":"b47e4028.e9a92","wires":[]},{"id":"e7172e6c.e2771","type":"set","name":"set data-created","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].data-created' value='true' />\n","comments":"","x":1831.333381652832,"y":1915.666498184204,"z":"b47e4028.e9a92","wires":[]},{"id":"45843b31.c96d54","type":"set","name":"set vm-type (tmp)","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vm-type'\n  value='`$db.group-uuids[$group-index].vm-type`' />\n","comments":"","x":1480.6667251586914,"y":1500.3332386016846,"z":"b47e4028.e9a92","wires":[]},{"id":"65531882.49e7d8","type":"for","name":"for each returned instance-group","xml":"<for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\n","comments":"","outputs":1,"x":1528.3333320617676,"y":1125.8333864212036,"z":"b47e4028.e9a92","wires":[["a178996d.953d88"]]},{"id":"a178996d.953d88","type":"for","name":"for each relationship","xml":"<for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1779.9999732971191,"y":1124.8333854675293,"z":"b47e4028.e9a92","wires":[["63a0562f.346d48"]]},{"id":"63a0562f.346d48","type":"for","name":"for each relationship-data","xml":"<for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":2006.6666450500488,"y":1124.1667594909668,"z":"b47e4028.e9a92","wires":[["d0cb0ddb.63e38"]]},{"id":"d0cb0ddb.63e38","type":"switchNode","name":"switch relationship-key == service-instance.service-instance-id","xml":"<switch test=\"`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\n  == 'service-instance.service-instance-id'`\">\n","comments":"","outputs":1,"x":2365.000232696533,"y":1124.16667842865,"z":"b47e4028.e9a92","wires":[["ad32ca79.0cfde8"]]},{"id":"ad32ca79.0cfde8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2661.666690826416,"y":1124.1667108535767,"z":"b47e4028.e9a92","wires":[["ed36a015.51afe"]]},{"id":"ed36a015.51afe","type":"switchNode","name":"switch relationship-value == this service-instance-id","xml":"<switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\n  == $service-data.service-information.service-instance-id`'>\n","comments":"","outputs":1,"x":2926.666515350342,"y":1124.1666803359985,"z":"b47e4028.e9a92","wires":[["b7529f5b.d8147"]]},{"id":"34aa0803.4c3f08","type":"set","name":"set found-instance-group to false","xml":"<set>\n<parameter name='found-instance-group' value='false' />\n","comments":"","x":1528.3332481384277,"y":1082.4998893737793,"z":"b47e4028.e9a92","wires":[]},{"id":"245c2935.69d8f6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3313.3332023620605,"y":1124.16667842865,"z":"b47e4028.e9a92","wires":[["9e921ed3.1e04c","73299009.38929","7d22df6b.481b"]]},{"id":"9e921ed3.1e04c","type":"set","name":"set found-instance-group to true","xml":"<set>\n<parameter name='found-instance-group' value='true' />\n","comments":"","x":3514.9997901916504,"y":1080.8333444595337,"z":"b47e4028.e9a92","wires":[]},{"id":"73299009.38929","type":"set","name":"set aai-ig-index","xml":"<set>\n<parameter name='aai-ig-index' value='`$ig-index`' />\n","comments":"","x":3464.999626159668,"y":1124.166760444641,"z":"b47e4028.e9a92","wires":[]},{"id":"7d22df6b.481b","type":"break","name":"break","xml":"<break>\n","comments":"","x":3436.6666984558105,"y":1167.500054359436,"z":"b47e4028.e9a92","wires":[]},{"id":"18de97dd.b1aee8","type":"switchNode","name":"switch found-instance-group","xml":"<switch test='`$found-instance-group`'>\n","comments":"","outputs":1,"x":1513.3333320617676,"y":1175.833511352539,"z":"b47e4028.e9a92","wires":[["c36d740b.e206d8"]]},{"id":"c36d740b.e206d8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1709.9999694824219,"y":1175.8333101272583,"z":"b47e4028.e9a92","wires":[["bf2d537.db427b"]]},{"id":"bf2d537.db427b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\"\n      value=\"`'Unable to find AAI instance-group for instance-group-function '\n        + $db.group-uuids[$group-index].vfc-instance-group-function\n        + ' and instance-group-type VNFC'`\" />\n","comments":"","x":1859.9998588562012,"y":1174.1666707992554,"z":"b47e4028.e9a92","wires":[]},{"id":"b7529f5b.d8147","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3186.6664848327637,"y":1124.1666707992554,"z":"b47e4028.e9a92","wires":[["245c2935.69d8f6"]]},{"id":"d8af59a5.37db38","type":"set","name":"set AAI test data","xml":"<set>\n<parameter name='aai.instance-group.instance-group[0].id' value='bgb-inst-group-1' />\n<parameter name='aai-ig-index' value='0' />\n","comments":"","x":1804.999870300293,"y":838.3333292007446,"z":"b47e4028.e9a92","wires":[]},{"id":"83c5513b.06322","type":"switchNode","name":"switch group-index","xml":"<switch test='`$group-index`'>\n","comments":"","outputs":1,"x":1481.6667251586914,"y":909.9999542236328,"z":"b47e4028.e9a92","wires":[["ba3335de.858798","ab04061b.fe7d48","a9f3da68.8836c8"]]},{"id":"ba3335de.858798","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1644.999942779541,"y":839.9999933242798,"z":"b47e4028.e9a92","wires":[["d8af59a5.37db38"]]},{"id":"ab04061b.fe7d48","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":1643.333251953125,"y":896.6666259765625,"z":"b47e4028.e9a92","wires":[["102bec13.078344"]]},{"id":"a9f3da68.8836c8","type":"outcome","name":"2","xml":"<outcome value='2'>\n","comments":"","outputs":1,"x":1644.9998245239258,"y":948.333330154419,"z":"b47e4028.e9a92","wires":[["51a91c65.7b2db4"]]},{"id":"102bec13.078344","type":"set","name":"set AAI test data","xml":"<set>\n<parameter name='aai.instance-group.instance-group[0].id' value='bgb-inst-group-1a' />\n<parameter name='aai-ig-index' value='0' />\n","comments":"","x":1801.6666259765625,"y":893.3333129882812,"z":"b47e4028.e9a92","wires":[]},{"id":"51a91c65.7b2db4","type":"set","name":"set AAI test data","xml":"<set>\n<parameter name='aai.instance-group.instance-group[0].id' value='bgb-inst-group-2' />\n<parameter name='aai-ig-index' value='0' />\n","comments":"","x":1799.9998779296875,"y":943.3333129882812,"z":"b47e4028.e9a92","wires":[]},{"id":"bd9d1f00.4179b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1999.9998779296875,"y":1319.9999332427979,"z":"b47e4028.e9a92","wires":[["18236b4f.7d3b25","c2d5de12.508d1"]]},{"id":"c2d5de12.508d1","type":"set","name":"set vvig-index to the length","xml":"<set>\n<parameter name='vvig-index' value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' />\n","comments":"","x":2208.33309173584,"y":1343.333387374878,"z":"b47e4028.e9a92","wires":[]},{"id":"b6b5f931.eb4598","type":"get-resource","name":"get-resource policy","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select property_name from VF_MODULE_TO_VFC_MAPPING vmvm,\n    RESOURCE_POLICY_TO_TARGET_NODE_MAPPING rptnm, RESOURCE_POLICY rp\n\twhere vmvm.vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tAND vmvm.vm_type = $db.group-uuids[$group-index].vm-type\n\tAND vmvm.vfc_customization_uuid = rptnm.target_node_uuid\n\tAND rptnm.policy_uuid = rp.policy_uuid\n\tAND rp.property_type = 'vlan_tag_policy'\n\tAND rp.policy_type = 'ecomp.policies.External'\n\tAND rp.property_source = 'Policy Manager'\"\n  pfx='db.policy[]'>\n\n","comments":"","outputs":1,"x":1490.000099182129,"y":1986.6665840148926,"z":"b47e4028.e9a92","wires":[["1603203c.5f928","edbea92a.2002f8"]]},{"id":"1603203c.5f928","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1663.3332786560059,"y":1963.6665420532227,"z":"b47e4028.e9a92","wires":[["f76e3c43.205b7"]]},{"id":"edbea92a.2002f8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1666.5714225769043,"y":2012.2857093811035,"z":"b47e4028.e9a92","wires":[["26246db4.523892"]]},{"id":"f76e3c43.205b7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failure retrieving policy for vm-type ' + $db.group-uuids[$group-index].vm-type`\" />\n","comments":"","x":1811.880916595459,"y":1963.6191730499268,"z":"b47e4028.e9a92","wires":[]},{"id":"26246db4.523892","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find policy for vm-type ' + $db.group-uuids[$group-index].vm-type`\" />\n","comments":"","x":1815.6666679382324,"y":2012.6667766571045,"z":"b47e4028.e9a92","wires":[]},{"id":"6c45eb32.9476b4","type":"set","name":"set input to get-data-from-policy","xml":"<set>\n<parameter name='get-data-from-policy-input.policy-instance-name' value='`$db.policy[0].property-name`' />\n","comments":"","x":1519.9998931884766,"y":2338.333595275879,"z":"b47e4028.e9a92","wires":[]},{"id":"54ac6f71.5bbed","type":"call","name":"call GENERIC-RESOURCE-API:get-data-from-policy","xml":"<call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' >\n","comments":"","outputs":1,"x":1586.6665573120117,"y":2391.6666860580444,"z":"b47e4028.e9a92","wires":[["7525d360.0f7b9c"]]},{"id":"7525d360.0f7b9c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1863.3333206176758,"y":2390.0002641677856,"z":"b47e4028.e9a92","wires":[["85f5011.c3fb2"]]},{"id":"85f5011.c3fb2","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":2024.9998245239258,"y":2388.3332719802856,"z":"b47e4028.e9a92","wires":[]},{"id":"6ea857c3.2c1b58","type":"set","name":"set vnic data for first vnfc","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vnic-interface-role'\n  value='`$db.group-uuids[$group-index].vfc_parent_port_role`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-assignment-policy-name'\n  value='`$db.policy[0].property-name`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function'\n  value='`$db.group-uuids[$group-index].network-collection-function`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group_length'\n  value='1' />\n  ","comments":"","x":1503.333236694336,"y":2056.6669158935547,"z":"b47e4028.e9a92","wires":[]},{"id":"e6e58901.9f43c8","type":"get-resource","name":"get-resource VFC_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key=\"select vnrm.* from VF_MODULE_TO_VFC_MAPPING vmvm, VFC_TO_NETWORK_ROLE_MAPPING vnrm\n\twhere vmvm.vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\n\tAND vmvm.vm_type = $db.group-uuids[$group-index].vm-type\n\tAND vmvm.vfc_customization_uuid = vnrm.vfc_customization_uuid\n\tAND vnrm.network_role_tag = $db.group-uuids[$group-index].vfc_parent_port_role\"\n  pfx='db.vfc-to-network-role[]'>\n\n","comments":"","outputs":1,"x":1593.333122253418,"y":2116.6667556762695,"z":"b47e4028.e9a92","wires":[["7547a3f3.502e1c","5c706b9f.8610d4"]]},{"id":"7547a3f3.502e1c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1865.999526977539,"y":2091.9999265670776,"z":"b47e4028.e9a92","wires":[["46ee5ac5.db6584"]]},{"id":"5c706b9f.8610d4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1873.2376708984375,"y":2140.6190938949585,"z":"b47e4028.e9a92","wires":[["d944efd1.49625"]]},{"id":"46ee5ac5.db6584","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failure reading VFC_TO_NETWORK_ROLE_MAPPING for parent role ' + $db.group-uuids[$group-index].vfc_parent_port_role`\" />\n","comments":"","x":2014.5471687316895,"y":2091.952480316162,"z":"b47e4028.e9a92","wires":[]},{"id":"d944efd1.49625","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find rows in VFC_TO_NETWORK_ROLE_MAPPING for parent role ' + $db.group-uuids[$group-index].vfc_parent_port_role`\" />\n","comments":"","x":2022.3329162597656,"y":2141.0001611709595,"z":"b47e4028.e9a92","wires":[]},{"id":"885a5381.33f42","type":"for","name":"for each row returned","xml":"<for index='vnic-index' start='0' end='`$db.vfc-to-network-role_length`' >\n","comments":"","outputs":1,"x":1491.6665344238281,"y":2235.000340461731,"z":"b47e4028.e9a92","wires":[["ef0d6d68.2fa88"]]},{"id":"b0514055.d6444","type":"comment","name":"Create a vnic for every row returned","info":"","comments":"","x":1548.333366394043,"y":2193.3335905075073,"z":"b47e4028.e9a92","wires":[]},{"id":"f0a12477.186958","type":"set","name":"set vnic-port-id","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-id'\n  value='`$vnic-index`' />\n","comments":"","x":1819.6666717529297,"y":2233.333511352539,"z":"b47e4028.e9a92","wires":[]},{"id":"ef0d6d68.2fa88","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1664.9998817443848,"y":2233.3335132598877,"z":"b47e4028.e9a92","wires":[["f0a12477.186958"]]},{"id":"7ba342c.2344dbc","type":"set","name":"set vlan-vnic_length","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.vlan-vnic_length'\n  value='`$db.vfc-to-network-role_length`' />\n","comments":"","x":1484.9998664855957,"y":2285.000178337097,"z":"b47e4028.e9a92","wires":[]},{"id":"dfadd88e.36b558","type":"switchNode","name":"switch precreate-sub-intf-num > 0?","xml":"<switch test='`$get-data-from-policy-output.precreate-sub-intf-num &gt; 0`'>\n","comments":"","outputs":1,"x":1526.6667251586914,"y":2521.666763305664,"z":"b47e4028.e9a92","wires":[["999ca676.ed90a8"]]},{"id":"999ca676.ed90a8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1743.3334846496582,"y":2521.666684150696,"z":"b47e4028.e9a92","wires":[["17837ed3.10fac1"]]},{"id":"17837ed3.10fac1","type":"call","name":"call GENERIC-RESOURCE-API:assign-vlan-tags","xml":"<call module='GENERIC-RESOURCE-API' rpc='assign-vlan-tags' mode='sync' >\n","comments":"","outputs":1,"x":2021.6666641235352,"y":2521.000081062317,"z":"b47e4028.e9a92","wires":[["2d81dffe.b92d1"]]},{"id":"1248d138.5ec85f","type":"set","name":"set test data","xml":"<set>\n<parameter name='get-data-from-policy-output.precreate-sub-intf-num' value='5' />\n","comments":"","x":1463.333351135254,"y":2458.3334312438965,"z":"b47e4028.e9a92","wires":[]},{"id":"2d81dffe.b92d1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2285,"y":2520,"z":"b47e4028.e9a92","wires":[["99766325.18459"]]},{"id":"99766325.18459","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":2446.66650390625,"y":2518.3330078125,"z":"b47e4028.e9a92","wires":[]},{"id":"c6555b10.d36328","type":"comment","name":"Now copy this vnfc to all subsequent vnfcs","info":"","comments":"","x":1506.6665954589844,"y":2571.666524887085,"z":"b47e4028.e9a92","wires":[]},{"id":"ecfd0fc4.045e","type":"for","name":"for each subsequent vnfc","xml":"<for index='vnfc-index' start='1' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":1491.6665573120117,"y":2619.9999408721924,"z":"b47e4028.e9a92","wires":[["ccac98a7.ef0888"]]},{"id":"ccac98a7.ef0888","type":"set","name":"copy vnfc","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnics-groups.'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnics-groups.`' />\n","comments":"","x":1683.3332786560059,"y":2620.0000228881836,"z":"b47e4028.e9a92","wires":[]},{"id":"108e5290.061f0d","type":"comment","name":"Copy data to vnfc-networks","info":"","comments":"","x":1543.21439743042,"y":3638.9288997650146,"z":"b47e4028.e9a92","wires":[]},{"id":"e0a1c55a.c2c798","type":"for","name":"for each vnfc","xml":"<for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":1470.8334515889483,"y":3684.1669365564976,"z":"b47e4028.e9a92","wires":[["95cb8961.7b5e18"]]},{"id":"95cb8961.7b5e18","type":"for","name":"for each vm vnfc","xml":"<for index='vm-vnfc-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\n","comments":"","outputs":1,"x":1649.642910003662,"y":3682.7860412597656,"z":"b47e4028.e9a92","wires":[["b445348d.04f928"]]},{"id":"b445348d.04f928","type":"switchNode","name":"switch vnfc names match?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name\n  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":1872.5002746582031,"y":3682.356981277466,"z":"b47e4028.e9a92","wires":[["c384ee4b.77391"]]},{"id":"c384ee4b.77391","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2061.0715827941895,"y":3681.3573999404907,"z":"b47e4028.e9a92","wires":[["6fd01e43.234ec"]]},{"id":"6fd01e43.234ec","type":"for","name":"for each vnic-group","xml":"<for index='vnic-group-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\n","comments":"","outputs":1,"x":2226.7860069274902,"y":3680.3573999404907,"z":"b47e4028.e9a92","wires":[["1b08f760.46cec9"]]},{"id":"1b08f760.46cec9","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1606.5477485656738,"y":3872.7385063171387,"z":"b47e4028.e9a92","wires":[["e335d196.7a723","9725b99d.4febf8","63e5e26e.2e86cc"]]},{"id":"e335d196.7a723","type":"set","name":"set vnfc-network-index to -1","xml":"<set>\n<parameter name='vnfc-network-index' value='-1' />\n","comments":"","x":1818.2143211364746,"y":3784.6430082321167,"z":"b47e4028.e9a92","wires":[]},{"id":"9725b99d.4febf8","type":"for","name":"for each vnfc-network","xml":"<for index='vn-index' start='0'\n  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`' >\n","comments":"","outputs":1,"x":1798.2143898010254,"y":3833.2144708633423,"z":"b47e4028.e9a92","wires":[["eb454f6f.0cb9c"]]},{"id":"eb454f6f.0cb9c","type":"switchNode","name":"switch vnfc-network-role == vnic-interface-role","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role\n  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-network-role`'>\n","comments":"","outputs":1,"x":2096.7857627868652,"y":3831.7857942581177,"z":"b47e4028.e9a92","wires":[["d97fb514.ac75c8"]]},{"id":"d97fb514.ac75c8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2345.3572216033936,"y":3830.3572578430176,"z":"b47e4028.e9a92","wires":[["70b317a4.7cc508"]]},{"id":"c59c96b4.69bf98","type":"set","name":"set vnfc-network-index","xml":"<set>\n<parameter name='vnfc-network-index' value='`$vn-index`' />\n","comments":"","x":2647.0239906311035,"y":3804.6430463790894,"z":"b47e4028.e9a92","wires":[]},{"id":"e0720be9.ad0128","type":"break","name":"break","xml":"<break>\n","comments":"","x":2597.0239219665527,"y":3850.3572969436646,"z":"b47e4028.e9a92","wires":[]},{"id":"63e5e26e.2e86cc","type":"switchNode","name":"switch vnfc-network-index","xml":"<switch test='`$vnfc-network-index`'>\n","comments":"","outputs":1,"x":1810.3573265075684,"y":3983.9286966323853,"z":"b47e4028.e9a92","wires":[["9361dfdd.29984","13d52642.fda30a"]]},{"id":"9361dfdd.29984","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1996.7858848571777,"y":3903.2146253585815,"z":"b47e4028.e9a92","wires":[["fbb0dbfe.f85b28"]]},{"id":"13d52642.fda30a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1998.4526748657227,"y":4075.2144804000854,"z":"b47e4028.e9a92","wires":[["638f4c3e.143404"]]},{"id":"638f4c3e.143404","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2138.2141494750977,"y":4075.595446586609,"z":"b47e4028.e9a92","wires":[["5c460ff5.5b0df","129e4121.2694ff"]]},{"id":"5c460ff5.5b0df","type":"set","name":"set vnfc-type to the vm-type","xml":"<set>\n<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[$vn-index].vnfc-network-role.vnfc-type'\n  value='`$db.group-uuids[$group-index].vm-type`' />\n","comments":"","x":2335.8333015441895,"y":3977.7384281158447,"z":"b47e4028.e9a92","wires":[]},{"id":"fbb0dbfe.f85b28","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Cannot find vnfc-network for network role '\n  + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`\" />\n","comments":"","x":2143.9287757873535,"y":3903.2144689559937,"z":"b47e4028.e9a92","wires":[]},{"id":"67480cdb.2760a4","type":"set","name":"set vnfc-port-index to -1","xml":"<set>\n<parameter name='vnfc-port-index' value='-1' />\n","comments":"","x":2654.166561126709,"y":4030.833158493042,"z":"b47e4028.e9a92","wires":[]},{"id":"bcc3aff.112a55","type":"for","name":"for each vnfc-port","xml":"<for silentFailure='true' index='v-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[$vn-index].vnfc-ports.vnfc-port_length`' >\n","comments":"","outputs":1,"x":2635.833393096924,"y":4079.16690158844,"z":"b47e4028.e9a92","wires":[["828492b6.a1bdd"]]},{"id":"129e4121.2694ff","type":"for","name":"for each vlan-vnic","xml":"<for index='vnic-index' start='0'\n  end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":2300.8332328796387,"y":4187.500525474548,"z":"b47e4028.e9a92","wires":[["d8e6d7a2.2a1bf8"]]},{"id":"d8e6d7a2.2a1bf8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2467.499973297119,"y":4185.833487510681,"z":"b47e4028.e9a92","wires":[["67480cdb.2760a4","bcc3aff.112a55","5d6d857d.27928c","fa62ecdb.69843"]]},{"id":"828492b6.a1bdd","type":"switchNode","name":"switch port ids equal?","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-id\n  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port[$v-index].vnfc-port-id`'>\n","comments":"","outputs":1,"x":2852.5003089904785,"y":4079.16690158844,"z":"b47e4028.e9a92","wires":[["bcfa1beb.160c28"]]},{"id":"bcfa1beb.160c28","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3029.166904449463,"y":4077.500234603882,"z":"b47e4028.e9a92","wires":[["f0a0227e.37f3e"]]},{"id":"8ae99aa8.1920a8","type":"set","name":"set vnfc-port-index","xml":"<set>\n<parameter name='vnfc-port-index' value='`$v-index`' />\n","comments":"","x":3327.499683380127,"y":4052.5002336502075,"z":"b47e4028.e9a92","wires":[]},{"id":"a67eee6e.a4887","type":"break","name":"break","xml":"<break>\n","comments":"","x":3290.833179473877,"y":4097.500072479248,"z":"b47e4028.e9a92","wires":[]},{"id":"5d6d857d.27928c","type":"switchNode","name":"switch vnfc-port-index","xml":"<switch test='`$vnfc-port-index`'>\n","comments":"","outputs":1,"x":2649.1661643981934,"y":4289.166746139526,"z":"b47e4028.e9a92","wires":[["36252103.1f8b6e","ad386d69.33c3"]]},{"id":"36252103.1f8b6e","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":2844.166410446167,"y":4240.833414077759,"z":"b47e4028.e9a92","wires":[["bde768af.7ac888"]]},{"id":"ad386d69.33c3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2840.8334007263184,"y":4340.833659172058,"z":"b47e4028.e9a92","wires":[[]]},{"id":"bde768af.7ac888","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2982.4998302459717,"y":4239.167073249817,"z":"b47e4028.e9a92","wires":[["7c467817.823568","402ca21d.f33c0c","3c3825c4.1caaca"]]},{"id":"2d5840bf.165d2","type":"set","name":"set vnfc-port-index","xml":"<set>\n<parameter name='vnfc-port-index' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port_length`' />\n","comments":"","x":3529.1665229797363,"y":4200.833733558655,"z":"b47e4028.e9a92","wires":[]},{"id":"7c467817.823568","type":"set","name":"set vnfc-port-id and common-sub-interface-role","xml":"<set>\n<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[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].vnfc-port-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-id`' />\n<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[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].common-sub-interface-role'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`' />\n","comments":"","x":3242.499746322632,"y":4240.834229469299,"z":"b47e4028.e9a92","wires":[]},{"id":"402ca21d.f33c0c","type":"set","name":"increment vnfc-port_length","xml":"<set>\n<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[$vn-index].vnfc-ports.vnfc-port_length'\n  value='`$vnfc-port-index + 1`' />\n","comments":"","x":3179.1665019989014,"y":4292.500491142273,"z":"b47e4028.e9a92","wires":[]},{"id":"70b317a4.7cc508","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2469.1666221618652,"y":3829.1667737960815,"z":"b47e4028.e9a92","wires":[["c59c96b4.69bf98","e0720be9.ad0128"]]},{"id":"f0a0227e.37f3e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":3160.8333702087402,"y":4077.5000257492065,"z":"b47e4028.e9a92","wires":[["8ae99aa8.1920a8","a67eee6e.a4887"]]},{"id":"3c3825c4.1caaca","type":"switchNode","name":"switch vnfc-port_length","xml":"<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[$vn-index].vnfc-ports.vnfc-port_length`'>\n","comments":"","outputs":1,"x":3169.1668281555176,"y":4179.166741371155,"z":"b47e4028.e9a92","wires":[["b6dec4a6.afe198","a23af61e.5263b8"]]},{"id":"b6dec4a6.afe198","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":3354.1665115356445,"y":4152.499912261963,"z":"b47e4028.e9a92","wires":[["eadd9aab.260b18"]]},{"id":"a23af61e.5263b8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3352.500087738037,"y":4200.833571434021,"z":"b47e4028.e9a92","wires":[["2d5840bf.165d2"]]},{"id":"eadd9aab.260b18","type":"set","name":"set vnfc-port-index","xml":"<set>\n<parameter name='vnfc-port-index' value='0' />\n","comments":"","x":3529.1666221618652,"y":4150.8335218429565,"z":"b47e4028.e9a92","wires":[]},{"id":"fa62ecdb.69843","type":"set","name":"copy vnic-sub-interfaces","xml":"<set>\n<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[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].vnic-sub-interfaces.'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.`' />\n","comments":"","x":2649.166805267334,"y":4387.499920845032,"z":"b47e4028.e9a92","wires":[]},{"id":"9f02d7a9.1c3a78","type":"for","name":"for each vnfc","xml":"<for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":1448.5711936950684,"y":2939.7616481781006,"z":"b47e4028.e9a92","wires":[["fa79f908.4b46b8"]]},{"id":"fa79f908.4b46b8","type":"for","name":"for each vnic-group","xml":"<for index='vnic-group-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\n","comments":"","outputs":1,"x":1635.2378273010254,"y":2939.761568069458,"z":"b47e4028.e9a92","wires":[["2b59342c.313fcc"]]},{"id":"2b59342c.313fcc","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1831.9046325683594,"y":2938.094711303711,"z":"b47e4028.e9a92","wires":[["601857ae.7f6ea8","db73a3d1.05c4","9796972d.9f2a48"]]},{"id":"601857ae.7f6ea8","type":"set","name":"set variables for EIPAM calls","xml":"<set>\n<parameter name='tmp.vt-ip.network-instance-group-function'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\n<parameter name='tmp.vt-ip.nf-role'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\n<parameter name='tmp.vt-ip.vm-type'\n  value='`$db.group-uuids[$group-index].vm-type`' />\n<parameter name='tmp.vt-ip.vnfc-name'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\n<parameter name='tmp.vt-ip.type'\n  value='FIXED' />\n<parameter name='tmp.vt-ip.vf-module-id'\n  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\n  ","comments":"","x":2065.475830078125,"y":2972.6189155578613,"z":"b47e4028.e9a92","wires":[]},{"id":"db73a3d1.05c4","type":"for","name":"for each network-instance-group","xml":"<for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":2078.333251953125,"y":3014.999707221985,"z":"b47e4028.e9a92","wires":[["964b5676.ef5388"]]},{"id":"964b5676.ef5388","type":"switchNode","name":"network-instance-group-ids match?","xml":"<switch test='`$tmp.vt-ip.network-instance-group-id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":2376.6664276123047,"y":3013.33309173584,"z":"b47e4028.e9a92","wires":[["98d456a5.1cf438"]]},{"id":"98d456a5.1cf438","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2598.3331985473633,"y":3011.999870300293,"z":"b47e4028.e9a92","wires":[["e67407dc.796088"]]},{"id":"c7af04d.64239f8","type":"for","name":"for each subnet","xml":"<for silentFailure='true' index='subnet-index' start='0'\n  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\n","comments":"","outputs":1,"x":3292.2620964050293,"y":2773.0953102111816,"z":"b47e4028.e9a92","wires":[["d40215e.53e0fe8"]]},{"id":"d40215e.53e0fe8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3473.0950241088867,"y":2771.4285736083984,"z":"b47e4028.e9a92","wires":[["5c73cd33.21e734","a6fbc849.812c58","6f7a8f0a.2c389","c49bbf7a.28159","cc9945b9.70db88","57431c62.4b6574"]]},{"id":"5c73cd33.21e734","type":"set","name":"set ip-version, network-instance-group-id for EIPAM call","xml":"<set>\n<parameter name='tmp.vt-ip.ip-version'\n  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`' />\n<parameter name='tmp.vt-ip.network-instance-group-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\n<parameter name='tmp.vt-ip.sequence-number'\n  value='`$seq-no`' />\n","comments":"","x":3787.143035888672,"y":2650.9521379470825,"z":"b47e4028.e9a92","wires":[]},{"id":"a6fbc849.812c58","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-ip-addresses","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\n","comments":"","outputs":1,"x":3856.4284057617188,"y":2746.428496360779,"z":"b47e4028.e9a92","wires":[["9aef8761.f3f058"]]},{"id":"9aef8761.f3f058","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4209.76176071167,"y":2744.761830329895,"z":"b47e4028.e9a92","wires":[["d28dd03b.0e47a"]]},{"id":"d28dd03b.0e47a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":4358.095184326172,"y":2743.0949697494507,"z":"b47e4028.e9a92","wires":[]},{"id":"e95311b7.510f6","type":"set","name":"set counter to 0","xml":"<set>\n<parameter name='counter' value='0' />\n","comments":"","x":1453.5714683532715,"y":2828.094596862793,"z":"b47e4028.e9a92","wires":[]},{"id":"6f7a8f0a.2c389","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value=\"`'/var/tmp/bgb-eipam.log' + $counter`\" />\n","comments":"","outputs":1,"x":3648.095115661621,"y":2954.7620677948,"z":"b47e4028.e9a92","wires":[[]]},{"id":"c49bbf7a.28159","type":"set","name":"increment counter","xml":"<set>\n<parameter name='counter' value='`$counter + 1`' />\n","comments":"","x":3671.428565979004,"y":2696.4284133911133,"z":"b47e4028.e9a92","wires":[]},{"id":"ce216cc2.c9b7e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Test EIPAM call return\" />\n","comments":"","x":1444.9999389648438,"y":3096.666298866272,"z":"b47e4028.e9a92","wires":[]},{"id":"cc9945b9.70db88","type":"switchNode","name":"switch eipam-ip-block.plans_length","xml":"<switch test='`$eipam-ip-block.plans_length`'>\n","comments":"","outputs":1,"x":3720.475975036621,"y":2855.7143869400024,"z":"b47e4028.e9a92","wires":[["144603b9.0faebc","c042b2da.b4f24","c1e362f7.092ec"]]},{"id":"144603b9.0faebc","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":3935.9525718688965,"y":2797.3810873031616,"z":"b47e4028.e9a92","wires":[["aada1e9.b9463e"]]},{"id":"c1e362f7.092ec","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3932.618869781494,"y":2928.571858882904,"z":"b47e4028.e9a92","wires":[["6bc96031.08dd9"]]},{"id":"c042b2da.b4f24","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":3935.952537536621,"y":2837.3810510635376,"z":"b47e4028.e9a92","wires":[["aada1e9.b9463e"]]},{"id":"aada1e9.b9463e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4058.809467315674,"y":2813.0954084396362,"z":"b47e4028.e9a92","wires":[[]]},{"id":"65594ccf.6be394","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4467.142917633057,"y":2926.190381526947,"z":"b47e4028.e9a92","wires":[["4ce61717.c6e888","a66fd796.f9a498","12cb7fe5.883c3"]]},{"id":"a66fd796.f9a498","type":"set","name":"set fixed ip addresses","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip[0]'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip_length'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-version'\n  value='`$tmp.vt-ip.ip-version`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-count'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].use-dhcp'\n  value='N' />\n","comments":"","x":4629.047386169434,"y":2941.666540145874,"z":"b47e4028.e9a92","wires":[]},{"id":"6bc96031.08dd9","type":"for","name":"for each vlan-vnic","xml":"<for index='vnic-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":4087.1428146362305,"y":2927.6190943717957,"z":"b47e4028.e9a92","wires":[["41cd84ee.e4081c"]]},{"id":"41cd84ee.e4081c","type":"for","name":"for each sub-interface","xml":"<for index='sub-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":4292.857174464634,"y":2926.1906106812617,"z":"b47e4028.e9a92","wires":[["65594ccf.6be394"]]},{"id":"4ce61717.c6e888","type":"switchNode","name":"switch network-information-item_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length`'>\n","comments":"","outputs":1,"x":4684.523948669434,"y":2853.09517288208,"z":"b47e4028.e9a92","wires":[["629d81c4.bd461","dd6ac299.b1ac7","59cf29ca.51f9f8"]]},{"id":"dd6ac299.b1ac7","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4911.666732788086,"y":2808.809473991394,"z":"b47e4028.e9a92","wires":[["11c0f9f7.5eaf06"]]},{"id":"59cf29ca.51f9f8","type":"other","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":4908.571235656738,"y":2891.190526008606,"z":"b47e4028.e9a92","wires":[["19693af0.32cf35"]]},{"id":"629d81c4.bd461","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":4911.666698455811,"y":2848.80943775177,"z":"b47e4028.e9a92","wires":[["11c0f9f7.5eaf06"]]},{"id":"11c0f9f7.5eaf06","type":"set","name":"set network-information-item_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\n  value='1' />\n<parameter name='tmp.index' value='0' />\n","comments":"","x":5161.666656494141,"y":2828.8095273971558,"z":"b47e4028.e9a92","wires":[]},{"id":"19693af0.32cf35","type":"set","name":"set network-information-item_length to 2","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\n  value='2' />\n<parameter name='tmp.index' value='1' />\n","comments":"","x":5160.238021850586,"y":2890.238184928894,"z":"b47e4028.e9a92","wires":[]},{"id":"e67407dc.796088","type":"switchNode","name":"switch get-data-from-policy-output.ip-assignment","xml":"<switch test='`$get-data-from-policy-output.ip-assignment`'>\n","comments":"","outputs":1,"x":2863.333450317383,"y":3011.6663856506348,"z":"b47e4028.e9a92","wires":[["5993e0d7.b751d","cd7b6ee6.2b53f","dd6e8db9.1eadf"]]},{"id":"cd7b6ee6.2b53f","type":"outcome","name":"unique","xml":"<outcome value='unique'>\n","comments":"","outputs":1,"x":3129.762119293213,"y":3157.7377042770386,"z":"b47e4028.e9a92","wires":[["d231887c.3355f8"]]},{"id":"5993e0d7.b751d","type":"outcome","name":"shared","xml":"<outcome value='shared'>\n","comments":"","outputs":1,"x":3136.6665592193604,"y":2774.166717529297,"z":"b47e4028.e9a92","wires":[["c7af04d.64239f8"]]},{"id":"d231887c.3355f8","type":"for","name":"for each subnet","xml":"<for silentFailure='true' index='subnet-index' start='0'\n  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\n","comments":"","outputs":1,"x":3286.4285011291504,"y":3156.9044942855835,"z":"b47e4028.e9a92","wires":[["1c48049f.44e89b"]]},{"id":"436e4d1f.7bdb84","type":"set","name":"set test EIPAM response","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='2' />\n<parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\n<parameter name='eipam-ip-block.plans[0].requests_length' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value='34.52.87.50' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />\n","comments":"","x":3711.6663246154785,"y":2798.3331184387207,"z":"b47e4028.e9a92","wires":[]},{"id":"aaf6e47a.ec3908","type":"set","name":"set test data ","xml":"<set>\n<parameter name='get-data-from-policy-output.ip-assignment' value='unique' />\n","comments":"","x":2012.3808670043945,"y":2882.1426334381104,"z":"b47e4028.e9a92","wires":[]},{"id":"12cb7fe5.883c3","type":"switchNode","name":"switch ip-version","xml":"<switch test='`$tmp.vt-ip.ip-version`'>\n","comments":"","outputs":1,"x":4611.666687011719,"y":3008.3332891464233,"z":"b47e4028.e9a92","wires":[["e6ba0b08.c385f8","2796f2bc.c1e76e"]]},{"id":"e6ba0b08.c385f8","type":"other","name":"ipv4","xml":"<outcome value='ipv4'>\n","comments":"","outputs":1,"x":4775.000026702881,"y":2986.6665410995483,"z":"b47e4028.e9a92","wires":[["2595e5de.0f26ea"]]},{"id":"2796f2bc.c1e76e","type":"other","name":"ipv6","xml":"<outcome value='ipv6'>\n","comments":"","outputs":1,"x":4775.000026702881,"y":3029.9997959136963,"z":"b47e4028.e9a92","wires":[["d99e17bd.f711b8"]]},{"id":"2595e5de.0f26ea","type":"set","name":"set vlan-common ipv4 address","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-common-ip-addresses.ip-addresses.ipv4-address'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":4979.999702453613,"y":2985.0000381469727,"z":"b47e4028.e9a92","wires":[]},{"id":"d99e17bd.f711b8","type":"set","name":"set vlan-common ipv6 address","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-common-ip-addresses.ip-addresses.ipv6-address'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n","comments":"","x":4978.3330078125,"y":3029.66650390625,"z":"b47e4028.e9a92","wires":[]},{"id":"1c48049f.44e89b","type":"for","name":"for each vlan-vnic","xml":"<for index='vnic-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\n","comments":"","outputs":1,"x":3474.7617835998535,"y":3156.9043741226196,"z":"b47e4028.e9a92","wires":[["6b888a10.2af214","e2eb46b9.cd0958"]]},{"id":"6b888a10.2af214","type":"set","name":"set ip-version for EIPAM call","xml":"<set>\n<parameter name='tmp.vt-ip.ip-version'\n  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`' />\n  ","comments":"","x":3709.999755859375,"y":3104.999755859375,"z":"b47e4028.e9a92","wires":[]},{"id":"e593e01e.a0d5d","type":"set","name":"set network-id for EIPAM call","xml":"<set>\n<parameter name='tmp.vt-ip.network-id'\n  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id`' />\n<parameter name='tmp.vt-ip.sequence-number'\n  value='`$seq-no`' />\n  ","comments":"","x":4103.33309173584,"y":3105.0000438690186,"z":"b47e4028.e9a92","wires":[]},{"id":"e2eb46b9.cd0958","type":"for","name":"for each sub-interface","xml":"<for index='sub-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\n","comments":"","outputs":1,"x":3691.190330505371,"y":3218.5712699890137,"z":"b47e4028.e9a92","wires":[["f5b5fc18.adec9"]]},{"id":"f5b5fc18.adec9","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3887.857078552246,"y":3217.5712699890137,"z":"b47e4028.e9a92","wires":[["e593e01e.a0d5d","9169ff30.c059b","f82c32b8.54697","4a868e39.b7b62","b558adee.b288c"]]},{"id":"9169ff30.c059b","type":"set","name":"increment counter","xml":"<set>\n<parameter name='counter' value='`$counter + 1`' />\n","comments":"","x":4069.999755859375,"y":3151.66650390625,"z":"b47e4028.e9a92","wires":[]},{"id":"f82c32b8.54697","type":"call","name":"call GENERIC-RESOURCE-API:vf-module-topology-vlan-tagging-ip-addresses","xml":"<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\n","comments":"","outputs":1,"x":4258.3330078125,"y":3198.333251953125,"z":"b47e4028.e9a92","wires":[["f05d8a8d.478058"]]},{"id":"f05d8a8d.478058","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":4611.666362762451,"y":3196.666585922241,"z":"b47e4028.e9a92","wires":[["3d223580.4b9d6a"]]},{"id":"3d223580.4b9d6a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n","comments":"","x":4759.999786376953,"y":3194.999725341797,"z":"b47e4028.e9a92","wires":[]},{"id":"9fcb1974.64d6a8","type":"set","name":"set test EIPAM response","xml":"<set>\n<parameter name='eipam-ip-block.plans_length' value='2' />\n<parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\n<parameter name='eipam-ip-block.plans[0].requests_length' value='6' />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key'\n  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value=\"`'34.52.87.1' + $counter`\" />\n<parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />\n","comments":"","x":4124.99959564209,"y":3261.6664695739746,"z":"b47e4028.e9a92","wires":[]},{"id":"4a868e39.b7b62","type":"switchNode","name":"switch eipam-ip-block.plans_length","xml":"<switch test='`$eipam-ip-block.plans_length`'>\n","comments":"","outputs":1,"x":4121.66650390625,"y":3306.66650390625,"z":"b47e4028.e9a92","wires":[["bcd9cbf.fd3c238","2b7250d8.51255","d8798d76.14939"]]},{"id":"bcd9cbf.fd3c238","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":4337.14306640625,"y":3288.333168029785,"z":"b47e4028.e9a92","wires":[["43694866.e652c8"]]},{"id":"2b7250d8.51255","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4338.3330078125,"y":3246.66650390625,"z":"b47e4028.e9a92","wires":[["43694866.e652c8"]]},{"id":"43694866.e652c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4461.189903259277,"y":3262.3808250427246,"z":"b47e4028.e9a92","wires":[[]]},{"id":"d8798d76.14939","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":4335,"y":3331.66650390625,"z":"b47e4028.e9a92","wires":[["45f3520.c1775b"]]},{"id":"45f3520.c1775b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":4483.3330078125,"y":3331.66650390625,"z":"b47e4028.e9a92","wires":[["7cfd053c.e09c8c","ddb9d0a2.646fa"]]},{"id":"ddb9d0a2.646fa","type":"set","name":"set fixed ip addresses","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip[0]'\n  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip_length'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-version'\n  value='`$tmp.vt-ip.ip-version`' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-count'\n  value='1' />\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].use-dhcp'\n  value='N' />\n","comments":"","x":4645.237476348877,"y":3347.142662525177,"z":"b47e4028.e9a92","wires":[]},{"id":"7cfd053c.e09c8c","type":"switchNode","name":"switch network-information-item_length","xml":"<switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length`'>\n","comments":"","outputs":1,"x":4700.714050292969,"y":3301.904588699341,"z":"b47e4028.e9a92","wires":[["40631e77.7daca","3d9262aa.af1f8e","39def6e7.3e5e5a"]]},{"id":"3d9262aa.af1f8e","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":4927.856834411621,"y":3257.618889808655,"z":"b47e4028.e9a92","wires":[["84f8b706.53a388"]]},{"id":"39def6e7.3e5e5a","type":"other","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":4924.761337280273,"y":3339.9999418258667,"z":"b47e4028.e9a92","wires":[["c8bce8ef.90c648"]]},{"id":"40631e77.7daca","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":4927.856800079346,"y":3297.6188535690308,"z":"b47e4028.e9a92","wires":[["84f8b706.53a388"]]},{"id":"84f8b706.53a388","type":"set","name":"set network-information-item_length to 1","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\n  value='1' />\n<parameter name='tmp.index' value='0' />\n","comments":"","x":5177.856758117676,"y":3277.6189432144165,"z":"b47e4028.e9a92","wires":[]},{"id":"c8bce8ef.90c648","type":"set","name":"set network-information-item_length to 2","xml":"<set>\n<parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\n  value='2' />\n<parameter name='tmp.index' value='1' />\n","comments":"","x":5176.428123474121,"y":3339.047600746155,"z":"b47e4028.e9a92","wires":[]},{"id":"dd6e8db9.1eadf","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":3128.3332138061523,"y":3330.00013256073,"z":"b47e4028.e9a92","wires":[["53f499ac.325d38"]]},{"id":"53f499ac.325d38","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'From policy: ip-assignment is '\n  + $get-data-from-policy-output.ip-assignment\n  + ' but must be unique or shared'`\" />\n","comments":"","x":3280.0000495910645,"y":3329.999888420105,"z":"b47e4028.e9a92","wires":[]},{"id":"9796972d.9f2a48","type":"set","name":"clear tmp.vt-ip variables","xml":"<set>\n<parameter name='tmp.vt-ip.' value='' />\n","comments":"","x":2049.9999237060547,"y":2927.1427364349365,"z":"b47e4028.e9a92","wires":[]},{"id":"79bfeb99.430a74","type":"set","name":"set seq-no to 1","xml":"<set>\n<parameter name='seq-no' value='1' />\n","comments":"","x":1451.6666259765625,"y":2881.66650390625,"z":"b47e4028.e9a92","wires":[]},{"id":"57431c62.4b6574","type":"set","name":"increment seq-no","xml":"<set>\n<parameter name='seq-no' value='`$seq-no + 1`' />\n","comments":"","x":3667.143112182617,"y":2907.1426334381104,"z":"b47e4028.e9a92","wires":[]},{"id":"b558adee.b288c","type":"set","name":"increment seq-no","xml":"<set>\n<parameter name='seq-no' value='`$seq-no + 1`' />\n","comments":"","x":4068.571533203125,"y":3367.142822265625,"z":"b47e4028.e9a92","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.json
new file mode 100755 (executable)
index 0000000..d4d3d3e
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"b9fb057.683a5f8","type":"dgstart","name":"DGSTART","outputs":1,"x":104.99999237060547,"y":78.33332824707031,"z":"e8bccc7e.ec2eb","wires":[["8383ed38.cf0d3"]]},{"id":"8383ed38.cf0d3","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":218.28569793701172,"y":118.57143974304199,"z":"e8bccc7e.ec2eb","wires":[["f1e036f3.14b848"]]},{"id":"f1e036f3.14b848","type":"method","name":"method vf-module-topology-vlan-tagging-deactivate","xml":"<method rpc='vf-module-topology-vlan-tagging-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":233.0952911376953,"y":159.99999809265137,"z":"e8bccc7e.ec2eb","wires":[["568006ed.2ce9c8"]]},{"id":"c45fe197.979d1","type":"comment","name":"vf-module-topology-vlan-tagging-deactivate","info":"","comments":"","x":499.3448486328125,"y":25.9196720123291,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"568006ed.2ce9c8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":154.99999237060547,"y":458.3333110809326,"z":"e8bccc7e.ec2eb","wires":[["ff21dac3.232098","e5650e13.66738","e46ff220.516ac"]]},{"id":"ff21dac3.232098","type":"for","name":"for each vlan-vnfc-instance-group","xml":"<for index='vvig-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\n","comments":"","outputs":1,"x":395.00000381469727,"y":393.3333377838135,"z":"e8bccc7e.ec2eb","wires":[["1de68e82.c55571"]]},{"id":"d7ec6134.cbc82","type":"set","name":"set keys","xml":"<set>\n<parameter name='parent-port-role'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`' />\n<parameter name='network-instance-group-function'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\n<parameter name='vnfc-instance-group-function'\n  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function`' />\n","comments":"","x":1158.333339691162,"y":363.33329677581787,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"1de68e82.c55571","type":"for","name":"for each vnfc","xml":"<for index='vnfc-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":626.6666564941406,"y":393.333309173584,"z":"e8bccc7e.ec2eb","wires":[["16ebf369.701e0d"]]},{"id":"16ebf369.701e0d","type":"for","name":"for each vnic-group","xml":"<for index='vnic-group-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\n","comments":"","outputs":1,"x":816.6666564941406,"y":393.33331775665283,"z":"e8bccc7e.ec2eb","wires":[["6d6c92f3.4fa04c"]]},{"id":"6d6c92f3.4fa04c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1003.3333129882812,"y":390.9999694824219,"z":"e8bccc7e.ec2eb","wires":[["d7ec6134.cbc82","9deb1267.ebcf4"]]},{"id":"9deb1267.ebcf4","type":"for","name":"for each vnf-sub-interface-group","xml":"<for silentFailure='true' index='vsig-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' >\n","comments":"","outputs":1,"x":1233.3334655761719,"y":416.66665267944336,"z":"e8bccc7e.ec2eb","wires":[["99d5c99e.678168"]]},{"id":"99d5c99e.678168","type":"switchNode","name":"keys match?","xml":"<switch test='`\n  $parent-port-role == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role\n  and $vnfc-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfc-instance-group-function\n  and $network-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].network-instance-group-function\n`'>\n","comments":"","outputs":1,"x":1465.0000610351562,"y":414.9999370574951,"z":"e8bccc7e.ec2eb","wires":[["387a0b42.aa2ef4"]]},{"id":"387a0b42.aa2ef4","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1616.666612625122,"y":413.333309173584,"z":"e8bccc7e.ec2eb","wires":[["2a9028a.ad201d8"]]},{"id":"6c197550.7c94fc","type":"switchNode","name":"switch customer-bonding-request_length","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].customer-bonding-requests.customer-bonding-request_length`'>\n","comments":"","outputs":1,"x":2043.3332138061523,"y":283.3332691192627,"z":"e8bccc7e.ec2eb","wires":[["1b4769d6.638246","add44603.94aa78","c7402c36.a00f8"]]},{"id":"1b4769d6.638246","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":2281.6664428710938,"y":238.33330821990967,"z":"e8bccc7e.ec2eb","wires":[["57d6d382.4db9cc"]]},{"id":"add44603.94aa78","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":2281.6665229797363,"y":283.33329010009766,"z":"e8bccc7e.ec2eb","wires":[["57d6d382.4db9cc"]]},{"id":"57d6d382.4db9cc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2411.666446685791,"y":258.33332920074463,"z":"e8bccc7e.ec2eb","wires":[[]]},{"id":"c7402c36.a00f8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":2281.6667251586914,"y":328.3333320617676,"z":"e8bccc7e.ec2eb","wires":[["d75ff341.8ec86"]]},{"id":"d75ff341.8ec86","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='Cannot deactivate module because customer bonding request exists' />\n","comments":"","x":2428.333366394043,"y":328.3333320617676,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"e5650e13.66738","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name='' value='' />\n","comments":"","x":333.33333587646484,"y":593.3333339691162,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"2a9028a.ad201d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1764.9998779296875,"y":413.33331298828125,"z":"e8bccc7e.ec2eb","wires":[["6c197550.7c94fc","1fd81c05.46c034","730f667e.8058f8"]]},{"id":"1fd81c05.46c034","type":"for","name":"for all vnf-sub-interface-group vnfcs","xml":"<for index='vnf-vnfc-index' start='0'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`' >\n","comments":"","outputs":1,"x":2028.333251953125,"y":453.33336639404297,"z":"e8bccc7e.ec2eb","wires":[["53661795.92c528"]]},{"id":"53661795.92c528","type":"switchNode","name":"vnfcs match?","xml":"<switch test='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name\n  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$vnf-vnfc-index].vnfc-name`'>\n","comments":"","outputs":1,"x":2266.6668014526367,"y":451.66668128967285,"z":"e8bccc7e.ec2eb","wires":[["8ac3ff07.21c3f"]]},{"id":"730f667e.8058f8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1939.999912261963,"y":505.00007247924805,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"8ac3ff07.21c3f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2416.66650390625,"y":450.9999694824219,"z":"e8bccc7e.ec2eb","wires":[["ed29f8aa.2b2598"]]},{"id":"f0ddcfb9.e87e9","type":"comment","name":"delete this vnfc","info":"","comments":"","x":2729.9997024536133,"y":351.6667013168335,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"ed29f8aa.2b2598","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2549.9999389648438,"y":450.00000762939453,"z":"e8bccc7e.ec2eb","wires":[["82e130f5.9e3d8","6cfa8387.9cdb5c","9c0a204f.831ff"]]},{"id":"82e130f5.9e3d8","type":"for","name":"for remaining vnfcs","xml":"<for index='$idx' start='`$vnf-vnfc-index`'\n  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length - 1`' >\n","comments":"","outputs":1,"x":2721.6666946411133,"y":398.3332586288452,"z":"e8bccc7e.ec2eb","wires":[["b57de70d.1235f8"]]},{"id":"48169c86.b1af44","type":"set","name":"copy next entry down","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx].'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx + 1].`' />\n","comments":"","x":3066.6667861938477,"y":409.99994468688965,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"6cfa8387.9cdb5c","type":"set","name":"decrement the vnfc length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length - 1`' />\n","comments":"","x":2741.6669387817383,"y":444.9999580383301,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"e46ff220.516ac","type":"set","name":"copy data to tmp.vlan-vnfc-instance-groups.","xml":"<set>\n<parameter name='tmp.vlan-vnfc-instance-groups.'\n  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.`' />\n","comments":"","x":424.9999694824219,"y":338.33331298828125,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"9c0a204f.831ff","type":"set","name":"clear the last one","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length].' value='' />\n","comments":"","x":2715.0002670288086,"y":494.99991035461426,"z":"e8bccc7e.ec2eb","wires":[]},{"id":"b57de70d.1235f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2885,"y":396.6666564941406,"z":"e8bccc7e.ec2eb","wires":[["48169c86.b1af44","2170dfeb.f2e8c"]]},{"id":"2170dfeb.f2e8c","type":"set","name":"clear the target","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx].'\n  value='' />\n","comments":"","x":3050.0000381469727,"y":361.6666603088379,"z":"e8bccc7e.ec2eb","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.json
new file mode 100644 (file)
index 0000000..3adda86
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"db4eae46.4b3fd","type":"dgstart","name":"DGSTART","outputs":1,"x":115,"y":52.5,"z":"da0dd7d5.9e19b8","wires":[["db0de74.4726e18"]]},{"id":"5d7faec4.53391","type":"method","name":"method vf-module-topology-vlan-tagging-ip-addresses","xml":"<method rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync'>\n","comments":"","outputs":1,"x":314.26190185546875,"y":103.45635414123535,"z":"da0dd7d5.9e19b8","wires":[["aa02ce0c.30ff9"]]},{"id":"db0de74.4726e18","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":390.23819732666016,"y":52.69049263000488,"z":"da0dd7d5.9e19b8","wires":[["5d7faec4.53391"]]},{"id":"aa02ce0c.30ff9","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":226.75,"y":166.14295196533203,"z":"da0dd7d5.9e19b8","wires":[["3b787481.8b040c","774ce022.1da5f","bbb5d0b4.6c11c","fc89f675.3e0838","d2e3f64e.f6a748","3704ed43.9a9d72","a476f52c.2521b8","cde326ed.20e5f8","1f554749.0a5289","3aac8436.58ee6c","da5910d3.5b98d","bd90de81.a134","7a2137f8.de11d8","8a9adc86.dcb73","3f9be8dd.c4ce68"]]},{"id":"4bb7255e.8118dc","type":"get-resource","name":"get EIPAM_IP_SUBNETS by network-id","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>","comments":"","outputs":1,"x":1175.5833892822266,"y":1148.5596389770508,"z":"da0dd7d5.9e19b8","wires":[["2aa50b37.f28b94","ca6f72b2.6bf8"]]},{"id":"a6930049.b9e27","type":"get-resource","name":"get EIPAM_IP_SUBNET_KEYS with MAX level by entity_id","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='`$tmp.sql`' pfx='db.selected-subnet-keys'>","comments":"","outputs":1,"x":924.654972076416,"y":1837.2500929832458,"z":"da0dd7d5.9e19b8","wires":[["91f544f0.514358","c578b30f.c54f8"]]},{"id":"e5b62e72.36eb4","type":"comment","name":"selected-entity-id","info":"","comments":"","x":2006.155101776123,"y":1975.1430644989014,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"cde326ed.20e5f8","type":"for","name":"for didx in db.selected-subnet-data[]","xml":"<for index='didx' start='0' end='`$db.selected-subnet-data_length`' >\n","comments":"","outputs":1,"x":508.22641372680664,"y":1778.6786642074585,"z":"da0dd7d5.9e19b8","wires":[["a6930049.b9e27","f2df2449.d5fa58"]]},{"id":"77d16bd4.03a8c4","type":"comment","name":"subnet-use - unique","info":"","comments":"","x":1244.5121231079102,"y":1105.166790008545,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"d4f87d61.6fd29","type":"comment","name":"subnet-use - shared or VIP","info":"","comments":"","x":1894.0834503173828,"y":1416.4882650375366,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"eabd4324.7e31f","type":"comment","name":"Required INPUTS","info":"tmp.vt-ip.vm-type (for FIXED)\ntmp.vt-ip.vnfc-name (for FIXED)\ntmp.vt-ip.network-id (for FIXED)\ntmp.vt-ip.network-instance-group-id\ntmp.vt-ip.ip-version\ntmp.vt-ip.type (FIXED or VIP)\ntmp.vt-ip.network-instance-group-function\ntmp.vt-ip.nf-role (for VIP)\ntmp.vt-ip.vf-module-id (for FIXED)\ntmp.vt-ip.sequence-number (for FIXED)","comments":"","x":840,"y":71.25000381469727,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"bbb5d0b4.6c11c","type":"switchNode","name":"switch ip-version","xml":"<switch test='`$tmp.vt-ip.ip-version`'>\n","comments":"","outputs":1,"x":447.0000305175781,"y":304.0000171661377,"z":"da0dd7d5.9e19b8","wires":[["72646257.b1f07c","93c23a8c.f589b8","c8332654.c5e6a8"]]},{"id":"72646257.b1f07c","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":650.0000228881836,"y":304.00001335144043,"z":"da0dd7d5.9e19b8","wires":[["6c9465e7.0f749c"]]},{"id":"6c9465e7.0f749c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='ip-version is required' />\n","comments":"","x":805.7500267028809,"y":303.75001335144043,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"3b787481.8b040c","type":"switchNode","name":"switch type","xml":"<switch test='`$tmp.vt-ip.type`'>\n","comments":"","outputs":1,"x":430.00000762939453,"y":212.50000286102295,"z":"da0dd7d5.9e19b8","wires":[["20137293.759cae"]]},{"id":"20137293.759cae","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":595.0000114440918,"y":212.74999809265137,"z":"da0dd7d5.9e19b8","wires":[["1d3d243.4d9b8dc"]]},{"id":"1d3d243.4d9b8dc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='type is required' />\n","comments":"","x":758.7500152587891,"y":212.49999809265137,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"3704ed43.9a9d72","type":"switchNode","name":"switch network-id && network-instance-group-id == NULL","xml":"<switch test=\"`$tmp.vt-ip.network-id == '' and $tmp.vt-ip.network-instance-group-id == '' `\">\n","comments":"","outputs":1,"x":578.4762496948242,"y":970.6309232711792,"z":"da0dd7d5.9e19b8","wires":[["cf259dac.da7ad"]]},{"id":"cf259dac.da7ad","type":"outcome","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":879.4762535095215,"y":970.8809185028076,"z":"da0dd7d5.9e19b8","wires":[["c428143a.3eb128"]]},{"id":"c428143a.3eb128","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='either network-id or network-isntance-group-id is required' />\n","comments":"","x":1043.2262573242188,"y":970.6309185028076,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"d2e3f64e.f6a748","type":"switchNode","name":"switch type","xml":"<switch test='`$tmp.vt-ip.type`'>\n","comments":"","outputs":1,"x":425.75000762939453,"y":524.5000076293945,"z":"da0dd7d5.9e19b8","wires":[["f308784f.30b748","7ce44ba.25dd7b4"]]},{"id":"f308784f.30b748","type":"outcome","name":"FIXED","xml":"<outcome value='FIXED'>\n","comments":"","outputs":1,"x":603.5000076293945,"y":524.5000076293945,"z":"da0dd7d5.9e19b8","wires":[["982de299.19cc"]]},{"id":"7ce44ba.25dd7b4","type":"outcome","name":"VIP","xml":"<outcome value='VIP'>\n","comments":"","outputs":1,"x":604.5000076293945,"y":760.0000448226929,"z":"da0dd7d5.9e19b8","wires":[["845733f4.78fad"]]},{"id":"8fda28f7.7fdf08","type":"switchNode","name":"switch vnfc-name","xml":"<switch test='`$tmp.vt-ip.vnfc-name`'>\n","comments":"","outputs":1,"x":993.0000152587891,"y":524.5000057220459,"z":"da0dd7d5.9e19b8","wires":[["ab97e748.b2aeb8"]]},{"id":"ab97e748.b2aeb8","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1173.500015258789,"y":524.0000057220459,"z":"da0dd7d5.9e19b8","wires":[["b08630ad.cf34b"]]},{"id":"b08630ad.cf34b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='vnfc-name is required for FIXED ip request' />\n","comments":"","x":1337.2500190734863,"y":523.7500057220459,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"982de299.19cc","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":766.5000114440918,"y":524.2500057220459,"z":"da0dd7d5.9e19b8","wires":[["8fda28f7.7fdf08","66187f63.a9f7e","dd589dc0.aebfe","a0c78a24.944498","b912e4a9.bce1c8"]]},{"id":"774ce022.1da5f","type":"switchNode","name":"switch network-instance-group-function","xml":"<switch test='`$tmp.vt-ip.network-instance-group-function`'>\n","comments":"","outputs":1,"x":517.0000152587891,"y":258.75000381469727,"z":"da0dd7d5.9e19b8","wires":[["15a40175.0679cf"]]},{"id":"15a40175.0679cf","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":743.0000190734863,"y":258.9999990463257,"z":"da0dd7d5.9e19b8","wires":[["f4db1eb1.4950a"]]},{"id":"f4db1eb1.4950a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='network-instance-group-function is required for FIXED ip request' />\n","comments":"","x":906.7500228881836,"y":258.7499990463257,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"a649d68c.d9ddc8","type":"switchNode","name":"switch nf-role","xml":"<switch test='`$tmp.vt-ip.nf-role`'>\n","comments":"","outputs":1,"x":984.0000305175781,"y":760.7500190734863,"z":"da0dd7d5.9e19b8","wires":[["5c79549a.88776c"]]},{"id":"5c79549a.88776c","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1149.0000343322754,"y":761.0000143051147,"z":"da0dd7d5.9e19b8","wires":[["9926dfb4.0e9b8"]]},{"id":"9926dfb4.0e9b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='nf-role is required for VIP ip request' />\n","comments":"","x":1312.7500381469727,"y":760.7500143051147,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"d9fa5743.fc1308","type":"get-resource","name":"get EIPAM_IP_SUBNETS by network-instance-group-id","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>","comments":"","outputs":1,"x":1735.8334503173828,"y":1455.2382650375366,"z":"da0dd7d5.9e19b8","wires":[["b37129b.49908d8","6045f035.19ac7"]]},{"id":"a476f52c.2521b8","type":"switchNode","name":"switch network-id != NULL","xml":"<switch test=\"`$tmp.vt-ip.network-id != '' `\">\n","comments":"","outputs":1,"x":483.8334159851074,"y":1095.631085395813,"z":"da0dd7d5.9e19b8","wires":[["88f840b3.58c1b","5640206.4e6bbe"]]},{"id":"82d77d1b.3832d","type":"switchNode","name":"switch network-instance-group-id != NULL","xml":"<switch test=\"`$tmp.vt-ip.network-instance-group-id != '' `\">\n","comments":"","outputs":1,"x":963.9406204223633,"y":1403.1311302185059,"z":"da0dd7d5.9e19b8","wires":[["d644e347.015b8"]]},{"id":"88f840b3.58c1b","type":"outcome","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":701.3334045410156,"y":1095.6310873031616,"z":"da0dd7d5.9e19b8","wires":[["feedbf55.a5941"]]},{"id":"5640206.4e6bbe","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":711.440601348877,"y":1402.6311292648315,"z":"da0dd7d5.9e19b8","wires":[["82d77d1b.3832d"]]},{"id":"d644e347.015b8","type":"outcome","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1217.6905899047852,"y":1402.3811206817627,"z":"da0dd7d5.9e19b8","wires":[["ea702123.03399"]]},{"id":"93c23a8c.f589b8","type":"outcome","name":"ipv4","xml":"<outcome value='ipv4'>\n","comments":"","outputs":1,"x":650.7500228881836,"y":346.250018119812,"z":"da0dd7d5.9e19b8","wires":[["86ce5cb2.1cc9e"]]},{"id":"c8332654.c5e6a8","type":"outcome","name":"ipv6","xml":"<outcome value='ipv6'>\n","comments":"","outputs":1,"x":653.2500228881836,"y":392.500018119812,"z":"da0dd7d5.9e19b8","wires":[["e725105b.d0815"]]},{"id":"86ce5cb2.1cc9e","type":"set","name":"tmp.address-family = 4, mp.sql.address-family = %4","xml":"<set>\n<parameter name='tmp.address-family' value='4' />\n<parameter name='tmp.sql.address-family' value='%4' />\n","comments":"","x":927.5000381469727,"y":346.50002574920654,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"e725105b.d0815","type":"set","name":"tmp.address-family = 6, tmp.sql.address-family=%6","xml":"<set>\n<parameter name='tmp.address-family' value='6' />\n<parameter name='tmp.sql.address-family' value='%6' />\n","comments":"","x":928.0000381469727,"y":391.75002574920654,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"ae3a9d2a.85162","type":"switchNode","name":"switch level == 4","xml":"<switch test=\"`$db.selected-subnet-keys.level == '4' `\">\n","comments":"","outputs":1,"x":1407.7264976501465,"y":1881.0358905792236,"z":"da0dd7d5.9e19b8","wires":[["99bc0a56.f15958","8f3ae4a0.6b13c8"]]},{"id":"99bc0a56.f15958","type":"outcome","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1593.4764442443848,"y":1933.535888671875,"z":"da0dd7d5.9e19b8","wires":[["64ef27ad.e98c18"]]},{"id":"b055f0b1.143a8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1898.1193084716797,"y":2100.678692817688,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"64ef27ad.e98c18","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1737.2264671325684,"y":1933.7859020233154,"z":"da0dd7d5.9e19b8","wires":[["87b119cf.86a188","34e320b6.cbbea","d275a6b.bf0f758","b055f0b1.143a8"]]},{"id":"87b119cf.86a188","type":"set","name":"set tmp.selected-entity-id","xml":"<set>\n<parameter name='tmp.selected-entity-id' value='`$db.selected-subnet-keys.entity-id`' />\n","comments":"","x":1949.6551094055176,"y":2006.3930673599243,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"b912e4a9.bce1c8","type":"set","name":"set tmp.eipam.info = vf-module-id","xml":"<set>\n<parameter name=\"tmp.eipam.info\" value=\"`$tmp.vt-ip.vf-module-id`\"/>\n","comments":"","x":1045.3335189819336,"y":691.16676902771,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"34e320b6.cbbea","type":"set","name":"set tmp.selected-plan-name","xml":"<set>\n<parameter name='tmp.selected-plan-name' value='`$db.selected-subnet-data[$didx].plan-name`' />\n","comments":"","x":1960.1550941467285,"y":2052.893054485321,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"3aac8436.58ee6c","type":"set","name":"set eipam-ip-block","xml":"<set>\n<parameter name='eipam-ip-block.plans[0].plan-name' value='`$tmp.selected-plan-name`' />\n<parameter name='eipam-ip-block.plans[0].address-family' value=\"`$tmp.vt-ip.ip-version`\" />\n<parameter name='eipam-ip-block.plans[0].requests[0].client-key' \n\tvalue=\"`$tmp.selected-client-key`\" />\n<parameter name=\"eipam-ip-block.plans[0].requests[0].info\" \n\tvalue=\"`$tmp.eipam.info`\"/>\n<parameter name=\"eipam-ip-block.plans[0].requests[0].pools_length\" value=\"4\"/>\n<parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\n<parameter name=\"eipam-ip-block.plans_length\" value=\"1\"/>","comments":"","x":453.79777908325195,"y":2331.3573055267334,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"da5910d3.5b98d","type":"execute","name":"call EIPAM assignIPAddress","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"assignIPAddress\">","comments":"","outputs":1,"x":482.64345932006836,"y":2489.7617540359497,"z":"da0dd7d5.9e19b8","wires":[["9803868b.2b8d18"]]},{"id":"9803868b.2b8d18","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":696.6434593200684,"y":2489.7617540359497,"z":"da0dd7d5.9e19b8","wires":[["b38b998e.3c6108"]]},{"id":"e42ece58.9590a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"ack-final\" value=\"Y\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`\" />\n","comments":"","x":1041.1434898376465,"y":2489.5117540359497,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"b38b998e.3c6108","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","comments":"","outputs":1,"x":858.4526481628418,"y":2490.011742591858,"z":"da0dd7d5.9e19b8","wires":[["e42ece58.9590a"]]},{"id":"dd589dc0.aebfe","type":"set","name":"set tmp.selected-client-key FIXED","xml":"<set>\n<parameter name=\"tmp.selected-client-key\" \n\tvalue=\"`$tmp.vt-ip.vm-type + '|' +\n\t\t\t$tmp.vt-ip.vnfc-name + '|' +\n\t\t\t$tmp.vt-ip.network-instance-group-function + '|' + \n\t\t\t$tmp.vt-ip.type + '|' + \n\t\t\t$tmp.address-family + '|' + \n\t\t\t$tmp.vt-ip.sequence-number`\" />\n\t\n<!--\t\nfixed-ip client-key:\nvm-type + VFCname + network-instance-group-function + \"FIXED\" + [ip-version(4/6)] + seqNo\n\t\tseqNo required for unique, but not required for shared\n-->","comments":"","x":1046.7501373291016,"y":649.0000076293945,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"d9ab5e25.a72d4","type":"set","name":"set tmp.selected-client-key VIP","xml":"<set>\n<parameter name='tmp.selected-client-key' \n\tvalue=\"`$tmp.vt-ip.nf-role + '|' + \n\t\t\t$tmp.vt-ip.network-instance-group-function + '|' +\n\t\t\t$tmp.vt-ip.type + '|' + \n\t\t\t$tmp.vt-ip.ip-version`\" />\n\t\n<!--\t\nloating-ip client-key:\nnf-role + network-instance-group-function + \"VIP\" + [ip-version(4/6)]\n-->","comments":"","x":1037.500015258789,"y":889.0000123977661,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"66187f63.a9f7e","type":"switchNode","name":"switch vf-module-id","xml":"<switch test='`$tmp.vt-ip.vf-module-id`'>\n","comments":"","outputs":1,"x":1000.2500152587891,"y":565.5000076293945,"z":"da0dd7d5.9e19b8","wires":[["2be7eff.1ecde1"]]},{"id":"2be7eff.1ecde1","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1179.2500190734863,"y":565.750002861023,"z":"da0dd7d5.9e19b8","wires":[["d378b864.d20678"]]},{"id":"d378b864.d20678","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='vf-module-id is required' />\n","comments":"","x":1334.0000228881836,"y":565.500002861023,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"845733f4.78fad","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":771.0000152587891,"y":760.5000085830688,"z":"da0dd7d5.9e19b8","wires":[["a649d68c.d9ddc8","d9ab5e25.a72d4","42424dee.ed9f94","b5cd3280.de819"]]},{"id":"a0c78a24.944498","type":"switchNode","name":"switch sequence-number","xml":"<switch test='`$tmp.vt-ip.sequence-number`'>\n","comments":"","outputs":1,"x":1022.0000152587891,"y":606.5000076293945,"z":"da0dd7d5.9e19b8","wires":[["b1da28ce.48b808"]]},{"id":"b1da28ce.48b808","type":"outcome","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1218.0000190734863,"y":606.750002861023,"z":"da0dd7d5.9e19b8","wires":[["7474eec4.3c2ee"]]},{"id":"7474eec4.3c2ee","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='seq-num is required' />\n","comments":"","x":1372.7500228881836,"y":606.500002861023,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"8f3ae4a0.6b13c8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1590.9764442443848,"y":1881.2858848571777,"z":"da0dd7d5.9e19b8","wires":[["e4d528c2.841028"]]},{"id":"4d128fce.85a7e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='No level 4 KeyName found in EIPAM_IP_SUBNET_KEYS' />\n","comments":"","x":860.6191253662109,"y":2157.750346183777,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"1f554749.0a5289","type":"get-resource","name":"get EIPAM_IP_SUBNET_KEYS by entity_id","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from EIPAM_IP_SUBNET_KEYS  \n  \twhere entity_id = $tmp.selected-entity-id order by level'\n  pfx='db.eipam-subnet-keys[]'>","comments":"","outputs":1,"x":532.0479011535645,"y":2216.35729265213,"z":"da0dd7d5.9e19b8","wires":[["c8ad41e7.8215d"]]},{"id":"b37129b.49908d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2031.583480834961,"y":1455.2382621765137,"z":"da0dd7d5.9e19b8","wires":[["27b67a83.1da0b6"]]},{"id":"27b67a83.1da0b6","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />\n","comments":"","x":2181.58345413208,"y":1455.2382488250732,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"91f544f0.514358","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1229.4048881530762,"y":1837.5000734329224,"z":"da0dd7d5.9e19b8","wires":[["f1303259.8492"]]},{"id":"f1303259.8492","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table to find MAX level by entity_id' />\n","comments":"","x":1397.4048614501953,"y":1837.500060081482,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"c578b30f.c54f8","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1233.9049072265625,"y":1881.0000886917114,"z":"da0dd7d5.9e19b8","wires":[["ae3a9d2a.85162"]]},{"id":"c8ad41e7.8215d","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":806.7977714538574,"y":2216.3572754859924,"z":"da0dd7d5.9e19b8","wires":[["b26cc25b.ca6da"]]},{"id":"b26cc25b.ca6da","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table by entity_id' />\n","comments":"","x":974.7977447509766,"y":2216.357262134552,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"2b7f2a7c.3c9776","type":"set","name":"set eipam-ip-block key-name/value","xml":"<set>\n<parameter name=\"eipam-ip-block.plans[0].requests[0].pools[$key].key-name\" \n\tvalue=\"`$db.eipam-subnet-keys[$key].key-name`\"/>\n<parameter name=\"eipam-ip-block.plans[0].requests[0].pools[$key].key-value\" \n\tvalue=\"`$db.eipam-subnet-keys[$key].key-value`\"/>\n","comments":"","x":818.7978019714355,"y":2279.1072945594788,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"7a2137f8.de11d8","type":"for","name":"for key in db.eipam-subnet-keys[]","xml":"<for index='key' start='0' end='`$db.eipam-subnet-keys_length`' >\n","comments":"","outputs":1,"x":500.0477714538574,"y":2278.8572754859924,"z":"da0dd7d5.9e19b8","wires":[["2b7f2a7c.3c9776"]]},{"id":"ea702123.03399","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1388.107219696045,"y":1401.9644470214844,"z":"da0dd7d5.9e19b8","wires":[["d9fa5743.fc1308","63c78328.8f2ecc","b2cfdd91.02334"]]},{"id":"b5cd3280.de819","type":"set","name":"set tmp.eipam.info = network-instance-group-id","xml":"<set>\n<parameter name=\"tmp.eipam.info\" value=\"`$tmp.vt-ip.network-instance-group-id`\"/>\n","comments":"","x":1087.7500305175781,"y":845.0000095367432,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"63c78328.8f2ecc","type":"set","name":"set eipam-ip-block network-instance-group-id","xml":"<set>\n<parameter name=\"eipam-ip-block.plans[0].requests[0].network-instance-group-id\" \n\tvalue=\"`$tmp.vt-ip.network-instance-group-id`\"/>\n","comments":"","x":1700.499984741211,"y":1548.5716457366943,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"2aa50b37.f28b94","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1420.9999542236328,"y":1148.1429443359375,"z":"da0dd7d5.9e19b8","wires":[["bb874230.642da"]]},{"id":"bb874230.642da","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />\n","comments":"","x":1570.999927520752,"y":1148.142930984497,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"feedbf55.a5941","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":866.7500228881836,"y":1095.7143869400024,"z":"da0dd7d5.9e19b8","wires":[["4bb7255e.8118dc","c33a5903.ba87e8","176f25a9.a8fe9a"]]},{"id":"c33a5903.ba87e8","type":"set","name":"set eipam-ip-block network-id","xml":"<set>\n<parameter name=\"eipam-ip-block.plans[0].requests[0].network-id\" \n\tvalue=\"`$tmp.vt-ip.network-id`\"/>\n","comments":"","x":1144.6070861816406,"y":1222.8215999603271,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"fc89f675.3e0838","type":"set","name":"initialize eipam-ip-block","xml":"<set>\n<parameter name='eipam-ip-block.' value='' />\n","comments":"","x":465.00001525878906,"y":457.00001525878906,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"42424dee.ed9f94","type":"switchNode","name":"switch network-instance-group-id == NULL","xml":"<switch test=\"`$tmp.vt-ip.network-instance-group-id == '' `\">\n","comments":"","outputs":1,"x":1074.000015258789,"y":806.2500114440918,"z":"da0dd7d5.9e19b8","wires":[["2490f93f.ceaa26"]]},{"id":"2490f93f.ceaa26","type":"outcome","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1320,"y":803.75,"z":"da0dd7d5.9e19b8","wires":[["23cbf379.9fba5c"]]},{"id":"23cbf379.9fba5c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value='network-isntance-group-id is required for VIP' />\n","comments":"","x":1483.7500038146973,"y":803.5,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"bd90de81.a134","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/vlan-tag-ip.log' />\n","comments":"","outputs":1,"x":434.4643669128418,"y":2428.1905307769775,"z":"da0dd7d5.9e19b8","wires":[[]]},{"id":"ca6f72b2.6bf8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1430.857032775879,"y":1195.2856945991516,"z":"da0dd7d5.9e19b8","wires":[["c16a6051.0d9e5"]]},{"id":"c16a6051.0d9e5","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = \"`'No EIPAM_IP_SUBNETS entry found with network-id = ' + $tmp.vt-ip.network-id + ' and address_family = ' + $tmp.address-family`\" />\n","comments":"","x":1592.2856788635254,"y":1195.285696029663,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"6045f035.19ac7","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":2039.4286270141602,"y":1500.1429061889648,"z":"da0dd7d5.9e19b8","wires":[["9e4c2215.1e732"]]},{"id":"9e4c2215.1e732","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value = \"`'No EIPAM_IP_SUBNETS entry found with network-instance-group-id = ' + $tmp.vt-ip.network-instance-group-id + ' and address_family = ' + $tmp.address-family`\" />\n","comments":"","x":2200.8572731018066,"y":1500.1429076194763,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"f2df2449.d5fa58","type":"set","name":"set tmp.sql","xml":"<set>\n<parameter name='tmp.sql' \n\tvalue=\"`'SELECT a.entity_id, a.key_name, a.key_value, a.level from EIPAM_IP_SUBNET_KEYS a where level = (SELECT MAX(level) from EIPAM_IP_SUBNET_KEYS b where b.entity_id = a.entity_id and entity_id = ' + ' $db.selected-subnet-data[$didx].entity-id )'`\" />","comments":"","x":774.4286499023438,"y":1778.9048070907593,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"b2cfdd91.02334","type":"set","name":"set tmp.sql","xml":"<set>\n<parameter name='tmp.sql' \n\tvalue=\"`'SELECT * from EIPAM_IP_SUBNETS WHERE network_instance_group_id = '+ \n\t\t'$tmp.vt-ip.network-instance-group-id AND address_family like $tmp.sql.address-family'`\" />","comments":"","x":1597.285774230957,"y":1402.2859001159668,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"8a9adc86.dcb73","type":"set","name":"set tmp.level4-key-found = false","xml":"<set>\n<parameter name='tmp.level4-key-found' value='false' />\n","comments":"","x":496.8572540283203,"y":1638.904878616333,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"d275a6b.bf0f758","type":"set","name":"set tmp.level4-key-found = true","xml":"<set>\n<parameter name='tmp.level4-key-found' value='true' />\n","comments":"","x":1974.7143440246582,"y":1934.0477485656738,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"e4d528c2.841028","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1734.7143287658691,"y":1880.3334188461304,"z":"da0dd7d5.9e19b8","wires":[[]]},{"id":"176f25a9.a8fe9a","type":"set","name":"set tmp.sql","xml":"<set>\n<parameter name='tmp.sql' \n\tvalue=\"`'SELECT * from EIPAM_IP_SUBNETS WHERE network_id = ' + \n\t'$tmp.vt-ip.network-id AND address_family like $tmp.sql.address-family'`\" />","comments":"","x":1083.7143478393555,"y":1095.285852432251,"z":"da0dd7d5.9e19b8","wires":[]},{"id":"3f9be8dd.c4ce68","type":"switchNode","name":"switch tmp.level4-key-found","xml":"<switch test=\"`$tmp.level4-key-found`\">\n","comments":"","outputs":1,"x":486.85719299316406,"y":2157.4764404296875,"z":"da0dd7d5.9e19b8","wires":[["3719dfe1.2f538"]]},{"id":"3719dfe1.2f538","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":706.1429443359375,"y":2158.4763946533203,"z":"da0dd7d5.9e19b8","wires":[["4d128fce.85a7e"]]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-get-resource-request.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-get-resource-request.json
new file mode 100644 (file)
index 0000000..586ee40
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"71e5f19b.23cc1","type":"dgstart","name":"DGSTART","outputs":1,"x":123.75,"y":61.25,"z":"c9fb05a1.f03a38","wires":[["4e6a76bb.d58118"]]},{"id":"4e6a76bb.d58118","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":399.75,"y":62.25,"z":"c9fb05a1.f03a38","wires":[["b1975c3c.54147"]]},{"id":"b1975c3c.54147","type":"method","name":" vnf-get-resource-request","xml":"<method rpc='vnf-get-resource-request' mode='sync'>\n","comments":"","outputs":1,"x":716.75,"y":62.25,"z":"c9fb05a1.f03a38","wires":[["bbb2187d.b4ae88"]]},{"id":"bbb2187d.b4ae88","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":136.25,"y":144.25,"z":"c9fb05a1.f03a38","wires":[["279803f6.bb850c","7e6dd657.146b98","3a37e476.da7fcc"]]},{"id":"12d6dc0d.fd64f4","type":"set","name":"set","xml":"<set>\n   <parameter name=\"vnf-get-resource-request-output.vnf-get-resource-response-information.vnf_length\" value='`$service-data.vnfs.vnf_length`'/>\n   ","comments":"","x":892.75,"y":221.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"52f69811.1414c8","type":"for","name":"for vnfs","xml":"<for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1291.75,"y":314.25,"z":"c9fb05a1.f03a38","wires":[["af01353.72b0dc8"]]},{"id":"13db184.775a9e8","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vnf-id`' value=\"`$service-data.vnfs.vnf[$i].vnf-id`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vnf-name`' value=\"`$service-data.vnfs.vnf[$i].vnf-name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`'/>\n    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`'/>\n   \n","comments":"","x":1707.75,"y":312.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"af01353.72b0dc8","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1484.75,"y":313.25,"z":"c9fb05a1.f03a38","wires":[["13db184.775a9e8","64b1d01f.5a16d","210f3c73.f2bc34"]]},{"id":"500a1b48.ca00b4","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='j' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":2034.75,"y":411.25,"z":"c9fb05a1.f03a38","wires":[["6092aad9.5c23c4"]]},{"id":"638917f.a0714e8","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].value`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.status`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.status`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.capability-name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.capability-name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' />\n","comments":"","x":2428.75,"y":412.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"6092aad9.5c23c4","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2244.75,"y":412.25,"z":"c9fb05a1.f03a38","wires":[["638917f.a0714e8","7fd0e372.4ea51c"]]},{"id":"226d1977.2bb2a6","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='k' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":2936.75,"y":490.25,"z":"c9fb05a1.f03a38","wires":[["90271061.718a2"]]},{"id":"90271061.718a2","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key[$k].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key[$k].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].value`\"/>\n   ","comments":"","x":3160.75,"y":490.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"adbdcd86.970f","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].vf-module-id`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-id`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param_length`' value=\"`service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param_length`\"/>\n   \n","comments":"","x":2457.25,"y":665.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"8a363afa.1d7ff8","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2260.25,"y":666.25,"z":"c9fb05a1.f03a38","wires":[["adbdcd86.970f","6c63251f.2e2dbc"]]},{"id":"6c63251f.2e2dbc","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='m' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":2463.25,"y":742.25,"z":"c9fb05a1.f03a38","wires":[["2927472a.a6f5b8"]]},{"id":"875e84f.49d8978","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].value`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key_length`' value=\"`service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`\"/>\n   \n\n","comments":"","x":2874.25,"y":741.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"2927472a.a6f5b8","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2690.25,"y":741.25,"z":"c9fb05a1.f03a38","wires":[["875e84f.49d8978","42a7a5d9.b0445c"]]},{"id":"8ae546f5.8f01a8","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='n' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":3392.25,"y":815.25,"z":"c9fb05a1.f03a38","wires":[["a6125bb5.09a018"]]},{"id":"a6125bb5.09a018","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key[$n].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key[$n].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].value`\"/>\n","comments":"","x":3641.25,"y":814.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"8b961e1.b95a5e","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='l' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":2010.25,"y":665.25,"z":"c9fb05a1.f03a38","wires":[["8a363afa.1d7ff8"]]},{"id":"98ac6570.361ae8","type":"switchNode","name":"switch vnf length null","xml":"<switch test=\"`$service-data.vnfs.vnf_length == ''`\">\n\n","comments":"","outputs":1,"x":927.75,"y":312.25,"z":"c9fb05a1.f03a38","wires":[["edd588ca.df2798"]]},{"id":"edd588ca.df2798","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1120.75,"y":313.25,"z":"c9fb05a1.f03a38","wires":[["52f69811.1414c8"]]},{"id":"64b1d01f.5a16d","type":"switchNode","name":"switch param length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`\">\n\n","comments":"","outputs":1,"x":1760.75,"y":361.25,"z":"c9fb05a1.f03a38","wires":[["145834f.59f5bcb"]]},{"id":"145834f.59f5bcb","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1836.75,"y":411.25,"z":"c9fb05a1.f03a38","wires":[["500a1b48.ca00b4"]]},{"id":"aea627e9.1c1d48","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1860.75,"y":598.25,"z":"c9fb05a1.f03a38","wires":[["8b961e1.b95a5e"]]},{"id":"210f3c73.f2bc34","type":"switchNode","name":"switch vf module length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length == ''`\">\n\n","comments":"","outputs":1,"x":1769.75,"y":546.25,"z":"c9fb05a1.f03a38","wires":[["aea627e9.1c1d48"]]},{"id":"7fd0e372.4ea51c","type":"switchNode","name":"switch resource-key length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length == ''`\">\n\n","comments":"","outputs":1,"x":2498.75,"y":490.25,"z":"c9fb05a1.f03a38","wires":[["b8c1cd4c.e0428"]]},{"id":"b8c1cd4c.e0428","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2725.75,"y":490.25,"z":"c9fb05a1.f03a38","wires":[["226d1977.2bb2a6"]]},{"id":"42a7a5d9.b0445c","type":"switchNode","name":"switch resource-key length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length == ''`\">\n\n","comments":"","outputs":1,"x":2942.75,"y":816.25,"z":"c9fb05a1.f03a38","wires":[["1364a38e.caf57c"]]},{"id":"1364a38e.caf57c","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3169.75,"y":816.25,"z":"c9fb05a1.f03a38","wires":[["8ae546f5.8f01a8"]]},{"id":"12107077.40b7c","type":"set","name":"set","xml":"<set>\n\t<parameter name=\"ack-final\" value=\"Y\"/>\n   ","comments":"","x":274.0833740234375,"y":1081.916748046875,"z":"c9fb05a1.f03a38","wires":[]},{"id":"3a37e476.da7fcc","type":"returnSuccess","name":"return success","xml":"<return status=\"success\">\n    <parameter name=\"error-code\" value=\"200\" />","comments":"","x":287.0833740234375,"y":1182.916748046875,"z":"c9fb05a1.f03a38","wires":[]},{"id":"279803f6.bb850c","type":"set","name":"set","xml":"<set>\n   <parameter name=\"vnf-get-resource-request-output.vnf-get-resource-response-information.service-instance-id\" value='`$vnf-get-resource-request-input.service-information.service-instance-id`'/>\n   <parameter name=\"vnf-get-resource-request-output.vnf-get-resource-response-information.service-instance-name\" value='`$service-data.service-topology.service-topology-identifier.service-instance-name`'/>\n   ","comments":"","x":281.75,"y":144.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"7e6dd657.146b98","type":"switchNode","name":"switch vnf length null","xml":"<switch test=\"`$vnf-get-resource-request-input.vnf_length == ''`\">\n\n","comments":"","outputs":1,"x":337.5,"y":222.75,"z":"c9fb05a1.f03a38","wires":[["7ea307a8.26c5f8","43925d74.653894"]]},{"id":"7ea307a8.26c5f8","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":522.75,"y":222.75,"z":"c9fb05a1.f03a38","wires":[["d7e5acc6.a6a9e"]]},{"id":"43925d74.653894","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":514.75,"y":569.25,"z":"c9fb05a1.f03a38","wires":[["244c88d9.17e128"]]},{"id":"d7e5acc6.a6a9e","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":672.75,"y":221.25,"z":"c9fb05a1.f03a38","wires":[["12d6dc0d.fd64f4","98ac6570.361ae8"]]},{"id":"244c88d9.17e128","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":689.75,"y":569.25,"z":"c9fb05a1.f03a38","wires":[["97be966.400cf68","6fab5c8.8f5a5a4"]]},{"id":"97be966.400cf68","type":"set","name":"set","xml":"<set>\n   <parameter name=\"tmp.vnf_counter\" value='0'/>","comments":"","x":854.75,"y":568.25,"z":"c9fb05a1.f03a38","wires":[]},{"id":"6fab5c8.8f5a5a4","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='ll' start='0' end='`$vnf-get-resource-request-input.vnf_length`' >\n","comments":"","outputs":1,"x":933.75,"y":640.25,"z":"c9fb05a1.f03a38","wires":[["7fd5c704.7b7d88"]]},{"id":"7fd5c704.7b7d88","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1193.7498779296875,"y":803.5833129882812,"z":"c9fb05a1.f03a38","wires":[["7f48d3f2.bc62fc","5d7bb52b.3bf2fc"]]},{"id":"7f48d3f2.bc62fc","type":"set","name":"set","xml":"<set>\n   <parameter name=\"tmp.vnf-id\" value=\"`$vnf-get-resource-request-input.vnf[$ll].vnf-id`\"/>\n   \n   ","comments":"","x":1370.4998779296875,"y":804.5833129882812,"z":"c9fb05a1.f03a38","wires":[]},{"id":"53ff1d53.c963a4","type":"for","name":"for vnfs","xml":"<for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1589.2498779296875,"y":921.5833129882812,"z":"c9fb05a1.f03a38","wires":[["23a18f9b.123be"]]},{"id":"23a18f9b.123be","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1605.2498779296875,"y":1000.5833129882812,"z":"c9fb05a1.f03a38","wires":[["714e4b4d.72be04"]]},{"id":"4ab50efe.43414","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vnf-id`' value=\"`$service-data.vnfs.vnf[$i].vnf-id`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vnf-name`' value=\"`$service-data.vnfs.vnf[$i].vnf-name`\"/>\n   <parameter name=\"tmp.pnum\" value='0'/>\n   \n","comments":"","x":1885.2498779296875,"y":1178.5833129882812,"z":"c9fb05a1.f03a38","wires":[]},{"id":"714e4b4d.72be04","type":"switchNode","name":"switch vnf-id match","xml":"<switch test='`$tmp.vnf-id == $service-data.vnfs.vnf[$i].vnf-id`'>\n\n","comments":"","outputs":1,"x":1784.2498779296875,"y":999.5833129882812,"z":"c9fb05a1.f03a38","wires":[["98998365.bf924"]]},{"id":"98998365.bf924","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1988.7498779296875,"y":998.083251953125,"z":"c9fb05a1.f03a38","wires":[["a5490309.aed49"]]},{"id":"a5490309.aed49","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":1662.2498779296875,"y":1179.5833129882812,"z":"c9fb05a1.f03a38","wires":[["4ab50efe.43414","eb769595.4a1c88","80140d24.984d9","3c557cf7.80ad04"]]},{"id":"498ab47b.37a03c","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='j' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\n","comments":"","outputs":1,"x":2212.2498779296875,"y":1277.5833129882812,"z":"c9fb05a1.f03a38","wires":[["648562c9.05cdfc"]]},{"id":"15c41760.a683e9","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].value`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.status`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.status`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.capability-name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.capability-name`\"/>\n   <parameter name='tmp.prnum' value='0' />\n","comments":"","x":2606.2498779296875,"y":1278.5833129882812,"z":"c9fb05a1.f03a38","wires":[]},{"id":"648562c9.05cdfc","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2422.2498779296875,"y":1278.5833129882812,"z":"c9fb05a1.f03a38","wires":[["15c41760.a683e9","eba04fd3.4cbc1","7ecd748d.54608c"]]},{"id":"950d3183.cecf7","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='k' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":3114.2498779296875,"y":1356.5833129882812,"z":"c9fb05a1.f03a38","wires":[["98f080bb.9a2a9"]]},{"id":"98f080bb.9a2a9","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key[$tmp.prnum].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key[$tmp.prnum].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].value`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key_length`' value='`$tmp.prnum + 1`' />\n   <parameter name='tmp.prnum' value='`$tmp.prnum + 1`' />\n\n","comments":"","x":3338.2498779296875,"y":1356.5833129882812,"z":"c9fb05a1.f03a38","wires":[]},{"id":"eba04fd3.4cbc1","type":"set","name":"set","xml":"<set>\n    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param_length`' value='`$tmp.pnum + 1`' />\n    <parameter name='tmp.pnum' value='`$tmp.pnum + 1`' />\n","comments":"","x":2618.2498779296875,"y":1425.5833129882812,"z":"c9fb05a1.f03a38","wires":[]},{"id":"fd3454b5.cefc68","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].vf-module-id`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-id`\"/>\n   <parameter name=\"tmp.vfpnum\" value='0'/>\n   \n","comments":"","x":2836.75048828125,"y":1934.8331909179688,"z":"c9fb05a1.f03a38","wires":[]},{"id":"e457ca57.d615e8","type":"switchNode","name":"switch vf-module-id is null","xml":"<switch test=\"`$vnf-get-resource-request-input.vnf[$ll].vf-module_length == ''`\">\n\n","comments":"","outputs":1,"x":2392.0005493164062,"y":1727.5832214355469,"z":"c9fb05a1.f03a38","wires":[["44111800.179bc8","261f3d7c.d77342"]]},{"id":"261f3d7c.d77342","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2625.75048828125,"y":1777.8331909179688,"z":"c9fb05a1.f03a38","wires":[["3f2b06c9.6617ea"]]},{"id":"44111800.179bc8","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2625.75048828125,"y":1662.8331909179688,"z":"c9fb05a1.f03a38","wires":[["8fc1c07d.5fb89"]]},{"id":"3f2b06c9.6617ea","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":2639.75048828125,"y":1935.8331909179688,"z":"c9fb05a1.f03a38","wires":[["fd3454b5.cefc68","74abe52f.d8d7fc"]]},{"id":"74abe52f.d8d7fc","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='m' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\n","comments":"","outputs":1,"x":2842.75048828125,"y":2011.8331909179688,"z":"c9fb05a1.f03a38","wires":[["ceac56f.9b593a8"]]},{"id":"c71fe51d.045db8","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].value`\"/>\n   <parameter name='tmp.pvnfrnum' value='0' />\n","comments":"","x":3253.75048828125,"y":2010.8331909179688,"z":"c9fb05a1.f03a38","wires":[]},{"id":"ceac56f.9b593a8","type":"block","name":"block atomic","xml":"<block atomic=\"true\">\n","atomic":"false","comments":"","outputs":1,"x":3069.75048828125,"y":2010.8331909179688,"z":"c9fb05a1.f03a38","wires":[["c71fe51d.045db8","e08a2da7.f5fec","8103db8e.8bbc98"]]},{"id":"a0cff78e.a1a3a8","type":"for","name":"for vnf-parameters-data.param","xml":"<for index='n' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`' >\n","comments":"","outputs":1,"x":3759.2505798339844,"y":2081.0831298828125,"z":"c9fb05a1.f03a38","wires":[["91e21dd.0da18e"]]},{"id":"91e21dd.0da18e","type":"set","name":"set","xml":"<set>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].name`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].name`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].value`' value=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].value`\"/>\n   <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key_length`' value='`$tmp.pvnfrnum + 1`' />\n   <parameter name='tmp.pvnfrnum' value='`$tmp.pvnfrnum + 1`' />\n   \n","comments":"","x":3973.2505798339844,"y":2081.333038330078,"z":"c9fb05a1.f03a38","wires":[]},{"id":"e08a2da7.f5fec","type":"set","name":"set","xml":"<set>\n    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param_length`' value='`$tmp.vfpnum + 1`' />\n    <parameter name='tmp.vfpnum' value='`$tmp.vfpnum + 1`' />\n   \n","comments":"","x":3265.75048828125,"y":2157.8331909179688,"z":"c9fb05a1.f03a38","wires":[]},{"id":"1ffac0d4.9f3bdf","type":"for","name":"for vf-module","xml":"<for index='ln' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`' >\n","comments":"","outputs":1,"x":2187.75048828125,"y":1729.8331909179688,"z":"c9fb05a1.f03a38","wires":[["e457ca57.d615e8"]]},{"id":"eb769595.4a1c88","type":"set","name":"set","xml":"<set>\n  <parameter name='vnf-get-resource-request-output.vnf-get-resource-response-information.vnf_length' value='`$tmp.vnf_counter + 1`' />\n  <parameter name='tmp.vnf_counter' value='`$tmp.vnf_counter + 1`' />\n  \n","comments":"","x":1839.9998168945312,"y":2105.583251953125,"z":"c9fb05a1.f03a38","wires":[]},{"id":"5d7bb52b.3bf2fc","type":"switchNode","name":"switch vnf length null","xml":"<switch test=\"`$service-data.vnfs.vnf_length == ''`\">\n\n","comments":"","outputs":1,"x":1411.9999389648438,"y":865.0833129882812,"z":"c9fb05a1.f03a38","wires":[["8872705c.6c6b"]]},{"id":"8872705c.6c6b","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1429.2498779296875,"y":922.5833129882812,"z":"c9fb05a1.f03a38","wires":[["53ff1d53.c963a4"]]},{"id":"80140d24.984d9","type":"switchNode","name":"switch param length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`\">\n\n","comments":"","outputs":1,"x":1938.2498779296875,"y":1227.5833129882812,"z":"c9fb05a1.f03a38","wires":[["aded468b.41a518"]]},{"id":"aded468b.41a518","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2014.2498779296875,"y":1277.5833129882812,"z":"c9fb05a1.f03a38","wires":[["498ab47b.37a03c"]]},{"id":"75a3c377.d1f7bc","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2038.25048828125,"y":1662.8331909179688,"z":"c9fb05a1.f03a38","wires":[["1ffac0d4.9f3bdf"]]},{"id":"3c557cf7.80ad04","type":"switchNode","name":"switch module length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length == ''`\">\n\n","comments":"","outputs":1,"x":1947.25048828125,"y":1610.8331909179688,"z":"c9fb05a1.f03a38","wires":[["75a3c377.d1f7bc"]]},{"id":"7ecd748d.54608c","type":"switchNode","name":"switch resource-key length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length == ''`\">\n\n","comments":"","outputs":1,"x":2676.2498779296875,"y":1356.5833129882812,"z":"c9fb05a1.f03a38","wires":[["3a94d00d.37917"]]},{"id":"3a94d00d.37917","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2903.2498779296875,"y":1356.5833129882812,"z":"c9fb05a1.f03a38","wires":[["950d3183.cecf7"]]},{"id":"8103db8e.8bbc98","type":"switchNode","name":"switch resource-key length null","xml":"<switch test=\"`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length == ''`\">\n\n","comments":"","outputs":1,"x":3322.25048828125,"y":2085.8331909179688,"z":"c9fb05a1.f03a38","wires":[["4cf375e9.6b3bac"]]},{"id":"4cf375e9.6b3bac","type":"not-found","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":3549.25048828125,"y":2085.8331909179688,"z":"c9fb05a1.f03a38","wires":[["a0cff78e.a1a3a8"]]},{"id":"8fc1c07d.5fb89","type":"for","name":"for vf module length","xml":"<for index='jj' start='0' end='`$vnf-get-resource-request-input.vnf[$ll].vf-module_length`' >\n","comments":"","outputs":1,"x":2823.7501220703125,"y":1661.9166259765625,"z":"c9fb05a1.f03a38","wires":[["bd3e1107.bb98"]]},{"id":"bd3e1107.bb98","type":"switchNode","name":"switch vf-module-id is null","xml":"<switch test='`$vnf-get-resource-request-input.vnf[$ll].vf-module[$jj].vf-module-id == $service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-id`'>\n\n","comments":"","outputs":1,"x":3092.5,"y":1664,"z":"c9fb05a1.f03a38","wires":[["81cea753.cfda08"]]},{"id":"81cea753.cfda08","type":"not-found","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3328.75,"y":1664,"z":"c9fb05a1.f03a38","wires":[["3f2b06c9.6617ea"]]}]
\ No newline at end of file
index 42740f0..4a2fb18 100644 (file)
@@ -1 +1 @@
-[{"id":"c5d6a69c.db78c8","type":"dgstart","name":"DGSTART","outputs":1,"x":200,"y":140.4136562347412,"z":"334fe7a0.c84bc","wires":[["c2c51821.c20608"]]},{"id":"c2c51821.c20608","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":275.28570556640625,"y":180.6517677307129,"z":"334fe7a0.c84bc","wires":[["b24dd100.124548"]]},{"id":"b24dd100.124548","type":"method","name":"method vnf-topology-operation-activate","xml":"<method rpc='vnf-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":296.42862701416016,"y":220.4136562347412,"z":"334fe7a0.c84bc","wires":[["db4a0b9a.bf6ff"]]},{"id":"810d8dc5.92b518","type":"comment","name":"vnf-topology-operation-activate","info":"","comments":"","x":594.344856262207,"y":88,"z":"334fe7a0.c84bc","wires":[]},{"id":"501964cc.7c6bcc","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":603.523811340332,"y":319.2707939147949,"z":"334fe7a0.c84bc","wires":[["2f1d5bb9.19b7d4","f9e88ec2.19fcb8"]]},{"id":"2f1d5bb9.19b7d4","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":821.9047737121582,"y":296.4136781692505,"z":"334fe7a0.c84bc","wires":[["e5ae3a13.eafaa8"]]},{"id":"f9e88ec2.19fcb8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":785.9047393798828,"y":342.1280059814453,"z":"334fe7a0.c84bc","wires":[["c91fbfe6.90e8d8"]]},{"id":"e5ae3a13.eafaa8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1008.7619018554688,"y":296.4137077331543,"z":"334fe7a0.c84bc","wires":[[]]},{"id":"c91fbfe6.90e8d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'activate' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":1025.9047470092773,"y":342.1279640197754,"z":"334fe7a0.c84bc","wires":[]},{"id":"db4a0b9a.bf6ff","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":276.66666412353516,"y":442.0803279876709,"z":"334fe7a0.c84bc","wires":[["501964cc.7c6bcc","159a6c44.02a004","7496f5f4.dc6bbc","b197481f.a31d3","2548432d.b81fa4","ea7b6098.3506a","f7f0ed67.ce5d4","4e36aef1.d9ae8","8809d77a.d71fc8","60803d45.5b21ec","dc1ce2b8.5b9d7"]]},{"id":"159a6c44.02a004","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":589.9999847412109,"y":388.74701976776123,"z":"334fe7a0.c84bc","wires":[["a7fc69e7.0b7d4"]]},{"id":"a7fc69e7.0b7d4","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":776.6666641235352,"y":388.0803174972534,"z":"334fe7a0.c84bc","wires":[["b1895ef9.e59b8"]]},{"id":"b1895ef9.e59b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":958.3332901000977,"y":388.0803174972534,"z":"334fe7a0.c84bc","wires":[]},{"id":"7496f5f4.dc6bbc","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":571.6666641235352,"y":437.08033752441406,"z":"334fe7a0.c84bc","wires":[["3e4b9195.f70c06"]]},{"id":"3e4b9195.f70c06","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":826.6667518615723,"y":435.7470054626465,"z":"334fe7a0.c84bc","wires":[["d5798231.873158"]]},{"id":"d5798231.873158","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1065.0000381469727,"y":434.7469835281372,"z":"334fe7a0.c84bc","wires":[["ef9088f5.0fddd8"]]},{"id":"ef9088f5.0fddd8","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1233.3332328796387,"y":434.7470054626465,"z":"334fe7a0.c84bc","wires":[]},{"id":"b197481f.a31d3","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":583.3333282470703,"y":483.7470073699951,"z":"334fe7a0.c84bc","wires":[["47f1022f.88563c"]]},{"id":"47f1022f.88563c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":764.9999465942383,"y":483.08033752441406,"z":"334fe7a0.c84bc","wires":[["a85a1ea4.f1c298"]]},{"id":"a85a1ea4.f1c298","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":931.666633605957,"y":482.74696350097656,"z":"334fe7a0.c84bc","wires":[]},{"id":"f7f0ed67.ce5d4","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":569.333251953125,"y":905.4136962890625,"z":"334fe7a0.c84bc","wires":[]},{"id":"ea7b6098.3506a","type":"set","name":"set vnf-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":635.8133544921875,"y":775.7507934570312,"z":"334fe7a0.c84bc","wires":[]},{"id":"2548432d.b81fa4","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n","comments":"","x":581.6665191650391,"y":653.7469711303711,"z":"334fe7a0.c84bc","wires":[]},{"id":"4e36aef1.d9ae8","type":"switchNode","name":"switch current vnf-level-oper-status == PendingCreate","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'PendingCreate'`\">\n","comments":"","outputs":1,"x":705.0000381469727,"y":527.0802927017212,"z":"334fe7a0.c84bc","wires":[["b1595438.135ba8"]]},{"id":"b1595438.135ba8","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":991.333381652832,"y":526.746940612793,"z":"334fe7a0.c84bc","wires":[["c5d1d81b.6fa78"]]},{"id":"c5d1d81b.6fa78","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status must be PendingCreate, but is currently '\n      + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`\" />\n","comments":"","x":1149.6666564941406,"y":526.080265045166,"z":"334fe7a0.c84bc","wires":[]},{"id":"2fd59a02.0cc2de","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1095.0000038146973,"y":614.4135789871216,"z":"334fe7a0.c84bc","wires":[]},{"id":"5f693728.5c74c8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":926.0239028930664,"y":570.699390411377,"z":"334fe7a0.c84bc","wires":[["7d76396f.a8f8f8"]]},{"id":"2f7f9774.bec95","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":934.5953330993652,"y":614.9851036071777,"z":"334fe7a0.c84bc","wires":[["2fd59a02.0cc2de"]]},{"id":"7d76396f.a8f8f8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n","comments":"","x":1097.6905975341797,"y":571.175784111023,"z":"334fe7a0.c84bc","wires":[]},{"id":"8809d77a.d71fc8","type":"save","name":"update generic-vnf prov-status to NVTPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"prov-status\" value=\"NVTPROV\" />\n","comments":"","outputs":1,"x":673.3333282470703,"y":590.413646697998,"z":"334fe7a0.c84bc","wires":[["5f693728.5c74c8","2f7f9774.bec95"]]},{"id":"60803d45.5b21ec","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $tunnelxconn-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":608,"y":706,"z":"334fe7a0.c84bc","wires":[]},{"id":"b5fdcb35.ac3eb","type":"returnFailure","name":"MARKER ->","xml":"","comments":"","x":310,"y":702,"z":"334fe7a0.c84bc","wires":[]},{"id":"dc1ce2b8.5b9d7","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/vnf-top-act.log' />\n","comments":"","outputs":1,"x":571,"y":829,"z":"334fe7a0.c84bc","wires":[[]]}]
+[{"id":"9823088a.34ff58","type":"dgstart","name":"DGSTART","outputs":1,"x":100,"y":83.84222793579102,"z":"cdcd3fce.c4de3","wires":[["fbfa5c5e.c6d4c"]]},{"id":"fbfa5c5e.c6d4c","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":213.6190414428711,"y":124.08033847808838,"z":"cdcd3fce.c4de3","wires":[["98148b78.bcdc48"]]},{"id":"98148b78.bcdc48","type":"method","name":"method vnf-topology-operation-activate","xml":"<method rpc='vnf-topology-operation-activate' mode='sync'>\n","comments":"","outputs":1,"x":191.4286346435547,"y":164.508882522583,"z":"cdcd3fce.c4de3","wires":[["5d97c1d9.e769b"]]},{"id":"27e22f18.ec93b","type":"comment","name":"vnf-topology-operation-activate","info":"","comments":"","x":494.34485626220703,"y":31.428571701049805,"z":"cdcd3fce.c4de3","wires":[]},{"id":"a900d36.082793","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":503.52381134033203,"y":262.6993656158447,"z":"cdcd3fce.c4de3","wires":[["f5a183f3.59793","75104916.f4da18"]]},{"id":"f5a183f3.59793","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":721.9047737121582,"y":239.8422498703003,"z":"cdcd3fce.c4de3","wires":[["d9356d39.56626"]]},{"id":"75104916.f4da18","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":685.9047393798828,"y":285.5565776824951,"z":"cdcd3fce.c4de3","wires":[["618d2805.15c2d8"]]},{"id":"d9356d39.56626","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":908.7619018554688,"y":239.8422794342041,"z":"cdcd3fce.c4de3","wires":[[]]},{"id":"618d2805.15c2d8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'activate' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":925.9047470092773,"y":285.5565357208252,"z":"cdcd3fce.c4de3","wires":[]},{"id":"5d97c1d9.e769b","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":176.66666412353516,"y":385.5088996887207,"z":"cdcd3fce.c4de3","wires":[["a900d36.082793","7ddc2902.deaee8","97af8d2b.356cc","19b9abee.4b7d14","875c5b74.b738b8","70ffb4f.340354c","d8d2dde2.810b9","bd43a88e.1bb6f8"]]},{"id":"7ddc2902.deaee8","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":489.99998474121094,"y":332.17559146881104,"z":"cdcd3fce.c4de3","wires":[["ae8c14d3.92fde8"]]},{"id":"ae8c14d3.92fde8","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":676.6666641235352,"y":331.5088891983032,"z":"cdcd3fce.c4de3","wires":[["9f893ed1.bf8d"]]},{"id":"9f893ed1.bf8d","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":858.3332901000977,"y":331.5088891983032,"z":"cdcd3fce.c4de3","wires":[]},{"id":"97af8d2b.356cc","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":471.66666412353516,"y":380.50890922546387,"z":"cdcd3fce.c4de3","wires":[["6ccab3b2.bb933c"]]},{"id":"6ccab3b2.bb933c","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":726.6667518615723,"y":379.1755771636963,"z":"cdcd3fce.c4de3","wires":[["fe8e566e.b1b388"]]},{"id":"fe8e566e.b1b388","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":965.0000381469727,"y":378.175555229187,"z":"cdcd3fce.c4de3","wires":[["e8000355.b551"]]},{"id":"e8000355.b551","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1133.3332328796387,"y":378.1755771636963,"z":"cdcd3fce.c4de3","wires":[]},{"id":"19b9abee.4b7d14","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":483.3333282470703,"y":427.1755790710449,"z":"cdcd3fce.c4de3","wires":[["539a414b.f528f"]]},{"id":"539a414b.f528f","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":664.9999465942383,"y":426.50890922546387,"z":"cdcd3fce.c4de3","wires":[["3d4d7a09.a37936"]]},{"id":"3d4d7a09.a37936","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":831.666633605957,"y":426.17553520202637,"z":"cdcd3fce.c4de3","wires":[]},{"id":"d8d2dde2.810b9","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":473.3332862854004,"y":778.842230796814,"z":"cdcd3fce.c4de3","wires":[]},{"id":"70ffb4f.340354c","type":"set","name":"set vnf-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":535.8133964538574,"y":731.1793575286865,"z":"cdcd3fce.c4de3","wires":[]},{"id":"875c5b74.b738b8","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n","comments":"","x":476.6665382385254,"y":687.1755390167236,"z":"cdcd3fce.c4de3","wires":[]},{"id":"d20df170.6a2e3","type":"switchNode","name":"switch current vnf-level-oper-status","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`\">\n","comments":"","outputs":1,"x":540.0000495910645,"y":523.8422012329102,"z":"cdcd3fce.c4de3","wires":[["df045a00.9a1cc8","cb273963.15acc8","e0f4cddc.9bc1a"]]},{"id":"759eb0c7.19a54","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":990.0000228881836,"y":647.8421468734741,"z":"cdcd3fce.c4de3","wires":[]},{"id":"c389523d.1a902","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":821.0239219665527,"y":604.1279582977295,"z":"cdcd3fce.c4de3","wires":[["58ea1590.b05d5c"]]},{"id":"256c7551.a80d0a","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":829.5953521728516,"y":648.4136714935303,"z":"cdcd3fce.c4de3","wires":[["759eb0c7.19a54"]]},{"id":"58ea1590.b05d5c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n","comments":"","x":992.690616607666,"y":604.6043519973755,"z":"cdcd3fce.c4de3","wires":[]},{"id":"bd43a88e.1bb6f8","type":"save","name":"update generic-vnf prov-status to NVTPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"prov-status\" value=\"NVTPROV\" />\n","comments":"","outputs":1,"x":568.3333473205566,"y":623.8422145843506,"z":"cdcd3fce.c4de3","wires":[["c389523d.1a902","256c7551.a80d0a"]]},{"id":"a0eb8f8a.c509e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Order status must be PendingCreate or PendingDelete, but is currently '\n      + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`\" />\n","comments":"","x":909.6665458679199,"y":562.8422517776489,"z":"cdcd3fce.c4de3","wires":[]},{"id":"df045a00.9a1cc8","type":"outcome","name":"PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":784.9999961853027,"y":475.50890731811523,"z":"cdcd3fce.c4de3","wires":[["b50d2140.4c348"]]},{"id":"cb273963.15acc8","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":783.3333473205566,"y":518.8422317504883,"z":"cdcd3fce.c4de3","wires":[["b50d2140.4c348"]]},{"id":"e0f4cddc.9bc1a","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":758.3334503173828,"y":563.8422136306763,"z":"cdcd3fce.c4de3","wires":[["a0eb8f8a.c509e"]]},{"id":"b50d2140.4c348","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":943.3333168029785,"y":497.17559719085693,"z":"cdcd3fce.c4de3","wires":[[]]},{"id":"a9218298.5e734","type":"comment","name":"check removed with US622450","info":"","comments":"","x":418.57142857142856,"y":487.1428571428571,"z":"cdcd3fce.c4de3","wires":[]}]
\ No newline at end of file
index 2f575c5..25dde48 100644 (file)
@@ -1,2522 +1 @@
-[
-    {
-        "id": "7f85b319.ec8264",
-        "name": "DGSTART",
-        "outputs": 1,
-        "type": "dgstart",
-        "wires": [
-            [
-                "90051ccf.47dd18"
-            ]
-        ],
-        "x": 158,
-        "y": 108,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "90051ccf.47dd18",
-        "module": "GENERIC-RESOURCE-API",
-        "name": "GENERIC-RESOURCE-API 1.3.2-SNAPSHOT-20180531",
-        "outputs": 1,
-        "type": "service-logic",
-        "version": "${project.version}",
-        "wires": [
-            [
-                "62c9c96e.2f8908"
-            ]
-        ],
-        "x": 271.61902618408203,
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "y": 148.2381134033203,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "62c9c96e.2f8908",
-        "name": "method vnf-topology-operation-assign",
-        "outputs": 1,
-        "type": "method",
-        "wires": [
-            [
-                "8c2093db.c56518"
-            ]
-        ],
-        "x": 249.42862701416016,
-        "xml": "<method rpc='vnf-topology-operation-assign' mode='sync'>\n",
-        "y": 188,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5c8563c8.abc554",
-        "info": "",
-        "name": "vnf-topology-operation-assign",
-        "type": "comment",
-        "wires": [],
-        "x": 552.344856262207,
-        "y": 55.58634376525879,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "3ee765f3.a92b8a",
-        "name": "switch request-action",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "7d474a32.9007b4",
-                "46a9e819.26787"
-            ]
-        ],
-        "x": 559.8571395874023,
-        "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-        "y": 385.19043922424316,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7d474a32.9007b4",
-        "name": "CreateVnfInstance",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "1dd86dc0.120d9a"
-            ]
-        ],
-        "x": 813.5714340209961,
-        "xml": "<outcome value='CreateVnfInstance'>\n",
-        "y": 362.3333206176758,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "46a9e819.26787",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "cb51940c.60aca8"
-            ]
-        ],
-        "x": 775.5713996887207,
-        "xml": "<outcome value='Other'>\n",
-        "y": 408.0476484298706,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "1dd86dc0.120d9a",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 998.4285621643066,
-        "xml": "<block>\n",
-        "y": 362.3333501815796,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "cb51940c.60aca8",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1015.5714073181152,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateVnfInstance'\" />\n",
-        "y": 408.0476064682007,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "8c2093db.c56518",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "3ee765f3.a92b8a",
-                "d60893e6.15d0e8",
-                "fb8a3580.e4647",
-                "aac10be0.39a0e8",
-                "b403c1ec.e059b",
-                "b572efaa.cba408",
-                "8e7983f7.0b8ac8",
-                "95a9e356.edb75",
-                "c85d4198.45c628",
-                "26c17497.86b44c",
-                "1a64389.04fb547",
-                "2217154e.6141c2",
-                "deeeb827.37f63",
-                "c4c1c921.76e2b8",
-                "1da784bd.1a325b",
-                "6ce3245c.227ed4",
-                "97e88fe.9dab2f",
-                "84324533.95146",
-                "fe738685.6c7d7",
-                "2ab7bc1f.b085b4",
-                "2dbfa8ac.567be8",
-                "c33b5d51.3d59e",
-                "f8b8a722.fd6508",
-                "f03f1068.5af0c",
-                "5e785184.8c4128",
-                "3a4f6bb1.560164",
-                "9bd6668b.dfc92",
-                "391ed085.26b75",
-                "2e7ae530.0e2cea",
-                "611f691d.f4b31",
-                "c510e207.134d3"
-            ]
-        ],
-        "x": 188.11905670166016,
-        "xml": "<block atomic=\"true\">",
-        "y": 1719.7857055664062,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d60893e6.15d0e8",
-        "name": "get-resource VF_MODEL",
-        "outputs": 1,
-        "type": "get-resource",
-        "wires": [
-            [
-                "55ac2b52.c147bc",
-                "37dc7224.b3292e"
-            ]
-        ],
-        "x": 572.1904449462891,
-        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n",
-        "y": 476.333309173584,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "3a32be2b.d9bc92",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1013.6189231872559,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n",
-        "y": 499.7617950439453,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "55ac2b52.c147bc",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "48eedae7.45629c"
-            ]
-        ],
-        "x": 772.9761428833008,
-        "xml": "<outcome value='failure'>\n",
-        "y": 456.7141466140747,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "37dc7224.b3292e",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "3a32be2b.d9bc92"
-            ]
-        ],
-        "x": 781.5475730895996,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 500.9998598098755,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "48eedae7.45629c",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1012.9761238098145,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n",
-        "y": 454.85705375671387,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "fb8a3580.e4647",
-        "name": "switch service-data.vnfs.vnf_length",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "465f36d2.0e073",
-                "2ecc5899.269788"
-            ]
-        ],
-        "x": 602.2857131958008,
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "y": 666.5714282989502,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "465f36d2.0e073",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "ba18a24.ad916e"
-            ]
-        ],
-        "x": 828.0000419616699,
-        "xml": "<outcome value=''>\n",
-        "y": 633.7142162322998,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ba18a24.ad916e",
-        "name": "set vnf-index=0",
-        "type": "set",
-        "wires": [],
-        "x": 992.2857627868652,
-        "xml": "<set>\n<parameter name='vnf-index' value='0' />\n",
-        "y": 632.7142944335938,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2ecc5899.269788",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "4ebd83c7.528a64"
-            ]
-        ],
-        "x": 829.4286041259766,
-        "xml": "<outcome value='Other'>\n",
-        "y": 698.0000343322754,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7048a1cb.adf078",
-        "name": "set vnf-index = vnf_length",
-        "type": "set",
-        "wires": [],
-        "x": 1168.285758972168,
-        "xml": "<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n",
-        "y": 676.285722732544,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d5aeee8c.b79908",
-        "name": "for each existing VNF",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "ce4d4a26.2f4908"
-            ]
-        ],
-        "x": 1153.7142715454102,
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
-        "y": 722.2856616973877,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "4ebd83c7.528a64",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "7048a1cb.adf078",
-                "d5aeee8c.b79908"
-            ]
-        ],
-        "x": 965.1428642272949,
-        "xml": "<block>\n",
-        "y": 698,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ce4d4a26.2f4908",
-        "name": "switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "7bb84912.63e62"
-            ]
-        ],
-        "x": 1508.0000381469727,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n",
-        "y": 721.857141494751,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7bb84912.63e62",
-        "name": "true",
-        "outputs": 1,
-        "type": "outcomeTrue",
-        "wires": [
-            [
-                "8287fea2.8f264"
-            ]
-        ],
-        "x": 1802.2857475280762,
-        "xml": "<outcome value='true'>\n",
-        "y": 721.4286136627197,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "8287fea2.8f264",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1950.8571548461914,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`\" />\n",
-        "y": 721.4285736083984,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7bf5b528.4f469c",
-        "info": "",
-        "name": "make sure this VNF doesn't exist already",
-        "type": "comment",
-        "wires": [],
-        "x": 1495.1427688598633,
-        "y": 679.4285717010498,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "aac10be0.39a0e8",
-        "name": "set vnf-topology data",
-        "type": "set",
-        "wires": [],
-        "x": 557.9999694824219,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\n value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\n value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\n value='`$db.vf-model.nf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\n value='`$db.vf-model.nf-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\n value='`$db.vf-model.nf-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\n value='`$db.vf-model.nf-code`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\n value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\n value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\n \n",
-        "y": 828.238115310669,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "b403c1ec.e059b",
-        "name": "switch input vnf-name",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "98b70d2d.7445c8",
-                "ff9bcb42.eb5f1"
-            ]
-        ],
-        "x": 564.4285507202148,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\n",
-        "y": 1070.8571615219116,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "98b70d2d.7445c8",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "5ce76bf0.0fe7fc"
-            ]
-        ],
-        "x": 832.6427726745605,
-        "xml": "<outcome value=''>",
-        "y": 993.8333864212036,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "dddcb6fb.6fadd",
-        "name": "switch ecomp-generated-naming",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "a0e8eebb.f2bf6",
-                "fcddb1f1.15f2c8",
-                "fb5bcd7b.93abb8"
-            ]
-        ],
-        "x": 1249.071662902832,
-        "xml": "<switch test='`$db.vf-model.ecomp-generated-naming`'>\n",
-        "y": 900.5002059936523,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "5ce76bf0.0fe7fc",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "5795f411.5a64bc",
-                "9b41a0f.e8b05e",
-                "dddcb6fb.6fadd"
-            ]
-        ],
-        "x": 978.3572692871094,
-        "xml": "<block atomic=\"true\">",
-        "y": 993.833498954773,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "fcddb1f1.15f2c8",
-        "name": "N",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "9a465697.6d89a"
-            ]
-        ],
-        "x": 1498.357322692871,
-        "xml": "<outcome value='N'>",
-        "y": 902.404914855957,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "9a465697.6d89a",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1652.64310836792,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No vnf-name was received but ecomp-generated-naming is not Y\" />\n",
-        "y": 920.9763593673706,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a0e8eebb.f2bf6",
-        "name": "Y",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "b8327ea6.6151"
-            ]
-        ],
-        "x": 1498.3572883605957,
-        "xml": "<outcome value='Y'>",
-        "y": 858.1192359924316,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "fb5bcd7b.93abb8",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "9a465697.6d89a"
-            ]
-        ],
-        "x": 1498.357250213623,
-        "xml": "<outcome value='Other'>\n",
-        "y": 948.119234085083,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "b8327ea6.6151",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 1635.5002326965332,
-        "xml": "<block>\n",
-        "y": 858.1192359924316,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ff9bcb42.eb5f1",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "1614942.5f3dcec"
-            ]
-        ],
-        "x": 835.2144546508789,
-        "xml": "<outcome value='Other'>\n",
-        "y": 1140.119125366211,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f88d9a18.d869f8",
-        "name": "set tmp.vnf-name",
-        "type": "set",
-        "wires": [],
-        "x": 1794.0715306599936,
-        "xml": "<set>\n<parameter name='tmp.vnf-name' value=\"`$vnf-topology-operation-input.vnf-request-input.vnf-name`\" />\n",
-        "y": 1207.5476417541504,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5795f411.5a64bc",
-        "name": "call GENERIC-RESOURCE-API:generate-unique-name",
-        "outputs": 1,
-        "type": "call",
-        "wires": [
-            [
-                "51165cf7.f6843c",
-                "f172e525.aff23"
-            ]
-        ],
-        "x": 1317.4763259887695,
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
-        "y": 1066.8333959579468,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "51165cf7.f6843c",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "682b96e6.6b632"
-            ]
-        ],
-        "x": 1613.1906140645347,
-        "xml": "<outcome value='failure'>\n",
-        "y": 1039.690658569336,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f172e525.aff23",
-        "name": "success",
-        "outputs": 1,
-        "type": "success",
-        "wires": [
-            [
-                "aa7e9b78.4083b"
-            ]
-        ],
-        "x": 1616.5239639282227,
-        "xml": "<outcome value='success'>\n",
-        "y": 1091.3573017120361,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "9b41a0f.e8b05e",
-        "name": "set variables for generating unique name",
-        "type": "set",
-        "wires": [],
-        "x": 1274.1430130004883,
-        "xml": "<set>\n<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`\" />\n<parameter name='generate-unique-name-input.index-length' value='2' />\n",
-        "y": 1015.1668043136597,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "aa7e9b78.4083b",
-        "name": "set tmp.vnf-name to generated name",
-        "type": "set",
-        "wires": [],
-        "x": 1857.7143491109214,
-        "xml": "<set>\n<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\n",
-        "y": 1091.8333930969238,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "682b96e6.6b632",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1781.0477269490561,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",
-        "y": 1039.1191701889038,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "1614942.5f3dcec",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "4f4e849f.98565c",
-                "237fb0e1.59bbc8"
-            ]
-        ],
-        "x": 983.1429824829102,
-        "xml": "<block atomic=\"true\">",
-        "y": 1138.7858123779297,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "237fb0e1.59bbc8",
-        "name": "call GENERIC-RESOURCE-API:generate-unique-name",
-        "outputs": 1,
-        "type": "call",
-        "wires": [
-            [
-                "445f33b6.f0f264",
-                "b1ac48e3.52ee98"
-            ]
-        ],
-        "x": 1313.1429824829102,
-        "xml": "<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n",
-        "y": 1186.7858123779297,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "445f33b6.f0f264",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "d05b4ba7.3c07f"
-            ]
-        ],
-        "x": 1611.7143987019858,
-        "xml": "<outcome value='failure'>\n",
-        "y": 1156.785837173462,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "b1ac48e3.52ee98",
-        "name": "success",
-        "outputs": 1,
-        "type": "success",
-        "wires": [
-            [
-                "f88d9a18.d869f8"
-            ]
-        ],
-        "x": 1615.0477485656738,
-        "xml": "<outcome value='success'>\n",
-        "y": 1208.452480316162,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "4f4e849f.98565c",
-        "name": "set variables for generating unique name",
-        "type": "set",
-        "wires": [],
-        "x": 1269.8096542358398,
-        "xml": "<set>\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\n",
-        "y": 1135.1191844940186,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d05b4ba7.3c07f",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1779.5715115865073,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n",
-        "y": 1156.2143487930298,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "b572efaa.cba408",
-        "name": "get-resource cloud region",
-        "outputs": 1,
-        "type": "get-resource",
-        "wires": [
-            [
-                "a348eda7.660348",
-                "142de0c9.dde827"
-            ]
-        ],
-        "x": 586.5714492797852,
-        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n",
-        "y": 1748.8569984436035,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "142de0c9.dde827",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "34ef927d.00b456"
-            ]
-        ],
-        "x": 811.8176422119141,
-        "xml": "<outcome value='failure'>\n",
-        "y": 1767.00785446167,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "34ef927d.00b456",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 986.8176155090332,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n",
-        "y": 1767.007890701294,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a348eda7.660348",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "ac864602.325b48"
-            ]
-        ],
-        "x": 820.7462387084961,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 1725.2935876846313,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ac864602.325b48",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 987.095516204834,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region not found in AAI\" />\n",
-        "y": 1724.5991649627686,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "8e7983f7.0b8ac8",
-        "name": "get-resource VF_TO_NETWORK_ROLE_MAPPING",
-        "outputs": 1,
-        "type": "get-resource",
-        "wires": [
-            [
-                "4303334b.1d06ac",
-                "97da19d.b97dfe8"
-            ]
-        ],
-        "x": 651.8095321655273,
-        "xml": "<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-network-role-mapping[]'>\n\n",
-        "y": 2059.9045181274414,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d4db95bc.3539b",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1387.5237121582031,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No entries found in VF_TO_NETWORK_ROLE_MAPPING for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n",
-        "y": 2077.618698120117,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "4303334b.1d06ac",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "1cb8c40f.bbd244"
-            ]
-        ],
-        "x": 947.5952033996582,
-        "xml": "<outcome value='failure'>\n",
-        "y": 2038.6186828613281,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "97da19d.b97dfe8",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "2ca15486.5cc8cc"
-            ]
-        ],
-        "x": 956.166633605957,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 2082.904396057129,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1cb8c40f.bbd244",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1122.5951843261719,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_TO_NETWORK_ROLE_MAPPING table\" />\n",
-        "y": 2038.4283332824707,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "796cc7.d490b338",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "465ab09f.34229",
-                "799318e1.a3e3a",
-                "dc31ec67.0624a",
-                "d834554a.ccf5f",
-                "30a0e3fe.983584",
-                "bc183bd7.3e811",
-                "dc8fa939.b773f",
-                "5090527e.f6c044"
-            ]
-        ],
-        "x": 752.5715866088867,
-        "xml": "<block atomic=\"true\">",
-        "y": 2508.71391582489,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "dc31ec67.0624a",
-        "name": "get-resource l3-network",
-        "outputs": 1,
-        "type": "get-resource",
-        "wires": [
-            [
-                "c81a364.d370848",
-                "419e2508.7620ac"
-            ]
-        ],
-        "x": 985.4286041259766,
-        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"l3-networks\" \n\t\tkey=\"l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role\"\n        pfx='aai.l3-network' local-only='false'\n>\n",
-        "y": 2187.999779701233,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "419e2508.7620ac",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "b16e3091.456208"
-            ]
-        ],
-        "x": 1189.476318359375,
-        "xml": "<outcome value='failure'>\n",
-        "y": 2210.1426191329956,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "b16e3091.456208",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1364.4762916564941,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving l3-network from AAI\" />\n",
-        "y": 2210.1426553726196,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c81a364.d370848",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "1b8e966.12c8b6a"
-            ]
-        ],
-        "x": 1198.404914855957,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 2168.428352355957,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1b8e966.12c8b6a",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1364.754192352295,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No active l3-network found in AAI with cloud_region_id '\n          + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\n          + $db.vf-network-role-mapping[$network-index].network-role`\" />\n",
-        "y": 2167.7339296340942,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "465ab09f.34229",
-        "name": "set vnf-network data",
-        "type": "set",
-        "wires": [],
-        "x": 974.6191940307617,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\n    value='`$db.vf-network-role-mapping[$role-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\n    value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\n",
-        "y": 2675.0000228881836,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1a64389.04fb547",
-        "name": "for each cloud-region availability zone",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "509993f3.7086bc"
-            ]
-        ],
-        "x": 586.3335571289062,
-        "xml": "<for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\n",
-        "y": 3089.618803024292,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "696846f6.70aa8",
-        "name": "set availability-zone",
-        "type": "set",
-        "wires": [],
-        "x": 1048.0002403259277,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\n  value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\n",
-        "y": 3058.952217102051,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2217154e.6141c2",
-        "name": "set vnf-parameters-data",
-        "type": "set",
-        "wires": [],
-        "x": 545.9524841308594,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\n  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\n",
-        "y": 2939.5711631774902,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "57d7e5fc.33f244",
-        "name": "save generic-vnf l3-network relationships",
-        "outputs": 1,
-        "type": "save",
-        "wires": [
-            [
-                "7186d613.fe144",
-                "35d8114.d0acf6e"
-            ]
-        ],
-        "x": 1012.5240173339844,
-        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`\" />\n",
-        "y": 3233.381015777588,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1da784bd.1a325b",
-        "name": "return success",
-        "type": "returnSuccess",
-        "wires": [],
-        "x": 509.0953674316406,
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "y": 3620.1901140213013,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c4c1c921.76e2b8",
-        "name": "set vnf-level-oper-status to PendingCreate",
-        "type": "set",
-        "wires": [],
-        "x": 598.9088134765625,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n",
-        "y": 3522.527594566345,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c85d4198.45c628",
-        "name": "for each network-role",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "796cc7.d490b338"
-            ]
-        ],
-        "x": 535.9048919677734,
-        "xml": "<for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>",
-        "y": 2508.7141189575195,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "95a9e356.edb75",
-        "name": "set network-index = 0",
-        "type": "set",
-        "wires": [],
-        "x": 554.2380676269531,
-        "xml": "<set>\n<parameter name='network-index' value='0' />\n",
-        "y": 2126.8094577789307,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "799318e1.a3e3a",
-        "name": "increment network-index",
-        "type": "set",
-        "wires": [],
-        "x": 984.9525146484375,
-        "xml": "<set>\n<parameter name='network-index' value='`$network-index + 1`' />\n",
-        "y": 2812.6189250946045,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "26c17497.86b44c",
-        "name": "set vnf-network_length",
-        "type": "set",
-        "wires": [],
-        "x": 544.8095703125,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$network-index`' />\n",
-        "y": 2889.571207046509,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "deeeb827.37f63",
-        "name": "copy input data",
-        "type": "set",
-        "wires": [],
-        "x": 514.4286422729492,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n",
-        "y": 3470.1904258728027,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "6ce3245c.227ed4",
-        "name": "for each vnf-network",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "21eaa2af.c3b26e"
-            ]
-        ],
-        "x": 535.52392578125,
-        "xml": "<for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n",
-        "y": 3232.380931854248,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "21eaa2af.c3b26e",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "57d7e5fc.33f244"
-            ]
-        ],
-        "x": 739.1905670166016,
-        "xml": "<block atomic=\"true\">",
-        "y": 3232.380892753601,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "97e88fe.9dab2f",
-        "name": "set new vnf_length",
-        "type": "set",
-        "wires": [],
-        "x": 550.0952491760254,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n",
-        "y": 782.7619781494141,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "84324533.95146",
-        "name": "for each cloud-region relationship",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "f787444c.e13378"
-            ]
-        ],
-        "x": 599.4285736083984,
-        "xml": "<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n",
-        "y": 1836.0951700210571,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f787444c.e13378",
-        "name": "switch related-to",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "cd796e7b.7cf948"
-            ]
-        ],
-        "x": 847.1071166992188,
-        "xml": "<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n",
-        "y": 1835.8450994491577,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "cd796e7b.7cf948",
-        "name": "complex",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "29a74b62.067044"
-            ]
-        ],
-        "x": 1016.5714378356934,
-        "xml": "<outcome value='complex'>\n",
-        "y": 1835.2379217147827,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f964a25d.454b6",
-        "name": "set aic-clli",
-        "type": "set",
-        "wires": [],
-        "x": 1337.2857360839844,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\n  value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n",
-        "y": 1834.9045791625977,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "fe738685.6c7d7",
-        "name": "switch aic-clli",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "d8ba8844.b1a0b8"
-            ]
-        ],
-        "x": 535.3333511352539,
-        "xml": "<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\n",
-        "y": 1992.0474872589111,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d8ba8844.b1a0b8",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "25200dee.75e302"
-            ]
-        ],
-        "x": 683.4761848449707,
-        "xml": "<outcome value=''>",
-        "y": 1992.0474700927734,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "25200dee.75e302",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 830.6190452575684,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n",
-        "y": 1991.6189041137695,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5f4ea6d7.ceb158",
-        "name": "set from DB",
-        "type": "set",
-        "wires": [],
-        "x": 958.9287452697754,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-model.invariant-uuid`' />\n",
-        "y": 1308.0475587844849,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "43d65ebc.c60b2",
-        "name": "for each l3-network",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "6f76ed5d.4970e4"
-            ]
-        ],
-        "x": 1092.8811492919922,
-        "xml": "<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\n",
-        "y": 2431.571388244629,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "6f76ed5d.4970e4",
-        "name": "switch orchestration-status",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "bbe5662.f16b918",
-                "cb1bcbb.e4a72b8",
-                "be3d158a.0afbb",
-                "a22f9423.3e4f08",
-                "1aa61126.14efcf"
-            ]
-        ],
-        "x": 1321.452350616455,
-        "xml": "<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\n",
-        "y": 2430.142815589905,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "bbe5662.f16b918",
-        "name": "Pending Delete",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "c5d64162.5301c8"
-            ]
-        ],
-        "x": 1558.1192626953125,
-        "xml": "<outcome value='Pending Delete'>\n",
-        "y": 2475.8095235824585,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "cb1bcbb.e4a72b8",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "cada7ba0.1dd8"
-            ]
-        ],
-        "x": 1530.9764022827148,
-        "xml": "<outcome value='Other'>\n",
-        "y": 2526.809504508972,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f2201c7e.b452e8",
-        "name": "switch related-to",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "18bbcf5a.1ec521"
-            ]
-        ],
-        "x": 1896.6907539367676,
-        "xml": "<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\n",
-        "y": 2525.3808450698853,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "cada7ba0.1dd8",
-        "name": "for each relationship",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "f2201c7e.b452e8"
-            ]
-        ],
-        "x": 1700.9763145446777,
-        "xml": "<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\n",
-        "y": 2526.3808813095093,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "18bbcf5a.1ec521",
-        "name": "cloud-region",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "9edb388f.f5112"
-            ]
-        ],
-        "x": 2070.9763946533203,
-        "xml": "<outcome value='cloud-region'>\n",
-        "y": 2524.9522914886475,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "9edb388f.f5112",
-        "name": "for each relationship data",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "1a8ed1c0.72a746"
-            ]
-        ],
-        "x": 2268.119094848633,
-        "xml": "<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\n",
-        "y": 2525.380759239197,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1a8ed1c0.72a746",
-        "name": "switch relationship-key",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "435633df.b879dc"
-            ]
-        ],
-        "x": 2499.547695159912,
-        "xml": "<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\n",
-        "y": 2524.9521341323853,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "435633df.b879dc",
-        "name": "cloud-region.cloud-region-id",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "48895616.05d3b"
-            ]
-        ],
-        "x": 2740.9762268066406,
-        "xml": "<outcome value='cloud-region.cloud-region-id'>\n",
-        "y": 2524.95223903656,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "48895616.05d3b",
-        "name": "switch relationship-value == cloud-region-id",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "12babad5.4b3935"
-            ]
-        ],
-        "x": 3045.2621459960938,
-        "xml": "<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n",
-        "y": 2524.8092947006226,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "12babad5.4b3935",
-        "name": "true",
-        "outputs": 1,
-        "type": "outcomeTrue",
-        "wires": [
-            [
-                "ad009415.ee8e2"
-            ]
-        ],
-        "x": 3285.262176513672,
-        "xml": "<outcome value='true'>\n",
-        "y": 2524.9522399902344,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "d834554a.ccf5f",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "43d65ebc.c60b2",
-                "29a56ec0.3effd2"
-            ]
-        ],
-        "x": 931.0953330993652,
-        "xml": "<block>\n",
-        "y": 2499.4284858703613,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "29a56ec0.3effd2",
-        "name": "CATCH BREAK",
-        "type": "returnSuccess",
-        "wires": [],
-        "x": 1082.4287414550781,
-        "xml": "<return status='success'>\n\n",
-        "y": 2572.7617197036743,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f75b0ddb.4ffe68",
-        "name": "BREAK",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 3586.095157623291,
-        "xml": "<return status='failure'>\n",
-        "y": 2542.761643409729,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "30a0e3fe.983584",
-        "name": "set l3-network-id = -1",
-        "type": "set",
-        "wires": [],
-        "x": 975.4287033081055,
-        "xml": "<set>\n<parameter name='l3-network-id' value='-1' />\n",
-        "y": 2302.7616996765137,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "ad009415.ee8e2",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "7a5cc970.dcdc18",
-                "f75b0ddb.4ffe68"
-            ]
-        ],
-        "x": 3431.0951538085938,
-        "xml": "<block atomic=\"true\">",
-        "y": 2524.4283485412598,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7a5cc970.dcdc18",
-        "name": "set l3-network-id = this l3-network",
-        "type": "set",
-        "wires": [],
-        "x": 3667.7618255615234,
-        "xml": "<set>\n<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n",
-        "y": 2499.4283475875854,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "bc183bd7.3e811",
-        "name": "switch l3-network-id",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "91318c2.57404f"
-            ]
-        ],
-        "x": 972.4286270141602,
-        "xml": "<switch test='`$l3-network-id`'>\n",
-        "y": 2626.428741455078,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "91318c2.57404f",
-        "name": "-1",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "504d1216.64d004"
-            ]
-        ],
-        "x": 1142.4285774230957,
-        "xml": "<outcome value='-1'>\n",
-        "y": 2626.428497314453,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "504d1216.64d004",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1290.7619400024414,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`\" />\n",
-        "y": 2626.4286346435547,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2ab7bc1f.b085b4",
-        "name": "switch input model-invariant-uuid",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "e082345e.236ca",
-                "a95f8164.b4e8b8"
-            ]
-        ],
-        "x": 602.7858200073242,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\n",
-        "y": 1330.8720026016235,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "e082345e.236ca",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "5f4ea6d7.ceb158"
-            ]
-        ],
-        "x": 808.4524917602539,
-        "xml": "<outcome value=''>",
-        "y": 1308.0149660110474,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a95f8164.b4e8b8",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "e5dcf453.7ec14"
-            ]
-        ],
-        "x": 809.8810882568359,
-        "xml": "<outcome value='Other'>\n",
-        "y": 1352.3005571365356,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "e5dcf453.7ec14",
-        "name": "set from input",
-        "type": "set",
-        "wires": [],
-        "x": 964.1668243408203,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n",
-        "y": 1351.7291293144226,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ebeec6f9.2c628",
-        "name": "set from DB",
-        "type": "set",
-        "wires": [],
-        "x": 959.8810157775879,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$db.vf-model.uuid`' />\n",
-        "y": 1396.5862350463867,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2dbfa8ac.567be8",
-        "name": "switch input model-uuid",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "bafa03f0.0be328",
-                "40a4f245.06edcc"
-            ]
-        ],
-        "x": 575.4048385620117,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\n",
-        "y": 1419.4107398986816,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "bafa03f0.0be328",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "ebeec6f9.2c628"
-            ]
-        ],
-        "x": 809.4048118591309,
-        "xml": "<outcome value=''>",
-        "y": 1396.553671836853,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "40a4f245.06edcc",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "9ad4384f.c55ae"
-            ]
-        ],
-        "x": 810.8334083557129,
-        "xml": "<outcome value='Other'>\n",
-        "y": 1440.8392629623413,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "9ad4384f.c55ae",
-        "name": "set from input",
-        "type": "set",
-        "wires": [],
-        "x": 965.1191444396973,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n",
-        "y": 1440.2678351402283,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "369af0fe.bb8d18",
-        "name": "set from DB",
-        "type": "set",
-        "wires": [],
-        "x": 957.0239486694336,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$db.vf-model.version`' />\n",
-        "y": 1485.4434423446655,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c33b5d51.3d59e",
-        "name": "switch input model-version",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "b1d9b14.52a99d",
-                "7dbbd718.ba9528"
-            ]
-        ],
-        "x": 583.5477104187012,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\n",
-        "y": 1508.2678871154785,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "b1d9b14.52a99d",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "369af0fe.bb8d18"
-            ]
-        ],
-        "x": 806.5476951599121,
-        "xml": "<outcome value=''>",
-        "y": 1485.410849571228,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7dbbd718.ba9528",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "ec86a60a.b943f8"
-            ]
-        ],
-        "x": 807.9762916564941,
-        "xml": "<outcome value='Other'>\n",
-        "y": 1529.6964406967163,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ec86a60a.b943f8",
-        "name": "set from input",
-        "type": "set",
-        "wires": [],
-        "x": 962.2620277404785,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\n",
-        "y": 1529.1250128746033,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d84c1fb5.76aec8",
-        "name": "set from DB",
-        "type": "set",
-        "wires": [],
-        "x": 957.0239486694336,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$db.vf-model.name`' />\n",
-        "y": 1572.5862646102905,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f8b8a722.fd6508",
-        "name": "switch input model-name",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "37bd193e.8fcaee",
-                "904a8546.5a6878"
-            ]
-        ],
-        "x": 578.5477104187012,
-        "xml": "<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\n",
-        "y": 1595.4107093811035,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "37bd193e.8fcaee",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "d84c1fb5.76aec8"
-            ]
-        ],
-        "x": 806.5476951599121,
-        "xml": "<outcome value=''>",
-        "y": 1572.553671836853,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "904a8546.5a6878",
-        "name": "other",
-        "outputs": 1,
-        "type": "other",
-        "wires": [
-            [
-                "fb77ed1e.4c6d38"
-            ]
-        ],
-        "x": 807.9762916564941,
-        "xml": "<outcome value='Other'>\n",
-        "y": 1616.8392629623413,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "fb77ed1e.4c6d38",
-        "name": "set from input",
-        "type": "set",
-        "wires": [],
-        "x": 962.2620277404785,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\n",
-        "y": 1616.2678351402283,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "c5d64162.5301c8",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 1711.3333549499512,
-        "xml": "<block>\n",
-        "y": 2476.586400985718,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1aa61126.14efcf",
-        "name": "PendingDelete",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "1a19e1e7.6d515e"
-            ]
-        ],
-        "x": 1555.9999961853027,
-        "xml": "<outcome value='PendingDelete'>\n",
-        "y": 2431.5863151550293,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "1a19e1e7.6d515e",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 1711.2140884399414,
-        "xml": "<block>\n",
-        "y": 2432.3631925582886,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a22f9423.3e4f08",
-        "name": "Pending Create",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "7b5140c6.1be978"
-            ]
-        ],
-        "x": 1557.9999961853027,
-        "xml": "<outcome value='Pending Create'>\n",
-        "y": 2388.2528190612793,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "7b5140c6.1be978",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 1711.2140884399414,
-        "xml": "<block>\n",
-        "y": 2389.0296964645386,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "be3d158a.0afbb",
-        "name": "PendingCreate",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "56c1bb65.93ed54"
-            ]
-        ],
-        "x": 1557.9999961853027,
-        "xml": "<outcome value='PendingCreate'>\n",
-        "y": 2344.9195671081543,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "false",
-        "comments": "",
-        "id": "56c1bb65.93ed54",
-        "name": "block",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            []
-        ],
-        "x": 1711.2140884399414,
-        "xml": "<block>\n",
-        "y": 2345.6964445114136,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "dc8fa939.b773f",
-        "name": "for each A&AI subnet",
-        "outputs": 1,
-        "type": "for",
-        "wires": [
-            [
-                "ca52b163.d4827"
-            ]
-        ],
-        "x": 974.6667633056641,
-        "xml": "<for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\n",
-        "y": 2719.919626235962,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "ca52b163.d4827",
-        "name": "set subnet data",
-        "type": "set",
-        "wires": [],
-        "x": 1172.9999389648438,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\n",
-        "y": 2718.2532052993774,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5090527e.f6c044",
-        "name": "set subnet_length",
-        "type": "set",
-        "wires": [],
-        "x": 963.3333282470703,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\n   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\n",
-        "y": 2764.919708251953,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f03f1068.5af0c",
-        "name": "set availability-zones.max-count and length",
-        "type": "set",
-        "wires": [],
-        "x": 606.0000610351562,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\n   value='`$db.vf-model.avail-zone-max-count`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\n   value='`$aai.az.availability-zone_length`' />\n",
-        "y": 3177.6342582702637,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5e785184.8c4128",
-        "name": "set vnf-name",
-        "type": "set",
-        "wires": [],
-        "x": 539.666633605957,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\n   value='`$tmp.vnf-name`' />\n",
-        "y": 1264.9197664260864,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "3a4f6bb1.560164",
-        "name": "update generic-vnf",
-        "outputs": 1,
-        "type": "save",
-        "wires": [
-            [
-                "1fc6e960.150607",
-                "a8793a07.5d6f48"
-            ]
-        ],
-        "x": 526.3333282470703,
-        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vnf-name\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<parameter name=\"operational-status\" value=\"out-of-service-path\" />\n<parameter name=\"equipment-role\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`\" />\n<parameter name=\"model-invariant-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vnf-object-path`\" />\n",
-        "y": 3387.300033569336,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "9bd6668b.dfc92",
-        "name": "set vnf-object-path and service-object-path",
-        "type": "set",
-        "wires": [],
-        "x": 606.3333740234375,
-        "xml": "<set>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology'`\"/>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology'`\"/>",
-        "y": 3310.300537109375,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "391ed085.26b75",
-        "name": "set vnf-id",
-        "type": "set",
-        "wires": [],
-        "x": 527.9999771118164,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\n   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n",
-        "y": 1216.5863094329834,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "e3fcddaa.ac5538",
-        "name": "printContext",
-        "outputs": 1,
-        "type": "execute",
-        "wires": [
-            []
-        ],
-        "x": 504.00009536743164,
-        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-viprend.log' />\n",
-        "y": 3568.967363357544,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "6f3c4400.e28f24",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1449.666805267334,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
-        "y": 3253.9671211242676,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "7186d613.fe144",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "89a1c75d.721db8"
-            ]
-        ],
-        "x": 1262.3573722839355,
-        "xml": "<outcome value='failure'>\n",
-        "y": 3210.919590950012,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "35d8114.d0acf6e",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "6f3c4400.e28f24"
-            ]
-        ],
-        "x": 1270.9288024902344,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 3255.205304145813,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "89a1c75d.721db8",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1452.3573989868164,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n",
-        "y": 3210.729326248169,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "17590340.d661cd",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 929.6667442321777,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
-        "y": 3408.967043876648,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1fc6e960.150607",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "d9024ee2.bf5d3"
-            ]
-        ],
-        "x": 742.3573112487793,
-        "xml": "<outcome value='failure'>\n",
-        "y": 3365.9195137023926,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a8793a07.5d6f48",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "17590340.d661cd"
-            ]
-        ],
-        "x": 750.9287414550781,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 3410.2052268981934,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "d9024ee2.bf5d3",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 932.3573379516602,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating selflink in generic-vnf in AAI\" />\n",
-        "y": 3365.7292490005493,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2e7ae530.0e2cea",
-        "name": "set model-customization-uuid",
-        "type": "set",
-        "wires": [],
-        "x": 591.3332977294922,
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n",
-        "y": 1668.2529134750366,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c4513e6c.417d88",
-        "name": "split related-link",
-        "outputs": 1,
-        "type": "execute",
-        "wires": [
-            []
-        ],
-        "x": 1356.6665954589844,
-        "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n",
-        "y": 1789.6664972305298,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "29a74b62.067044",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "c4513e6c.417d88",
-                "f964a25d.454b6",
-                "bf8afd9.c73b1"
-            ]
-        ],
-        "x": 1176.3332977294922,
-        "xml": "<block atomic=\"true\">",
-        "y": 1836.333285331726,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "bf8afd9.c73b1",
-        "name": "break",
-        "type": "break",
-        "wires": [],
-        "x": 1326.3332595825195,
-        "xml": "<break>\n",
-        "y": 1879.666582107544,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "atomic": "true",
-        "id": "509993f3.7086bc",
-        "name": "block : atomic",
-        "outputs": 1,
-        "type": "block",
-        "wires": [
-            [
-                "696846f6.70aa8",
-                "765526c8.d4caf"
-            ]
-        ],
-        "x": 838,
-        "xml": "<block atomic=\"true\">",
-        "y": 3088.7143869400024,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "765526c8.d4caf",
-        "name": "save generic-vnf availability-zone relationship",
-        "outputs": 1,
-        "type": "save",
-        "wires": [
-            [
-                "43f03688.4ffc08",
-                "49249c79.4e59a4"
-            ]
-        ],
-        "x": 1129.9048156738281,
-        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"availability-zone\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"CloudOwner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"availability-zone.availability-zone-name\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$aai.az.availability-zone[$idx].availability-zone-name`\" />\n",
-        "y": 3112.0478343963623,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1fb1c5a4.5564ca",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1583.47607421875,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
-        "y": 3135.9671936035156,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "43f03688.4ffc08",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "31682c44.dabecc"
-            ]
-        ],
-        "x": 1396.1666412353516,
-        "xml": "<outcome value='failure'>\n",
-        "y": 3092.9196634292603,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "49249c79.4e59a4",
-        "name": "not-found",
-        "outputs": 1,
-        "type": "not-found",
-        "wires": [
-            [
-                "1fb1c5a4.5564ca"
-            ]
-        ],
-        "x": 1404.7380714416504,
-        "xml": "<outcome value='not-found'>\n",
-        "y": 3137.205376625061,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "31682c44.dabecc",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1586.1666679382324,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n",
-        "y": 3092.729398727417,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "2ca15486.5cc8cc",
-        "name": "set mapping rows to 0",
-        "type": "set",
-        "wires": [],
-        "x": 1150.1427688598633,
-        "xml": "<set>\n<parameter name='db.vf-network-role-mapping_length' value='0' />\n",
-        "y": 2082.52388381958,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "611f691d.f4b31",
-        "name": "switch AAI availability-zone_length",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "701b12be.386a5c"
-            ]
-        ],
-        "x": 578.7142868041992,
-        "xml": "<switch test='`$aai.az.availability-zone_length`'>\n",
-        "y": 2992.523973464966,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "701b12be.386a5c",
-        "name": "NULL",
-        "outputs": 1,
-        "type": "outcome",
-        "wires": [
-            [
-                "1249a549.cc39bb"
-            ]
-        ],
-        "x": 797.2857055664062,
-        "xml": "<outcome value=''>",
-        "y": 2992.0953826904297,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "a04c4aba.4671b8",
-        "name": "set availability-zone_length to 0",
-        "type": "set",
-        "wires": [],
-        "x": 1398.7143478393555,
-        "xml": "<set>\n<parameter name='aai.az.availability-zone_length' value='0' />\n",
-        "y": 3010.6666202545166,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "1249a549.cc39bb",
-        "name": "switch AZ max count > 0",
-        "outputs": 1,
-        "type": "switchNode",
-        "wires": [
-            [
-                "545772cc.6dbc04",
-                "f7e43f63.6a2e5"
-            ]
-        ],
-        "x": 985.857177734375,
-        "xml": "<switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\n",
-        "y": 2992.5236945152283,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "545772cc.6dbc04",
-        "name": "true",
-        "outputs": 1,
-        "type": "outcomeTrue",
-        "wires": [
-            [
-                "be2e43e.cc375c"
-            ]
-        ],
-        "x": 1188.7142848968506,
-        "xml": "<outcome value='true'>\n",
-        "y": 2966.8094444274902,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "f7e43f63.6a2e5",
-        "name": "false",
-        "outputs": 1,
-        "type": "outcomeFalse",
-        "wires": [
-            [
-                "a04c4aba.4671b8"
-            ]
-        ],
-        "x": 1190.1429061889648,
-        "xml": "<outcome value='false'>\n",
-        "y": 3011.0951919555664,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "be2e43e.cc375c",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 1340.142822265625,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No availability zones found in AAI for cloud region '\n       + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n",
-        "y": 2966.5238494873047,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "c510e207.134d3",
-        "name": "get-resource availability zones",
-        "outputs": 1,
-        "type": "get-resource",
-        "wires": [
-            [
-                "5917e224.06e004"
-            ]
-        ],
-        "x": 588.7143096923828,
-        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"availability-zones\" \n\t\tkey=\"cloud-region.cloud-owner = 'CloudOwner' AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='0'\"\n        pfx='aai.az' local-only='false' >\n\n",
-        "y": 1919.4286441802979,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "5917e224.06e004",
-        "name": "failure",
-        "outputs": 1,
-        "type": "failure",
-        "wires": [
-            [
-                "76d22d4c.7d6684"
-            ]
-        ],
-        "x": 813.9605255126953,
-        "xml": "<outcome value='failure'>\n",
-        "y": 1918.829496383667,
-        "z": "1f9db9a1.737df6"
-    },
-    {
-        "comments": "",
-        "id": "76d22d4c.7d6684",
-        "name": "return failure",
-        "type": "returnFailure",
-        "wires": [],
-        "x": 987.7104644775391,
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving availability zones from AAI\" />\n",
-        "y": 1917.5796184539795,
-        "z": "1f9db9a1.737df6"
-    }
-]
+[{"id":"f07e5af5.2a81a8","type":"dgstart","name":"DGSTART","outputs":1,"x":100,"y":80.74699592590332,"z":"4e44f4dc.d3fbac","wires":[["7dfb89c0.30c288"]]},{"id":"7dfb89c0.30c288","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":215.28570556640625,"y":122.65177536010742,"z":"4e44f4dc.d3fbac","wires":[["1bd914ea.94267b"]]},{"id":"1bd914ea.94267b","type":"method","name":"method vnf-topology-operation-assign","xml":"<method rpc='vnf-topology-operation-assign' mode='sync'>\n","comments":"","outputs":1,"x":188.09530639648438,"y":165.41365909576416,"z":"4e44f4dc.d3fbac","wires":[["11bf25d2.bdb8da"]]},{"id":"2e619ce7.bf2e34","type":"comment","name":"vnf-topology-operation-assign","info":"","comments":"","x":476.0115280151367,"y":30,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"b32ac93e.aaa508","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":486.3809509277344,"y":313.8898277282715,"z":"4e44f4dc.d3fbac","wires":[["95fe5c1b.234a3","1c086997.eb74d6"]]},{"id":"95fe5c1b.234a3","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":740.0952453613281,"y":291.0327091217041,"z":"4e44f4dc.d3fbac","wires":[["b3d6c559.f5a1f8"]]},{"id":"1c086997.eb74d6","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":702.0952110290527,"y":336.7470369338989,"z":"4e44f4dc.d3fbac","wires":[["3d3a9ebb.853872"]]},{"id":"b3d6c559.f5a1f8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":924.9523735046387,"y":291.0327386856079,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"3d3a9ebb.853872","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'assign' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":942.0952186584473,"y":336.746994972229,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"ae713fba.3df7f","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":186.07147216796875,"y":1577.7707920074463,"z":"4e44f4dc.d3fbac","wires":[["78a8ab8d.e4a224","766c94ea.b9611c","434cb265.75e27c","a6c6204f.95895","b69f4291.61fa5","f416891b.c49b38","b1c5abc7.29b208","c969fd25.a5dbc","5551cb18.77a4d4","27e79a76.199b26","68282397.14338c","4cef2e4e.2eeb7","b4645e2b.83793","19423cf4.442143","59cc3158.776f9","2eaa370.dfe9cca","ab5ed0d2.dee8c","2dd176ed.0041ba","acbd5170.3e4c4","60684400.780c7c","31bebad4.8a5896","438000d4.31b1e","6f6caf00.d957c","277ce9ee.277656","56e0bd4b.bd3f64","58f81e72.df87b","719fd6d4.9a4d78","1fd770ea.bfd8af","183d18f7.8083e7","537d84c0.249e5c","4cc45d68.737674","ed7dcd3d.7a64c","d4e45ae3.95e8e8","569d159b.7974ac"]]},{"id":"3e444c8d.9a16f4","type":"get-resource","name":"get-resource VF_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n","comments":"","outputs":1,"x":498.7142562866211,"y":405.0326976776123,"z":"4e44f4dc.d3fbac","wires":[["474b191f.eb1888","e8e33d1a.e987"]]},{"id":"f4e1f5bf.f95318","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":940.1427345275879,"y":428.46118354797363,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"474b191f.eb1888","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":699.4999542236328,"y":385.413535118103,"z":"4e44f4dc.d3fbac","wires":[["bd82a433.1ab928"]]},{"id":"e8e33d1a.e987","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":708.0713844299316,"y":429.6992483139038,"z":"4e44f4dc.d3fbac","wires":[["f4e1f5bf.f95318"]]},{"id":"bd82a433.1ab928","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n","comments":"","x":939.4999351501465,"y":383.5564422607422,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"78a8ab8d.e4a224","type":"switchNode","name":"switch service-data.vnfs.vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":532.3809204101562,"y":1155.9851322174072,"z":"4e44f4dc.d3fbac","wires":[["120eef5e.ea3881","a22c3ff8.e2fb3"]]},{"id":"120eef5e.ea3881","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":758.0952491760254,"y":1123.1279201507568,"z":"4e44f4dc.d3fbac","wires":[["b7dbc5c1.1c67c8"]]},{"id":"b7dbc5c1.1c67c8","type":"set","name":"set vnf-index=0","xml":"<set>\n<parameter name='vnf-index' value='0' />\n","comments":"","x":922.3809700012207,"y":1122.1279983520508,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"a22c3ff8.e2fb3","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":759.523811340332,"y":1187.4137382507324,"z":"4e44f4dc.d3fbac","wires":[["41b7f789.ac4538"]]},{"id":"93cbad48.90b08","type":"set","name":"set vnf-index = vnf_length","xml":"<set>\n<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\n","comments":"","x":1098.3809661865234,"y":1165.699426651001,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"a06ff958.ca8818","type":"for","name":"for each existing VNF","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":1083.8094787597656,"y":1211.6993656158447,"z":"4e44f4dc.d3fbac","wires":[["8b898020.e1666"]]},{"id":"41b7f789.ac4538","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":895.2380714416504,"y":1187.413703918457,"z":"4e44f4dc.d3fbac","wires":[["93cbad48.90b08","a06ff958.ca8818"]]},{"id":"8b898020.e1666","type":"switchNode","name":"switch vnf-information.vnf-id == service-data.vnfs.vnf[].vnf-id","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\n","comments":"","outputs":1,"x":1438.0952453613281,"y":1211.270845413208,"z":"4e44f4dc.d3fbac","wires":[["b372ccf2.90f5f"]]},{"id":"b372ccf2.90f5f","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1732.3810005187988,"y":1210.8423299789429,"z":"4e44f4dc.d3fbac","wires":[["2889470.ea41bba"]]},{"id":"2889470.ea41bba","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\n      + ' already exists'`\" />\n","comments":"","x":1880.9523620605469,"y":1210.8422775268555,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"11adb872.3cc0d8","type":"comment","name":"make sure this VNF doesn't exist already","info":"","comments":"","x":1425.2379760742188,"y":1168.8422756195068,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"766c94ea.b9611c","type":"set","name":"set vnf-topology data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\n value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\n value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\n value='`$db.vf-model.nf-type`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\n value='`$db.vf-model.nf-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\n value='`$db.vf-model.nf-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\n value='`$db.vf-model.nf-code`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\n value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\n value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\n \n","comments":"","x":498.0952033996582,"y":1687.6518993377686,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"434cb265.75e27c","type":"switchNode","name":"switch input vnf-name","xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\n","comments":"","outputs":1,"x":510.59522247314453,"y":2049.770956993103,"z":"4e44f4dc.d3fbac","wires":[["e8e240a8.b6802","9b1fc0be.8fa7"]]},{"id":"a6c6204f.95895","type":"get-resource","name":"get-resource cloud region","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"cloud-region\" \n\t\tkey=\"cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \n\t\t     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\n\t\t     depth='all'\"\n        pfx='aai.cloud-region' local-only='false' >\n\n","comments":"","outputs":1,"x":542.738166809082,"y":2945.7706928253174,"z":"4e44f4dc.d3fbac","wires":[["8e720469.5e8cb8","7b05d3d.76e1b2c"]]},{"id":"7b05d3d.76e1b2c","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":767.9843597412109,"y":2963.921548843384,"z":"4e44f4dc.d3fbac","wires":[["a42ab710.cce278"]]},{"id":"4676d832.85c178","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving cloud region from AAI\" />\n","comments":"","x":1069.6510314941406,"y":2963.9215660095215,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"8e720469.5e8cb8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":776.912956237793,"y":2922.207282066345,"z":"4e44f4dc.d3fbac","wires":[["e0c152ab.e7e04"]]},{"id":"f16260c8.4591b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cloud region not found in AAI\" />\n","comments":"","x":1069.9289321899414,"y":2921.512840270996,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"b69f4291.61fa5","type":"get-resource","name":"get-resource VF_TO_NETWORK_ROLE_MAPPING","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-network-role-mapping[]'>\n\n","comments":"","outputs":1,"x":607.9762496948242,"y":3256.8182125091553,"z":"4e44f4dc.d3fbac","wires":[["60a87727.b01328","35785ae2.8b74a6"]]},{"id":"60a87727.b01328","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":903.7619209289551,"y":3235.532377243042,"z":"4e44f4dc.d3fbac","wires":[["7f628377.de20fc"]]},{"id":"35785ae2.8b74a6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":912.3333511352539,"y":3279.818090438843,"z":"4e44f4dc.d3fbac","wires":[["cb783055.50a9a"]]},{"id":"7fcd46cd.478d88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_TO_NETWORK_ROLE_MAPPING table\" />\n","comments":"","x":1220.428544998169,"y":3235.342109680176,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"7b16dda0.235334","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":716.2383193969727,"y":3728.127547264099,"z":"4e44f4dc.d3fbac","wires":[["9c162cfb.04057","32d1bfdb.27738","7cbe8d03.77d1c4","9ecaa4ff.23c328","4bcf8a69.ae8c44","8025807.9d68d8","ccd49d85.073d1","cdefc051.a04bf"]]},{"id":"7cbe8d03.77d1c4","type":"get-resource","name":"get-resource l3-network","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"l3-networks\" \n\t\tkey=\"l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role\"\n        pfx='aai.l3-network' local-only='false'\n>\n","comments":"","outputs":1,"x":949.0953369140625,"y":3407.413411140442,"z":"4e44f4dc.d3fbac","wires":[["9891f515.8ee1c8","94d72e9b.4db64"]]},{"id":"94d72e9b.4db64","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1153.143051147461,"y":3429.5562505722046,"z":"4e44f4dc.d3fbac","wires":[["22276dbf.92cb12"]]},{"id":"91d086d5.905598","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving l3-network from AAI\" />\n","comments":"","x":1468.143081665039,"y":3429.889594078064,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"9891f515.8ee1c8","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1162.071647644043,"y":3387.841983795166,"z":"4e44f4dc.d3fbac","wires":[["85a5708b.39733"]]},{"id":"b5a9325f.8e06e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No active l3-network found in AAI with cloud_region_id '\n          + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\n          + $db.vf-network-role-mapping[$network-index].network-role`\" />\n","comments":"","x":1466.754277229309,"y":3388.8141202926636,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"9c162cfb.04057","type":"set","name":"set vnf-network data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\n    value='`$db.vf-network-role-mapping[$role-index].network-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\n    value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\n    value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\n","comments":"","x":938.2859268188477,"y":3894.4136543273926,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"5551cb18.77a4d4","type":"for","name":"for each cloud-region availability zone","xml":"<for index='idx' start='0' end='`$aai.cloud-region.availability-zones.availability-zone_length`' >\n","comments":"","outputs":1,"x":535.0002975463867,"y":4286.5324420928955,"z":"4e44f4dc.d3fbac","wires":[["858bb9df.ef0b98"]]},{"id":"420bf10a.3f71f","type":"set","name":"set availability-zone","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\n  value='`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`' />\n","comments":"","x":996.6669807434082,"y":4255.865856170654,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"27e79a76.199b26","type":"set","name":"set vnf-parameters-data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\n  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\n","comments":"","x":494.61922454833984,"y":4136.484802246094,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"cbb1f011.821ee","type":"save","name":"save generic-vnf l3-network relationships","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"l3-network\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"l3-network.network-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`\" />\n","comments":"","outputs":1,"x":961.1907577514648,"y":4430.294654846191,"z":"4e44f4dc.d3fbac","wires":[["32a6aa28.4d7b46","22485f0b.22ad6"]]},{"id":"b4645e2b.83793","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":454.42877197265625,"y":4895.913044929504,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"4cef2e4e.2eeb7","type":"set","name":"set vnf-level-oper-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":544.2422180175781,"y":4798.250525474548,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"b1c5abc7.29b208","type":"for","name":"for each network-role","xml":"<for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>","comments":"","outputs":1,"x":499.5716247558594,"y":3728.1277503967285,"z":"4e44f4dc.d3fbac","wires":[["7b16dda0.235334"]]},{"id":"f416891b.c49b38","type":"set","name":"set network-index = 0","xml":"<set>\n<parameter name='network-index' value='0' />\n","comments":"","x":510.40474700927734,"y":3310.8660068511963,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"32d1bfdb.27738","type":"set","name":"increment network-index","xml":"<set>\n<parameter name='network-index' value='`$network-index + 1`' />\n","comments":"","x":948.6192855834961,"y":4049.175630569458,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"c969fd25.a5dbc","type":"set","name":"set vnf-network_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\n  value='`$network-index`' />\n","comments":"","x":493.47631072998047,"y":4086.4848461151123,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"68282397.14338c","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n","comments":"","x":459.76204681396484,"y":4745.913356781006,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"19423cf4.442143","type":"for","name":"for each vnf-network","xml":"<for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\n","comments":"","outputs":1,"x":484.19066619873047,"y":4429.294570922852,"z":"4e44f4dc.d3fbac","wires":[["5f481128.d6fd6"]]},{"id":"5f481128.d6fd6","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":687.857307434082,"y":4429.294531822205,"z":"4e44f4dc.d3fbac","wires":[["cbb1f011.821ee"]]},{"id":"59cc3158.776f9","type":"set","name":"set new vnf_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\n","comments":"","x":481.02384185791016,"y":1208.0090227127075,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"2eaa370.dfe9cca","type":"for","name":"for each cloud-region relationship","xml":"<for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":555.5952911376953,"y":3033.008864402771,"z":"4e44f4dc.d3fbac","wires":[["e5925a76.815c58"]]},{"id":"e5925a76.815c58","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\n","comments":"","outputs":1,"x":803.2738342285156,"y":3032.7587938308716,"z":"4e44f4dc.d3fbac","wires":[["3699dec9.348a82"]]},{"id":"3699dec9.348a82","type":"outcome","name":"complex","xml":"<outcome value='complex'>\n","comments":"","outputs":1,"x":972.7381553649902,"y":3032.1516160964966,"z":"4e44f4dc.d3fbac","wires":[["ed1ad94c.99ecb8"]]},{"id":"98e2f8af.a2f578","type":"set","name":"set aic-clli","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\n  value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\n","comments":"","x":1293.4524536132812,"y":3031.8182735443115,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"ab5ed0d2.dee8c","type":"switchNode","name":"switch aic-clli","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\n","comments":"","outputs":1,"x":488.64291763305664,"y":3146.1039962768555,"z":"4e44f4dc.d3fbac","wires":[["cd42ad7f.c7287"]]},{"id":"cd42ad7f.c7287","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":636.7857513427734,"y":3146.103979110718,"z":"4e44f4dc.d3fbac","wires":[["b6ad7e13.cbdb8"]]},{"id":"f7a16dbf.78dcf","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n","comments":"","x":927.2619438171387,"y":3147.3420248031616,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"817e056c.b110d8","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$db.vf-model.invariant-uuid`' />\n","comments":"","x":915.0954627990723,"y":2504.9612531661987,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"4527349c.9a52ec","type":"for","name":"for each l3-network","xml":"<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\n","comments":"","outputs":1,"x":1058.5479049682617,"y":3718.9850330352783,"z":"4e44f4dc.d3fbac","wires":[["45b722b6.db776c"]]},{"id":"2b805935.a35cb6","type":"switchNode","name":"switch orchestration-status","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\n","comments":"","outputs":1,"x":1477.1190757751465,"y":3653.5564975738525,"z":"4e44f4dc.d3fbac","wires":[["b291cd89.5e04","688efdb4.26b7f4","1dbdf0e3.6d4c4f","3bfc9f47.c3df5","8f5abb8c.6c74f8"]]},{"id":"b291cd89.5e04","type":"outcome","name":"Pending Delete","xml":"<outcome value='Pending Delete'>\n","comments":"","outputs":1,"x":1717.785945892334,"y":3695.2230014801025,"z":"4e44f4dc.d3fbac","wires":[["757bdd4d.6abe74"]]},{"id":"688efdb4.26b7f4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1690.6430854797363,"y":3746.222982406616,"z":"4e44f4dc.d3fbac","wires":[["47f9fe3b.cd325"]]},{"id":"9833efbf.69304","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\n","comments":"","outputs":1,"x":2226.3575325012207,"y":3714.794277191162,"z":"4e44f4dc.d3fbac","wires":[["440449fc.68ede8"]]},{"id":"47f9fe3b.cd325","type":"for","name":"for each relationship","xml":"<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":1860.6429977416992,"y":3745.7943592071533,"z":"4e44f4dc.d3fbac","wires":[["46c88819.e15b38"]]},{"id":"440449fc.68ede8","type":"outcome","name":"cloud-region","xml":"<outcome value='cloud-region'>\n","comments":"","outputs":1,"x":2400.6431732177734,"y":3714.3657236099243,"z":"4e44f4dc.d3fbac","wires":[["3d11cc80.c4e0c4"]]},{"id":"3d11cc80.c4e0c4","type":"for","name":"for each relationship data","xml":"<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\n","comments":"","outputs":1,"x":2597.785873413086,"y":3714.7941913604736,"z":"4e44f4dc.d3fbac","wires":[["ced7a748.131728"]]},{"id":"ced7a748.131728","type":"switchNode","name":"switch relationship-key","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\n","comments":"","outputs":1,"x":2829.2144737243652,"y":3714.365566253662,"z":"4e44f4dc.d3fbac","wires":[["92fbe3e9.e193d"]]},{"id":"92fbe3e9.e193d","type":"outcome","name":"cloud-region.cloud-region-id","xml":"<outcome value='cloud-region.cloud-region-id'>\n","comments":"","outputs":1,"x":3070.643039703369,"y":3714.365662574768,"z":"4e44f4dc.d3fbac","wires":[["3d76bce7.883fc4"]]},{"id":"3d76bce7.883fc4","type":"switchNode","name":"switch relationship-value == cloud-region-id","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\n","comments":"","outputs":1,"x":3374.9289588928223,"y":3714.2227182388306,"z":"4e44f4dc.d3fbac","wires":[["5f95e58e.702e5c"]]},{"id":"5f95e58e.702e5c","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":3079.929096221924,"y":3831.8656721115112,"z":"4e44f4dc.d3fbac","wires":[["a7f11203.5d359"]]},{"id":"9ecaa4ff.23c328","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":894.762077331543,"y":3650.2706775665283,"z":"4e44f4dc.d3fbac","wires":[["4527349c.9a52ec","be0cee42.5ab7e"]]},{"id":"4bcf8a69.ae8c44","type":"set","name":"set l3-network-id = -1","xml":"<set>\n<parameter name='l3-network-id' value='-1' />\n","comments":"","x":939.0954360961914,"y":3522.1753311157227,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"a7f11203.5d359","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":3225.7620735168457,"y":3831.3417806625366,"z":"4e44f4dc.d3fbac","wires":[["afc40b2f.c29e28","6f9b0a93.f694a4","2a1ad752.bfcd38"]]},{"id":"afc40b2f.c29e28","type":"set","name":"set l3-network-id = this l3-network","xml":"<set>\n<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\n","comments":"","x":3461.0000762939453,"y":3793.4847497940063,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"8025807.9d68d8","type":"switchNode","name":"switch l3-network-id","xml":"<switch test='`$l3-network-id`'>\n","comments":"","outputs":1,"x":936.0953598022461,"y":3845.842372894287,"z":"4e44f4dc.d3fbac","wires":[["aa114731.395c08"]]},{"id":"aa114731.395c08","type":"outcome","name":"-1","xml":"<outcome value='-1'>\n","comments":"","outputs":1,"x":1106.0953102111816,"y":3845.842128753662,"z":"4e44f4dc.d3fbac","wires":[["2fba815e.79c32e"]]},{"id":"6395a483.342b9c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`\" />\n","comments":"","x":1389.4286727905273,"y":3845.8423776626587,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"2dd176ed.0041ba","type":"switchNode","name":"switch input model-invariant-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\n","comments":"","outputs":1,"x":558.9525375366211,"y":2527.7856969833374,"z":"4e44f4dc.d3fbac","wires":[["d5c66a20.2113f8","4eb518d2.0c93e8"]]},{"id":"d5c66a20.2113f8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":764.6192092895508,"y":2504.9286603927612,"z":"4e44f4dc.d3fbac","wires":[["817e056c.b110d8"]]},{"id":"4eb518d2.0c93e8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":766.0478057861328,"y":2549.2142515182495,"z":"4e44f4dc.d3fbac","wires":[["7ce719fb.9a6228"]]},{"id":"7ce719fb.9a6228","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\n","comments":"","x":920.3335418701172,"y":2548.6428236961365,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"ef5faa7d.94cb58","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$db.vf-model.uuid`' />\n","comments":"","x":916.0477333068848,"y":2593.4999294281006,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"acbd5170.3e4c4","type":"switchNode","name":"switch input model-uuid","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\n","comments":"","outputs":1,"x":531.5715560913086,"y":2616.3244342803955,"z":"4e44f4dc.d3fbac","wires":[["ce65d89f.20afc8","34fc501b.a39a8"]]},{"id":"ce65d89f.20afc8","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":765.5715293884277,"y":2593.467366218567,"z":"4e44f4dc.d3fbac","wires":[["ef5faa7d.94cb58"]]},{"id":"34fc501b.a39a8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":767.0001258850098,"y":2637.752957344055,"z":"4e44f4dc.d3fbac","wires":[["f5981394.788ef"]]},{"id":"f5981394.788ef","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\n","comments":"","x":921.2858619689941,"y":2637.181529521942,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"538946a2.181668","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$db.vf-model.version`' />\n","comments":"","x":913.1906661987305,"y":2682.3571367263794,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"60684400.780c7c","type":"switchNode","name":"switch input model-version","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\n","comments":"","outputs":1,"x":539.714427947998,"y":2705.1815814971924,"z":"4e44f4dc.d3fbac","wires":[["e137a9dc.787888","5fc591ca.bc88b"]]},{"id":"e137a9dc.787888","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":762.714412689209,"y":2682.324543952942,"z":"4e44f4dc.d3fbac","wires":[["538946a2.181668"]]},{"id":"5fc591ca.bc88b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":764.143009185791,"y":2726.61013507843,"z":"4e44f4dc.d3fbac","wires":[["b9a36199.dc978"]]},{"id":"b9a36199.dc978","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\n","comments":"","x":918.4287452697754,"y":2726.038707256317,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"855b2ca8.132f9","type":"set","name":"set from DB","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$db.vf-model.name`' />\n","comments":"","x":913.1906661987305,"y":2769.4999589920044,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"31bebad4.8a5896","type":"switchNode","name":"switch input model-name","xml":"<switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\n","comments":"","outputs":1,"x":534.714427947998,"y":2792.3244037628174,"z":"4e44f4dc.d3fbac","wires":[["7a7f7561.1b9f2c","af9f8b2b.cd7db8"]]},{"id":"7a7f7561.1b9f2c","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":762.714412689209,"y":2769.467366218567,"z":"4e44f4dc.d3fbac","wires":[["855b2ca8.132f9"]]},{"id":"af9f8b2b.cd7db8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":764.143009185791,"y":2813.752957344055,"z":"4e44f4dc.d3fbac","wires":[["f010777f.4fc4a8"]]},{"id":"f010777f.4fc4a8","type":"set","name":"set from input","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\n","comments":"","x":918.4287452697754,"y":2813.181529521942,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"757bdd4d.6abe74","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1871.0000381469727,"y":3695.999878883362,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"8f5abb8c.6c74f8","type":"outcome","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":1715.6666793823242,"y":3650.9997930526733,"z":"4e44f4dc.d3fbac","wires":[["689950a3.df60a"]]},{"id":"689950a3.df60a","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1870.880771636963,"y":3651.7766704559326,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"3bfc9f47.c3df5","type":"outcome","name":"Pending Create","xml":"<outcome value='Pending Create'>\n","comments":"","outputs":1,"x":1717.6666793823242,"y":3607.6662969589233,"z":"4e44f4dc.d3fbac","wires":[["ea88d2ba.493d6"]]},{"id":"ea88d2ba.493d6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1870.880771636963,"y":3608.4431743621826,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"1dbdf0e3.6d4c4f","type":"outcome","name":"PendingCreate","xml":"<outcome value='PendingCreate'>\n","comments":"","outputs":1,"x":1717.6666793823242,"y":3564.3330450057983,"z":"4e44f4dc.d3fbac","wires":[["8104066e.259008"]]},{"id":"8104066e.259008","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1870.880771636963,"y":3565.1099224090576,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"fe91b2bf.8c099","type":"for","name":"for each A&AI subnet","xml":"<for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\n","comments":"","outputs":1,"x":1404.047706604004,"y":3985.0472140312195,"z":"4e44f4dc.d3fbac","wires":[["b10f2375.b9afa"]]},{"id":"53c17453.f0880c","type":"set","name":"set subnet_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\n   value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\n","comments":"","x":1392.7142715454102,"y":4030.0472960472107,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"438000d4.31b1e","type":"set","name":"set availability-zones.max-count and length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\n   value='`$db.vf-model.avail-zone-max-count`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\n   value='`$aai.cloud-region.availability-zones.availability-zone_length`' />\n","comments":"","x":554.6668014526367,"y":4374.547909736633,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"6f6caf00.d957c","type":"set","name":"set vnf-name","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\n   value='`$tmp.vnf-name`' />\n","comments":"","x":495.8333511352539,"y":2461.8334608078003,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"277ce9ee.277656","type":"save","name":"update generic-vnf","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"vnf-name\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`\" />\n<parameter name=\"prov-status\" value=\"PREPROV\" />\n<!-- <parameter name=\"operational-status\" value=\"out-of-service-path\" /> -->\n<parameter name=\"equipment-role\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`\" />\n<parameter name=\"model-invariant-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`\" />\n<parameter name=\"model-version-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`\" />\n<parameter name=\"model-customization-id\" value=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`\" />\n<parameter name=\"selflink\" value=\"`$vnf-object-path`\" />\n","comments":"","outputs":1,"x":475.0000686645508,"y":4584.213672637939,"z":"4e44f4dc.d3fbac","wires":[["7a3c612.03fada","d92cf5a6.33b858"]]},{"id":"56e0bd4b.bd3f64","type":"set","name":"set vnf-object-path","xml":"<set>\n<parameter name='vnf-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $vnf-topology-operation-input.service-information.service-instance-id\n + '/service-data/vnfs/vnf/'\n + $service-data.vnfs.vnf[$vnf-index].vnf-id\n + '/vnf-data/vnf-topology'`\"/>\n\n","comments":"","x":475.00010681152344,"y":4514.214155197144,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"58f81e72.df87b","type":"set","name":"set vnf-id","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\n   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n","comments":"","x":484.1666946411133,"y":2413.5000038146973,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"719fd6d4.9a4d78","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-viprend.log' />\n","comments":"","outputs":1,"x":449.33349990844727,"y":4844.690294265747,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"9263c515.503118","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1511.6669120788574,"y":4450.880569458008,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"32a6aa28.4d7b46","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1211.024112701416,"y":4407.833230018616,"z":"4e44f4dc.d3fbac","wires":[["672f3870.869518"]]},{"id":"22485f0b.22ad6","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1219.5955429077148,"y":4452.1189432144165,"z":"4e44f4dc.d3fbac","wires":[["6e62ccc6.dc7f34"]]},{"id":"32930b6a.86e284","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n","comments":"","x":1514.3575057983398,"y":4407.642774581909,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"3c4d390f.0ff276","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":946.6668472290039,"y":4604.214105606079,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"7a3c612.03fada","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":649.3573989868164,"y":4562.833268165588,"z":"4e44f4dc.d3fbac","wires":[["db6c1834.e91948"]]},{"id":"d92cf5a6.33b858","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":657.9288291931152,"y":4607.118981361389,"z":"4e44f4dc.d3fbac","wires":[["ec9973e.c6a799"]]},{"id":"7baf675.e9c2498","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating selflink in generic-vnf in AAI\" />\n","comments":"","x":949.3574409484863,"y":4560.9763107299805,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"1fd770ea.bfd8af","type":"set","name":"set model-customization-uuid","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\n","comments":"","x":547.5000152587891,"y":2865.1666078567505,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"703de5d6.b6b11c","type":"execute","name":"split related-link","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\n   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\n   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\n   <parameter name='regex' value='/' />\n","comments":"","outputs":1,"x":1312.8333129882812,"y":2986.5801916122437,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"ed1ad94c.99ecb8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1132.500015258789,"y":3033.24697971344,"z":"4e44f4dc.d3fbac","wires":[["703de5d6.b6b11c","98e2f8af.a2f578","62cd4dc6.bccf24"]]},{"id":"62cd4dc6.bccf24","type":"break","name":"break","xml":"<break>\n","comments":"","x":1282.4999771118164,"y":3076.580276489258,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"858bb9df.ef0b98","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":786.6667404174805,"y":4285.628026008606,"z":"4e44f4dc.d3fbac","wires":[["420bf10a.3f71f","e9021688.b099b8"]]},{"id":"e9021688.b099b8","type":"save","name":"save generic-vnf availability-zone relationship","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"availability-zone\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-key\" value=\"cloud-region.cloud-owner\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[0].relationship-value\" value=\"`$prop.cloud-region.cloud-owner`\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-key\" value=\"cloud-region.cloud-region-id\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[1].relationship-value\" value=\"`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-key\" value=\"availability-zone.availability-zone-name\" />\n    <parameter name=\"relationship-list.relationship[0].relationship-data[2].relationship-value\" value=\"`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`\" />\n","comments":"","outputs":1,"x":1080.000129699707,"y":4308.961480140686,"z":"4e44f4dc.d3fbac","wires":[["3a86920a.c74fce","85b44524.f59068"]]},{"id":"2639188b.f42278","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1637.1427917480469,"y":4332.880808830261,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"3a86920a.c74fce","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1344.833381652832,"y":4289.833302497864,"z":"4e44f4dc.d3fbac","wires":[["c2464793.9ffc08"]]},{"id":"85b44524.f59068","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1353.4048118591309,"y":4334.119015693665,"z":"4e44f4dc.d3fbac","wires":[["9d10abef.aa9d68"]]},{"id":"2754abb3.b85874","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n","comments":"","x":1639.8333854675293,"y":4289.643013954163,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"cb783055.50a9a","type":"set","name":"set mapping rows to 0","xml":"<set>\n<parameter name='db.vf-network-role-mapping_length' value='0' />\n","comments":"","x":1106.3094863891602,"y":3279.437578201294,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"183d18f7.8083e7","type":"switchNode","name":"switch AAI availability-zone_length","xml":"<switch test='`$aai.cloud-region.availability-zones.availability-zone_length`'>\n","comments":"","outputs":1,"x":527.3810272216797,"y":4189.437612533569,"z":"4e44f4dc.d3fbac","wires":[["bd16fb24.0fe038"]]},{"id":"bd16fb24.0fe038","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":745.9524459838867,"y":4189.009021759033,"z":"4e44f4dc.d3fbac","wires":[["44f8e0c6.bf172"]]},{"id":"a4deaa00.e82908","type":"set","name":"set availability-zone_length to 0","xml":"<set>\n<parameter name='aai.cloud-region.availability-zones.availability-zone_length' value='0' />\n","comments":"","x":1347.381088256836,"y":4207.58025932312,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"44f8e0c6.bf172","type":"switchNode","name":"switch AZ max count > 0","xml":"<switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\n","comments":"","outputs":1,"x":934.5239181518555,"y":4189.437333583832,"z":"4e44f4dc.d3fbac","wires":[["d06ce29c.e7c56","91254f4.8fe1bb"]]},{"id":"d06ce29c.e7c56","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1137.381025314331,"y":4163.723083496094,"z":"4e44f4dc.d3fbac","wires":[["2bf16ac7.c29516"]]},{"id":"91254f4.8fe1bb","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1138.8096466064453,"y":4208.00883102417,"z":"4e44f4dc.d3fbac","wires":[["a4deaa00.e82908"]]},{"id":"66145063.39707","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No availability zones found in AAI for cloud region '\n       + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`\" />\n","comments":"","x":1428.8095321655273,"y":4161.770775794983,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"a0fc8588.9798e8","type":"execute","name":"execute PropertiesNode","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n","comments":"","outputs":1,"x":495.95240020751953,"y":233.84224128723145,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"e8e240a8.b6802","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":712.6190414428711,"y":1863.2470073699951,"z":"4e44f4dc.d3fbac","wires":[["fda0d94d.246058"]]},{"id":"6ba58c99.3d6c54","type":"switchNode","name":"switch ecomp-naming","xml":"<switch test='`$db.vf-model.ecomp-generated-naming`'>\n","comments":"","outputs":1,"x":1090.2384300231934,"y":1763.961443901062,"z":"4e44f4dc.d3fbac","wires":[["6bc3ca08.30d814","1bd7e0e4.afcd3f","59311d10.015684"]]},{"id":"fda0d94d.246058","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":858.3335418701172,"y":1863.247124671936,"z":"4e44f4dc.d3fbac","wires":[["6ba58c99.3d6c54","68402099.cbb6e"]]},{"id":"1bd7e0e4.afcd3f","type":"outcome","name":"N","xml":"<outcome value='N'>","comments":"","outputs":1,"x":1276.6668167114258,"y":1764.4375705718994,"z":"4e44f4dc.d3fbac","wires":[["8abd4d2f.9ce9"]]},{"id":"8abd4d2f.9ce9","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"No vnf-name was received but ecomp-generated-naming is not Y\" />\n","comments":"","x":1430.9526023864746,"y":1783.009015083313,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"6bc3ca08.30d814","type":"outcome","name":"Y","xml":"<outcome value='Y'>","comments":"","outputs":1,"x":1276.6668090820312,"y":1723.0090246200562,"z":"4e44f4dc.d3fbac","wires":[["d6abe0cd.f17a7"]]},{"id":"59311d10.015684","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1276.6667556762695,"y":1807.2947025299072,"z":"4e44f4dc.d3fbac","wires":[["8abd4d2f.9ce9"]]},{"id":"d6abe0cd.f17a7","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1413.809726715088,"y":1723.151891708374,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"9b1fc0be.8fa7","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":697.8097686767578,"y":2217.866183280945,"z":"4e44f4dc.d3fbac","wires":[["68621ac1.29c734"]]},{"id":"68621ac1.29c734","type":"set","name":"set tmp.vnf-name","xml":"<set>\n<parameter name='tmp.vnf-name' value=\"`$vnf-topology-operation-input.vnf-request-input.vnf-name`\" />\n","comments":"","x":863.5717315673828,"y":2216.7234535217285,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"e954ebf6.540d38","type":"call","name":"call GENERIC-RESOURCE-API:generate-unique-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\n","comments":"","outputs":1,"x":1748.643009185791,"y":1913.0089440345764,"z":"4e44f4dc.d3fbac","wires":[["e58cf0cd.381b5","7d1e3ef3.b14f9"]]},{"id":"e58cf0cd.381b5","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2025.7858123779297,"y":1886.5804772377014,"z":"4e44f4dc.d3fbac","wires":[["f78aa92e.072f88"]]},{"id":"7d1e3ef3.b14f9","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2030.5475578308105,"y":1931.9613881111145,"z":"4e44f4dc.d3fbac","wires":[["67192240.ef86fc"]]},{"id":"8e80323.5aec3d","type":"set","name":"set variables for generating unique name","xml":"<set>\n<parameter name='generate-unique-name-input.action' value='ASSIGN' />\n<parameter name='generate-unique-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\n<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\n<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\n<parameter name='generate-unique-name-input.prefix' value=\"`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`\" />\n","comments":"","x":1703.6432609558105,"y":1864.1042637825012,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"67192240.ef86fc","type":"set","name":"set tmp.vnf-name to generated name","xml":"<set>\n<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\n","comments":"","x":2253.4519538879395,"y":1931.4374632835388,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"f78aa92e.072f88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$generate-unique-name-output.error-message`\" />\n","comments":"","x":2179.3572731018066,"y":1886.0089869499207,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"68402099.cbb6e","type":"switchNode","name":"switch naming-policy","xml":"<switch test='`$db.vf-model.naming-policy`'>\n","comments":"","outputs":1,"x":1088.024013519287,"y":1972.2470607757568,"z":"4e44f4dc.d3fbac","wires":[["a1c920b0.57e32","54eaf052.a1d45"]]},{"id":"a1c920b0.57e32","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1278.0239448547363,"y":1893.675615310669,"z":"4e44f4dc.d3fbac","wires":[["bccad88.6a02328"]]},{"id":"54eaf052.a1d45","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1278.2621841430664,"y":2021.056559562683,"z":"4e44f4dc.d3fbac","wires":[["334f9686.9dd50a"]]},{"id":"bccad88.6a02328","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1430.8812141418457,"y":1892.2470817565918,"z":"4e44f4dc.d3fbac","wires":[["8e80323.5aec3d","e954ebf6.540d38"]]},{"id":"f9872f82.e6538","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1769.9291381835938,"y":2036.7709412574768,"z":"4e44f4dc.d3fbac","wires":[["63e66d57.ad35d4","47bb6c9e.5da7d4"]]},{"id":"334f9686.9dd50a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1432.786033630371,"y":2021.056559562683,"z":"4e44f4dc.d3fbac","wires":[["7ca84586.ce108c","f9872f82.e6538"]]},{"id":"7ca84586.ce108c","type":"set","name":"set variables for generating name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vf-model.naming-policy`' />\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\n<parameter name='naming-policy-generate-name-input.query-parameter' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />","comments":"","x":1679.929054260254,"y":1991.05659532547,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"1c84fc68.b37734","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Unable to generate VNF name\" />\n","comments":"","x":2212.786087036133,"y":2010.6278791427612,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"7fa1a5bb.63414c","type":"set","name":"set tmp.vnf-name to generated name","xml":"<set>\n<parameter name='tmp.vnf-name' value='`$naming-policy-generate-name-output.vnf-name`' />\n","comments":"","x":2291.214656829834,"y":2055.3421812057495,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"159fe4a1.e3dfcb","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1802.6188735961914,"y":2735.746706008911,"z":"4e44f4dc.d3fbac","wires":[["10cd1a1d.c198e6","1a70e102.4df24f"]]},{"id":"1a70e102.4df24f","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":2126.9045791625977,"y":2762.3182373046875,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"10cd1a1d.c198e6","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":2028.3331985473633,"y":2715.175308227539,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"b587067c.c12fd8","type":"comment","name":"Unassign the VNF name","info":"","comments":"","x":1894.2855224609375,"y":2655.746808052063,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"e0c152ab.e7e04","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":914.2857818603516,"y":2922.4135060310364,"z":"4e44f4dc.d3fbac","wires":[["f16260c8.4591b","159fe4a1.e3dfcb"]]},{"id":"a42ab710.cce278","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":912.6190643310547,"y":2964.080258369446,"z":"4e44f4dc.d3fbac","wires":[["4676d832.85c178","159fe4a1.e3dfcb"]]},{"id":"b6ad7e13.cbdb8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":769.2857360839844,"y":3145.7468881607056,"z":"4e44f4dc.d3fbac","wires":[["f7a16dbf.78dcf","159fe4a1.e3dfcb"]]},{"id":"7f628377.de20fc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1060.9524230957031,"y":3235.7468881607056,"z":"4e44f4dc.d3fbac","wires":[["7fcd46cd.478d88","159fe4a1.e3dfcb"]]},{"id":"85a5708b.39733","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1297.6190490722656,"y":3388.0801401138306,"z":"4e44f4dc.d3fbac","wires":[["b5a9325f.8e06e","159fe4a1.e3dfcb"]]},{"id":"22276dbf.92cb12","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1295.9523315429688,"y":3429.74689245224,"z":"4e44f4dc.d3fbac","wires":[["91d086d5.905598","159fe4a1.e3dfcb"]]},{"id":"2fba815e.79c32e","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1239.2856750488281,"y":3845.7468881607056,"z":"4e44f4dc.d3fbac","wires":[["6395a483.342b9c","159fe4a1.e3dfcb"]]},{"id":"2bf16ac7.c29516","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1272.6190490722656,"y":4162.413392066956,"z":"4e44f4dc.d3fbac","wires":[["66145063.39707","159fe4a1.e3dfcb"]]},{"id":"c2464793.9ffc08","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1492.6190490722656,"y":4290.413392066956,"z":"4e44f4dc.d3fbac","wires":[["2754abb3.b85874","159fe4a1.e3dfcb"]]},{"id":"9d10abef.aa9d68","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1490.9523315429688,"y":4334.080144405365,"z":"4e44f4dc.d3fbac","wires":[["2639188b.f42278","159fe4a1.e3dfcb"]]},{"id":"672f3870.869518","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1355.9524230957031,"y":4407.413392066956,"z":"4e44f4dc.d3fbac","wires":[["32930b6a.86e284","159fe4a1.e3dfcb"]]},{"id":"6e62ccc6.dc7f34","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1354.2857055664062,"y":4451.080144405365,"z":"4e44f4dc.d3fbac","wires":[["9263c515.503118","159fe4a1.e3dfcb"]]},{"id":"db6c1834.e91948","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":802.619083404541,"y":4562.413507461548,"z":"4e44f4dc.d3fbac","wires":[["7baf675.e9c2498","159fe4a1.e3dfcb"]]},{"id":"ec9973e.c6a799","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":800.9523658752441,"y":4606.080259799957,"z":"4e44f4dc.d3fbac","wires":[["3c4d390f.0ff276","159fe4a1.e3dfcb"]]},{"id":"63e66d57.ad35d4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2068.095184326172,"y":2011.6994485855103,"z":"4e44f4dc.d3fbac","wires":[["1c84fc68.b37734"]]},{"id":"47bb6c9e.5da7d4","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":2072.8569297790527,"y":2057.0803594589233,"z":"4e44f4dc.d3fbac","wires":[["7fa1a5bb.63414c"]]},{"id":"3e07f67c.a7124a","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":723.3332824707031,"y":1366.666666984558,"z":"4e44f4dc.d3fbac","wires":[["baf35ab4.de3628","1a10c87.b7e5338"]]},{"id":"537d84c0.249e5c","type":"for","name":"for each instance group id","xml":"<for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\n","comments":"","outputs":1,"x":506.66662979125977,"y":1367.333312034607,"z":"4e44f4dc.d3fbac","wires":[["3e07f67c.a7124a"]]},{"id":"baf35ab4.de3628","type":"get-resource","name":"get-resource instance-group","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"instance-group\" \n\t\tkey=\"instance-group.id = $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\"\n        pfx='aai.instance-group' local-only='false' >\n\n","comments":"","outputs":1,"x":954.6666412353516,"y":1290.0000486373901,"z":"4e44f4dc.d3fbac","wires":[["5a73dff4.a3a92","1cc3de9c.f21291"]]},{"id":"1cc3de9c.f21291","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1168.9128494262695,"y":1308.150897026062,"z":"4e44f4dc.d3fbac","wires":[["8ab060f.9d1f2a"]]},{"id":"5a73dff4.a3a92","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1177.8414459228516,"y":1266.4366302490234,"z":"4e44f4dc.d3fbac","wires":[["6cb384a2.611ddc"]]},{"id":"6cb384a2.611ddc","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Cannot find instance group id ' +\n      $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\n      + ' in AAI'`\" />\n","comments":"","x":1350.6666564941406,"y":1264.0000410079956,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"8ab060f.9d1f2a","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error retrieving instance-group from AAI\" />\n","comments":"","x":1350.6666564941406,"y":1308.0000410079956,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"4cc45d68.737674","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/bgb-vnf.log' />\n","comments":"","outputs":1,"x":485.8095016479492,"y":2334.2858095169067,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"1a10c87.b7e5338","type":"for","name":"for each relationship","xml":"<for index='rel-index' start='0' end='`$aai.instance-group.relationship-list.relationship_length`' >\n","comments":"","outputs":1,"x":928.3332977294922,"y":1438.3333644866943,"z":"4e44f4dc.d3fbac","wires":[["334e1afb.9c1a56"]]},{"id":"334e1afb.9c1a56","type":"switchNode","name":"switch related-to","xml":"<switch test='`$aai.instance-group.relationship-list.relationship[$rel-index].related-to`'>\n","comments":"","outputs":1,"x":1141.6667404174805,"y":1438.333303451538,"z":"4e44f4dc.d3fbac","wires":[["9ec622df.a4f79"]]},{"id":"9ec622df.a4f79","type":"outcome","name":"collection","xml":"<outcome value='collection'>\n","comments":"","outputs":1,"x":1313.3333778381348,"y":1438.3333854675293,"z":"4e44f4dc.d3fbac","wires":[["f0af7cfb.630f1"]]},{"id":"f0af7cfb.630f1","type":"get-resource","name":"get-resource collection","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"collection\" \n\t\tkey=\"collection.collection-id = $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value\"\n        pfx='aai.collection' local-only='false' >\n\n","comments":"","outputs":1,"x":1533.3332824707031,"y":1436.6666469573975,"z":"4e44f4dc.d3fbac","wires":[["5a9a2b.446c05d4","ed35d4f2.f5a3d8","86f300a3.7cafb"]]},{"id":"ed35d4f2.f5a3d8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1747.579475402832,"y":1388.1508359909058,"z":"4e44f4dc.d3fbac","wires":[["58b0fdde.ff35b4"]]},{"id":"5a9a2b.446c05d4","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1756.508071899414,"y":1346.4365692138672,"z":"4e44f4dc.d3fbac","wires":[["a61328d2.f754c8"]]},{"id":"a61328d2.f754c8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Cannot find collection ' +\n      $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value\n      + ' in AAI'`\" />\n","comments":"","x":1913.3332824707031,"y":1345.0000410079956,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"58b0fdde.ff35b4","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"System error retrieving collection from AAI\" />\n","comments":"","x":1913.3332824707031,"y":1389.0000410079956,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"86f300a3.7cafb","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1746.6666831970215,"y":1525.000012397766,"z":"4e44f4dc.d3fbac","wires":[["81df8930.31e0f8"]]},{"id":"81df8930.31e0f8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1899.9998245239258,"y":1524.3333082199097,"z":"4e44f4dc.d3fbac","wires":[["8a522d26.71257","a4f68cb7.668a2","8d0504d7.cdc028","cc147160.20bfe","3198ae9f.e95542"]]},{"id":"8a522d26.71257","type":"for","name":"for each network-instance-group","xml":"<for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\n","comments":"","outputs":1,"x":2138.333168029785,"y":1475.0000562667847,"z":"4e44f4dc.d3fbac","wires":[["9063a8ee.f7faa8"]]},{"id":"a4f68cb7.668a2","type":"set","name":"set found-network-instance-group to false","xml":"<set>\n<parameter name='found-network-instance-group' value='false' />\n","comments":"","x":2168.3331298828125,"y":1428.3334283828735,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"9063a8ee.f7faa8","type":"switchNode","name":"network-instance-group-id matches?","xml":"<switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\n  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\n","comments":"","outputs":1,"x":2454.9996795654297,"y":1475.0000553131104,"z":"4e44f4dc.d3fbac","wires":[["98d54f6d.c932"]]},{"id":"98d54f6d.c932","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2676.666458129883,"y":1475.0000200271606,"z":"4e44f4dc.d3fbac","wires":[["a9385545.8b31c8"]]},{"id":"a9385545.8b31c8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":2806.666488647461,"y":1475.000096321106,"z":"4e44f4dc.d3fbac","wires":[["85ee6cee.1bd2a","a14aee8f.5893a"]]},{"id":"85ee6cee.1bd2a","type":"set","name":"set found-network-instance-group to true","xml":"<set>\n<parameter name='found-network-instance-group' value='true' />\n","comments":"","x":3039.9996643066406,"y":1446.6667213439941,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"a14aee8f.5893a","type":"break","name":"break","xml":"<break>\n","comments":"","x":2933.333278656006,"y":1495.0000915527344,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"8d0504d7.cdc028","type":"switchNode","name":"switch found-network-instance-group","xml":"<switch test='`$found-network-instance-group`'>\n","comments":"","outputs":1,"x":2149.999786376953,"y":1525.0000371932983,"z":"4e44f4dc.d3fbac","wires":[["9189bba.faf6f48"]]},{"id":"9189bba.faf6f48","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":2371.666633605957,"y":1525.0000596046448,"z":"4e44f4dc.d3fbac","wires":[["520b2234.8e265c"]]},{"id":"520b2234.8e265c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Could not find network instance group ' +\n      $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\n      + ' in MD-SAL'`\" />\n","comments":"","x":2518.333206176758,"y":1523.3333940505981,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"ed7dcd3d.7a64c","type":"set","name":"set tmp.vnf-network-collection_length to 0","xml":"<set>\n<parameter name='tmp.vnf-network-collection_length' value='0' />\n","comments":"","x":554.9999694824219,"y":1318.3334436416626,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"cc147160.20bfe","type":"set","name":"set vnf-network-collection data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-function'\n  value='`$aai.instance-group.instance-group-function`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-id'\n  value='`$aai.instance-group.id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-service-instance-id'\n  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].service-instance-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-customization-uuid'\n  value='`$aai.collection.collection-customization-id`' />\n","comments":"","x":2130.0001106262207,"y":1573.3333730697632,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"3198ae9f.e95542","type":"set","name":"increment tmp.vnf-network-collection_length","xml":"<set>\n<parameter name='tmp.vnf-network-collection_length' value='`$tmp.vnf-network-collection_length + 1`' />\n","comments":"","x":2171.666816711426,"y":1620.0000410079956,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"d4e45ae3.95e8e8","type":"set","name":"set vnf-network-collection_length","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'\n  value='`$tmp.vnf-network-collection_length`' />\n","comments":"","x":534.1666641235352,"y":1575.8333930969238,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"5602ea58.f558a4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":711.666690826416,"y":4678.809533119202,"z":"4e44f4dc.d3fbac","wires":[["f145731.7dc939"]]},{"id":"569d159b.7974ac","type":"for","name":"for each instance group id","xml":"<for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\n","comments":"","outputs":1,"x":495.00003814697266,"y":4679.4761781692505,"z":"4e44f4dc.d3fbac","wires":[["5602ea58.f558a4"]]},{"id":"f145731.7dc939","type":"save","name":"save generic-vnf relationship to instance-group","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf:relationship-list\"\n   key=\"generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-information.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n    <parameter name=\"relationship-list.relationship[0].related-to\" value=\"instance-group\" />\n    <parameter name=\"relationship-list.relationship[0].related-link\"\n      value=\"`'/aai/v$/network/instance-groups/instance-group/'\n        + $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id`\" />\n","comments":"","outputs":1,"x":995.0000190734863,"y":4678.333213806152,"z":"4e44f4dc.d3fbac","wires":[["aa364f8f.633a1","d50f251f.b38a38"]]},{"id":"2c0352e1.886b8e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1551.666690826416,"y":4696.666466712952,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"aa364f8f.633a1","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1254.3572425842285,"y":4655.285629272461,"z":"4e44f4dc.d3fbac","wires":[["b6ef2322.ecde1"]]},{"id":"d50f251f.b38a38","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1262.9286727905273,"y":4699.571342468262,"z":"4e44f4dc.d3fbac","wires":[["c25bd07f.ba3dc"]]},{"id":"39611e1d.841192","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating relationship in generic-vnf in AAI\" />\n","comments":"","x":1554.357292175293,"y":4653.428730010986,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"b6ef2322.ecde1","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1407.6189270019531,"y":4654.86586856842,"z":"4e44f4dc.d3fbac","wires":[["39611e1d.841192","159fe4a1.e3dfcb"]]},{"id":"c25bd07f.ba3dc","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1405.9522094726562,"y":4698.53262090683,"z":"4e44f4dc.d3fbac","wires":[["2c0352e1.886b8e","159fe4a1.e3dfcb"]]},{"id":"ccd49d85.073d1","type":"switchNode","name":"switch subnet_length","xml":"<switch test='`$aai.l3-network.l3-network[0].subnets.subnet_length`'>\n","comments":"","outputs":1,"x":940.2381057739258,"y":3966.428771018982,"z":"4e44f4dc.d3fbac","wires":[["13f8461f.02754a","4f0f1832.9d6238","4a7eee29.bdad1"]]},{"id":"13f8461f.02754a","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1113.0952682495117,"y":3929.2858304977417,"z":"4e44f4dc.d3fbac","wires":[["d7fec3a.cf03e4"]]},{"id":"4f0f1832.9d6238","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":1114.523838043213,"y":3967.856993675232,"z":"4e44f4dc.d3fbac","wires":[["d7fec3a.cf03e4"]]},{"id":"4a7eee29.bdad1","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1113.095302581787,"y":4006.428385734558,"z":"4e44f4dc.d3fbac","wires":[["7e5c1302.e8982c"]]},{"id":"7e5c1302.e8982c","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1234.5238571166992,"y":4006.4286527633667,"z":"4e44f4dc.d3fbac","wires":[["fe91b2bf.8c099","53c17453.f0880c"]]},{"id":"d7fec3a.cf03e4","type":"set","name":"set subnet_length to 0","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\n   value='0' />\n","comments":"","x":1305.9524612426758,"y":3937.856993675232,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"6d2f55b8.a2759c","type":"switchNode","name":"switch: sdnc-model-name && sdnc-artifact-name != null","xml":"<switch test=\"`$db.vf-model.sdnc-model-name != '' and $db.vf-model.sdnc-artifact-name != ''`\">","comments":"","outputs":1,"x":1539.8175621032715,"y":949.9999332427979,"z":"4e44f4dc.d3fbac","wires":[["6dd97b97.b67924","7c6a046e.7cc64c"]]},{"id":"6dd97b97.b67924","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1842.8889503479004,"y":922.6785984039307,"z":"4e44f4dc.d3fbac","wires":[["5b2ce020.a36b2"]]},{"id":"86ca6d15.0e146","type":"switchNode","name":"switch: param[].name","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$p].name`\">\n","comments":"","outputs":1,"x":1053.9484024047852,"y":598.2024068832397,"z":"4e44f4dc.d3fbac","wires":[["af0da8d9.d8ece8","6b384f33.32a78"]]},{"id":"63f83908.751498","type":"for","name":"for p in vnf-input-parameters,param[]","xml":"<for silentFailure='true' index='p' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >\n","comments":"","outputs":1,"x":760.055549621582,"y":598.7024393081665,"z":"4e44f4dc.d3fbac","wires":[["86ca6d15.0e146"]]},{"id":"e3aa680f.7c2008","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1250.2581176757812,"y":949.9521970748901,"z":"4e44f4dc.d3fbac","wires":[["6d2f55b8.a2759c"]]},{"id":"542091af.e959d","type":"call","name":"call self-serve-vnf-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >\n","comments":"","outputs":1,"x":2132.257625579834,"y":717.845365524292,"z":"4e44f4dc.d3fbac","wires":[["a34d6a59.d39c18"]]},{"id":"ecba7f02.a0e2c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id`\" />\n","comments":"","x":2516.329002380371,"y":717.8453159332275,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"7c6a046e.7cc64c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1845.78169631958,"y":979.2856025695801,"z":"4e44f4dc.d3fbac","wires":[["ae713fba.3df7f"]]},{"id":"84263c0c.96c43","type":"set","name":"set tmp.exist.sdnc-artifact-name = true","xml":"<set>\n<parameter name='tmp.exist.sdnc-artifact-name' value='true' />","comments":"","x":1595.8413314819336,"y":648.0595769882202,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"ae12ffc.41b2a","type":"set","name":"set tmp.exist.sdnc-model-name = true","xml":"<set>\n<parameter name='tmp.exist.sdnc-model-name' value='true' />\n","comments":"","x":1592.5554389953613,"y":598.0595922470093,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"3f17b073.bbbcb","type":"switchNode","name":"switch: tmp.exist.sdnc-model-name && tmp.exist.sdnc-artifact-name == true","xml":"<switch test=\"`$tmp.exist.sdnc-model-name == 'true' and $tmp.exist.sdnc-artifact-name == 'true'`\">\n","comments":"","outputs":1,"x":877.9960327148438,"y":767.0237197875977,"z":"4e44f4dc.d3fbac","wires":[["d1f392c4.1dab8","e3aa680f.7c2008"]]},{"id":"d1f392c4.1dab8","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1246.5079917907715,"y":719.1427278518677,"z":"4e44f4dc.d3fbac","wires":[["5b2ce020.a36b2"]]},{"id":"cd40e494.6d16b8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":453.65077209472656,"y":500.8691177368164,"z":"4e44f4dc.d3fbac","wires":[["63f83908.751498","3f17b073.bbbcb","e38b7cc3.75e77","806e0f23.0111b"]]},{"id":"d5dac1e.b0d824","type":"comment","name":"SELF-SERVE FORK","info":"","comments":"","x":442.2221984863281,"y":624.6786069869995,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"af0da8d9.d8ece8","type":"outcome","name":"sdnc_model_name","xml":"<outcome value='sdnc_model_name'>\n","comments":"","outputs":1,"x":1310.1269781930105,"y":598.1072013037544,"z":"4e44f4dc.d3fbac","wires":[["ae12ffc.41b2a"]]},{"id":"6b384f33.32a78","type":"outcome","name":"sdnc_artifact_name","xml":"<outcome value='sdnc_artifact_name'>\n","comments":"","outputs":1,"x":1312.9841003417969,"y":647.5357732772827,"z":"4e44f4dc.d3fbac","wires":[["84263c0c.96c43"]]},{"id":"a34d6a59.d39c18","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":2337.555206298828,"y":717.3333969116211,"z":"4e44f4dc.d3fbac","wires":[["ecba7f02.a0e2c"]]},{"id":"11bf25d2.bdb8da","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":233.4126968383789,"y":234.2857322692871,"z":"4e44f4dc.d3fbac","wires":[["a0fc8588.9798e8","b32ac93e.aaa508","3e444c8d.9a16f4","cd40e494.6d16b8"]]},{"id":"b10f2375.b9afa","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1575.71431350708,"y":3985.0328483581543,"z":"4e44f4dc.d3fbac","wires":[["5bcbda97.98c4e4","3b85bc8c.02f794","e6ea74fb.9af718","f638c11c.6fd0e"]]},{"id":"cdefc051.a04bf","type":"set","name":"clear aai.l3-network","xml":"<set>\n<parameter name='aai.l3-network.' value='' />\n","comments":"","x":934.285758972168,"y":3357.8899669647217,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"6f9b0a93.f694a4","type":"break","name":"break","xml":"<break>\n","comments":"","x":3375.9996948242188,"y":3885.032530784607,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"be0cee42.5ab7e","type":"set","name":"set found-network to false","xml":"<set>\n<parameter name='found-network' value='false' />\n","comments":"","x":1075.7142868041992,"y":3590.746934890747,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"46c88819.e15b38","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":2047.4285926818848,"y":3745.0327310562134,"z":"4e44f4dc.d3fbac","wires":[["9833efbf.69304","5f2e36ac.da9228"]]},{"id":"5f2e36ac.da9228","type":"switchNode","name":"switch found-network","xml":"<switch test='`$found-network`'>\n","comments":"","outputs":1,"x":2238.8571395874023,"y":3775.0327854156494,"z":"4e44f4dc.d3fbac","wires":[["66e2cd5f.2e0f04"]]},{"id":"2a1ad752.bfcd38","type":"set","name":"set found-network to true","xml":"<set>\n<parameter name='found-network' value='true' />\n","comments":"","x":3431.714572906494,"y":3839.318211555481,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"66e2cd5f.2e0f04","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":2407.4286308288574,"y":3775.03271484375,"z":"4e44f4dc.d3fbac","wires":[["10d190b5.dcecdf"]]},{"id":"10d190b5.dcecdf","type":"break","name":"break","xml":"<break>\n","comments":"","x":2537.428699493408,"y":3773.604108810425,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"45b722b6.db776c","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1247.7143096923828,"y":3718.7470092773438,"z":"4e44f4dc.d3fbac","wires":[["2b805935.a35cb6","c7e830d3.e9283"]]},{"id":"c7e830d3.e9283","type":"switchNode","name":"switch found-network","xml":"<switch test='`$found-network`'>\n","comments":"","outputs":1,"x":1457.7142639160156,"y":3790.746892929077,"z":"4e44f4dc.d3fbac","wires":[["24156eb7.6d1de2"]]},{"id":"24156eb7.6d1de2","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1626.2857551574707,"y":3790.7468223571777,"z":"4e44f4dc.d3fbac","wires":[["25a3a86e.400be8"]]},{"id":"25a3a86e.400be8","type":"break","name":"break","xml":"<break>\n","comments":"","x":1756.2858238220215,"y":3789.3182163238525,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"e38b7cc3.75e77","type":"set","name":"initialize tmp.exist.sdnc-model-name && tmp.exist.sdnc-artifact-name = false","xml":"<set>\n<parameter name='tmp.exist.sdnc-model-name' value='false' />\n<parameter name='tmp.exist.sdnc-artifact-name' value='false' />","comments":"","x":880.1429061889648,"y":501.33330821990967,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"fb1b0696.2b0118","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":2098.666561126709,"y":879.9999332427979,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"893e0d25.a86ef","type":"set","name":"set vnf-level-oper-status to PendingCreate","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":2188.480007171631,"y":782.3374137878418,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"f4cb36d0.800108","type":"execute","name":"printContext","xml":"<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\n<parameter name='filename' value='/var/tmp/ss-vnfend.log' />\n","comments":"","outputs":1,"x":2093.5712890625,"y":828.7771825790405,"z":"4e44f4dc.d3fbac","wires":[[]]},{"id":"5b2ce020.a36b2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1899.6664695739746,"y":718.3333206176758,"z":"4e44f4dc.d3fbac","wires":[["542091af.e959d","893e0d25.a86ef","f4cb36d0.800108","fb1b0696.2b0118"]]},{"id":"e6ea74fb.9af718","type":"set","name":"set subnet data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\n   value='`$tmp.ip-version`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].neutron-subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].sdnc-subnet-id'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-role'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-name'\n   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />\n","comments":"","x":1730.0000801086426,"y":4015.7145948410034,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"f638c11c.6fd0e","type":"switchNode","name":"switch dhcp-enabled","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>\n","comments":"","outputs":1,"x":1744.5238609313965,"y":4068.557548522949,"z":"4e44f4dc.d3fbac","wires":[["1616a214.4d52fe","6cb55598.b5519c"]]},{"id":"1616a214.4d52fe","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":1907.3810255868093,"y":4047.12890625,"z":"4e44f4dc.d3fbac","wires":[["9228e480.6386e8"]]},{"id":"6cb55598.b5519c","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":1905.9523582458496,"y":4092.8433322906494,"z":"4e44f4dc.d3fbac","wires":[["10fd862a.7096da"]]},{"id":"9228e480.6386e8","type":"set","name":"set dhcp-enabled to Y","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\n   value='Y' />\n","comments":"","x":2080.238224029541,"y":4045.7003021240234,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"10fd862a.7096da","type":"set","name":"set dhcp-enabled to N","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\n   value='N' />\n","comments":"","x":2077.3809928894043,"y":4092.8433322906494,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"5bcbda97.98c4e4","type":"switchNode","name":"switch subnet-role","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`'>\n","comments":"","outputs":1,"x":1745.0000305175781,"y":3897.6052207946777,"z":"4e44f4dc.d3fbac","wires":[["2f3e4a5d.7c3b36"]]},{"id":"2f3e4a5d.7c3b36","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":1911.666633605957,"y":3897.6048727035522,"z":"4e44f4dc.d3fbac","wires":[["24afcaa5.1defa6"]]},{"id":"24afcaa5.1defa6","type":"set","name":"set subnet-role to NONE","xml":"<set>\n<parameter name='aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role' value='NONE' />\n","comments":"","x":2093.3334197998047,"y":3896.93852519989,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"3b85bc8c.02f794","type":"switchNode","name":"switch ip-version","xml":"<switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`'>\n","comments":"","outputs":1,"x":1740.2383651733398,"y":3962.096326828003,"z":"4e44f4dc.d3fbac","wires":[["1c2233e9.20214c","e680d1ed.d7f9c"]]},{"id":"1c2233e9.20214c","type":"outcome","name":"4","xml":"<outcome value='4'>\n","comments":"","outputs":1,"x":1905.952507019043,"y":3943.524724006653,"z":"4e44f4dc.d3fbac","wires":[["f01b1452.dd9f88"]]},{"id":"e680d1ed.d7f9c","type":"outcome","name":"6","xml":"<outcome value='6'>\n","comments":"","outputs":1,"x":1905.9524688720703,"y":3984.9534673690796,"z":"4e44f4dc.d3fbac","wires":[["319040e.ea0d5c"]]},{"id":"f01b1452.dd9f88","type":"set","name":"set tmp.ip-version to ipv4","xml":"<set>\n<parameter name='tmp.ip-version' value='ipv4' />\n","comments":"","x":2093.095272064209,"y":3942.6676511764526,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"319040e.ea0d5c","type":"set","name":"set tmp.ip-version to ipv6","xml":"<set>\n<parameter name='tmp.ip-version' value='ipv6' />\n","comments":"","x":2091.6668243408203,"y":3984.953469276428,"z":"4e44f4dc.d3fbac","wires":[]},{"id":"806e0f23.0111b","type":"switchNode","name":"switch: vnf-input-parameters.param_length","xml":"<switch test=\"`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`\">\n","comments":"","outputs":1,"x":778.5714645385742,"y":547.1428127288818,"z":"4e44f4dc.d3fbac","wires":[["f780fd19.5435b"]]},{"id":"f780fd19.5435b","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1042.1428833007812,"y":547.4285526275635,"z":"4e44f4dc.d3fbac","wires":[["7fdf9810.65be18"]]},{"id":"7fdf9810.65be18","type":"set","name":"set vnf-input-parameters.param_length = 0","xml":"<set>\n<parameter name='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length' value='0' />\n","comments":"","x":1315.8571243286133,"y":547.2857141494751,"z":"4e44f4dc.d3fbac","wires":[]}]
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json b/platform-logic/generic-resource-api/src/main/json/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.json
new file mode 100755 (executable)
index 0000000..4f44a27
--- /dev/null
@@ -0,0 +1 @@
+[{"id":"d41630d3.caf9a","type":"dgstart","name":"DGSTART","outputs":1,"x":105.71428680419922,"y":83.8422281742096,"z":"32e1851.926797a","wires":[["9e79d189.ad06b"]]},{"id":"9e79d189.ad06b","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":218.1428451538086,"y":124.08033871650696,"z":"32e1851.926797a","wires":[["6e767b2e.801194"]]},{"id":"6e767b2e.801194","type":"method","name":"method vnf-topology-operation-changeassign","xml":"<method rpc='vnf-topology-operation-changeassign' mode='sync'>\n","comments":"","outputs":1,"x":213.85719299316406,"y":163.84222626686096,"z":"32e1851.926797a","wires":[["cdbcf3e1.d9504"]]},{"id":"919859b6.f73948","type":"comment","name":"vnf-topology-operation-changeassign","info":"","comments":"","x":500.05914306640625,"y":31.428571939468384,"z":"32e1851.926797a","wires":[]},{"id":"1648c2a1.20d86d","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":504.95240020751953,"y":265.5565197467804,"z":"32e1851.926797a","wires":[["3f59da7f.089086","a2fb0705.451bf8"]]},{"id":"3f59da7f.089086","type":"outcome","name":"CreateVnfInstance","xml":"<outcome value='CreateVnfInstance'>\n","comments":"","outputs":1,"x":729.09521484375,"y":239.8422281742096,"z":"32e1851.926797a","wires":[["a743e47e.939ef8"]]},{"id":"a2fb0705.451bf8","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":692.0952377319336,"y":283.88986706733704,"z":"32e1851.926797a","wires":[["c3555984.d18d58"]]},{"id":"a743e47e.939ef8","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":920.6666717529297,"y":239.8422634601593,"z":"32e1851.926797a","wires":[[]]},{"id":"c3555984.d18d58","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'changeassign' then request-action must be 'CreateVnfInstance'\" />\n","comments":"","x":899.4761848449707,"y":283.88987851142883,"z":"32e1851.926797a","wires":[]},{"id":"d86bb989.8ab7c8","type":"switchNode","name":"switch order-status","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\n","comments":"","outputs":1,"x":494.38086700439453,"y":487.6994640827179,"z":"32e1851.926797a","wires":[["1d49a618.4e5c5a","605edc8b.b378c4"]]},{"id":"1d49a618.4e5c5a","type":"other","name":"PendingDelete","xml":"<outcome value='PendingDelete'>\n","comments":"","outputs":1,"x":696.3809242248535,"y":465.41363167762756,"z":"32e1851.926797a","wires":[["8b82ff89.45fb2"]]},{"id":"f9215f25.69fe3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"The requested VNF is not pending deletion\" />\n","comments":"","x":862.5237884521484,"y":508.74700951576233,"z":"32e1851.926797a","wires":[]},{"id":"cdbcf3e1.d9504","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":218.0952606201172,"y":488.6041262149811,"z":"32e1851.926797a","wires":[["1648c2a1.20d86d","dcd61c11.fb1ce","98cbff17.bccb1","163736b2.ccd829","1515e5b2.0118aa","89e2b7c.97d0548","a5133000.e13b5","efae7497.72e208","312db6c6.9c69aa"]]},{"id":"dcd61c11.fb1ce","type":"set","name":"set service-object-path","xml":"<set>\n<parameter name='service-object-path'\n value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $service-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n","comments":"","x":506.4285125732422,"y":743.1280481815338,"z":"32e1851.926797a","wires":[]},{"id":"98cbff17.bccb1","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n","comments":"","x":480.7142143249512,"y":785.9851868152618,"z":"32e1851.926797a","wires":[]},{"id":"163736b2.ccd829","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":492.38087463378906,"y":328.8422396183014,"z":"32e1851.926797a","wires":[["2235973c.92a228"]]},{"id":"2235973c.92a228","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":679.0475540161133,"y":328.1755373477936,"z":"32e1851.926797a","wires":[["fd830e18.e5be3"]]},{"id":"fd830e18.e5be3","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":860.7141799926758,"y":328.1755373477936,"z":"32e1851.926797a","wires":[]},{"id":"1515e5b2.0118aa","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":474.0475540161133,"y":377.1755573749542,"z":"32e1851.926797a","wires":[["3ca56343.0130cc"]]},{"id":"3ca56343.0130cc","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":729.0476417541504,"y":375.84222531318665,"z":"32e1851.926797a","wires":[["c74d5ebe.aea64"]]},{"id":"c74d5ebe.aea64","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":967.3809280395508,"y":374.84220337867737,"z":"32e1851.926797a","wires":[["8ac9dc06.55595"]]},{"id":"8ac9dc06.55595","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1135.7141227722168,"y":374.84222531318665,"z":"32e1851.926797a","wires":[]},{"id":"89e2b7c.97d0548","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":485.71421813964844,"y":423.8422272205353,"z":"32e1851.926797a","wires":[["4db6429a.65f11c"]]},{"id":"4db6429a.65f11c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":667.3808364868164,"y":423.1755573749542,"z":"32e1851.926797a","wires":[["ee7d31ce.c7dec"]]},{"id":"ee7d31ce.c7dec","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":834.0475234985352,"y":422.8421833515167,"z":"32e1851.926797a","wires":[]},{"id":"a5133000.e13b5","type":"set","name":"copy ONAP model information","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.'\n  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.`' />\n","comments":"","x":529.7854614257812,"y":645.7142851352692,"z":"32e1851.926797a","wires":[]},{"id":"efae7497.72e208","type":"set","name":"set vnf-level-oper-status to Created","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":542.3809356689453,"y":695.5089495182037,"z":"32e1851.926797a","wires":[]},{"id":"8b82ff89.45fb2","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":845.7142868041992,"y":464.76190304756165,"z":"32e1851.926797a","wires":[[]]},{"id":"605edc8b.b378c4","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":670.7143211364746,"y":509.7618935108185,"z":"32e1851.926797a","wires":[["f9215f25.69fe3"]]},{"id":"312db6c6.9c69aa","type":"get-resource","name":"get-resource VF_MODEL","xml":"<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\n  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\n  pfx='db.vf-model'>\n\n","comments":"","outputs":1,"x":519.047607421875,"y":573.0951960086823,"z":"32e1851.926797a","wires":[["2c51876f.25c698","1bf6f57.eff1e0b"]]},{"id":"247e5789.2d6a68","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`\" />\n","comments":"","x":872.1427955627441,"y":598.1903688907623,"z":"32e1851.926797a","wires":[]},{"id":"2c51876f.25c698","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":706.4999961853027,"y":553.476033449173,"z":"32e1851.926797a","wires":[["2bf6a953.4d1446"]]},{"id":"1bf6f57.eff1e0b","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":715.0714263916016,"y":597.7617466449738,"z":"32e1851.926797a","wires":[["247e5789.2d6a68"]]},{"id":"2bf6a953.4d1446","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error reading VF_MODEL table\" />\n","comments":"","x":871.4999961853027,"y":553.2856276035309,"z":"32e1851.926797a","wires":[]},{"id":"9a3a0f27.7772","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1060.0000610351562,"y":475.7142686843872,"z":"32e1851.926797a","wires":[]}]
\ No newline at end of file
index a123659..56f4976 100644 (file)
@@ -1,408 +1 @@
-[
-    {
-        "id": "704d0b14.d5c684",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 98.33332824707031,
-        "y": 90.74698829650879,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "72e4c75c.02dbd8"
-            ]
-        ]
-    },
-    {
-        "id": "72e4c75c.02dbd8",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 173.61903381347656,
-        "y": 130.98509979248047,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "cf8e6aa3.702178"
-            ]
-        ]
-    },
-    {
-        "id": "cf8e6aa3.702178",
-        "type": "method",
-        "name": "method vnf-topology-operation-deactivate",
-        "xml": "<method rpc='vnf-topology-operation-deactivate' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 200.76195526123047,
-        "y": 170.7469882965088,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "cb96d310.99dca"
-            ]
-        ]
-    },
-    {
-        "id": "95de4493.48a0c8",
-        "type": "comment",
-        "name": "vnf-topology-operation-deactivate",
-        "info": "",
-        "comments": "",
-        "x": 492.67818450927734,
-        "y": 38.33333206176758,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "163c9760.9a9a79",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 501.85713958740234,
-        "y": 269.6041259765625,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "80b90203.c142f",
-                "3890f05d.c33f7"
-            ]
-        ]
-    },
-    {
-        "id": "80b90203.c142f",
-        "type": "outcome",
-        "name": "DeleteVnfInstance",
-        "xml": "<outcome value='DeleteVnfInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 728.5714149475098,
-        "y": 245.08034229278564,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "df5429cb.487c88"
-            ]
-        ]
-    },
-    {
-        "id": "3890f05d.c33f7",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 692.5713806152344,
-        "y": 290.79467010498047,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "d4e21439.6c2c68"
-            ]
-        ]
-    },
-    {
-        "id": "df5429cb.487c88",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 915.4285430908203,
-        "y": 245.08037185668945,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "d4e21439.6c2c68",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n",
-        "comments": "",
-        "x": 932.5713882446289,
-        "y": 290.79462814331055,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "cb96d310.99dca",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 174.99999237060547,
-        "y": 392.4136600494385,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "163c9760.9a9a79",
-                "791aad2d.6402d4",
-                "5fe470c0.6326b",
-                "314e05bd.fd765a",
-                "2ee980dc.3023e",
-                "c5ae4e0b.ba491",
-                "2cdd37b1.513c28",
-                "b687fc0c.6ee0d"
-            ]
-        ]
-    },
-    {
-        "id": "791aad2d.6402d4",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 488.33331298828125,
-        "y": 339.0803518295288,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "69686a76.3c1234"
-            ]
-        ]
-    },
-    {
-        "id": "69686a76.3c1234",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 674.9999923706055,
-        "y": 338.413649559021,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "6713d6bd.53f838"
-            ]
-        ]
-    },
-    {
-        "id": "6713d6bd.53f838",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",
-        "comments": "",
-        "x": 856.666618347168,
-        "y": 338.413649559021,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "5fe470c0.6326b",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 469.99999237060547,
-        "y": 387.41366958618164,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "813eeeef.71253"
-            ]
-        ]
-    },
-    {
-        "id": "813eeeef.71253",
-        "type": "switchNode",
-        "name": "switch this vnf-id == input vnf-id",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 725.0000801086426,
-        "y": 386.08033752441406,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "3f5d6dbd.824612"
-            ]
-        ]
-    },
-    {
-        "id": "3f5d6dbd.824612",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 963.333366394043,
-        "y": 385.0803155899048,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "92e2ba42.5870e8"
-            ]
-        ]
-    },
-    {
-        "id": "92e2ba42.5870e8",
-        "type": "set",
-        "name": "set vnf-index",
-        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
-        "comments": "",
-        "x": 1131.666561126709,
-        "y": 385.08033752441406,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "314e05bd.fd765a",
-        "type": "switchNode",
-        "name": "switch vnf-index",
-        "xml": "<switch test='`$vnf-index`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 481.6666488647461,
-        "y": 434.08033895492554,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "dc4d0087.64549"
-            ]
-        ]
-    },
-    {
-        "id": "dc4d0087.64549",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 663.3332748413086,
-        "y": 433.41366958618164,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "815b45d5.3c6cc8"
-            ]
-        ]
-    },
-    {
-        "id": "815b45d5.3c6cc8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n",
-        "comments": "",
-        "x": 829.9999618530273,
-        "y": 433.08029556274414,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "2ee980dc.3023e",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "comments": "",
-        "x": 474.9999771118164,
-        "y": 654.0803279876709,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "c5ae4e0b.ba491",
-        "type": "set",
-        "name": "set vnf-level-oper-status to PendingDelete",
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n",
-        "comments": "",
-        "x": 562.4800567626953,
-        "y": 609.7507572174072,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "2cdd37b1.513c28",
-        "type": "set",
-        "name": "copy input data",
-        "xml": "<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n",
-        "comments": "",
-        "x": 476.6665573120117,
-        "y": 567.4136371612549,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "4fa6056b.b7de5c",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n",
-        "comments": "",
-        "x": 1028.3332710266113,
-        "y": 520.0000114440918,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "142a1a7a.ff7cd6",
-        "type": "failure",
-        "name": "failure",
-        "xml": "<outcome value='failure'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 859.3571701049805,
-        "y": 476.28582286834717,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "ec70e2bc.1d824"
-            ]
-        ]
-    },
-    {
-        "id": "20247378.f063bc",
-        "type": "not-found",
-        "name": "not-found",
-        "xml": "<outcome value='not-found'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 867.9286003112793,
-        "y": 520.571536064148,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "4fa6056b.b7de5c"
-            ]
-        ]
-    },
-    {
-        "id": "ec70e2bc.1d824",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n",
-        "comments": "",
-        "x": 1031.0238647460938,
-        "y": 476.76221656799316,
-        "z": "31f1f0b7.be812",
-        "wires": []
-    },
-    {
-        "id": "b687fc0c.6ee0d",
-        "type": "save",
-        "name": "update generic-vnf orch-status to PendingDelete",
-        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 583.3332366943359,
-        "y": 496.00005054473877,
-        "z": "31f1f0b7.be812",
-        "wires": [
-            [
-                "142a1a7a.ff7cd6",
-                "20247378.f063bc"
-            ]
-        ]
-    }
-]
+[{"id":"b1c903a2.01c0c","type":"dgstart","name":"DGSTART","outputs":1,"x":133.3333282470703,"y":87.4136552810669,"z":"7772601e.b7e81","wires":[["fca3e9b5.fe1c38"]]},{"id":"fca3e9b5.fe1c38","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":247.61903381347656,"y":127.65176677703857,"z":"7772601e.b7e81","wires":[["24b0f652.f8130a"]]},{"id":"24b0f652.f8130a","type":"method","name":"method vnf-topology-operation-deactivate","xml":"<method rpc='vnf-topology-operation-deactivate' mode='sync'>\n","comments":"","outputs":1,"x":233.76195526123047,"y":167.4136552810669,"z":"7772601e.b7e81","wires":[["4e5ae64b.983e88"]]},{"id":"3113ba0d.9de336","type":"comment","name":"vnf-topology-operation-deactivate","info":"","comments":"","x":527.6781845092773,"y":34.999999046325684,"z":"7772601e.b7e81","wires":[]},{"id":"a51e0bc6.040218","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":536.8571395874023,"y":266.2707929611206,"z":"7772601e.b7e81","wires":[["8824484e.bd9f78","614f1708.c94548"]]},{"id":"8824484e.bd9f78","type":"outcome","name":"DeleteVnfInstance","xml":"<outcome value='DeleteVnfInstance'>\n","comments":"","outputs":1,"x":763.5714149475098,"y":241.74700927734375,"z":"7772601e.b7e81","wires":[["55807eef.4a133"]]},{"id":"614f1708.c94548","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":727.5713806152344,"y":287.4613370895386,"z":"7772601e.b7e81","wires":[["923ee138.5c82b"]]},{"id":"55807eef.4a133","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":950.4285430908203,"y":241.74703884124756,"z":"7772601e.b7e81","wires":[[]]},{"id":"923ee138.5c82b","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n","comments":"","x":967.5713882446289,"y":287.46129512786865,"z":"7772601e.b7e81","wires":[]},{"id":"4e5ae64b.983e88","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":209.99999237060547,"y":389.0803270339966,"z":"7772601e.b7e81","wires":[["a51e0bc6.040218","1ba570ba.dad57f","e67a4e81.b8876","d051c62a.469d18","5d06866d.f68068","233d2062.bfc2e","214494b2.a8c48c","be7cc1a3.ed487"]]},{"id":"1ba570ba.dad57f","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":523.3333129882812,"y":335.7470188140869,"z":"7772601e.b7e81","wires":[["3cfc4722.731d38"]]},{"id":"3cfc4722.731d38","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":709.9999923706055,"y":335.0803165435791,"z":"7772601e.b7e81","wires":[["655a3c7d.581d14"]]},{"id":"655a3c7d.581d14","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":891.666618347168,"y":335.0803165435791,"z":"7772601e.b7e81","wires":[]},{"id":"e67a4e81.b8876","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":504.99999237060547,"y":384.08033657073975,"z":"7772601e.b7e81","wires":[["9dd35bbb.8b60b8"]]},{"id":"9dd35bbb.8b60b8","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\n","comments":"","outputs":1,"x":760.0000801086426,"y":382.74700450897217,"z":"7772601e.b7e81","wires":[["12c9d6c4.8a6149"]]},{"id":"12c9d6c4.8a6149","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":998.333366394043,"y":381.7469825744629,"z":"7772601e.b7e81","wires":[["41a6dedb.99bf6"]]},{"id":"41a6dedb.99bf6","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1166.666561126709,"y":381.74700450897217,"z":"7772601e.b7e81","wires":[]},{"id":"d051c62a.469d18","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":516.6666488647461,"y":430.74700593948364,"z":"7772601e.b7e81","wires":[["5895cda9.4c46c4"]]},{"id":"5895cda9.4c46c4","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":698.3332748413086,"y":430.08033657073975,"z":"7772601e.b7e81","wires":[["157f10d.32798ef"]]},{"id":"157f10d.32798ef","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":864.9999618530273,"y":429.74696254730225,"z":"7772601e.b7e81","wires":[]},{"id":"5d06866d.f68068","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":509.9999771118164,"y":650.746994972229,"z":"7772601e.b7e81","wires":[]},{"id":"233d2062.bfc2e","type":"set","name":"set vnf-level-oper-status to PendingDelete","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\n","comments":"","x":597.4800567626953,"y":606.4174242019653,"z":"7772601e.b7e81","wires":[]},{"id":"214494b2.a8c48c","type":"set","name":"copy input data","xml":"<set>\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\n<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\n\n","comments":"","x":511.6665573120117,"y":564.080304145813,"z":"7772601e.b7e81","wires":[]},{"id":"eacb2416.f208b8","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`\" />\n","comments":"","x":1063.3332710266113,"y":516.6666784286499,"z":"7772601e.b7e81","wires":[]},{"id":"8d6adc7b.83eec","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":894.3571701049805,"y":472.9524898529053,"z":"7772601e.b7e81","wires":[["527c1385.dfc04c"]]},{"id":"a6b439f3.d11f08","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":902.9286003112793,"y":517.238203048706,"z":"7772601e.b7e81","wires":[["eacb2416.f208b8"]]},{"id":"527c1385.dfc04c","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating generic-vnf in AAI\" />\n","comments":"","x":1066.0238647460938,"y":473.42888355255127,"z":"7772601e.b7e81","wires":[]},{"id":"be7cc1a3.ed487","type":"save","name":"update generic-vnf orch-status to PendingDelete","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\"\n   resource=\"generic-vnf\"\n   key=\"generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id\"\n   force=\"true\" pfx=\"tmp.AnAI-data\">\n<parameter name=\"orchestration-status\" value=\"PendingDelete\" />\n","comments":"","outputs":1,"x":618.3332366943359,"y":492.6667175292969,"z":"7772601e.b7e81","wires":[["8d6adc7b.83eec","a6b439f3.d11f08"]]}]
\ No newline at end of file
index fbc5faf..b1eea7e 100644 (file)
@@ -1,588 +1 @@
-[
-    {
-        "id": "96001a8c.4d0748",
-        "type": "dgstart",
-        "name": "DGSTART",
-        "outputs": 1,
-        "x": 101.66666412353516,
-        "y": 81.66666412353516,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "7c64b7f3.ff25c8"
-            ]
-        ]
-    },
-    {
-        "id": "7c64b7f3.ff25c8",
-        "type": "service-logic",
-        "name": "GENERIC-RESOURCE-API ${project.version}",
-        "module": "GENERIC-RESOURCE-API",
-        "version": "${project.version}",
-        "comments": "",
-        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-        "outputs": 1,
-        "x": 176.9523696899414,
-        "y": 121.90477561950684,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "e77f5801.4ec068"
-            ]
-        ]
-    },
-    {
-        "id": "e77f5801.4ec068",
-        "type": "method",
-        "name": "method vnf-topology-operation-unassign",
-        "xml": "<method rpc='vnf-topology-operation-unassign' mode='sync'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 200.0952911376953,
-        "y": 161.66666412353516,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "3346143.6ec13ec"
-            ]
-        ]
-    },
-    {
-        "id": "97471b5d.533f18",
-        "type": "comment",
-        "name": "vnf-topology-operation-unassign",
-        "info": "",
-        "comments": "",
-        "x": 496.0115203857422,
-        "y": 29.253007888793945,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "7ffc5961.3c2bf8",
-        "type": "switchNode",
-        "name": "switch request-action",
-        "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 505.1904754638672,
-        "y": 260.52380180358887,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "88a6a6b8.f339b8",
-                "bae1be9d.b2504"
-            ]
-        ]
-    },
-    {
-        "id": "88a6a6b8.f339b8",
-        "type": "outcome",
-        "name": "DeleteVnfInstance",
-        "xml": "<outcome value='DeleteVnfInstance'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 758.9047698974609,
-        "y": 237.66668319702148,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "69c905eb.131a1c"
-            ]
-        ]
-    },
-    {
-        "id": "bae1be9d.b2504",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 720.9047355651855,
-        "y": 283.3810110092163,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "3461fef6.36d722"
-            ]
-        ]
-    },
-    {
-        "id": "69c905eb.131a1c",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 943.7618980407715,
-        "y": 237.6667127609253,
-        "z": "ff974913.290918",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "3461fef6.36d722",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n",
-        "comments": "",
-        "x": 960.9047431945801,
-        "y": 283.3809690475464,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "3346143.6ec13ec",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 180,
-        "y": 554.9999980926514,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "7ffc5961.3c2bf8",
-                "c3ee1f54.e9c49",
-                "6f08ad34.331214",
-                "f989a9a8.a235a8",
-                "51b5c082.75d5f",
-                "6b1e8937.811c58",
-                "796a94e1.89abac",
-                "9a9f9c4c.fbd22"
-            ]
-        ]
-    },
-    {
-        "id": "c3ee1f54.e9c49",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 491.6666488647461,
-        "y": 330.0000276565552,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "14653468.3f5d1c"
-            ]
-        ]
-    },
-    {
-        "id": "14653468.3f5d1c",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 678.3333282470703,
-        "y": 329.33332538604736,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "15374e8a.9b3331"
-            ]
-        ]
-    },
-    {
-        "id": "15374e8a.9b3331",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n",
-        "comments": "",
-        "x": 859.9999542236328,
-        "y": 329.33332538604736,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "6b1e8937.811c58",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 473.3333282470703,
-        "y": 378.333345413208,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "ac39155f.e69998"
-            ]
-        ]
-    },
-    {
-        "id": "ac39155f.e69998",
-        "type": "switchNode",
-        "name": "switch this vnf-id == input vnf-id",
-        "xml": "<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 728.3334159851074,
-        "y": 377.00001335144043,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "2a9affc9.05758"
-            ]
-        ]
-    },
-    {
-        "id": "2a9affc9.05758",
-        "type": "outcomeTrue",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 966.6667022705078,
-        "y": 375.99999141693115,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "f089091c.aad928"
-            ]
-        ]
-    },
-    {
-        "id": "f089091c.aad928",
-        "type": "set",
-        "name": "set vnf-index",
-        "xml": "<set>\n<parameter name='vnf-index' value='`$idx`' />\n",
-        "comments": "",
-        "x": 1134.9998970031738,
-        "y": 376.00001335144043,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "796a94e1.89abac",
-        "type": "switchNode",
-        "name": "switch vnf-index",
-        "xml": "<switch test='`$vnf-index`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 484.99999237060547,
-        "y": 425.00001525878906,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "7c43e234.9e600c"
-            ]
-        ]
-    },
-    {
-        "id": "7c43e234.9e600c",
-        "type": "other",
-        "name": "NULL",
-        "xml": "<outcome value=''>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 666.6666107177734,
-        "y": 424.333345413208,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "54a44960.3d1bc8"
-            ]
-        ]
-    },
-    {
-        "id": "54a44960.3d1bc8",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n",
-        "comments": "",
-        "x": 833.3332977294922,
-        "y": 423.9999713897705,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "6f08ad34.331214",
-        "type": "returnSuccess",
-        "name": "return success",
-        "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-        "comments": "",
-        "x": 476.3333168029785,
-        "y": 843.3332319259644,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "28425fad.bcfa3",
-        "type": "for",
-        "name": "for each vnf",
-        "xml": "<for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 999.1126251220703,
-        "y": 683.3332605361938,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "95eae07b.ee605"
-            ]
-        ]
-    },
-    {
-        "id": "fcd23488.435248",
-        "type": "comment",
-        "name": "Remove VNF from service data",
-        "info": "",
-        "comments": "",
-        "x": 441.2713928222656,
-        "y": 641.9049129486084,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "95eae07b.ee605",
-        "type": "set",
-        "name": "move vnf to remove one",
-        "xml": "<set>\n\t<parameter name=\"$tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"$service-data.vnfs.vnf[$idx].\" />\n\t\n",
-        "comments": "",
-        "x": 1232.703758239746,
-        "y": 682.3572120666504,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "51b5c082.75d5f",
-        "type": "switchNode",
-        "name": "switch vnf_length",
-        "xml": "<switch test='`$service-data.vnfs.vnf_length`'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 485.37048721313477,
-        "y": 684.9128894805908,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "7b55138b.dcab3c",
-                "75e73554.80932c"
-            ]
-        ]
-    },
-    {
-        "id": "7b55138b.dcab3c",
-        "type": "outcome",
-        "name": "1",
-        "xml": "<outcome value='1'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 662.3705291748047,
-        "y": 645.5794763565063,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "4cc25dc3.e0aa74"
-            ]
-        ]
-    },
-    {
-        "id": "4cc25dc3.e0aa74",
-        "type": "set",
-        "name": "Remove vnfs",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.\" value=\"\"/>\n\n",
-        "comments": "",
-        "x": 826.0370254516602,
-        "y": 645.5795755386353,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "75e73554.80932c",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 661.0372734069824,
-        "y": 728.9127492904663,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "ac4d3a04.d29a88"
-            ]
-        ]
-    },
-    {
-        "id": "9a214120.4a1eb",
-        "type": "set",
-        "name": "set new vnf length",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value=\"`$service-data.vnfs.vnf_length - 1`\"/>\n\n\t\n",
-        "comments": "",
-        "x": 1018.6667137145996,
-        "y": 773.9128341674805,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "4989e0b1.ae7b3",
-        "type": "set",
-        "name": "Remove the last vnf in the list",
-        "xml": "<set>\n\t<parameter name=\"service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1].\" value=\"\"/>\n\n",
-        "comments": "",
-        "x": 1054.3703689575195,
-        "y": 729.0238552093506,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "ac4d3a04.d29a88",
-        "type": "block",
-        "name": "block : atomic",
-        "xml": "<block atomic=\"true\">",
-        "atomic": "true",
-        "outputs": 1,
-        "x": 829.7037620544434,
-        "y": 729.5793962478638,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "28425fad.bcfa3",
-                "4989e0b1.ae7b3",
-                "9a214120.4a1eb"
-            ]
-        ]
-    },
-    {
-        "id": "9a9f9c4c.fbd22",
-        "type": "switchNode",
-        "name": "switch current vnf-level-oper-status == Created",
-        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'Created'`\">\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 584.3333053588867,
-        "y": 470.6666851043701,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "11283b53.5e5e25"
-            ]
-        ]
-    },
-    {
-        "id": "11283b53.5e5e25",
-        "type": "outcomeFalse",
-        "name": "true",
-        "xml": "<outcome value='true'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 889.0000228881836,
-        "y": 470.33332443237305,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "54f5d0c9.b7a0e"
-            ]
-        ]
-    },
-    {
-        "id": "54f5d0c9.b7a0e",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete a VNF in a Created state\" />\n",
-        "comments": "",
-        "x": 1047.3332977294922,
-        "y": 469.6666488647461,
-        "z": "ff974913.290918",
-        "wires": []
-    },
-    {
-        "id": "f989a9a8.a235a8",
-        "type": "switchNode",
-        "name": "switch current vf-module_length",
-        "xml": "<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`\">\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 534.6666488647461,
-        "y": 556.6666507720947,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "5339c0a3.6e70e",
-                "4bffbedb.077b6",
-                "58060ac1.258e84"
-            ]
-        ]
-    },
-    {
-        "id": "5339c0a3.6e70e",
-        "type": "outcome",
-        "name": "0",
-        "xml": "<outcome value='0'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 763.3332901000977,
-        "y": 513.3332920074463,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "8ae2c8.5df55d38"
-            ]
-        ]
-    },
-    {
-        "id": "4bffbedb.077b6",
-        "type": "outcome",
-        "name": "NULL",
-        "xml": "<outcome value=''>",
-        "comments": "",
-        "outputs": 1,
-        "x": 761.9047012329102,
-        "y": 554.7619495391846,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "8ae2c8.5df55d38"
-            ]
-        ]
-    },
-    {
-        "id": "8ae2c8.5df55d38",
-        "type": "block",
-        "name": "block",
-        "xml": "<block>\n",
-        "atomic": "false",
-        "comments": "",
-        "outputs": 1,
-        "x": 910.4762153625488,
-        "y": 534.7619504928589,
-        "z": "ff974913.290918",
-        "wires": [
-            []
-        ]
-    },
-    {
-        "id": "58060ac1.258e84",
-        "type": "other",
-        "name": "other",
-        "xml": "<outcome value='Other'>\n",
-        "comments": "",
-        "outputs": 1,
-        "x": 761.9047508239746,
-        "y": 596.1905374526978,
-        "z": "ff974913.290918",
-        "wires": [
-            [
-                "90982233.8ef03"
-            ]
-        ]
-    },
-    {
-        "id": "90982233.8ef03",
-        "type": "returnFailure",
-        "name": "return failure",
-        "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the VNF because there are VFs defined\" />\n",
-        "comments": "",
-        "x": 929.0476455688477,
-        "y": 595.7619256973267,
-        "z": "ff974913.290918",
-        "wires": []
-    }
-]
+[{"id":"944f4f91.384e8","type":"dgstart","name":"DGSTART","outputs":1,"x":98.5714340209961,"y":82.41365623474121,"z":"b870dbc1.f01f08","wires":[["5385f04.eb80e1"]]},{"id":"5385f04.eb80e1","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":212.85713958740234,"y":122.65176773071289,"z":"b870dbc1.f01f08","wires":[["790a0d91.15b024"]]},{"id":"790a0d91.15b024","type":"method","name":"method vnf-topology-operation-unassign","xml":"<method rpc='vnf-topology-operation-unassign' mode='sync'>\n","comments":"","outputs":1,"x":195.00006103515625,"y":162.4136562347412,"z":"b870dbc1.f01f08","wires":[["bdca26b2.1447d8"]]},{"id":"49372a3c.517844","type":"comment","name":"vnf-topology-operation-unassign","info":"","comments":"","x":492.9162902832031,"y":30,"z":"b870dbc1.f01f08","wires":[]},{"id":"e61c5038.9ee12","type":"switchNode","name":"switch request-action","xml":"<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n","comments":"","outputs":1,"x":502.0952453613281,"y":261.2707939147949,"z":"b870dbc1.f01f08","wires":[["fc9d5d49.169d","d6db7880.d1ef08"]]},{"id":"fc9d5d49.169d","type":"outcome","name":"DeleteVnfInstance","xml":"<outcome value='DeleteVnfInstance'>\n","comments":"","outputs":1,"x":755.8095397949219,"y":238.41367530822754,"z":"b870dbc1.f01f08","wires":[["31791927.887fa6"]]},{"id":"d6db7880.d1ef08","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":717.8095054626465,"y":284.12800312042236,"z":"b870dbc1.f01f08","wires":[["b87470b4.e1841"]]},{"id":"31791927.887fa6","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":940.6666679382324,"y":238.41370487213135,"z":"b870dbc1.f01f08","wires":[[]]},{"id":"b87470b4.e1841","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'\" />\n","comments":"","x":957.809513092041,"y":284.12796115875244,"z":"b870dbc1.f01f08","wires":[]},{"id":"bdca26b2.1447d8","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":176.90476989746094,"y":555.7469902038574,"z":"b870dbc1.f01f08","wires":[["e61c5038.9ee12","bc0ea399.b5175","3fe9d895.d6c6d8","f8af2a3b.dfaaf8","9ec4a40.4c9046","e134089.fe067f8","407d562c.ffe458","83bb488f.f3aa38","c21ea09c.f64bc"]]},{"id":"bc0ea399.b5175","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":488.57141876220703,"y":330.74701976776123,"z":"b870dbc1.f01f08","wires":[["7206f725.eb2e88"]]},{"id":"7206f725.eb2e88","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":675.2380981445312,"y":330.0803174972534,"z":"b870dbc1.f01f08","wires":[["3f73d92a.b2f766"]]},{"id":"3f73d92a.b2f766","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"There are no VNFs in MD-SAL\" />\n","comments":"","x":856.9047241210938,"y":330.0803174972534,"z":"b870dbc1.f01f08","wires":[]},{"id":"e134089.fe067f8","type":"for","name":"for each vnf","xml":"<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":470.23809814453125,"y":379.08033752441406,"z":"b870dbc1.f01f08","wires":[["6e9fe2bf.dec39c"]]},{"id":"6e9fe2bf.dec39c","type":"switchNode","name":"switch this vnf-id == input vnf-id","xml":"<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\n","comments":"","outputs":1,"x":725.2381858825684,"y":377.7470054626465,"z":"b870dbc1.f01f08","wires":[["1f6e3682.240c19"]]},{"id":"1f6e3682.240c19","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":963.5714721679688,"y":376.7469835281372,"z":"b870dbc1.f01f08","wires":[["4f964f4a.a0762"]]},{"id":"4f964f4a.a0762","type":"set","name":"set vnf-index","xml":"<set>\n<parameter name='vnf-index' value='`$idx`' />\n","comments":"","x":1131.9046669006348,"y":376.7470054626465,"z":"b870dbc1.f01f08","wires":[]},{"id":"407d562c.ffe458","type":"switchNode","name":"switch vnf-index","xml":"<switch test='`$vnf-index`'>\n","comments":"","outputs":1,"x":481.9047622680664,"y":425.7470073699951,"z":"b870dbc1.f01f08","wires":[["4ebb6352.1f906c"]]},{"id":"4ebb6352.1f906c","type":"other","name":"NULL","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":663.5713806152344,"y":425.08033752441406,"z":"b870dbc1.f01f08","wires":[["39b1b294.07bc9e"]]},{"id":"39b1b294.07bc9e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"404\" />\n    <parameter name=\"error-message\" value=\"'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'\" />\n","comments":"","x":830.2380676269531,"y":424.74696350097656,"z":"b870dbc1.f01f08","wires":[]},{"id":"3fe9d895.d6c6d8","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":467.12711334228516,"y":1187.4133186340332,"z":"b870dbc1.f01f08","wires":[]},{"id":"1de366e5.21c939","type":"for","name":"for each vnf","xml":"<for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\n","comments":"","outputs":1,"x":990.4618606567383,"y":832.9690895080566,"z":"b870dbc1.f01f08","wires":[["61ee4251.957cdc"]]},{"id":"74a7fc40.220eb4","type":"comment","name":"Remove VNF from service data","info":"","comments":"","x":432.6206283569336,"y":791.5407419204712,"z":"b870dbc1.f01f08","wires":[]},{"id":"61ee4251.957cdc","type":"set","name":"move vnf to remove one","xml":"<set>\n\t<parameter name=\"$tmpidx\" value=\"`$idx - 1`\"/>\n\t<parameter name=\"service-data.vnfs.vnf[$tmpidx].\" value=\"$service-data.vnfs.vnf[$idx].\" />\n\t\n","comments":"","x":1224.052993774414,"y":831.9930410385132,"z":"b870dbc1.f01f08","wires":[]},{"id":"9ec4a40.4c9046","type":"switchNode","name":"switch vnf_length","xml":"<switch test='`$service-data.vnfs.vnf_length`'>\n","comments":"","outputs":1,"x":476.71972274780273,"y":834.5487184524536,"z":"b870dbc1.f01f08","wires":[["fca60f91.c7a1e","a197ccd2.c3d8e"]]},{"id":"fca60f91.c7a1e","type":"outcome","name":"1","xml":"<outcome value='1'>\n","comments":"","outputs":1,"x":653.7197647094727,"y":795.2153053283691,"z":"b870dbc1.f01f08","wires":[["3854ad6d.628382"]]},{"id":"3854ad6d.628382","type":"set","name":"Remove vnfs","xml":"<set>\n\t<parameter name=\"service-data.vnfs.\" value=\"\"/>\n\n","comments":"","x":817.3862609863281,"y":795.215404510498,"z":"b870dbc1.f01f08","wires":[]},{"id":"a197ccd2.c3d8e","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":652.3865089416504,"y":878.5485782623291,"z":"b870dbc1.f01f08","wires":[["de8a693b.880468"]]},{"id":"e56b088f.c69118","type":"set","name":"set new vnf length","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf_length\" value=\"`$service-data.vnfs.vnf_length - 1`\"/>\n\n\t\n","comments":"","x":1010.0159492492676,"y":923.5486631393433,"z":"b870dbc1.f01f08","wires":[]},{"id":"21ac3bbb.ed36d4","type":"set","name":"Remove the last vnf in the list","xml":"<set>\n\t<parameter name=\"service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1].\" value=\"\"/>\n\n","comments":"","x":1045.7196044921875,"y":878.6596841812134,"z":"b870dbc1.f01f08","wires":[]},{"id":"de8a693b.880468","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":821.0529975891113,"y":879.2152252197266,"z":"b870dbc1.f01f08","wires":[["1de366e5.21c939","21ac3bbb.ed36d4","e56b088f.c69118"]]},{"id":"7c3d420a.94a7ec","type":"switchNode","name":"switch current vnf-level-oper-status == Created","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'Created'`\">\n","comments":"","outputs":1,"x":581.2380752563477,"y":471.4136772155762,"z":"b870dbc1.f01f08","wires":[["f39054b3.2d9ee8"]]},{"id":"f39054b3.2d9ee8","type":"outcomeFalse","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":885.9047927856445,"y":471.0803165435791,"z":"b870dbc1.f01f08","wires":[["cb7c915.bf38c7"]]},{"id":"cb7c915.bf38c7","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete a VNF in a Created state\" />\n","comments":"","x":1044.2380676269531,"y":470.41364097595215,"z":"b870dbc1.f01f08","wires":[]},{"id":"f8af2a3b.dfaaf8","type":"switchNode","name":"switch current vf-module_length","xml":"<switch test=\"`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`\">\n","comments":"","outputs":1,"x":531.571418762207,"y":557.4136428833008,"z":"b870dbc1.f01f08","wires":[["570efcb.c4d6904","8123ceeb.3d5e2","b858ddb6.e005b"]]},{"id":"570efcb.c4d6904","type":"outcome","name":"0","xml":"<outcome value='0'>\n","comments":"","outputs":1,"x":760.2380599975586,"y":514.0802841186523,"z":"b870dbc1.f01f08","wires":[["1b6ab0b1.e42baf"]]},{"id":"8123ceeb.3d5e2","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":758.8094711303711,"y":555.5089416503906,"z":"b870dbc1.f01f08","wires":[["1b6ab0b1.e42baf"]]},{"id":"1b6ab0b1.e42baf","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":907.3809852600098,"y":535.5089426040649,"z":"b870dbc1.f01f08","wires":[[]]},{"id":"b858ddb6.e005b","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":758.8095207214355,"y":596.9375295639038,"z":"b870dbc1.f01f08","wires":[["c6a13249.b2d5f"]]},{"id":"c6a13249.b2d5f","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Cannot delete the VNF because there are VFs defined\" />\n","comments":"","x":925.9524154663086,"y":596.5089178085327,"z":"b870dbc1.f01f08","wires":[]},{"id":"64d5b254.bed35c","type":"call","name":"call GENERIC-RESOURCE-API:naming-policy-generate-name","xml":"<call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\n","comments":"","outputs":1,"x":1322.4126358032227,"y":1086.9047145843506,"z":"b870dbc1.f01f08","wires":[[]]},{"id":"4f0c0b06.065bd4","type":"set","name":"set variables for deleting name","xml":"<set>\n<parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\n<parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\n<parameter name='naming-policy-generate-name-input.action' value='DELETE' />\n","comments":"","x":1223.8412551879883,"y":1039.7617855072021,"z":"b870dbc1.f01f08","wires":[]},{"id":"83bb488f.f3aa38","type":"switchNode","name":"switch: sdnc-generated-cloud-resources","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\n","comments":"","outputs":1,"x":556.4286117553711,"y":675.1587429046631,"z":"b870dbc1.f01f08","wires":[["3ad6c6a.f1af83a"]]},{"id":"3ad6c6a.f1af83a","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":807.1786575317383,"y":675.1587448120117,"z":"b870dbc1.f01f08","wires":[["9f0d731c.fb8ff"]]},{"id":"a0ad75de.430768","type":"call","name":"call self-serve-vnf-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1211.9286041259766,"y":674.9087448120117,"z":"b870dbc1.f01f08","wires":[["7fe38fcd.9d338"]]},{"id":"7fe38fcd.9d338","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1419.6785888671875,"y":675.1587333679199,"z":"b870dbc1.f01f08","wires":[["9b0d248d.110118"]]},{"id":"9b0d248d.110118","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n<parameter name='error-code' value='500' />\n<parameter name='error-message' value=\"`'Encountered error while unassigning self-serve resources with error: '+ $error-message`\" />\n","comments":"","x":1585.250015258789,"y":674.801628112793,"z":"b870dbc1.f01f08","wires":[]},{"id":"9f0d731c.fb8ff","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":980.928581237793,"y":675.1587352752686,"z":"b870dbc1.f01f08","wires":[["a0ad75de.430768"]]},{"id":"c21ea09c.f64bc","type":"switchNode","name":"switch: sdnc-generated-cloud-resources","xml":"<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\n","comments":"","outputs":1,"x":546.9047775268555,"y":1039.444423675537,"z":"b870dbc1.f01f08","wires":[["460f3dc9.fdcbe4","60026b43.620bc4"]]},{"id":"460f3dc9.fdcbe4","type":"outcomeTrue","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":797.6548233032227,"y":1039.4444255828857,"z":"b870dbc1.f01f08","wires":[["16c7430.7fa30bd"]]},{"id":"60026b43.620bc4","type":"outcome","name":"NULL","xml":"<outcome value=''>","comments":"","outputs":1,"x":798.0158615112305,"y":1082.7777976989746,"z":"b870dbc1.f01f08","wires":[["16c7430.7fa30bd"]]},{"id":"16c7430.7fa30bd","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":965.793571472168,"y":1039.444423675537,"z":"b870dbc1.f01f08","wires":[["4f0c0b06.065bd4","64d5b254.bed35c"]]},{"id":"cb1bb44d.7af418","type":"comment","name":"check removed with US622450","info":"","comments":"","x":1251.4284439086914,"y":470.00002670288086,"z":"b870dbc1.f01f08","wires":[]}]
\ No newline at end of file
index dcdfbec..503525d 100644 (file)
@@ -1,679 +1 @@
-[
-  {
-    "id": "1b5f4355.88b3ed",
-    "type": "dgstart",
-    "name": "DGSTART",
-    "outputs": 1,
-    "x": 136,
-    "y": 81.41365623474121,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "92410749.e30c28"
-      ]
-    ]
-  },
-  {
-    "id": "92410749.e30c28",
-    "type": "service-logic",
-    "name": "GENERIC-RESOURCE-API ${project.version}",
-    "module": "GENERIC-RESOURCE-API",
-    "version": "${project.version}",
-    "comments": "",
-    "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
-    "outputs": 1,
-    "x": 211.28570556640625,
-    "y": 121.65176773071289,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "de7a7cf0.2991d"
-      ]
-    ]
-  },
-  {
-    "id": "de7a7cf0.2991d",
-    "type": "method",
-    "name": "method vnf-topology-operation",
-    "xml": "<method rpc='vnf-topology-operation' mode='sync'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 204.42862701416016,
-    "y": 161.4136505126953,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "867be286.94ccc"
-      ]
-    ]
-  },
-  {
-    "id": "281a9dd6.337dd2",
-    "type": "comment",
-    "name": "vnf-topology-operation",
-    "info": "",
-    "comments": "",
-    "x": 530.344856262207,
-    "y": 29,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "867be286.94ccc",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 220.16676330566406,
-    "y": 348.10718727111816,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "fe43f540.d09078",
-        "15193abc.c22c05",
-        "fc3ae627.2d5b18"
-      ]
-    ]
-  },
-  {
-    "id": "fe43f540.d09078",
-    "type": "returnSuccess",
-    "name": "return success",
-    "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
-    "comments": "",
-    "x": 512.6667175292969,
-    "y": 498.27122020721436,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "15193abc.c22c05",
-    "type": "switchNode",
-    "name": "switch svc-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 515.5714340209961,
-    "y": 346.31843090057373,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "a43184a6.086e28",
-        "7b06cbd3.e89e84",
-        "dae5d288.e7a92",
-        "7acf72d2.60660c",
-        "2e7ef9bc.356346",
-        "d945d7c6.11f878",
-        "bd3763ee.b90e6"
-      ]
-    ]
-  },
-  {
-    "id": "a43184a6.086e28",
-    "type": "outcome",
-    "name": "assign",
-    "xml": "<outcome value='assign'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 927.3809661865234,
-    "y": 56.937567710876465,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "19bbb0d.1420e4f"
-      ]
-    ]
-  },
-  {
-    "id": "7b06cbd3.e89e84",
-    "type": "outcome",
-    "name": "unassign",
-    "xml": "<outcome value='unassign'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 943.4286308288574,
-    "y": 487.12828254699707,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "c0267b56.9f8598"
-      ]
-    ]
-  },
-  {
-    "id": "7acf72d2.60660c",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 932.1428680419922,
-    "y": 867.3183660507202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "7fb1d50a.a61dfc"
-      ]
-    ]
-  },
-  {
-    "id": "7fb1d50a.a61dfc",
-    "type": "returnFailure",
-    "name": "return failure",
-    "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n",
-    "comments": "",
-    "x": 1165.3332977294922,
-    "y": 867.3184270858765,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      
-    ]
-  },
-  {
-    "id": "fc3ae627.2d5b18",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:validate-vnf-input",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 621.4166870117188,
-    "y": 237.79471588134766,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "19bbb0d.1420e4f",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-assign",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1269.5238189697266,
-    "y": 56.50902843475342,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "989adce1.617b6",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-deactivate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1750.8571319580078,
-    "y": 399.84235858917236,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "c0267b56.9f8598",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-unassign",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1288.5237274169922,
-    "y": 486.8424139022827,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "dae5d288.e7a92",
-    "type": "outcome",
-    "name": "deactivate",
-    "xml": "<outcome value='deactivate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 950.5237579345703,
-    "y": 342.5090456008911,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "d35c6654.dff7f8"
-      ]
-    ]
-  },
-  {
-    "id": "b233aed1.7cc8b",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:vnf-topology-operation-activate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1692.6665802001953,
-    "y": 221.41364765167236,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "2e7ef9bc.356346",
-    "type": "outcome",
-    "name": "activate",
-    "xml": "<outcome value='activate'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 930.3333053588867,
-    "y": 148.08033561706543,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "b8b2367a.dc9308"
-      ]
-    ]
-  },
-  {
-    "id": "d945d7c6.11f878",
-    "type": "outcome",
-    "name": "create",
-    "xml": "<outcome value='create'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 945.0001182556152,
-    "y": 587.5000038146973,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "11cfb10a.0c9b2f"
-      ]
-    ]
-  },
-  {
-    "id": "bd3763ee.b90e6",
-    "type": "outcome",
-    "name": "delete",
-    "xml": "<outcome value='delete'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 943.0001068115234,
-    "y": 730.5000066757202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "b6227308.758fb"
-      ]
-    ]
-  },
-  {
-    "id": "3b079f6f.6575e",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1172.0000762939453,
-    "y": 198.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "91e1f35b.e83e1",
-        "9ab20bbe.72bfe8"
-      ]
-    ]
-  },
-  {
-    "id": "9ab20bbe.72bfe8",
-    "type": "outcome",
-    "name": "ActivateSiteInstance",
-    "xml": "<outcome value='ActivateSiteInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1385.4762725830078,
-    "y": 129.979229927063,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "cc08e8cd.1386a8"
-      ]
-    ]
-  },
-  {
-    "id": "91e1f35b.e83e1",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1354.381004333496,
-    "y": 221.3572244644165,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "b233aed1.7cc8b"
-      ]
-    ]
-  },
-  {
-    "id": "b8b2367a.dc9308",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1111.0000762939453,
-    "y": 143.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "3b079f6f.6575e"
-      ]
-    ]
-  },
-  {
-    "id": "cc08e8cd.1386a8",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-vnf-topology-operation-activate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-activate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1759.0000762939453,
-    "y": 128.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "c5b71763.802b68",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1213.0000762939453,
-    "y": 375.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "68410e70.ad006",
-        "bb394983.2aedd8"
-      ]
-    ]
-  },
-  {
-    "id": "bb394983.2aedd8",
-    "type": "outcome",
-    "name": "DeActivateSiteInstance",
-    "xml": "<outcome value='DeActivateSiteInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1426.4762725830078,
-    "y": 306.979229927063,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "91176b7.7e10a98"
-      ]
-    ]
-  },
-  {
-    "id": "68410e70.ad006",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1395.381004333496,
-    "y": 398.3572244644165,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "989adce1.617b6"
-      ]
-    ]
-  },
-  {
-    "id": "d35c6654.dff7f8",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1152.0000762939453,
-    "y": 320.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "c5b71763.802b68"
-      ]
-    ]
-  },
-  {
-    "id": "91176b7.7e10a98",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-vnf-topology-operation-deactivate",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-deactivate' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1796.0000762939453,
-    "y": 304.5000123977661,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "2493a0e1.8557e",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1188.3336029052734,
-    "y": 640.086371421814,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "83563263.c6fd7",
-        "db1508ed.23aba8"
-      ]
-    ]
-  },
-  {
-    "id": "db1508ed.23aba8",
-    "type": "outcome",
-    "name": "CreateSiteInstance",
-    "xml": "<outcome value='CreateSiteInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1401.809799194336,
-    "y": 571.5655889511108,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "614f2a06.d13b14"
-      ]
-    ]
-  },
-  {
-    "id": "83563263.c6fd7",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1370.7145309448242,
-    "y": 662.9435834884644,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "b50447b1.828c48"
-      ]
-    ]
-  },
-  {
-    "id": "11cfb10a.0c9b2f",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1127.3336029052734,
-    "y": 585.086371421814,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "2493a0e1.8557e"
-      ]
-    ]
-  },
-  {
-    "id": "614f2a06.d13b14",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-vnf-topology-operation-create",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-create' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1775.3336029052734,
-    "y": 570.086371421814,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "b50447b1.828c48",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 1511.0001068115234,
-    "y": 664.0000066757202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "ae568733.43d4f8",
-    "type": "switchNode",
-    "name": "switch request-action",
-    "xml": "<switch test='`$vnf-topology-operation-input.request-information.request-action`'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1189.0001068115234,
-    "y": 783.0000066757202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "7dcf461f.f62e18",
-        "3e92266c.ac902a"
-      ]
-    ]
-  },
-  {
-    "id": "3e92266c.ac902a",
-    "type": "outcome",
-    "name": "DeleteSiteInstance",
-    "xml": "<outcome value='DeleteSiteInstance'>",
-    "comments": "",
-    "outputs": 1,
-    "x": 1402.476303100586,
-    "y": 714.4792242050171,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "bb58fef3.31757"
-      ]
-    ]
-  },
-  {
-    "id": "7dcf461f.f62e18",
-    "type": "other",
-    "name": "other",
-    "xml": "<outcome value='Other'>\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1371.3810348510742,
-    "y": 805.8572187423706,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "efc8c613.2b0088"
-      ]
-    ]
-  },
-  {
-    "id": "b6227308.758fb",
-    "type": "block",
-    "name": "block : atomic",
-    "xml": "<block atomic=\"true\">",
-    "atomic": "true",
-    "outputs": 1,
-    "x": 1128.0001068115234,
-    "y": 728.0000066757202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        "ae568733.43d4f8"
-      ]
-    ]
-  },
-  {
-    "id": "bb58fef3.31757",
-    "type": "call",
-    "name": "call GENERIC-RESOURCE-API:sotn-vnf-topology-operation-delete",
-    "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-delete' mode='sync' >\n",
-    "comments": "",
-    "outputs": 1,
-    "x": 1776.0001068115234,
-    "y": 713.0000066757202,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  },
-  {
-    "id": "efc8c613.2b0088",
-    "type": "block",
-    "name": "block",
-    "xml": "<block>\n",
-    "atomic": "false",
-    "comments": "",
-    "outputs": 1,
-    "x": 1511.6666107177734,
-    "y": 806.9136419296265,
-    "z": "c9c2af7b.65cd3",
-    "wires": [
-      [
-        
-      ]
-    ]
-  }
-]
+[{"id":"6ec6172c.2bcbd8","type":"dgstart","name":"DGSTART","outputs":1,"x":132.85714721679688,"y":85.71428680419922,"z":"fb3a2b3.b3cc7d8","wires":[["bfc710c7.92834"]]},{"id":"bfc710c7.92834","type":"service-logic","name":"GENERIC-RESOURCE-API ${project.version}","module":"GENERIC-RESOURCE-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>","outputs":1,"x":247.14285278320312,"y":125.9523983001709,"z":"fb3a2b3.b3cc7d8","wires":[["4209672b.254cc8"]]},{"id":"4209672b.254cc8","type":"method","name":"method vnf-topology-operation","xml":"<method rpc='vnf-topology-operation' mode='sync'>\n","comments":"","outputs":1,"x":199.28577423095703,"y":165.71428108215332,"z":"fb3a2b3.b3cc7d8","wires":[["d712fd97.5e8a2"]]},{"id":"682ae133.218ae","type":"comment","name":"vnf-topology-operation","info":"","comments":"","x":527.2020034790039,"y":33.30063056945801,"z":"fb3a2b3.b3cc7d8","wires":[]},{"id":"d712fd97.5e8a2","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":215.45242309570312,"y":371.9792375564575,"z":"fb3a2b3.b3cc7d8","wires":[["a487fe62.3eadf","a54dd4d9.4cd188","d8c5f774.e0b058"]]},{"id":"a487fe62.3eadf","type":"returnSuccess","name":"return success","xml":"<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n","comments":"","x":500.8095245361328,"y":526.4289283752441,"z":"fb3a2b3.b3cc7d8","wires":[]},{"id":"a54dd4d9.4cd188","type":"switchNode","name":"switch svc-action","xml":"<switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\n","comments":"","outputs":1,"x":510.85709381103516,"y":370.1904811859131,"z":"fb3a2b3.b3cc7d8","wires":[["3e63698e.bd48b6","28819d17.6e1742","73ed8794.2b9c38","c822cbe5.979408","bed20936.060648","81c3ff0e.10641"]]},{"id":"3e63698e.bd48b6","type":"outcome","name":"assign","xml":"<outcome value='assign'>\n","comments":"","outputs":1,"x":708.238037109375,"y":264.23818588256836,"z":"fb3a2b3.b3cc7d8","wires":[["cf31f583.5aa0b8"]]},{"id":"28819d17.6e1742","type":"outcome","name":"unassign","xml":"<outcome value='unassign'>\n","comments":"","outputs":1,"x":712.2856597900391,"y":394.4289093017578,"z":"fb3a2b3.b3cc7d8","wires":[["3e478ce0.78e214"]]},{"id":"c822cbe5.979408","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":705.5712947845459,"y":480.0475597381592,"z":"fb3a2b3.b3cc7d8","wires":[["ca11a8cd.7cc228"]]},{"id":"ca11a8cd.7cc228","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`\" />\n","comments":"","x":891.761739730835,"y":480.0476245880127,"z":"fb3a2b3.b3cc7d8","wires":[]},{"id":"d8c5f774.e0b058","type":"call","name":"call GENERIC-RESOURCE-API:validate-vnf-input","xml":"<call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' >\n","comments":"","outputs":1,"x":615.2737808227539,"y":223.0953254699707,"z":"fb3a2b3.b3cc7d8","wires":[[]]},{"id":"cf31f583.5aa0b8","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-assign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' >\n","comments":"","outputs":1,"x":1050.3808898925781,"y":263.8096466064453,"z":"fb3a2b3.b3cc7d8","wires":[[]]},{"id":"7ee102ee.2772cc","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-deactivate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' >\n","comments":"","outputs":1,"x":1061.7141571044922,"y":348.14299488067627,"z":"fb3a2b3.b3cc7d8","wires":[[]]},{"id":"3e478ce0.78e214","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-unassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' >\n","comments":"","outputs":1,"x":1057.3807563781738,"y":394.14304065704346,"z":"fb3a2b3.b3cc7d8","wires":[[]]},{"id":"73ed8794.2b9c38","type":"outcome","name":"deactivate","xml":"<outcome value='deactivate'>\n","comments":"","outputs":1,"x":717.3807983398438,"y":348.8096704483032,"z":"fb3a2b3.b3cc7d8","wires":[["7ee102ee.2772cc"]]},{"id":"b07bf339.3f796","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-activate","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' >\n","comments":"","outputs":1,"x":1054.5237350463867,"y":305.71427822113037,"z":"fb3a2b3.b3cc7d8","wires":[[]]},{"id":"bed20936.060648","type":"outcome","name":"activate","xml":"<outcome value='activate'>\n","comments":"","outputs":1,"x":711.1903762817383,"y":306.3809537887573,"z":"fb3a2b3.b3cc7d8","wires":[["b07bf339.3f796"]]},{"id":"81c3ff0e.10641","type":"outcome","name":"changeassign","xml":"<outcome value='changeassign'>\n","comments":"","outputs":1,"x":727.1428871154785,"y":437.1428413391113,"z":"fb3a2b3.b3cc7d8","wires":[["2ca55154.1a129e"]]},{"id":"2ca55154.1a129e","type":"call","name":"call GENERIC-RESOURCE-API:vnf-topology-operation-changeassign","xml":"<call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-changeassign' mode='sync' >\n","comments":"","outputs":1,"x":1067.9522552490234,"y":436.8570079803467,"z":"fb3a2b3.b3cc7d8","wires":[[]]}]
\ No newline at end of file
index f1c532d..19348f8 100644 (file)
@@ -1 +1,805 @@
-[{"id":"1d697de8.1c8bd2","type":"dgstart","name":"DGSTART","outputs":1,"x":92.85714721679688,"y":84.33332824707031,"z":"fe1687cb.6748b8","wires":[["738f4ec8.3ebfb"]]},{"id":"738f4ec8.3ebfb","type":"service-logic","name":"SUBNET-API ${project.version}","module":"SUBNET-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>","outputs":1,"x":406.6905059814453,"y":85.33332824707031,"z":"fe1687cb.6748b8","wires":[["b53de678.5aad68"]]},{"id":"634eb01d.99ae1","type":"execute","name":"execute EIPAM activatesubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n\n","outputs":1,"x":650.5477447509766,"y":323.7619323730469,"z":"fe1687cb.6748b8","wires":[["c72da6f0.5e41e8","74dfc0f7.c1b15"]]},{"id":"c72da6f0.5e41e8","type":"success","name":"outcome: success","xml":"<outcome value=\"success\">","comments":"","outputs":1,"x":928.0714569091797,"y":201.4285888671875,"z":"fe1687cb.6748b8","wires":[["bcd2c580.735ef8"]]},{"id":"74dfc0f7.c1b15","type":"other","name":"outcome Other ","xml":"<outcome value=\"Other\"> \n\n","outputs":1,"x":912.1667938232422,"y":452.8094787597656,"z":"fe1687cb.6748b8","wires":[["e9a87b58.c5a9f8"]]},{"id":"a713f47b.c8cca8","type":"returnFailure","name":"return failure","xml":" <return status=\"failure\">\n               <parameter name=\"error-code\" value=\"3000\" />\n              <parameter name=\"error-message\" value=\"ActivateSubnet failure, need to manually activate in EIPAM\" />\n","comments":"","x":1420.2615509033203,"y":609.6665649414062,"z":"fe1687cb.6748b8","wires":[]},{"id":"7ad0948d.fae1dc","type":"save","name":"save: EIPAM IP Subnets Active","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"ACTIVE\" />\n       \n","outputs":1,"x":1470.7381744384766,"y":52.42860412597656,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"69ddb424.aac11c","type":"comment","name":"MANAGED-NETWORK-NOTIFICATION","info":"","x":472.55714416503906,"y":20,"z":"fe1687cb.6748b8","wires":[]},{"id":"b53de678.5aad68","type":"method","name":"managed-network-notification","xml":"<method rpc='managed-network-notification' mode='sync'>\n","outputs":1,"x":772.5571899414062,"y":84.19999694824219,"z":"fe1687cb.6748b8","wires":[["aae4bb44.e823e8"]]},{"id":"aae4bb44.e823e8","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":151.55712890625,"y":149.1999969482422,"z":"fe1687cb.6748b8","wires":[["87f499a7.89d588","63a281f0.52912"]]},{"id":"87f499a7.89d588","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"managed-network-notification\"/>\n<parameter name=\"field3\" value=\"`$managed-network-notification-input.request-id`\"/>\n<parameter name=\"field4\" value=\"`$managed-network-notification-input.managed-network-status.status.code`\"/>\n<parameter name=\"field5\" value=\"`$managed-network-notification-input.managed-network-status.status.description`\"/>\n<parameter name=\"field6\" value=\"`$managed-network-notification-input.managed-network-status.final-notification-indicator`\"/>\n\n","comments":"","outputs":1,"x":352.1286163330078,"y":150.0614776611328,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"5eb284fa.4e019c","type":"returnSuccess","name":"return success","xml":" <return status=\"success\">\n \n","x":1427.0713806152344,"y":293.7618827819824,"z":"fe1687cb.6748b8","wires":[]},{"id":"22f650d9.d8db3","type":"set","name":"set: status = Active","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ACTIVE\" />","x":1432.3717193603516,"y":101.79519653320312,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"21eddabf.11f436","type":"save","name":"save: status = Active","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ACTIVE\" />","outputs":1,"x":1440.0382232666016,"y":150.1285400390625,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"bcd2c580.735ef8","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1129.4046783447266,"y":201.09521484375,"z":"fe1687cb.6748b8","wires":[["7ad0948d.fae1dc","22f650d9.d8db3","21eddabf.11f436","5eb284fa.4e019c","cb0701c6.2633d","7b60262a.6e15b8"]]},{"id":"e9a87b58.c5a9f8","type":"block","name":"block","xml":"<block>","atomic":"true","comments":"","outputs":1,"x":1127.1666412353516,"y":452.8095397949219,"z":"fe1687cb.6748b8","wires":[["a713f47b.c8cca8","9989a7a9.198118","704cf48a.cb80ac","30ca370b.971358","4be470e7.693da","d998050.b2340f8"]]},{"id":"63a281f0.52912","type":"switchNode","name":"switch: status Successful","xml":"<switch test=\"`$managed-network-notification-input.managed-network-status.status.code`\">\n\n","outputs":1,"x":149.55712890625,"y":269.2000274658203,"z":"fe1687cb.6748b8","wires":[["b9ae7f80.7ea4c","e0cc590d.ec4548"]]},{"id":"b9ae7f80.7ea4c","type":"success","name":"outcome: Success","xml":"<outcome value=\"Success\">","outputs":1,"x":410.55711364746094,"y":269.20001220703125,"z":"fe1687cb.6748b8","wires":[["634eb01d.99ae1"]]},{"id":"e0cc590d.ec4548","type":"other","name":"outcome: Other","xml":"<outcome value=\"Other\">","outputs":1,"x":327.5570983886719,"y":472.1999969482422,"z":"fe1687cb.6748b8","wires":[["2aa26002.ad155"]]},{"id":"2aa26002.ad155","type":"execute","name":"execute EIPAM deallocateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateSubnet\">\n\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":315.0419616699219,"y":697.8561706542969,"z":"fe1687cb.6748b8","wires":[["5d00b0bf.3d073","fa532c4.fd22ed"]]},{"id":"5fe6bc2a.78ee84","type":"save","name":"save: EIPAM IP Subnets DEALLOCATED","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"DEALLOCATED\" />\n       \n","comments":"","outputs":1,"x":1741.9998321533203,"y":865.7842407226562,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"5ee29eaa.01846","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1708.1887969970703,"y":914.9341735839844,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"60bc6aba.ddb804","type":"save","name":"save: status = ERROR","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","outputs":1,"x":1710.1889190673828,"y":962.7120971679688,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"2d6b5fe.839f2a","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1474.7672271728516,"y":865.9460144042969,"z":"fe1687cb.6748b8","wires":[["5fe6bc2a.78ee84","5ee29eaa.01846","60bc6aba.ddb804","743bfc5f.f7aad4","5a06f6a5.be2ce8","b4e34055.70014"]]},{"id":"743bfc5f.f7aad4","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\" />\n","comments":"","x":1684.7671661376953,"y":1104.5015563964844,"z":"fe1687cb.6748b8","wires":[]},{"id":"9989a7a9.198118","type":"save","name":"save: EIPAM IP Subnets ERROR","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"ERROR\" />\n       \n","outputs":1,"x":1484.5823516845703,"y":373.6729736328125,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"704cf48a.cb80ac","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1444.8826446533203,"y":421.48956298828125,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"30ca370b.971358","type":"save","name":"save: status = ERROR","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","outputs":1,"x":1449.8827056884766,"y":470.48956298828125,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"5d00b0bf.3d073","type":"success","name":"outcome: success","xml":"<outcome value=\"success\">","comments":"","outputs":1,"x":628.9261627197266,"y":703.2610778808594,"z":"fe1687cb.6748b8","wires":[["585b522e.fbe72c"]]},{"id":"5a06f6a5.be2ce8","type":"save","name":"Update AAI: SDN_C_BACKOUT_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" \n\t\tkey=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t","comments":"","outputs":1,"x":1811.8571319580078,"y":1059.8334655761719,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"4be470e7.693da","type":"save","name":"Update AAI: EIPAM_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" \n\t\tkey=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"EIPAM_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t","comments":"","outputs":1,"x":1508.0238189697266,"y":561.0832214355469,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"cb0701c6.2633d","type":"save","name":"Update AAI: SDNC_COMPLETED","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" key=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"SDNC_COMPLETED\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n","comments":"","outputs":1,"x":1483.0237731933594,"y":247.5000114440918,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"b4e34055.70014","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\"/>","comments":"","outputs":1,"x":1778.8571319580078,"y":1010.0834655761719,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"d998050.b2340f8","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"ActivateSubnet failure, need to manually activate in EIPAM.\"/>","comments":"","outputs":1,"x":1511.8572540283203,"y":515.5832824707031,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"7b60262a.6e15b8","type":"execute","name":"execute: set aai-summary-status-message with timestamp","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"SUCCESS: eipam-ip-block.status is ACTIVE.\"/>","comments":"","outputs":1,"x":1555.8572540283203,"y":199.08334350585938,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"fa532c4.fd22ed","type":"other","name":"outcome Other ","xml":"<outcome value=\"Other\"> \n\n","outputs":1,"x":602.5057067871094,"y":1134.633544921875,"z":"fe1687cb.6748b8","wires":[["c5dee3e7.cdd41"]]},{"id":"585b522e.fbe72c","type":"execute","name":"execute EIPAM deletePool","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePool\">\n\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":913.5058288574219,"y":712.6335601806641,"z":"fe1687cb.6748b8","wires":[["d384c427.925d78","6f76ee0b.cd146"]]},{"id":"98bded5a.99026","type":"returnFailure","name":"return failure","xml":" <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"2000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deleted pool/subnet in EIPAM\"/>\n \n","comments":"","x":1524.7760772705078,"y":806.6335754394531,"z":"fe1687cb.6748b8","wires":[]},{"id":"85368279.ecf69","type":"set","name":"set: status = Deleted","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"DELETED\" />","comments":"","x":1549.8167266845703,"y":667.0675354003906,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"d384c427.925d78","type":"success","name":"outcome: success","xml":"<outcome value=\"success\">","comments":"","outputs":1,"x":1165.367446899414,"y":714.0281066894531,"z":"fe1687cb.6748b8","wires":[["5e92b424.f60bec"]]},{"id":"5e92b424.f60bec","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1362.9116973876953,"y":714.9361267089844,"z":"fe1687cb.6748b8","wires":[["85368279.ecf69","98bded5a.99026","a6e3d85b.a8fe78","165124ec.ec08eb"]]},{"id":"a6e3d85b.a8fe78","type":"save","name":"Update AAI: SDN_C_BACKOUT_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" key=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n","comments":"","outputs":1,"x":1651.2985382080078,"y":761.8501892089844,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"165124ec.ec08eb","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deleted pool/subnet in EIPAM.\"/>","comments":"","outputs":1,"x":1619.2985382080078,"y":714.3502807617188,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"6f76ee0b.cd146","type":"other","name":"outcome Other ","xml":"<outcome value=\"Other\"> \n\n","outputs":1,"x":1155.0883483886719,"y":868.6335601806641,"z":"fe1687cb.6748b8","wires":[["2d6b5fe.839f2a"]]},{"id":"221af66d.6cc54a","type":"save","name":"save: EIPAM IP Subnets ERROR","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"ERROR\" />\n       \n","outputs":1,"x":1111.7639770507812,"y":1135.8977355957031,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"66787785.d87018","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1077.9529418945312,"y":1185.0476684570312,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"f85cd896.2992c8","type":"save","name":"save: status = ERROR","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","outputs":1,"x":1079.9530639648438,"y":1232.8255920410156,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"c5dee3e7.cdd41","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":844.5313720703125,"y":1133.0594177246094,"z":"fe1687cb.6748b8","wires":[["221af66d.6cc54a","66787785.d87018","f85cd896.2992c8","5a7001d8.ef0f6","918cc60e.942f48","2eaa51b4.b221be"]]},{"id":"5a7001d8.ef0f6","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\" />\n","comments":"","x":1054.5313110351562,"y":1374.6150512695312,"z":"fe1687cb.6748b8","wires":[]},{"id":"918cc60e.942f48","type":"save","name":"Update AAI: SDN_C_BACKOUT_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" \n\t\tkey=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t","comments":"","outputs":1,"x":1181.6212768554688,"y":1329.9469604492188,"z":"fe1687cb.6748b8","wires":[[]]},{"id":"2eaa51b4.b221be","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\"/>","comments":"","outputs":1,"x":1148.6212768554688,"y":1280.1969604492188,"z":"fe1687cb.6748b8","wires":[[]]}]
+[
+    {
+        "id": "8b0d413c.615c5",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 96,
+        "y": 89.33332824707031,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "a7a5e7f9.cbcdd8"
+            ]
+        ]
+    },
+    {
+        "id": "a7a5e7f9.cbcdd8",
+        "type": "service-logic",
+        "name": "SUBNET-API ${project.version}",
+        "module": "SUBNET-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 409.83335876464844,
+        "y": 90.33332824707031,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "513fc617.f719c8"
+            ]
+        ]
+    },
+    {
+        "id": "6c165aea.75e544",
+        "type": "execute",
+        "name": "execute EIPAM activatesubnet",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n\n",
+        "outputs": 1,
+        "x": 653.6905975341797,
+        "y": 328.7619323730469,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "d3c99160.64233",
+                "a9c66f76.4dc69"
+            ]
+        ]
+    },
+    {
+        "id": "d3c99160.64233",
+        "type": "success",
+        "name": "outcome: success",
+        "xml": "<outcome value=\"success\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 931.2143096923828,
+        "y": 206.4285888671875,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "e804c854.2cc4b8"
+            ]
+        ]
+    },
+    {
+        "id": "a9c66f76.4dc69",
+        "type": "other",
+        "name": "outcome Other ",
+        "xml": "<outcome value=\"Other\"> \n\n",
+        "outputs": 1,
+        "x": 915.3096466064453,
+        "y": 457.8094787597656,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "d4043b3c.76b5d8"
+            ]
+        ]
+    },
+    {
+        "id": "c794a1de.6c9f5",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": " <return status=\"failure\">\n               <parameter name=\"error-code\" value=\"3000\" />\n              <parameter name=\"error-message\" value=\"ActivateSubnet failure, need to manually activate in EIPAM\" />\n",
+        "comments": "",
+        "x": 1423.4044036865234,
+        "y": 614.6665649414062,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "9f29750b.da2bd8",
+        "type": "save",
+        "name": "save: EIPAM IP Subnets Active",
+        "xml": "<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"ACTIVE\" />\n       \n",
+        "outputs": 1,
+        "x": 1780.1310005187988,
+        "y": 71.17860412597656,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9990bab.31cc148",
+        "type": "comment",
+        "name": "MANAGED-NETWORK-NOTIFICATION",
+        "info": "12/15/17: update AAI VPE to GENERIC-VNF for ADIod\n\t\tUS 518510 - 291247b-F24748: SDN-CP to update SUBNET-SERVICE DG for vPE orchestration on AIC 3.X",
+        "comments": "",
+        "x": 475.6999969482422,
+        "y": 25,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "513fc617.f719c8",
+        "type": "method",
+        "name": "managed-network-notification",
+        "xml": "<method rpc='managed-network-notification' mode='sync'>\n",
+        "outputs": 1,
+        "x": 775.7000427246094,
+        "y": 89.19999694824219,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "aec047af.aaab78"
+            ]
+        ]
+    },
+    {
+        "id": "aec047af.aaab78",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "outputs": 1,
+        "x": 154.69998168945312,
+        "y": 154.1999969482422,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "9cc7c475.fb9c08",
+                "4264e89c.40bd78"
+            ]
+        ]
+    },
+    {
+        "id": "9cc7c475.fb9c08",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"managed-network-notification\"/>\n<parameter name=\"field3\" value=\"`$managed-network-notification-input.request-id`\"/>\n<parameter name=\"field4\" value=\"`$managed-network-notification-input.managed-network-status.status.code`\"/>\n<parameter name=\"field5\" value=\"`$managed-network-notification-input.managed-network-status.status.description`\"/>\n<parameter name=\"field6\" value=\"`$managed-network-notification-input.managed-network-status.final-notification-indicator`\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 355.2714614868164,
+        "y": 155.06147956848145,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f7ea696e.95b708",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": " <return status=\"success\">\n \n",
+        "x": 1430.2142333984375,
+        "y": 298.7618827819824,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "7c5909c0.2172c8",
+        "type": "set",
+        "name": "set: status = Active",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ACTIVE\" />",
+        "comments": "",
+        "x": 1435.5145721435547,
+        "y": 106.79519653320312,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "b4874196.8ae3d",
+        "type": "save",
+        "name": "save: status = Active",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ACTIVE\" />",
+        "outputs": 1,
+        "x": 1443.1810760498047,
+        "y": 155.1285400390625,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e804c854.2cc4b8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "outputs": 1,
+        "x": 1132.5475311279297,
+        "y": 206.09521484375,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "7c5909c0.2172c8",
+                "b4874196.8ae3d",
+                "f7ea696e.95b708",
+                "51c1d9c0.103e68",
+                "fc3f0e2.234e7f",
+                "e09b4f51.fe4d2"
+            ]
+        ]
+    },
+    {
+        "id": "d4043b3c.76b5d8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1130.3094940185547,
+        "y": 457.8095397949219,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "c794a1de.6c9f5",
+                "710f2497.34503c",
+                "44e6903c.a5e7d",
+                "b0f18382.a3db3"
+            ]
+        ]
+    },
+    {
+        "id": "4264e89c.40bd78",
+        "type": "switchNode",
+        "name": "switch: status Successful",
+        "xml": "<switch test=\"`$managed-network-notification-input.managed-network-status.status.code`\">\n\n",
+        "outputs": 1,
+        "x": 152.69998168945312,
+        "y": 274.2000274658203,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "9ab4229a.74392",
+                "c3d16d19.cc9aa"
+            ]
+        ]
+    },
+    {
+        "id": "9ab4229a.74392",
+        "type": "success",
+        "name": "outcome: Success",
+        "xml": "<outcome value=\"Success\">",
+        "outputs": 1,
+        "x": 413.69996643066406,
+        "y": 274.20001220703125,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "6c165aea.75e544"
+            ]
+        ]
+    },
+    {
+        "id": "c3d16d19.cc9aa",
+        "type": "other",
+        "name": "outcome: Other",
+        "xml": "<outcome value=\"Other\">",
+        "outputs": 1,
+        "x": 330.699951171875,
+        "y": 477.1999969482422,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "93fdf0c8.f0ae4"
+            ]
+        ]
+    },
+    {
+        "id": "93fdf0c8.f0ae4",
+        "type": "execute",
+        "name": "execute EIPAM deallocateSubnet",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deallocateSubnet\">\n\n",
+        "comments": "subnet and subnet_keys are deleted in the EIPAMPlugin",
+        "outputs": 1,
+        "x": 318.184814453125,
+        "y": 702.8561706542969,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "4f8b34e6.5bdd4c",
+                "3cf915d5.0d1d9a"
+            ]
+        ]
+    },
+    {
+        "id": "a50ab9b4.106068",
+        "type": "save",
+        "name": "save: EIPAM IP Subnets DEALLOCATED",
+        "xml": "<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"DEALLOCATED\" />\n       \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 2083.8927307128906,
+        "y": 824.5342540740967,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "d96ce594.90a0c8",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "x": 1711.3316497802734,
+        "y": 919.9341735839844,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "cd7d1838.d5cf78",
+        "type": "save",
+        "name": "save: status = SDN_C_BACKOUT_ERROR",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"SDN_C_BACKOUT_ERROR\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1783.3318099975586,
+        "y": 970.2121124267578,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "25a6ed6d.53b122",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1477.9100799560547,
+        "y": 870.9460144042969,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "d96ce594.90a0c8",
+                "cd7d1838.d5cf78",
+                "e0730d75.098b2",
+                "137b82df.54fe1d"
+            ]
+        ]
+    },
+    {
+        "id": "e0730d75.098b2",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\" />\n",
+        "comments": "",
+        "x": 1687.9100189208984,
+        "y": 1109.5015563964844,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "6b63ef5.73de51",
+        "type": "save",
+        "name": "save: EIPAM IP Subnets ERROR",
+        "xml": "<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"EIPAM_ACTIVATESUBNET_ERROR\" />\n       \n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1850.2252464294434,
+        "y": 379.9229793548584,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "710f2497.34503c",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "comments": "",
+        "x": 1448.0254974365234,
+        "y": 426.48956298828125,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "44e6903c.a5e7d",
+        "type": "save",
+        "name": "save: status = ERROR",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"EIPAM_ACTIVATESUBNET_ERROR\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1453.0255584716797,
+        "y": 475.48956298828125,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4f8b34e6.5bdd4c",
+        "type": "success",
+        "name": "outcome: success",
+        "xml": "<outcome value=\"success\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 632.0690155029297,
+        "y": 708.2610778808594,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "1502967b.43db7a"
+            ]
+        ]
+    },
+    {
+        "id": "ebe5df37.bfb75",
+        "type": "save",
+        "name": "Update AAI: SDN_C_BACKOUT_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" \n\t\tkey=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"orchestration-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t",
+        "comments": "",
+        "outputs": 1,
+        "x": 1814.999984741211,
+        "y": 1064.8334655761719,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "59402378.f1791c",
+        "type": "save",
+        "name": "Update AAI: EIPAM_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" \n\t\tkey=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"EIPAM_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t",
+        "comments": "",
+        "outputs": 1,
+        "x": 1511.1666717529297,
+        "y": 566.0832214355469,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "51c1d9c0.103e68",
+        "type": "save",
+        "name": "Update AAI: SDNC_COMPLETED",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" key=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"orchestration-status\" value=\"Activated\" />\n\t<parameter name=\"prov-status\" value=\"NVTPROV\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1486.166648864746,
+        "y": 252.50001907348633,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "32cfc32.f7b6f3c",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1781.999984741211,
+        "y": 1015.0834655761719,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2faf2d05.28d832",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"ActivateSubnet failure, need to manually activate in EIPAM.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1515.0001068115234,
+        "y": 520.5832824707031,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "67b3d858.1a81b8",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message with timestamp",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"SUCCESS: eipam-ip-block.status is ACTIVE.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1559.0001068115234,
+        "y": 204.08334350585938,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3cf915d5.0d1d9a",
+        "type": "other",
+        "name": "outcome Other ",
+        "xml": "<outcome value=\"Other\"> \n\n",
+        "outputs": 1,
+        "x": 605.6485595703125,
+        "y": 1139.633544921875,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "805eca59.0831f8"
+            ]
+        ]
+    },
+    {
+        "id": "1502967b.43db7a",
+        "type": "execute",
+        "name": "execute EIPAM deletePool",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePool\">\n\n",
+        "comments": "subnet and subnet_keys are deleted in the EIPAMPlugin",
+        "outputs": 1,
+        "x": 916.648681640625,
+        "y": 717.6335601806641,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "bd7da7e7.2442a8",
+                "9e882eaf.4bab9"
+            ]
+        ]
+    },
+    {
+        "id": "8c247aa0.adb508",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": " <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"2000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deleted pool/subnet in EIPAM\"/>\n \n",
+        "comments": "",
+        "x": 1527.918930053711,
+        "y": 811.6335754394531,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "3d115298.a6390e",
+        "type": "set",
+        "name": "set: status = Deleted",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"DELETED\" />",
+        "comments": "",
+        "x": 1552.9595794677734,
+        "y": 672.0675354003906,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "bd7da7e7.2442a8",
+        "type": "success",
+        "name": "outcome: success",
+        "xml": "<outcome value=\"success\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1168.5102996826172,
+        "y": 719.0281066894531,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "b202ceaa.bfcf8"
+            ]
+        ]
+    },
+    {
+        "id": "b202ceaa.bfcf8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "outputs": 1,
+        "x": 1366.0545501708984,
+        "y": 719.9361267089844,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "3d115298.a6390e",
+                "8c247aa0.adb508"
+            ]
+        ]
+    },
+    {
+        "id": "fe96d80e.1742e8",
+        "type": "save",
+        "name": "Update AAI: SDN_C_BACKOUT_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" key=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"orchestration-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1654.441390991211,
+        "y": 766.8501892089844,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "930f275.bbe09d8",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deleted pool/subnet in EIPAM.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1622.441390991211,
+        "y": 719.3502807617188,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "9e882eaf.4bab9",
+        "type": "other",
+        "name": "outcome Other ",
+        "xml": "<outcome value=\"Other\"> \n\n",
+        "outputs": 1,
+        "x": 1158.231201171875,
+        "y": 873.6335601806641,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "25a6ed6d.53b122"
+            ]
+        ]
+    },
+    {
+        "id": "c607d852.38d518",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "x": 1081.0957946777344,
+        "y": 1190.0476684570312,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "7d1e8b06.0568c4",
+        "type": "save",
+        "name": "save: status = SDN_C_BACKOUT_ERROR",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"SDN_C_BACKOUT_ERROR\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1158.095962524414,
+        "y": 1237.825579881668,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "805eca59.0831f8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 847.6742248535156,
+        "y": 1138.0594177246094,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            [
+                "c607d852.38d518",
+                "7d1e8b06.0568c4",
+                "61415345.f8ff0c",
+                "65667bfd.a151d4"
+            ]
+        ]
+    },
+    {
+        "id": "61415345.f8ff0c",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\" />\n",
+        "comments": "",
+        "x": 1057.6741638183594,
+        "y": 1379.6150512695312,
+        "z": "eea4a4fd.28e7f8",
+        "wires": []
+    },
+    {
+        "id": "c854babb.1edeb8",
+        "type": "save",
+        "name": "Update AAI: SDN_C_BACKOUT_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" \n\t\tkey=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"orchestration-state\" value=\"SDN_C_BACKOUT_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n\t",
+        "comments": "",
+        "outputs": 1,
+        "x": 1184.7641296386719,
+        "y": 1334.9469604492188,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fd307a6e.e37228",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"Failure from NCS and deletePool failed in EIPAM, need to manually delete.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1151.7641296386719,
+        "y": 1285.1969604492188,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e09b4f51.fe4d2",
+        "type": "get-resource",
+        "name": "get-resource - vpe_pool",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM VPE_POOL where vpe_name = $eipam-ip-block.ptnii-name ;\"\n        pfx='tmp.vpe-pool-row'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1453.7500076293945,
+        "y": 23.750003814697266,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "fc3f0e2.234e7f",
+        "type": "save",
+        "name": "Update subnet to ACTIVE in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVE' \n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1475.0000228881836,
+        "y": 67.5,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "b0f18382.a3db3",
+        "type": "save",
+        "name": "Update subnet to ERROR in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVATE_ERROR' \n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1482.5000228881836,
+        "y": 381.2500047683716,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "137b82df.54fe1d",
+        "type": "save",
+        "name": "Update subnet to DEALLOCATED in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'DEALLOCATED' \n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1738.7500228881836,
+        "y": 870.0000123977661,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "65667bfd.a151d4",
+        "type": "save",
+        "name": "Update subnet to ERROR in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'DEALLOCSUBNET_ERROR' \n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1113.750015258789,
+        "y": 1146.2500162124634,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "628344a0.b07cfc",
+        "type": "get-resource",
+        "name": "get-resource - vpe_pool",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM VPE_POOL where vpe_name = $eipam-ip-block.ptnii-name ;\"\n        pfx='tmp.vpe-pool-row'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1090.000015258789,
+        "y": 1081.250015258789,
+        "z": "eea4a4fd.28e7f8",
+        "wires": [
+            []
+        ]
+    }
+]
\ No newline at end of file
index 9922821..ccb6c72 100755 (executable)
@@ -1 +1,2235 @@
-[{"id":"a9213005.00cca","type":"dgstart","name":"DGSTART","outputs":1,"x":98.5714340209961,"y":81.42857360839844,"z":"27680826.c34468","wires":[["65d9132d.dd809c"]]},{"id":"e622bdcc.42acc","type":"success","name":"outcome success","xml":"<outcome value=\"success\">\n","outputs":1,"x":666.2379531860352,"y":195.70635223388672,"z":"27680826.c34468","wires":[["3f075783.e441e8"]]},{"id":"82f4ac79.53fcc","type":"other","name":"outcome Other ","xml":"<outcome value=\"Other\"> \n\n","outputs":1,"x":659.2380752563477,"y":344.5952682495117,"z":"27680826.c34468","wires":[["5356707.3c69f9"]]},{"id":"7e9ea036.3fddd","type":"returnSuccess","name":"return success","xml":" <return status=\"success\">\n \n","x":1179.7378616333008,"y":257.4286117553711,"z":"27680826.c34468","wires":[]},{"id":"ed648022.197df","type":"save","name":"save: EIPAM IP Subnets PendingActive","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"PENDING-ACTIVE\" />\n       \n","outputs":1,"x":1623.688247680664,"y":115.29525184631348,"z":"27680826.c34468","wires":[[]]},{"id":"dd2ccccd.fbd74","type":"method","name":"subnet-allocated-notification","xml":"<method rpc='subnet-allocated-notification' mode='sync'>\n","comments":"","outputs":1,"x":668.4381484985352,"y":81.29524612426758,"z":"27680826.c34468","wires":[["1d020804.ffe728"]]},{"id":"1d020804.ffe728","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":122.68812561035156,"y":169.7952480316162,"z":"27680826.c34468","wires":[["710e1c1e.4120b4","c02428aa.992358"]]},{"id":"710e1c1e.4120b4","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":277.8310012817383,"y":172.38293743133545,"z":"27680826.c34468","wires":[[]]},{"id":"1fe611b1.8156ae","type":"configure","name":"configure ncs SNIIR ","xml":"<configure adaptor=\"com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor\" key=\"SNIIR\" activate=\"true\">\n\t<parameter name=\"input.request-id\" value=\"`$eipam-ip-block.request-id`\" />\n\t<parameter name=\"input.source\" value=\"SDNC\" />\n\t<parameter name=\"input.ptnii-name\" value=\"`$eipam-ip-block.ptnii-name`\" />\n\t<parameter name=\"input.ip-address\" value=\"`$eipam-ip-block.ip-address`\" />\n\t<parameter name=\"input.mask\" value=\"`$eipam-ip-block.prefix-length`\" />","outputs":1,"x":416.7381057739258,"y":274.3452682495117,"z":"27680826.c34468","wires":[["e622bdcc.42acc","82f4ac79.53fcc"]]},{"id":"22ec13a0.6a868c","type":"save","name":"save: EIPAM IP Subnets ERROR","xml":"<save plugin=\"com.att.sdnctl.sli.resource.gamma.GammaResource\" resource=\"eipam-ip-subnets\"\n\tkey=\"entity-id = $eipam-ip-block.entity-id\" force=\"true\">\n        <parameter name=\"status\" value=\"ERROR\" />\n       \n","outputs":1,"x":1675.2381210327148,"y":479.78968620300293,"z":"27680826.c34468","wires":[[]]},{"id":"3f075783.e441e8","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":880.5713577270508,"y":195.23967742919922,"z":"27680826.c34468","wires":[["57e63c8f.0955b4","26b12811.2f48c8","7e9ea036.3fddd","4939e504.9f364c"]]},{"id":"57e63c8f.0955b4","type":"set","name":"set: status = Pending Active","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"PENDING-ACTIVE\" />","x":1212.0381546020508,"y":165.79524993896484,"z":"27680826.c34468","wires":[]},{"id":"26b12811.2f48c8","type":"save","name":"save: status = Pending Active","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"PENDING-ACTIVE\" />","outputs":1,"x":1221.0380935668945,"y":211.79521942138672,"z":"27680826.c34468","wires":[[]]},{"id":"dd7e082.29230f8","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1304.538459777832,"y":516.6062850952148,"z":"27680826.c34468","wires":[]},{"id":"197a8f9d.0aba4","type":"save","name":"save: status = ERROR","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","outputs":1,"x":1309.538703918457,"y":564.6062850952148,"z":"27680826.c34468","wires":[[]]},{"id":"65d9132d.dd809c","type":"service-logic","name":"SUBNET-API ${project.version}","module":"SUBNET-API","version":"${project.version}","comments":"","xml":"<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>","outputs":1,"x":336.5214614868164,"y":81.74525833129883,"z":"27680826.c34468","wires":[["dd2ccccd.fbd74"]]},{"id":"ed7e5b43.0a4c88","type":"comment","name":"ChangeLog","info":"1.0.0: Release 1504\n2.0.0: Release 1507 - Remove Update Inventory\n9/16: update record node format\nRelease 1710 - update to include VIPR & SRIOV address plans","comments":"","x":84.52143096923828,"y":28.745243072509766,"z":"27680826.c34468","wires":[]},{"id":"5356707.3c69f9","type":"execute","name":"execute EIPAM deletePool","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePool\">\n\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":878.0896682739258,"y":344.0625534057617,"z":"27680826.c34468","wires":[["b4c80bc2.8ed758","c3cd7f2c.ff58b"]]},{"id":"d7bb127f.ac3d1","type":"set","name":"set: status = Deleted","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"DELETED\" />","comments":"","x":1569.089485168457,"y":278.50691986083984,"z":"27680826.c34468","wires":[]},{"id":"b4c80bc2.8ed758","type":"other","name":"outcome Other ","xml":"<outcome value=\"Other\"> \n\n","outputs":1,"x":1163.6450881958008,"y":398.39583587646484,"z":"27680826.c34468","wires":[["4a9084e7.17a3fc"]]},{"id":"4a9084e7.17a3fc","type":"block","name":"block","xml":"<block>","atomic":"false","comments":"","outputs":1,"x":1064.0055618286133,"y":493.5070114135742,"z":"27680826.c34468","wires":[["dd7e082.29230f8","197a8f9d.0aba4","737ff142.6bf88","6586b53f.f980cc","268c791.e069e86","f38846a2.f8b938"]]},{"id":"737ff142.6bf88","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete\" />\n","comments":"","x":1276.339012145996,"y":707.3958234786987,"z":"27680826.c34468","wires":[]},{"id":"c3cd7f2c.ff58b","type":"success","name":"outcome success","xml":"<outcome value=\"success\">\n","outputs":1,"x":1172.8146438598633,"y":345.5396041870117,"z":"27680826.c34468","wires":[["ab627f0f.dca16"]]},{"id":"eba669ea.07a7f8","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"IpBlockInstall failure and deletePool deleted in EIPAM\" />\n","comments":"","x":1543.7034378051758,"y":423.76171112060547,"z":"27680826.c34468","wires":[]},{"id":"ab627f0f.dca16","type":"block","name":"block","xml":"<block>","atomic":"false","outputs":1,"x":1369.919734954834,"y":345.3755683898926,"z":"27680826.c34468","wires":[["d7bb127f.ac3d1","eba669ea.07a7f8","ea42344d.d237c8","d02d0150.a724a"]]},{"id":"ea42344d.d237c8","type":"save","name":"Update AAI: NCS_IP_SUBNET_INSTALL_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" key=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n","comments":"","outputs":1,"x":1697.8214797973633,"y":377.8452682495117,"z":"27680826.c34468","wires":[[]]},{"id":"6586b53f.f980cc","type":"save","name":"Update AAI: NCS_IP_SUBNET_INSTALL_ERROR, PREPROV","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"vpe\" key=\"vnf-id = $data-change-notification-input.key-data[0].key-value\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-state\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n","comments":"","outputs":1,"x":1430.738166809082,"y":658.4285507202148,"z":"27680826.c34468","wires":[[]]},{"id":"d02d0150.a724a","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"IpBlockInstall failure and pool deleted in EIPAM.\"/>\n","comments":"","outputs":1,"x":1639.9047927856445,"y":328.42858123779297,"z":"27680826.c34468","wires":[[]]},{"id":"268c791.e069e86","type":"execute","name":"execute: set aai-summary-status-message","xml":"<execute plugin='org.onap.ccsdk.sli.adaptors.sli.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"IpBlockInstall failure and pool deletion failed in EIPAM, need to manually delete.\"/>","comments":"","outputs":1,"x":1369.9047927856445,"y":612.4285507202148,"z":"27680826.c34468","wires":[[]]},{"id":"c02428aa.992358","type":"switchNode","name":"switch: ptnii_name","xml":"<switch test=\"`$eipam-ip-block.ptnii-name`\">","comments":"Need to know which ipv version to get the plan name from the network-model.","outputs":1,"x":133.75003814697266,"y":365.0000057220459,"z":"27680826.c34468","wires":[["4235b5fd.e7ef8c","ff5e0fec.f83"]]},{"id":"ff5e0fec.f83","type":"other","name":"Null","xml":"<outcome value=''>","comments":"If no ptnii-name, check if VIPR or SRIOV","outputs":1,"x":216.25000381469727,"y":903.7500133514404,"z":"27680826.c34468","wires":[["16b88750.f9c8d9"]]},{"id":"4235b5fd.e7ef8c","type":"other","name":"Other","xml":"<outcome value='Other'>","comments":"If there's ptnii-name, then it's Gamma service","outputs":1,"x":307.5,"y":370,"z":"27680826.c34468","wires":[["1fe611b1.8156ae"]]},{"id":"16b88750.f9c8d9","type":"execute","name":"execute plan-name startsWith AIC","xml":"<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"startsWith\" emitsOutcome='true' >\n<parameter name=\"source\" value=\"`toUpperCase($eipam-ip-block.plan-name)`\" />\n<parameter name=\"target\" value=\"AIC_\" />\n\n","comments":"","outputs":1,"x":426.25,"y":905.0000133514404,"z":"27680826.c34468","wires":[["c12a3c05.77a7e","dc94ae1a.b883b"]]},{"id":"dc94ae1a.b883b","type":"outcomeTrue","name":"true","xml":"<outcome value='true'>\n","comments":"","outputs":1,"x":638.7500076293945,"y":948.7500143051147,"z":"27680826.c34468","wires":[["f33c279d.2febe8"]]},{"id":"c12a3c05.77a7e","type":"outcomeFalse","name":"false","xml":"<outcome value='false'>\n","comments":"","outputs":1,"x":640.0000076293945,"y":906.0000143051147,"z":"27680826.c34468","wires":[["31d3b5fe.60650a"]]},{"id":"f33c279d.2febe8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":786.25,"y":950,"z":"27680826.c34468","wires":[["a8cc4566.2651c8","38234086.77091","4224697.a835298","f328336d.7aa25","e0a23068.1cd1d","8c266346.4aa95","b6ace914.73b9d8","f442ffc.02fce","c5fea6e2.5cab28","b04c73f0.45b0b","d2892fb8.7bfeb","1af2e25b.5fee7e","fd184fae.e89c8","26a134a2.70c20c","ae651bed.d8efd8","96859417.102828","68692ef8.36ba2","9248d319.32eca","24a55a09.887c56","13340fb3.29bbe","2de8cdee.c921f2","56727955.005b28","d5474dab.60238"]]},{"id":"31d3b5fe.60650a","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown Address Plan - not supported!\" />\n","comments":"","x":781.25,"y":907.5,"z":"27680826.c34468","wires":[]},{"id":"a8cc4566.2651c8","type":"get-resource","name":"get-resource - validate pool exists already","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n","comments":"","outputs":1,"x":1047.500015258789,"y":951.2500133514404,"z":"27680826.c34468","wires":[["e188d1ab.f8a76","eda35d93.e4aa6"]]},{"id":"eda35d93.e4aa6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1313.8618354797363,"y":904.0000133514404,"z":"27680826.c34468","wires":[["8d68e84b.5f04d8"]]},{"id":"e188d1ab.f8a76","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1321.1119575500488,"y":979.2500143051147,"z":"27680826.c34468","wires":[["c4feedd0.1551e"]]},{"id":"3076888e.6800b8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"This record is not found in DB!\"/>","comments":"","outputs":1,"x":1676.2500228881836,"y":950.0000143051147,"z":"27680826.c34468","wires":[[]]},{"id":"9f5f51a3.da836","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n  \t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n  \t\t<parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown EIPAM pool - not found in DB!\" />\n","comments":"","x":1695.0000267028809,"y":988.7500143051147,"z":"27680826.c34468","wires":[]},{"id":"c4feedd0.1551e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1498.7500228881836,"y":980.0000143051147,"z":"27680826.c34468","wires":[["3076888e.6800b8","9f5f51a3.da836"]]},{"id":"a2822b09.e97578","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"Failed to find this record in DB!\"/>\n\n","comments":"","outputs":1,"x":1676.2500228881836,"y":871.2500162124634,"z":"27680826.c34468","wires":[[]]},{"id":"f8a866d.2dd3298","type":"returnFailure","name":"return failure ","xml":"  <return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n              <parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown EIPAM pool - not found in DB!\" />\n","comments":"","x":1695.0000267028809,"y":910.0000162124634,"z":"27680826.c34468","wires":[]},{"id":"8d68e84b.5f04d8","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1498.7500228881836,"y":901.2500162124634,"z":"27680826.c34468","wires":[["a2822b09.e97578","f8a866d.2dd3298"]]},{"id":"38234086.77091","type":"get-resource","name":"get-resource - validate if initial level 2 subnet exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; \"\n        pfx='pfx.eipam-initial-subnet'>\n\n","comments":"initial subnet should exists","outputs":1,"x":1073.750015258789,"y":1016.2500152587891,"z":"27680826.c34468","wires":[["aa455c78.415d6","9927da1b.afdbe8"]]},{"id":"38b7e10f.3fa15e","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1495.9999771118164,"y":1014.5000057220459,"z":"27680826.c34468","wires":[]},{"id":"aa455c78.415d6","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1344.3618392944336,"y":1019.0000152587891,"z":"27680826.c34468","wires":[["38b7e10f.3fa15e"]]},{"id":"9927da1b.afdbe8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1344.611904144287,"y":1053.5000095367432,"z":"27680826.c34468","wires":[["38b75ce1.66d3e4"]]},{"id":"5e22e900.93b228","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":2347.5,"y":952.5,"z":"27680826.c34468","wires":[[]]},{"id":"f328336d.7aa25","type":"save","name":"insert new EIPAM_IP_SUBNETS for level 2","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $pfx.eipam-initial-subnet.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $eipam-ip-block.plan-name ,\n             status = 'PENDING_ACTIVE' ,\n             pool_id = $pfx.eipam-initial-subnet.pool-id ,\n             address_family = $pfx.eipam-initial-subnet.address-family ,\n             network_id = $pfx.eipam-initial-subnet.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-new-subnet'>\n","comments":"","outputs":1,"x":1058.750015258789,"y":1280.0000457763672,"z":"27680826.c34468","wires":[["48e1df43.58257","e6d53458.acac88"]]},{"id":"e0a23068.1cd1d","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 1","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-level1'>\n","comments":"","outputs":1,"x":1073.7498321533203,"y":1321.9999885559082,"z":"27680826.c34468","wires":[["e6d53458.acac88","b1ea1da0.31a88"]]},{"id":"8c266346.4aa95","type":"save","name":"insert EIPAM_IP_SUBNET_KEYS for level 2","xml":"<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-level2'>\n","comments":"","outputs":1,"x":1072.7499542236328,"y":1368.0000190734863,"z":"27680826.c34468","wires":[["e6d53458.acac88","b1ea1da0.31a88"]]},{"id":"48e1df43.58257","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1394.0333442687988,"y":1293.5000448226929,"z":"27680826.c34468","wires":[["c2fa8922.5c3898"]]},{"id":"e6d53458.acac88","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1394.8762969970703,"y":1331.150188446045,"z":"27680826.c34468","wires":[[]]},{"id":"b1ea1da0.31a88","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1395.5894966125488,"y":1367.0000457763672,"z":"27680826.c34468","wires":[["8f8cdbf1.ac7df8"]]},{"id":"4224697.a835298","type":"get-resource","name":"get-resource - validate if subnet with same ip exists","xml":"<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; \"\n        pfx='pfx.eipam-subnet-with-same-ip'>\n\n","comments":"check if new subnet already exists, possibly from previous attempt.","outputs":1,"x":1077.5000305175781,"y":1092.5000171661377,"z":"27680826.c34468","wires":[["1079d4f3.12d78b","31bcf812.d665c8"]]},{"id":"1bfe7dc9.67a752","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1501.0000953674316,"y":1090.7500066757202,"z":"27680826.c34468","wires":[]},{"id":"1079d4f3.12d78b","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1349.3619575500488,"y":1095.2500162124634,"z":"27680826.c34468","wires":[["1bfe7dc9.67a752"]]},{"id":"31bcf812.d665c8","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1360.8620529174805,"y":1137.2500276565552,"z":"27680826.c34468","wires":[[]]},{"id":"5be1f04e.3c946","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1391.2500839233398,"y":1436.2500324249268,"z":"27680826.c34468","wires":[["a49fec09.f6009"]]},{"id":"a49fec09.f6009","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'\" />","comments":"","x":1554.444480895996,"y":1436.3612537384033,"z":"27680826.c34468","wires":[]},{"id":"b6ace914.73b9d8","type":"get-resource","name":"get AnAI - l3-network subnet by network-id and subnet-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\"\n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.aai-initial-subnet\">\n","comments":"","outputs":1,"x":1094.7221374511719,"y":1444.4846668243408,"z":"27680826.c34468","wires":[["5be1f04e.3c946","1ef3bc16.d15f44"]]},{"id":"1ef3bc16.d15f44","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1383.9721908569336,"y":1474.7346363067627,"z":"27680826.c34468","wires":[["e393bf01.64fed"]]},{"id":"e393bf01.64fed","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' from AnAI'\" />","comments":"","x":1536.0832748413086,"y":1474.956865310669,"z":"27680826.c34468","wires":[]},{"id":"38b75ce1.66d3e4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Initial subnet not found, cannot auto extend.\" />\n\t","comments":"","x":1498.7499694824219,"y":1052.5000076293945,"z":"27680826.c34468","wires":[]},{"id":"c2fa8922.5c3898","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Insert to DB table EIPAM_IP_SUBNETS failed.\" />\n\t","comments":"","x":1531.25,"y":1296.2500267028809,"z":"27680826.c34468","wires":[]},{"id":"8f8cdbf1.ac7df8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Insert to DB table EIPAM_IP_SUBNET_KEYS failed.\" />\n\t","comments":"","x":1535,"y":1365.0000267028809,"z":"27680826.c34468","wires":[]},{"id":"599ea898.d06128","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1264.590389251709,"y":1860.2259755134583,"z":"27680826.c34468","wires":[["e6406ac5.f60e88"]]},{"id":"6669d1c3.d883c","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1273.313533782959,"y":1897.8691639900208,"z":"27680826.c34468","wires":[[]]},{"id":"f442ffc.02fce","type":"save","name":"save AnAI - l3-network.subnets","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$pfx.eipam-initial-subnet.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$eipam-ip-block.entity-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet.subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.return.generate.gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$eipam-ip-block.ip-prefix`\" />\n<parameter name=\"cidr-mask\" value=\"`$eipam-ip-block.prefix-length`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet.dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet.dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet.dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />","comments":"","outputs":1,"x":1005.111400604248,"y":1877.2617650032043,"z":"27680826.c34468","wires":[["6669d1c3.d883c","599ea898.d06128"]]},{"id":"b5c88c1d.637ad","type":"call","name":"call GENERIC-RESOURCE-API:create-l3-subnet","xml":"<call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >\n","comments":"tmp.level should be set to 1","outputs":1,"x":1802.500015258789,"y":1472.5000495910645,"z":"27680826.c34468","wires":[[]]},{"id":"9664fc27.56f38","type":"comment","name":"Get service_type from initial subnet","info":"","comments":"","x":787.5,"y":1062.5,"z":"27680826.c34468","wires":[]},{"id":"7df8a691.f40778","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n","comments":"","x":1661.2500495910645,"y":1776.2500457763672,"z":"27680826.c34468","wires":[]},{"id":"c5fea6e2.5cab28","type":"execute","name":"execute getSubnetAddresses","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$eipam-ip-block.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"`tmp.version`\" />\n\t<parameter name=\"subnet\" value=\"`$eipam-ip-block.prefix-length`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n","comments":"","outputs":1,"x":1014.1072311401367,"y":1704.5357484817505,"z":"27680826.c34468","wires":[["3f5f9dcf.9a0822"]]},{"id":"1af2e25b.5fee7e","type":"switchNode","name":"switch tmp.aai-initial-subnet.dhcp-enabled","xml":"<switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>\n","comments":"","outputs":1,"x":1045.7582550048828,"y":1767.6151399612427,"z":"27680826.c34468","wires":[["6800941e.557aac","bc0c9d86.36f89"]]},{"id":"6800941e.557aac","type":"other","name":"Y","xml":"<outcome value='Y'>\n","comments":"","outputs":1,"x":1301.4722843170166,"y":1777.6151151657104,"z":"27680826.c34468","wires":[["af454cc5.3dff4"]]},{"id":"af454cc5.3dff4","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1461.9485206604004,"y":1777.61510181427,"z":"27680826.c34468","wires":[["7df8a691.f40778"]]},{"id":"3f5f9dcf.9a0822","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1246.0226211547852,"y":1704.308232307434,"z":"27680826.c34468","wires":[["81b31e6.00a07e"]]},{"id":"81b31e6.00a07e","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate gateway addresses using IpAddressTools\" />","comments":"","x":1417.6891708374023,"y":1704.308232307434,"z":"27680826.c34468","wires":[]},{"id":"83d25c76.606f4","type":"set","name":"set l3network.subnet","xml":"<set>\n<parameter name='tmp.l3-network.subnet.subnet-name' value=\"`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`\" />\n","comments":"","x":1407.9010620117188,"y":1587.6151309013367,"z":"27680826.c34468","wires":[]},{"id":"bc0c9d86.36f89","type":"other","name":"N","xml":"<outcome value='N'>\n","comments":"","outputs":1,"x":1304.012077331543,"y":1813.3293962478638,"z":"27680826.c34468","wires":[["b0650ab4.c65d58"]]},{"id":"3cc8bc14.294884","type":"set","name":"set dhcp data","xml":"<set>\n<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet.dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet.dhcp-end' value='' />\n\n\n","comments":"","x":1664.012077331543,"y":1811.9008378982544,"z":"27680826.c34468","wires":[]},{"id":"b0650ab4.c65d58","type":"block","name":"block : atomic","xml":"<block atomic=\"true\">","atomic":"true","outputs":1,"x":1464.710548400879,"y":1813.2658939361572,"z":"27680826.c34468","wires":[["3cc8bc14.294884"]]},{"id":"4c9ac4aa.90bf8c","type":"not-found","name":"not found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1296.9642486572266,"y":1177.1428413391113,"z":"27680826.c34468","wires":[["acd17d5f.d00c1"]]},{"id":"b04c73f0.45b0b","type":"get-resource","name":"get AnAI - l3-network by network-id","xml":"<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n","comments":"","outputs":1,"x":1061.6863555908203,"y":1181.6274452209473,"z":"27680826.c34468","wires":[["4c9ac4aa.90bf8c","7fda0cb.614c2f4"]]},{"id":"7fda0cb.614c2f4","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1289.6863555908203,"y":1215.6274452209473,"z":"27680826.c34468","wires":[["9af11c3.0761ce"]]},{"id":"d2892fb8.7bfeb","type":"switchNode","name":"switch get current # of subnets","xml":"<switch test='`$aai.l3-network.subnets.subnet_length`'>\n","comments":"","outputs":1,"x":1028.0000534057617,"y":1550.5000176429749,"z":"27680826.c34468","wires":[["137556cc.df0609","9df4adf.d74095"]]},{"id":"137556cc.df0609","type":"other","name":"outcome Null","xml":"<outcome value=''>\n","comments":"","outputs":1,"x":1251.7500610351562,"y":1549.2500176429749,"z":"27680826.c34468","wires":[["f751331c.00143"]]},{"id":"9df4adf.d74095","type":"other","name":"other","xml":"<outcome value='Other'>\n","comments":"","outputs":1,"x":1237.7500457763672,"y":1588.0000224113464,"z":"27680826.c34468","wires":[["83d25c76.606f4"]]},{"id":"9af11c3.0761ce","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'\" />","comments":"","x":1440.7142715454102,"y":1217.142864227295,"z":"27680826.c34468","wires":[]},{"id":"acd17d5f.d00c1","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'\" />","comments":"","x":1453.2142486572266,"y":1175.8928413391113,"z":"27680826.c34468","wires":[]},{"id":"f751331c.00143","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id\" />","comments":"","x":1418.7500610351562,"y":1548.7499871253967,"z":"27680826.c34468","wires":[]},{"id":"e6406ac5.f60e88","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'\" />","comments":"","x":1407.500057220459,"y":1860.000020980835,"z":"27680826.c34468","wires":[]},{"id":"fd184fae.e89c8","type":"execute","name":"execute Contrail API create subnet","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='subnet' />\n<parameter name='api-action' value='add' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\n<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />\n<parameter name='dns-server-address' value='0.0.0.0' />\n<parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />\n<parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />\n<parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />\n<parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />\n","comments":"","outputs":1,"x":1025.0000762939453,"y":1993.7500295639038,"z":"27680826.c34468","wires":[["281bfd7.8f87a02","d85d1e3.00c05e"]]},{"id":"281bfd7.8f87a02","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1330.1309204101562,"y":1970.6422888375819,"z":"27680826.c34468","wires":[["72da5ff6.7162b"]]},{"id":"d85d1e3.00c05e","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1328.2262420654297,"y":2003.642228603363,"z":"27680826.c34468","wires":[["69394ab1.5080c4"]]},{"id":"7bb00cdc.52f324","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":1625.6310081481934,"y":2142.9756145477295,"z":"27680826.c34468","wires":[]},{"id":"72da5ff6.7162b","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1482.321403503418,"y":1971.3090138435364,"z":"27680826.c34468","wires":[[]]},{"id":"26a134a2.70c20c","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":961.25,"y":1406.2500267028809,"z":"27680826.c34468","wires":[[]]},{"id":"ae651bed.d8efd8","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added a subnetin AAI\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":935.0000381469727,"y":1927.4999928474426,"z":"27680826.c34468","wires":[[]]},{"id":"96859417.102828","type":"set","name":"set request-id","xml":"<set>\n<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n","comments":"","x":1004.4642639160156,"y":1229.642858505249,"z":"27680826.c34468","wires":[]},{"id":"68692ef8.36ba2","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added a subnet in Contrail\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":933.7500381469727,"y":2054.9999928474426,"z":"27680826.c34468","wires":[[]]},{"id":"69394ab1.5080c4","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1452.5000228881836,"y":2030.0000305175781,"z":"27680826.c34468","wires":[["8d827339.1c42b","464fd495.cf609c","a20fd9fb.925b28","7bb00cdc.52f324","7b0ec3aa.9f133c"]]},{"id":"13340fb3.29bbe","type":"execute","name":"execute EIPAM activateSubnet","xml":"<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n","comments":"subnet and subnet_keys are deleted in the EIPAMPlugin","outputs":1,"x":914.9999847412109,"y":2392.5000524520874,"z":"27680826.c34468","wires":[["e36e1b6d.7c89a8"]]},{"id":"e36e1b6d.7c89a8","type":"failure","name":"failure","xml":"<outcome value='failure'>","outputs":1,"x":1125.000015258789,"y":2393.8904180526733,"z":"27680826.c34468","wires":[["ada6dfba.c5e93"]]},{"id":"ada6dfba.c5e93","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while activating subnet in EIPAM.\" />\n\t","comments":"","x":1288.9999961853027,"y":2392.6047105789185,"z":"27680826.c34468","wires":[]},{"id":"2de8cdee.c921f2","type":"save","name":"Update subnet to Active in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":913.5714874267578,"y":2432.4999990463257,"z":"27680826.c34468","wires":[["5f8cd719.040538","cc0e8d04.1dd76","1175c433.7e6f8c"]]},{"id":"26c7656e.af300a","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1282.1428680419922,"y":2439.6428747177124,"z":"27680826.c34468","wires":[]},{"id":"1175c433.7e6f8c","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1132.7144622802734,"y":2507.6428451538086,"z":"27680826.c34468","wires":[[]]},{"id":"5f8cd719.040538","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1133.0047454833984,"y":2441.6428747177124,"z":"27680826.c34468","wires":[["26c7656e.af300a"]]},{"id":"cc0e8d04.1dd76","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1133.8618545532227,"y":2475.9285953342915,"z":"27680826.c34468","wires":[["e27f3250.a90fd"]]},{"id":"e27f3250.a90fd","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t","comments":"","x":1281.142707824707,"y":2471.9286258518696,"z":"27680826.c34468","wires":[]},{"id":"56727955.005b28","type":"save","name":"update AnAI - subnet","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"Created\" />\n\t\t","comments":"","outputs":1,"x":891.9642696380615,"y":2568.5515909194946,"z":"27680826.c34468","wires":[["4e91d6f8.33a8a8","8dbce961.ba9108"]]},{"id":"614081e5.693ec","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t","comments":"","x":1283.7104396820068,"y":2558.3928356170654,"z":"27680826.c34468","wires":[]},{"id":"2a7aff42.09c3d","type":"success","name":"success","xml":"<outcome value='success'>\n","comments":"","outputs":1,"x":1134.282033920288,"y":2626.3928060531616,"z":"27680826.c34468","wires":[["3e75f1f6.c1d44e"]]},{"id":"4e91d6f8.33a8a8","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1123.1436805725098,"y":2564.678565979004,"z":"27680826.c34468","wires":[["614081e5.693ec"]]},{"id":"8dbce961.ba9108","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1135.4294261932373,"y":2594.6785562336445,"z":"27680826.c34468","wires":[["20ed0c21.a3cea4"]]},{"id":"3e75f1f6.c1d44e","type":"block","name":"block : atomic","xml":"<block atomic='true'>","atomic":"true","comments":"","outputs":1,"x":1286.9961223602295,"y":2627.8214263916016,"z":"27680826.c34468","wires":[[]]},{"id":"20ed0c21.a3cea4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t","comments":"","x":1282.7102794647217,"y":2590.6785867512226,"z":"27680826.c34468","wires":[]},{"id":"d5474dab.60238","type":"returnSuccess","name":"return success","xml":" <return status=\"success\">\n \t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n","comments":"","x":871.2500114440918,"y":2653.750039100647,"z":"27680826.c34468","wires":[]},{"id":"8d827339.1c42b","type":"save","name":"Update subnet to ERROR in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1645,"y":2030,"z":"27680826.c34468","wires":[["8cbeccd1.f9f09","8f247d12.836b4"]]},{"id":"762b5c85.0a9c64","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t","comments":"","x":2013.5713806152344,"y":2037.1428756713867,"z":"27680826.c34468","wires":[]},{"id":"8cbeccd1.f9f09","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1864.4332580566406,"y":2039.1428756713867,"z":"27680826.c34468","wires":[["762b5c85.0a9c64"]]},{"id":"8f247d12.836b4","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1865.2903671264648,"y":2073.428596287966,"z":"27680826.c34468","wires":[["a0381945.6d59b8"]]},{"id":"a0381945.6d59b8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t","comments":"","x":2012.5712203979492,"y":2069.428626805544,"z":"27680826.c34468","wires":[]},{"id":"464fd495.cf609c","type":"delete","name":"delete subnet from AAI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\">","comments":"","outputs":1,"x":1620.0000228881836,"y":2072.500030517578,"z":"27680826.c34468","wires":[[]]},{"id":"a20fd9fb.925b28","type":"save","name":"save MDSAL: status = ERROR","xml":"<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","comments":"","outputs":1,"x":1648.7500305175781,"y":2108.7500324249268,"z":"27680826.c34468","wires":[[]]},{"id":"9248d319.32eca","type":"save","name":"update AnAI - subnet with status Created","xml":"<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n\t<parameter name=\"orchestration-status\" value=\"Created\" />\n\t\t","comments":"","outputs":1,"x":987.5,"y":2148.75,"z":"27680826.c34468","wires":[["e721afd8.6b7fd","a840e96b.b77e58"]]},{"id":"e721afd8.6b7fd","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1218.750015258789,"y":2146.2500324249268,"z":"27680826.c34468","wires":[["6b63f80c.bf9f48"]]},{"id":"a840e96b.b77e58","type":"not-found","name":"not-found","xml":"<outcome value='not-found'>\n","comments":"","outputs":1,"x":1222.473159790039,"y":2107.6430988311768,"z":"27680826.c34468","wires":[[]]},{"id":"254d88c0.e33728","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'\" />","comments":"","x":1501.8383026123047,"y":2387.630959510803,"z":"27680826.c34468","wires":[]},{"id":"49bd89dd.347df8","type":"save","name":"Update subnet to ERROR in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1548.7500228881836,"y":2206.250032901764,"z":"27680826.c34468","wires":[["d689da68.0fe738","c156daaa.557638"]]},{"id":"674a1d7e.5ff8a4","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t","comments":"","x":1917.321403503418,"y":2213.3929085731506,"z":"27680826.c34468","wires":[]},{"id":"d689da68.0fe738","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1768.1832809448242,"y":2215.3929085731506,"z":"27680826.c34468","wires":[["674a1d7e.5ff8a4"]]},{"id":"c156daaa.557638","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1769.0403900146484,"y":2249.6786291897297,"z":"27680826.c34468","wires":[["ea4dac01.f7adf"]]},{"id":"ea4dac01.f7adf","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t","comments":"","x":1916.3212432861328,"y":2245.678659707308,"z":"27680826.c34468","wires":[]},{"id":"7aee0fd2.86834","type":"delete","name":"delete subnet from AAI","xml":"<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\">","comments":"","outputs":1,"x":1523.7500457763672,"y":2248.750063419342,"z":"27680826.c34468","wires":[[]]},{"id":"ceb28977.cdbe68","type":"record","name":"record","xml":"<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Update status to Created failed in AAI\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>","comments":"","outputs":1,"x":1467.5000076293945,"y":2169.999999523163,"z":"27680826.c34468","wires":[[]]},{"id":"6b63f80c.bf9f48","type":"block","name":"block","xml":"<block>\n","atomic":"false","comments":"","outputs":1,"x":1333.7500190734863,"y":2170.0000324249268,"z":"27680826.c34468","wires":[["ceb28977.cdbe68","49bd89dd.347df8","7aee0fd2.86834","254d88c0.e33728","ea9252e3.5d502","51cffb75.2a5354"]]},{"id":"ea9252e3.5d502","type":"execute","name":"execute Contrail API delete subnet","xml":"<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='subnet' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\n<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n","comments":"","outputs":1,"x":1555,"y":2292.5,"z":"27680826.c34468","wires":[["384875a9.cdbcaa"]]},{"id":"384875a9.cdbcaa","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1770,"y":2288.75,"z":"27680826.c34468","wires":[["5e6cec1c.8f8184"]]},{"id":"5e6cec1c.8f8184","type":"returnFailure","name":"return failure","xml":"<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n","comments":"","x":1926.25,"y":2290,"z":"27680826.c34468","wires":[]},{"id":"24a55a09.887c56","type":"save","name":"Update subnet to CREATED in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'CREATED'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":922.5,"y":2258.75,"z":"27680826.c34468","wires":[["1e94d227.4eeefe","ef4471e5.aa12e"]]},{"id":"37c7ceb5.4681d2","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to CREATED in mysql.\" />\n\t","comments":"","x":1291.0713806152344,"y":2265.8928756713867,"z":"27680826.c34468","wires":[]},{"id":"1e94d227.4eeefe","type":"failure","name":"failure","xml":"<outcome value='failure'>\n","comments":"","outputs":1,"x":1141.9332580566406,"y":2267.8928756713867,"z":"27680826.c34468","wires":[["37c7ceb5.4681d2"]]},{"id":"ef4471e5.aa12e","type":"not-found","name":"not-found","xml":"<outcome value=\"not-found\">","comments":"","outputs":1,"x":1142.7903671264648,"y":2302.178596287966,"z":"27680826.c34468","wires":[["f2e46833.bbd3f8"]]},{"id":"f2e46833.bbd3f8","type":"returnFailure","name":"return failure","xml":"<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to CREATED in mysql.\" />\n\t","comments":"","x":1290.0712203979492,"y":2298.178626805544,"z":"27680826.c34468","wires":[]},{"id":"4939e504.9f364c","type":"save","name":"Update subnet to PENDING-ACTIVE in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'PENDING-ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1227.5,"y":112.5,"z":"27680826.c34468","wires":[[]]},{"id":"f38846a2.f8b938","type":"save","name":"Update subnet to ERROR in DB","xml":"<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n","comments":"","outputs":1,"x":1337.142822265625,"y":471.4285888671875,"z":"27680826.c34468","wires":[[]]},{"id":"7b0ec3aa.9f133c","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1647.1429138183594,"y":1992.8571271896362,"z":"27680826.c34468","wires":[]},{"id":"51cffb75.2a5354","type":"set","name":"set: status = ERROR","xml":"<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />","x":1517.142822265625,"y":2338.571533203125,"z":"27680826.c34468","wires":[]}]
+[
+    {
+        "id": "e2caddb4.aa4f3",
+        "type": "dgstart",
+        "name": "DGSTART",
+        "outputs": 1,
+        "x": 84,
+        "y": 72.68333053588867,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "7dfa29c7.e57d58"
+            ]
+        ]
+    },
+    {
+        "id": "cbc97fd8.e73ef",
+        "type": "success",
+        "name": "outcome success",
+        "xml": "<outcome value=\"success\">\n",
+        "outputs": 1,
+        "x": 766.6665115356445,
+        "y": 180.71110725402832,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "3bd2d930.bf75f6"
+            ]
+        ]
+    },
+    {
+        "id": "890652c0.be9cf",
+        "type": "other",
+        "name": "outcome Other ",
+        "xml": "<outcome value=\"Other\"> \n\n",
+        "outputs": 1,
+        "x": 693.416633605957,
+        "y": 337.10004234313965,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "5f7d48df.f75b98"
+            ]
+        ]
+    },
+    {
+        "id": "d6b0362c.9c5128",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": " <return status=\"success\">\n \n",
+        "x": 1165.1664276123047,
+        "y": 248.68336868286133,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "1b062aa5.755935",
+        "type": "method",
+        "name": "subnet-allocated-notification",
+        "xml": "<method rpc='subnet-allocated-notification' mode='sync'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 653.8667144775391,
+        "y": 72.55000305175781,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "ddfcf206.07bf7"
+            ]
+        ]
+    },
+    {
+        "id": "ddfcf206.07bf7",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 91.86669158935547,
+        "y": 149.80000495910645,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "64574d3b.bdf2e4",
+                "1c03d112.43261f"
+            ]
+        ]
+    },
+    {
+        "id": "64574d3b.bdf2e4",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 263.2595672607422,
+        "y": 163.63769435882568,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8ad2bbea.c97f08",
+        "type": "configure",
+        "name": "configure ncs SNIIR ",
+        "xml": "<configure adaptor=\"com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor\" key=\"SNIIR\" activate=\"true\">\n\t<parameter name=\"input.request-id\" value=\"`$eipam-ip-block.request-id`\" />\n\t<parameter name=\"input.source\" value=\"SDNC\" />\n\t<parameter name=\"input.ptnii-name\" value=\"`$eipam-ip-block.ptnii-name`\" />\n\t<parameter name=\"input.ip-address\" value=\"`$eipam-ip-block.ip-address`\" />\n\t<parameter name=\"input.mask\" value=\"`$eipam-ip-block.prefix-length`\" />",
+        "outputs": 1,
+        "x": 473.41666412353516,
+        "y": 335.6000442504883,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "cbc97fd8.e73ef",
+                "890652c0.be9cf"
+            ]
+        ]
+    },
+    {
+        "id": "3bd2d930.bf75f6",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "outputs": 1,
+        "x": 918.4999237060547,
+        "y": 181.49443435668945,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "2dc51873.fbbc88",
+                "810874e3.8849c8",
+                "d6b0362c.9c5128",
+                "436f433.ffb90bc"
+            ]
+        ]
+    },
+    {
+        "id": "2dc51873.fbbc88",
+        "type": "set",
+        "name": "set: status = Pending Active",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"PENDING-ACTIVE\" />",
+        "x": 1197.4667205810547,
+        "y": 157.05000686645508,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "810874e3.8849c8",
+        "type": "save",
+        "name": "save: status = Pending Active",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"PENDING-ACTIVE\" />",
+        "outputs": 1,
+        "x": 1206.4666595458984,
+        "y": 203.04997634887695,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "54ca6207.0cfb2c",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />",
+        "comments": "",
+        "x": 1289.967025756836,
+        "y": 507.8610420227051,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "344b0bc7.6af414",
+        "type": "save",
+        "name": "save: status = NCS_IP_SUBNET_INSTALL_ERROR",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1386.217300415039,
+        "y": 555.8610315322876,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7dfa29c7.e57d58",
+        "type": "service-logic",
+        "name": "SUBNET-API ${project.version}",
+        "module": "SUBNET-API",
+        "version": "${project.version}",
+        "comments": "",
+        "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>",
+        "outputs": 1,
+        "x": 321.9500274658203,
+        "y": 73.00001525878906,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "1b062aa5.755935"
+            ]
+        ]
+    },
+    {
+        "id": "31daf633.7ba63a",
+        "type": "comment",
+        "name": "ChangeLog",
+        "info": "1.0.0: Release 1504\n2.0.0: Release 1507 - Remove Update Inventory\n9/16: update record node format\nRelease 1710 - update to include VIPR & SRIOV address plans\n12/15/17: update AAI VPE to GENERIC-VNF for ADIod\n\t\tUS 518510 - 291247b-F24748: SDN-CP to update SUBNET-SERVICE DG for vPE orchestration on AIC 3.X",
+        "comments": "",
+        "x": 69.94999694824219,
+        "y": 20,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "5f7d48df.f75b98",
+        "type": "execute",
+        "name": "execute EIPAM deletePool",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"deletePool\">\n\n",
+        "comments": "subnet and subnet_keys are deleted in the EIPAMPlugin",
+        "outputs": 1,
+        "x": 908.5182647705078,
+        "y": 334.06732749938965,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "14809a55.ca7476",
+                "8d1a7b1c.633738"
+            ]
+        ]
+    },
+    {
+        "id": "5975d49b.222cac",
+        "type": "set",
+        "name": "set: status = Deleted",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"DELETED\" />",
+        "comments": "",
+        "x": 1554.518051147461,
+        "y": 269.7616767883301,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "14809a55.ca7476",
+        "type": "other",
+        "name": "outcome Other ",
+        "xml": "<outcome value=\"Other\"> \n\n",
+        "outputs": 1,
+        "x": 1149.0736541748047,
+        "y": 389.6505928039551,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "e862d426.78f0b8"
+            ]
+        ]
+    },
+    {
+        "id": "e862d426.78f0b8",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1049.4341278076172,
+        "y": 484.76176834106445,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "54ca6207.0cfb2c",
+                "e8cb542a.45f388",
+                "72c4110c.bb7ed",
+                "c52a41c3.18f85"
+            ]
+        ]
+    },
+    {
+        "id": "e8cb542a.45f388",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete\" />\n",
+        "comments": "",
+        "x": 1261.767578125,
+        "y": 698.650580406189,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "8d1a7b1c.633738",
+        "type": "success",
+        "name": "outcome success",
+        "xml": "<outcome value=\"success\">\n",
+        "outputs": 1,
+        "x": 1158.2432098388672,
+        "y": 336.79436111450195,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "62fdd070.1af19"
+            ]
+        ]
+    },
+    {
+        "id": "9b97f6d.5105208",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"1000\" />\n              <parameter name=\"error-message\" value=\"IpBlockInstall failure and deletePool deleted in EIPAM\" />\n",
+        "comments": "",
+        "x": 1529.1320037841797,
+        "y": 415.0164680480957,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "62fdd070.1af19",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "outputs": 1,
+        "x": 1355.348300933838,
+        "y": 336.6303253173828,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "5975d49b.222cac",
+                "9b97f6d.5105208"
+            ]
+        ]
+    },
+    {
+        "id": "84a4163.f8d0ee8",
+        "type": "save",
+        "name": "Update AAI: NCS_IP_SUBNET_INSTALL_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" key=\"generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-status\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1762.0000228881836,
+        "y": 365.35004234313965,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c52a41c3.18f85",
+        "type": "save",
+        "name": "Update AAI: NCS_IP_SUBNET_INSTALL_ERROR, PREPROV",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" resource=\"generic-vnf\" key=\"generic-vnf.vnf-id = $tmp.vpe-pool.vpe-id\" pfx=\"vpe-after\">\n\t<parameter name=\"operational-status\" value=\"NCS_IP_SUBNET_INSTALL_ERROR\" />\n\t<parameter name=\"summary-status\" value=\"`$aai-summary-status-message`\" />\n\t<parameter name=\"prov-status\" value=\"PREPROV\" />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1416.166732788086,
+        "y": 649.6833076477051,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "6fe30b95.3674d4",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"IpBlockInstall failure and pool deleted in EIPAM.\"/>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1625.3333587646484,
+        "y": 319.6833381652832,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "aeadd804.b843a8",
+        "type": "execute",
+        "name": "execute: set aai-summary-status-message",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\n<parameter name=\"key1\" value=\"IpBlockInstall failure and pool deletion failed in EIPAM, need to manually delete.\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1355.3333587646484,
+        "y": 603.6833076477051,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "1c03d112.43261f",
+        "type": "switchNode",
+        "name": "switch: ptnii_name",
+        "xml": "<switch test=\"`$eipam-ip-block.ptnii-name`\">",
+        "comments": "Need to know which ipv version to get the plan name from the network-model.",
+        "outputs": 1,
+        "x": 116.67860412597656,
+        "y": 223.75476360321045,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "51cbbf6e.bce95",
+                "2171ca6e.b25e66"
+            ]
+        ]
+    },
+    {
+        "id": "2171ca6e.b25e66",
+        "type": "other",
+        "name": "Null",
+        "xml": "<outcome value=''>",
+        "comments": "If no ptnii-name, check if VIPR or SRIOV",
+        "outputs": 1,
+        "x": 201.67856979370117,
+        "y": 895.0047702789307,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "909ee043.2df28"
+            ]
+        ]
+    },
+    {
+        "id": "51cbbf6e.bce95",
+        "type": "other",
+        "name": "Other",
+        "xml": "<outcome value='Other'>",
+        "comments": "If there's ptnii-name, then it's Gamma service",
+        "outputs": 1,
+        "x": 152.9285774230957,
+        "y": 282.50476455688477,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "8d875ca6.a136"
+            ]
+        ]
+    },
+    {
+        "id": "909ee043.2df28",
+        "type": "execute",
+        "name": "execute plan-name startsWith AIC",
+        "xml": "<execute plugin=\"org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils\" method=\"startsWith\" emitsOutcome='true' >\n<parameter name=\"source\" value=\"`toUpperCase($eipam-ip-block.plan-name)`\" />\n<parameter name=\"target\" value=\"AIC_\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 411.6785659790039,
+        "y": 896.2547702789307,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "d3d5f0b0.4a664",
+                "86c22fba.8ed29"
+            ]
+        ]
+    },
+    {
+        "id": "86c22fba.8ed29",
+        "type": "outcomeTrue",
+        "name": "true",
+        "xml": "<outcome value='true'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 624.1785736083984,
+        "y": 940.004771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "131053a4.d1dffc"
+            ]
+        ]
+    },
+    {
+        "id": "d3d5f0b0.4a664",
+        "type": "outcomeFalse",
+        "name": "false",
+        "xml": "<outcome value='false'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 625.4285736083984,
+        "y": 897.254771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "9725cb51.702688"
+            ]
+        ]
+    },
+    {
+        "id": "131053a4.d1dffc",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 771.6785659790039,
+        "y": 941.2547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "9659a3ea.e5ef3",
+                "3ffd19bb.4f4e36",
+                "f1fc5eba.89bce",
+                "c77e4701.89df28",
+                "cf6722db.8b927",
+                "33a7298c.a1e5c6",
+                "5fb42e09.35366",
+                "de60f20e.7fe8c",
+                "9b32befa.3ad65",
+                "7437f146.91864",
+                "1d533385.91dbac",
+                "ed912931.696a38",
+                "38409251.785ace",
+                "e60d143a.a53bf8",
+                "eccae1c1.cfd61",
+                "3b0f0963.0e3606",
+                "605747f6.c15988",
+                "f634ef3e.b5b91",
+                "57bed018.e09e4",
+                "325c38e8.bf4558",
+                "22f00d11.312d02",
+                "75fff231.25968c",
+                "d916c321.529dc"
+            ]
+        ]
+    },
+    {
+        "id": "9725cb51.702688",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n              <parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown Address Plan - not supported!\" />\n",
+        "comments": "",
+        "x": 766.6785659790039,
+        "y": 898.7547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "9659a3ea.e5ef3",
+        "type": "get-resource",
+        "name": "get-resource - validate pool exists already",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;\"\n        pfx='tmp.eipam-pool-row'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1032.928581237793,
+        "y": 942.5047702789307,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "34771a54.041056",
+                "b267fd26.f533b"
+            ]
+        ]
+    },
+    {
+        "id": "b267fd26.f533b",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1299.2904014587402,
+        "y": 895.2547702789307,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "6b0324a2.349bec"
+            ]
+        ]
+    },
+    {
+        "id": "34771a54.041056",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1306.5405235290527,
+        "y": 970.504771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "83c66d87.67bd"
+            ]
+        ]
+    },
+    {
+        "id": "cbbdd8aa.7d2a38",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"This record is not found in DB!\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1661.6785888671875,
+        "y": 941.254771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "a891b62.8fdbc48",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n  \t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n  \t\t<parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown EIPAM pool - not found in DB!\" />\n",
+        "comments": "",
+        "x": 1680.4285926818848,
+        "y": 980.004771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "83c66d87.67bd",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1484.1785888671875,
+        "y": 971.254771232605,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "cbbdd8aa.7d2a38",
+                "a891b62.8fdbc48"
+            ]
+        ]
+    },
+    {
+        "id": "b4649f8b.b431",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"Failed to find this record in DB!\"/>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1661.6785888671875,
+        "y": 862.5047731399536,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "4d6d74bf.b02c3c",
+        "type": "returnFailure",
+        "name": "return failure ",
+        "xml": "  <return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n              <parameter name=\"error-code\" value=\"500\" />\n              <parameter name=\"error-message\" value=\"Unknown EIPAM pool - not found in DB!\" />\n",
+        "comments": "",
+        "x": 1680.4285926818848,
+        "y": 901.2547731399536,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "6b0324a2.349bec",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1484.1785888671875,
+        "y": 892.5047731399536,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "b4649f8b.b431",
+                "4d6d74bf.b02c3c"
+            ]
+        ]
+    },
+    {
+        "id": "3ffd19bb.4f4e36",
+        "type": "get-resource",
+        "name": "get-resource - validate if initial level 2 subnet exists",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; \"\n        pfx='pfx.eipam-initial-subnet'>\n\n",
+        "comments": "initial subnet should exists",
+        "outputs": 1,
+        "x": 1059.1786041259766,
+        "y": 1007.5047760009766,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "ce6bcabe.97f718",
+                "421560eb.81bf2"
+            ]
+        ]
+    },
+    {
+        "id": "bb5d9c34.1d4fc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t",
+        "comments": "",
+        "x": 1481.4285430908203,
+        "y": 1005.7547626495361,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "ce6bcabe.97f718",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1329.7904052734375,
+        "y": 1010.2547721862793,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "bb5d9c34.1d4fc"
+            ]
+        ]
+    },
+    {
+        "id": "421560eb.81bf2",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1330.040470123291,
+        "y": 1044.7547664642334,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "562b2139.070f1"
+            ]
+        ]
+    },
+    {
+        "id": "8994e422.3636c8",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"subnet-allocated-notification\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$eipam-ip-block.ptnii-name`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 2332.928565979004,
+        "y": 943.7547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "c77e4701.89df28",
+        "type": "save",
+        "name": "insert new EIPAM_IP_SUBNETS for level 2",
+        "xml": "<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNETS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             service_type = $pfx.eipam-initial-subnet.service-type ,\n             ip_address = $eipam-ip-block.ip-prefix ,\n             prefix_length = $eipam-ip-block.mask ,\n             plan_name = $eipam-ip-block.plan-name ,\n             status = 'PENDING_ACTIVE' ,\n             pool_id = $pfx.eipam-initial-subnet.pool-id ,\n             address_family = $pfx.eipam-initial-subnet.address-family ,\n             network_id = $pfx.eipam-initial-subnet.network-id ; \"\n    force='true'\n        pfx='pfx.eipam-new-subnet'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1044.178581237793,
+        "y": 1271.2548027038574,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "b8b710a5.faa7c",
+                "c385bfae.d3b5e"
+            ]
+        ]
+    },
+    {
+        "id": "cf6722db.8b927",
+        "type": "save",
+        "name": "insert EIPAM_IP_SUBNET_KEYS for level 1",
+        "xml": "<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level1-key-name ,\n             key_value = $tmp.level1-key-value ,\n             level = 1 ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-level1'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1059.1783981323242,
+        "y": 1313.2547454833984,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "c385bfae.d3b5e",
+                "160a99ef.650b86"
+            ]
+        ]
+    },
+    {
+        "id": "33a7298c.a1e5c6",
+        "type": "save",
+        "name": "insert EIPAM_IP_SUBNET_KEYS for level 2",
+        "xml": "<save\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"INSERT EIPAM_IP_SUBNET_KEYS\n             SET\n             entity_id = $eipam-ip-block.entity-id ,\n             key_name = $tmp.level2-key-name ,\n             key_value = $tmp.level2-key-value ,\n             level = 2 ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-level2'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1058.1785202026367,
+        "y": 1359.2547760009766,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "c385bfae.d3b5e",
+                "160a99ef.650b86"
+            ]
+        ]
+    },
+    {
+        "id": "b8b710a5.faa7c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>",
+        "outputs": 1,
+        "x": 1379.4619102478027,
+        "y": 1284.754801750183,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "23e6f9d8.6f5356"
+            ]
+        ]
+    },
+    {
+        "id": "c385bfae.d3b5e",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1380.3048629760742,
+        "y": 1322.4049453735352,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "160a99ef.650b86",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>",
+        "outputs": 1,
+        "x": 1381.0180625915527,
+        "y": 1358.2548027038574,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "201429d8.95bf06"
+            ]
+        ]
+    },
+    {
+        "id": "f1fc5eba.89bce",
+        "type": "get-resource",
+        "name": "get-resource - validate if subnet with same ip exists",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; \"\n        pfx='pfx.eipam-subnet-with-same-ip'>\n\n",
+        "comments": "check if new subnet already exists, possibly from previous attempt.",
+        "outputs": 1,
+        "x": 1062.928596496582,
+        "y": 1083.754774093628,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "ba1f099b.3a0878",
+                "bfe13ef7.e3f2"
+            ]
+        ]
+    },
+    {
+        "id": "725e871e.2731f8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed.\" />\n\t",
+        "comments": "",
+        "x": 1486.4286613464355,
+        "y": 1082.0047636032104,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "ba1f099b.3a0878",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1334.7905235290527,
+        "y": 1086.5047731399536,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "725e871e.2731f8"
+            ]
+        ]
+    },
+    {
+        "id": "bfe13ef7.e3f2",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1346.2906188964844,
+        "y": 1128.5047845840454,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "dcf3f5f7.409df8",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1376.6786499023438,
+        "y": 1427.504789352417,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "c4a8d945.3c0a58"
+            ]
+        ]
+    },
+    {
+        "id": "c4a8d945.3c0a58",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'\" />",
+        "comments": "",
+        "x": 1539.873046875,
+        "y": 1427.6160106658936,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "5fb42e09.35366",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network subnet by network-id and subnet-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\"\n\t\tlocal-only=\"false\" \n\t\tpfx=\"tmp.aai-initial-subnet\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1080.1507034301758,
+        "y": 1435.739423751831,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "dcf3f5f7.409df8",
+                "6b48a955.5b2088"
+            ]
+        ]
+    },
+    {
+        "id": "6b48a955.5b2088",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1369.4007568359375,
+        "y": 1465.989393234253,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "1c6d8420.6c07fc"
+            ]
+        ]
+    },
+    {
+        "id": "1c6d8420.6c07fc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' from AnAI'\" />",
+        "comments": "",
+        "x": 1521.5118408203125,
+        "y": 1466.2116222381592,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "562b2139.070f1",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Initial subnet not found, cannot auto extend.\" />\n\t",
+        "comments": "",
+        "x": 1484.1785354614258,
+        "y": 1043.7547645568848,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "23e6f9d8.6f5356",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Insert to DB table EIPAM_IP_SUBNETS failed.\" />\n\t",
+        "comments": "",
+        "x": 1516.678565979004,
+        "y": 1287.504783630371,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "201429d8.95bf06",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Insert to DB table EIPAM_IP_SUBNET_KEYS failed.\" />\n\t",
+        "comments": "",
+        "x": 1520.428565979004,
+        "y": 1356.254783630371,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "8d83ed60.0715f",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1250.018955230713,
+        "y": 1851.4807324409485,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "e81fdab.a073e28"
+            ]
+        ]
+    },
+    {
+        "id": "689d1c14.7b79e4",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1258.742099761963,
+        "y": 1889.123920917511,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "de60f20e.7fe8c",
+        "type": "save",
+        "name": "save AnAI - l3-network.subnets",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<!-- Create l3-network object -->\n<parameter name=\"network-id\" value=\"`$pfx.eipam-initial-subnet.network-id`\" />\n<parameter name=\"subnet-id\" value=\"`$eipam-ip-block.entity-id`\" />\n<parameter name=\"subnet-name\" value=\"`$tmp.l3-network.subnet.subnet-name`\" />\n<parameter name=\"gateway-address\" value=\"`$tmp.return.generate.gateway-address`\" />\n<parameter name=\"network-start-address\" value=\"`$eipam-ip-block.ip-prefix`\" />\n<parameter name=\"cidr-mask\" value=\"`$eipam-ip-block.prefix-length`\" />\n<parameter name=\"ip-version\" value=\"`$tmp.version`\" />\n<parameter name=\"dhcp-start\" value=\"`$tmp.l3-network.subnet.dhcp-start`\" />\n<parameter name=\"dhcp-end\" value=\"`$tmp.l3-network.subnet.dhcp-end`\" />\n<parameter name=\"dhcp-enabled\" value=\"`$tmp.l3-network.subnet.dhcp-enabled`\" />\n<parameter name=\"orchestration-status\" value=\"PendingCreate\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 990.539966583252,
+        "y": 1868.5165219306946,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "689d1c14.7b79e4",
+                "8d83ed60.0715f"
+            ]
+        ]
+    },
+    {
+        "id": "26fc5e9d.ee8832",
+        "type": "call",
+        "name": "call GENERIC-RESOURCE-API:create-l3-subnet",
+        "xml": "<call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >\n",
+        "comments": "tmp.level should be set to 1",
+        "outputs": 1,
+        "x": 1787.928581237793,
+        "y": 1463.7548065185547,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "32ccea0f.159e96",
+        "type": "comment",
+        "name": "Get service_type from initial subnet",
+        "info": "",
+        "comments": "",
+        "x": 772.9285659790039,
+        "y": 1053.7547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "49a09274.40efdc",
+        "type": "set",
+        "name": "set dhcp data",
+        "xml": "<set>\n<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />\n<parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\n<parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\n\n\n",
+        "comments": "",
+        "x": 1646.6786155700684,
+        "y": 1767.5048027038574,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "9b32befa.3ad65",
+        "type": "execute",
+        "name": "execute getSubnetAddresses",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool\" method=\"getSubnetAddresses\">\n\t<parameter name=\"ipAddress\" value=\"`$eipam-ip-block.ip-prefix`\" />\n\t<parameter name=\"ipVersion\" value=\"`tmp.version`\" />\n\t<parameter name=\"subnet\" value=\"`$eipam-ip-block.prefix-length`\" />\n\t<parameter name=\"ctxGateway\" value=\"tmp.return.generate.gateway-address\" />\n\t<parameter name=\"ctxDhcpStart\" value=\"tmp.return.generate.dhcp-start-address\" />\n\t<parameter name=\"ctxDhcpEnd\" value=\"tmp.return.generate.dhcp-end-address\" />\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 999.5357971191406,
+        "y": 1695.7905054092407,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "f44d5fe7.afc4f"
+            ]
+        ]
+    },
+    {
+        "id": "ed912931.696a38",
+        "type": "switchNode",
+        "name": "switch tmp.aai-initial-subnet.dhcp-enabled",
+        "xml": "<switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1031.1868209838867,
+        "y": 1758.869896888733,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "3cab0bd5.728684",
+                "3cc191c.8042f6e"
+            ]
+        ]
+    },
+    {
+        "id": "3cab0bd5.728684",
+        "type": "other",
+        "name": "Y",
+        "xml": "<outcome value='Y'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1286.9008502960205,
+        "y": 1768.8698720932007,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "266fb95c.68e316"
+            ]
+        ]
+    },
+    {
+        "id": "266fb95c.68e316",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1447.3770866394043,
+        "y": 1768.8698587417603,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "49a09274.40efdc"
+            ]
+        ]
+    },
+    {
+        "id": "f44d5fe7.afc4f",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1231.451187133789,
+        "y": 1695.5629892349243,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "9f2e9d98.83945"
+            ]
+        ]
+    },
+    {
+        "id": "9f2e9d98.83945",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Failed to generate gateway addresses using IpAddressTools\" />",
+        "comments": "",
+        "x": 1403.1177368164062,
+        "y": 1695.5629892349243,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "14d86ca2.7154c3",
+        "type": "set",
+        "name": "set l3network.subnet",
+        "xml": "<set>\n<parameter name='tmp.l3-network.subnet.subnet-name' value=\"`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`\" />\n",
+        "comments": "",
+        "x": 1393.3296279907227,
+        "y": 1578.869887828827,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "3cc191c.8042f6e",
+        "type": "other",
+        "name": "N",
+        "xml": "<outcome value='N'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1289.4406433105469,
+        "y": 1804.584153175354,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "68a37c0d.2a6604"
+            ]
+        ]
+    },
+    {
+        "id": "71a33119.8d0e1",
+        "type": "set",
+        "name": "set dhcp data",
+        "xml": "<set>\n<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />\n<parameter name='tmp.l3-network.subnet.dhcp-start' value='' />\n<parameter name='tmp.l3-network.subnet.dhcp-end' value='' />\n\n\n",
+        "comments": "",
+        "x": 1649.4406433105469,
+        "y": 1803.1555948257446,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "68a37c0d.2a6604",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic=\"true\">",
+        "atomic": "true",
+        "outputs": 1,
+        "x": 1450.1391143798828,
+        "y": 1804.5206508636475,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "71a33119.8d0e1"
+            ]
+        ]
+    },
+    {
+        "id": "76b8ab04.2a4724",
+        "type": "not-found",
+        "name": "not found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1282.3928146362305,
+        "y": 1168.3975982666016,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "686791c9.12b07"
+            ]
+        ]
+    },
+    {
+        "id": "7437f146.91864",
+        "type": "get-resource",
+        "name": "get AnAI - l3-network by network-id",
+        "xml": "<get-resource plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"l3-network\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\" \n\t\tlocal-only=\"false\" \n\t\tpfx=\"aai.l3-network\">\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1047.1149215698242,
+        "y": 1172.8822021484375,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "76b8ab04.2a4724",
+                "d141964d.436768"
+            ]
+        ]
+    },
+    {
+        "id": "d141964d.436768",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1275.1149215698242,
+        "y": 1206.8822021484375,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "4b5e945f.17c4cc"
+            ]
+        ]
+    },
+    {
+        "id": "1d533385.91dbac",
+        "type": "switchNode",
+        "name": "switch get current # of subnets",
+        "xml": "<switch test='`$aai.l3-network.subnets.subnet_length`'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1013.4286193847656,
+        "y": 1541.754774570465,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "683368b.b1aa498",
+                "823674a7.f95ee8"
+            ]
+        ]
+    },
+    {
+        "id": "683368b.b1aa498",
+        "type": "other",
+        "name": "outcome Null",
+        "xml": "<outcome value=''>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1237.1786270141602,
+        "y": 1540.504774570465,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "ae7ce728.270eb8"
+            ]
+        ]
+    },
+    {
+        "id": "823674a7.f95ee8",
+        "type": "other",
+        "name": "other",
+        "xml": "<outcome value='Other'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1223.178611755371,
+        "y": 1579.2547793388367,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "14d86ca2.7154c3"
+            ]
+        ]
+    },
+    {
+        "id": "4b5e945f.17c4cc",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'\" />",
+        "comments": "",
+        "x": 1426.142837524414,
+        "y": 1208.3976211547852,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "686791c9.12b07",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'\" />",
+        "comments": "",
+        "x": 1438.6428146362305,
+        "y": 1167.1475982666016,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "ae7ce728.270eb8",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"404\" />\n\t<parameter name=\"error-message\" value=\"'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id\" />",
+        "comments": "",
+        "x": 1404.1786270141602,
+        "y": 1540.004744052887,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "e81fdab.a073e28",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'\" />",
+        "comments": "",
+        "x": 1392.928623199463,
+        "y": 1851.2547779083252,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "38409251.785ace",
+        "type": "execute",
+        "name": "execute Contrail API create subnet",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='subnet' />\n<parameter name='api-action' value='add' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\n<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n<parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />\n<parameter name='dns-server-address' value='0.0.0.0' />\n<parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />\n<parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />\n<parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />\n<parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />\n<parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1010.4286422729492,
+        "y": 1985.004786491394,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "3f3c4dfb.edd672",
+                "b55baea1.688c1"
+            ]
+        ]
+    },
+    {
+        "id": "3f3c4dfb.edd672",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1315.5594863891602,
+        "y": 1961.897045765072,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "dd95f113.bb3b3"
+            ]
+        ]
+    },
+    {
+        "id": "b55baea1.688c1",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1313.6548080444336,
+        "y": 1994.8969855308533,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "2cdedcb.0fb6624"
+            ]
+        ]
+    },
+    {
+        "id": "b618419.a7745c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1611.0595741271973,
+        "y": 2134.2303714752197,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "dd95f113.bb3b3",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1467.7499694824219,
+        "y": 1962.5637707710266,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e60d143a.a53bf8",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 946.6785659790039,
+        "y": 1397.504783630371,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "eccae1c1.cfd61",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added a subnetin AAI\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 920.4286041259766,
+        "y": 1918.7547497749329,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3b0f0963.0e3606",
+        "type": "set",
+        "name": "set request-id",
+        "xml": "<set>\n<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n",
+        "comments": "",
+        "x": 989.8928298950195,
+        "y": 1220.8976154327393,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "605747f6.c15988",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Added a subnet in Contrail\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 919.1786041259766,
+        "y": 2046.2547497749329,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "2cdedcb.0fb6624",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1437.9285888671875,
+        "y": 2021.2547874450684,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "203ea735.c779e8",
+                "1daaf7b.fd32308",
+                "57933b03.0c74f4",
+                "b618419.a7745c",
+                "7712a.3fec4ed6c"
+            ]
+        ]
+    },
+    {
+        "id": "325c38e8.bf4558",
+        "type": "execute",
+        "name": "execute EIPAM activateSubnet",
+        "xml": "<execute plugin=\"com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin\" method=\"activateSubnet\">\n",
+        "comments": "subnet and subnet_keys are deleted in the EIPAMPlugin",
+        "outputs": 1,
+        "x": 900.4285507202148,
+        "y": 2383.7548093795776,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "756e1a89.f634c4"
+            ]
+        ]
+    },
+    {
+        "id": "756e1a89.f634c4",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>",
+        "outputs": 1,
+        "x": 1110.428581237793,
+        "y": 2385.1451749801636,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "1699aa2c.f5ddc6"
+            ]
+        ]
+    },
+    {
+        "id": "1699aa2c.f5ddc6",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while activating subnet in EIPAM.\" />\n\t",
+        "comments": "",
+        "x": 1274.4285621643066,
+        "y": 2383.8594675064087,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "22f00d11.312d02",
+        "type": "save",
+        "name": "Update subnet to Active in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 899.0000534057617,
+        "y": 2423.754755973816,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "3f14a040.36a47",
+                "42f12379.83832c",
+                "ca35bb05.971478"
+            ]
+        ]
+    },
+    {
+        "id": "66665ee9.9b772",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1267.571434020996,
+        "y": 2430.8976316452026,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "ca35bb05.971478",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1118.1430282592773,
+        "y": 2498.897602081299,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "3f14a040.36a47",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1118.4333114624023,
+        "y": 2432.8976316452026,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "66665ee9.9b772"
+            ]
+        ]
+    },
+    {
+        "id": "42f12379.83832c",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1119.2904205322266,
+        "y": 2467.1833522617817,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "30dfa1a7.69502e"
+            ]
+        ]
+    },
+    {
+        "id": "30dfa1a7.69502e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to active in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1266.571273803711,
+        "y": 2463.18338277936,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "75fff231.25968c",
+        "type": "save",
+        "name": "update AnAI - subnet",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $aai.l3-network.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n<parameter name=\"orchestration-status\" value=\"Created\" />\n\t\t",
+        "comments": "",
+        "outputs": 1,
+        "x": 877.3928356170654,
+        "y": 2559.806347846985,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "6e21e203.9f313c",
+                "b79fac42.5e29"
+            ]
+        ]
+    },
+    {
+        "id": "5827e3d6.a2347c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.\" />\n\t",
+        "comments": "",
+        "x": 1269.1390056610107,
+        "y": 2549.6475925445557,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "d0969e92.5f504",
+        "type": "success",
+        "name": "success",
+        "xml": "<outcome value='success'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1119.710599899292,
+        "y": 2617.647562980652,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "c283102d.9a28"
+            ]
+        ]
+    },
+    {
+        "id": "6e21e203.9f313c",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1108.5722465515137,
+        "y": 2555.933322906494,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "5827e3d6.a2347c"
+            ]
+        ]
+    },
+    {
+        "id": "b79fac42.5e29",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1120.8579921722412,
+        "y": 2585.9333131611347,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "29983bc9.4f3514"
+            ]
+        ]
+    },
+    {
+        "id": "c283102d.9a28",
+        "type": "block",
+        "name": "block : atomic",
+        "xml": "<block atomic='true'>",
+        "atomic": "true",
+        "comments": "",
+        "outputs": 1,
+        "x": 1272.4246883392334,
+        "y": 2619.076183319092,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "29983bc9.4f3514",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"Failure updating orchestration-status in AAI for subnet.  Subnet not found.\" />\n\t",
+        "comments": "",
+        "x": 1268.1388454437256,
+        "y": 2581.933343678713,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "d916c321.529dc",
+        "type": "returnSuccess",
+        "name": "return success",
+        "xml": " <return status=\"success\">\n \t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n",
+        "comments": "",
+        "x": 856.6785774230957,
+        "y": 2645.004796028137,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "203ea735.c779e8",
+        "type": "save",
+        "name": "Update subnet to ERROR in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1630.428565979004,
+        "y": 2021.2547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "d9c60cd1.3e061",
+                "eb6e865f.03b368"
+            ]
+        ]
+    },
+    {
+        "id": "a3879ce0.868fd",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1998.9999465942383,
+        "y": 2028.397632598877,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "d9c60cd1.3e061",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1849.8618240356445,
+        "y": 2030.397632598877,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "a3879ce0.868fd"
+            ]
+        ]
+    },
+    {
+        "id": "eb6e865f.03b368",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1850.7189331054688,
+        "y": 2064.683353215456,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "2a29d972.a51706"
+            ]
+        ]
+    },
+    {
+        "id": "2a29d972.a51706",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1997.9997863769531,
+        "y": 2060.683383733034,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "1daaf7b.fd32308",
+        "type": "delete",
+        "name": "delete subnet from AAI",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1605.4285888671875,
+        "y": 2063.7547874450684,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "57933b03.0c74f4",
+        "type": "save",
+        "name": "save MDSAL: status = ERROR",
+        "xml": "<save plugin=\"org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource\" resource=\"eipam-ip-block\">\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "comments": "",
+        "outputs": 1,
+        "x": 1634.178596496582,
+        "y": 2100.004789352417,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f634ef3e.b5b91",
+        "type": "save",
+        "name": "update AnAI - subnet with status Created",
+        "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\t\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id \n\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\" >\n\t<parameter name=\"orchestration-status\" value=\"Created\" />\n\t\t",
+        "comments": "",
+        "outputs": 1,
+        "x": 972.9285659790039,
+        "y": 2140.0047569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "b228a3df.0cce8",
+                "ff5cf0b4.7228d"
+            ]
+        ]
+    },
+    {
+        "id": "b228a3df.0cce8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1204.178581237793,
+        "y": 2137.504789352417,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "45874148.accf2"
+            ]
+        ]
+    },
+    {
+        "id": "ff5cf0b4.7228d",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value='not-found'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1207.901725769043,
+        "y": 2098.897855758667,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "e4838ecb.b8673",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n\t<parameter name=\"error-message\" value=\"'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'\" />",
+        "comments": "",
+        "x": 1487.2668685913086,
+        "y": 2378.8857164382935,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "346f479b.225938",
+        "type": "save",
+        "name": "Update subnet to ERROR in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1534.1785888671875,
+        "y": 2197.504789829254,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "56abfd21.fa7d64",
+                "fd0ca37a.c8e48"
+            ]
+        ]
+    },
+    {
+        "id": "19a9415f.cf00ff",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1902.7499694824219,
+        "y": 2204.647665500641,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "56abfd21.fa7d64",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1753.6118469238281,
+        "y": 2206.647665500641,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "19a9415f.cf00ff"
+            ]
+        ]
+    },
+    {
+        "id": "fd0ca37a.c8e48",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1754.4689559936523,
+        "y": 2240.93338611722,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "86fbd250.1c628"
+            ]
+        ]
+    },
+    {
+        "id": "86fbd250.1c628",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to ERROR in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1901.7498092651367,
+        "y": 2236.933416634798,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "7cdf33b.16065cc",
+        "type": "delete",
+        "name": "delete subnet from AAI",
+        "xml": "<delete plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\tresource=\"subnet\" \n\tkey=\"l3-network.network-id = $pfx.eipam-initial-subnet.network-id\n\t\t\t\tAND subnet.subnet-id = $eipam-ip-block.entity-id\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1509.178611755371,
+        "y": 2240.0048203468323,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "f13e3925.587088",
+        "type": "record",
+        "name": "record",
+        "xml": "<record plugin=\"org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder\">\n<parameter name=\"logger\" value=\"message-log\"/>\n<parameter name=\"field1\" value=\"__TIMESTAMP__\"/>\n<parameter name=\"field2\" value=\"Update status to Created failed in AAI\"/>\n<parameter name=\"field3\" value=\"`$eipam-ip-block.request-id`\"/>\n<parameter name=\"field4\" value=\"`$eipam-ip-block.entity-id`\"/>\n<parameter name=\"field5\" value=\"`$pfx.eipam-initial-subnet.network-id`\"/>\n<parameter name=\"field6\" value=\"`$eipam-ip-block.ip-address`\"/>\n<parameter name=\"field7\" value=\"`$eipam-ip-block.prefix-length`\"/>\n<parameter name=\"field8\" value=\"`$eipam-ip-block.status`\"/>\n<parameter name=\"field9\" value=\"`$tmp.key-value`\"/>",
+        "comments": "",
+        "outputs": 1,
+        "x": 1452.9285736083984,
+        "y": 2161.254756450653,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "45874148.accf2",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>\n",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 1319.1785850524902,
+        "y": 2161.254789352417,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "f13e3925.587088",
+                "346f479b.225938",
+                "7cdf33b.16065cc",
+                "e4838ecb.b8673",
+                "baa512c3.0963a",
+                "170994e8.eee78b"
+            ]
+        ]
+    },
+    {
+        "id": "baa512c3.0963a",
+        "type": "execute",
+        "name": "execute Contrail API delete subnet",
+        "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\n<parameter name='api-name' value='subnet' />\n<parameter name='api-action' value='delete' />\n<parameter name='resp-prefix' value='contrailResp' />\n<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\n<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1540.428565979004,
+        "y": 2283.7547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "9c1ec68b.c5c7e8"
+            ]
+        ]
+    },
+    {
+        "id": "9c1ec68b.c5c7e8",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1755.428565979004,
+        "y": 2280.0047569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "fd4b323e.9f80e"
+            ]
+        ]
+    },
+    {
+        "id": "fd4b323e.9f80e",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status='failure'>\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `\" />\n",
+        "comments": "",
+        "x": 1911.678565979004,
+        "y": 2281.2547569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "57bed018.e09e4",
+        "type": "save",
+        "name": "Update subnet to CREATED in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'CREATED'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 907.9285659790039,
+        "y": 2250.0047569274902,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "fc6a8361.1b23e",
+                "f102d632.e2c298"
+            ]
+        ]
+    },
+    {
+        "id": "453b14d.e93c4ec",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to CREATED in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1276.4999465942383,
+        "y": 2257.147632598877,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "fc6a8361.1b23e",
+        "type": "failure",
+        "name": "failure",
+        "xml": "<outcome value='failure'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1127.3618240356445,
+        "y": 2259.147632598877,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "453b14d.e93c4ec"
+            ]
+        ]
+    },
+    {
+        "id": "f102d632.e2c298",
+        "type": "not-found",
+        "name": "not-found",
+        "xml": "<outcome value=\"not-found\">",
+        "comments": "",
+        "outputs": 1,
+        "x": 1128.2189331054688,
+        "y": 2293.433353215456,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "14936440.6c927c"
+            ]
+        ]
+    },
+    {
+        "id": "14936440.6c927c",
+        "type": "returnFailure",
+        "name": "return failure",
+        "xml": "<return status=\"failure\">\n\t<parameter name='eipam-ip-block.request-id' value=\"`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`\" />\n\t<parameter name=\"error-code\" value=\"500\"/>\n\t<parameter name=\"error-message\" value=\"An error occured while updating subnet to CREATED in mysql.\" />\n\t",
+        "comments": "",
+        "x": 1275.4997863769531,
+        "y": 2289.433383733034,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "436f433.ffb90bc",
+        "type": "save",
+        "name": "Update subnet to PENDING-ACTIVE in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET status = 'PENDING-ACTIVE'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1212.928565979004,
+        "y": 103.75475692749023,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "72c4110c.bb7ed",
+        "type": "save",
+        "name": "Update subnet to ERROR in DB",
+        "xml": "<save \n\tplugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \n\tresource='SQL'\n\tkey=\"UPDATE EIPAM_IP_SUBNETS\n             SET \n             status = 'ERROR',\n             dealloc_failure = 'deletePool failed in response to NCS_IP_SUBNET_INSTALL_ERROR'\n             WHERE entity_id = $eipam-ip-block.entity-id ; \"\n    force='true'\n        pfx='pfx.eipam-subnet-row'>\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 1303.8214263916016,
+        "y": 446.4333562850952,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "7712a.3fec4ed6c",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "x": 1632.5714797973633,
+        "y": 1984.1118841171265,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "170994e8.eee78b",
+        "type": "set",
+        "name": "set: status = ERROR",
+        "xml": "<set>\n\t<parameter name=\"eipam-ip-block.status\" value=\"ERROR\" />",
+        "x": 1502.571388244629,
+        "y": 2329.8262901306152,
+        "z": "1aeff3d2.0f322c",
+        "wires": []
+    },
+    {
+        "id": "38037809.d5abe8",
+        "type": "get-resource",
+        "name": "get-resource - vpe_pool",
+        "xml": "<get-resource\n        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\n        resource='SQL'\n        key=\"SELECT * FROM VPE_POOL where vpe_name = $eipam-ip-block.ptnii-name ;\"\n        pfx='tmp.vpe-pool-row'>\n\n",
+        "comments": "",
+        "outputs": 1,
+        "x": 490.00001525878906,
+        "y": 247.50000476837158,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            []
+        ]
+    },
+    {
+        "id": "8d875ca6.a136",
+        "type": "block",
+        "name": "block",
+        "xml": "<block>",
+        "atomic": "false",
+        "comments": "",
+        "outputs": 1,
+        "x": 290.0000057220459,
+        "y": 283.7500057220459,
+        "z": "1aeff3d2.0f322c",
+        "wires": [
+            [
+                "8ad2bbea.c97f08"
+            ]
+        ]
+    }
+]
\ No newline at end of file
old mode 100644 (file)
new mode 100755 (executable)
index d0e9808..c3d8ae3
@@ -1,3 +1,11 @@
+GENERIC-RESOURCE-API aai-get-aic-zone ${project.version} sync
+GENERIC-RESOURCE-API aai-get-network-instance-group ${project.version} sync
+GENERIC-RESOURCE-API api-contrail-route-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API api-contrail-route-topology-operation-create ${project.version} sync
+GENERIC-RESOURCE-API api-contrail-route-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API api-contrail-route-topology-operation-delete ${project.version} sync
+GENERIC-RESOURCE-API assign-vlan-tags ${project.version} sync
+GENERIC-RESOURCE-API auto-ip-assignment ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation-assign ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation-create ${project.version} sync
@@ -5,6 +13,7 @@ GENERIC-RESOURCE-API brg-topology-operation-deactivate ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation-delete ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API brg-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API connection-attachment-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API contrail-route-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API contrail-route-topology-operation-assign ${project.version} sync
 GENERIC-RESOURCE-API contrail-route-topology-operation-create ${project.version} sync
@@ -13,20 +22,50 @@ GENERIC-RESOURCE-API contrail-route-topology-operation-delete ${project.version}
 GENERIC-RESOURCE-API contrail-route-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API contrail-route-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API create-l3-subnet ${project.version} sync
+GENERIC-RESOURCE-API create-route-target-and-vpn-binding ${project.version} sync
 GENERIC-RESOURCE-API dci-connects-network-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API dci-connects-network-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API eipam-allocate-generic-subnet ${project.version} sync
 GENERIC-RESOURCE-API eipam-allocate-network-role-subnet ${project.version} sync
+GENERIC-RESOURCE-API eipam-create-generic-pool ${project.version} sync
 GENERIC-RESOURCE-API eipam-create-network-role-pool ${project.version} sync
+GENERIC-RESOURCE-API generate-allottedresource-id ${project.version} sync
+GENERIC-RESOURCE-API generate-FQPN ${project.version} sync
+GENERIC-RESOURCE-API generate-host-routes-host-route-id ${project.version} sync
 GENERIC-RESOURCE-API generate-l3network-network-id ${project.version} sync
 GENERIC-RESOURCE-API generate-panorama-name ${project.version} sync
+GENERIC-RESOURCE-API generate-subnets-subnet-id ${project.version} sync
 GENERIC-RESOURCE-API generate-unique-name ${project.version} sync
+GENERIC-RESOURCE-API generate-vpn-binding-id ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-notification-activate ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-notification-assign ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-notification-deactivate ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-notification-unassign ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-notification ${project.version} sync
+GENERIC-RESOURCE-API generic-configuration-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API get-complex-resource-service-model ${project.version} sync
+GENERIC-RESOURCE-API get-data-from-policy ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-composite-match-pair ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-create-composite-path ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-create-simple-path ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-populate-from-grapi ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-populate-from-vnfapi ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-simple-match-pair ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-topology-operation-create ${project.version} sync
+GENERIC-RESOURCE-API getpathsegment-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API get-tunnelxconn-ar ${project.version} sync
 GENERIC-RESOURCE-API get-vnf-api-parent-instance ${project.version} sync
 GENERIC-RESOURCE-API gw-vfmodule-update ${project.version} sync
 GENERIC-RESOURCE-API manage-ipaddr-assignment ${project.version} sync
 GENERIC-RESOURCE-API manage-vni-assignment ${project.version} sync
+GENERIC-RESOURCE-API naming-policy-generate-name ${project.version} sync
+GENERIC-RESOURCE-API naming-policy-generate-unique-name ${project.version} sync
 GENERIC-RESOURCE-API network-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-assign-automated ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-assign-from-preload ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-assign-vlantagging-instancegroup ${project.version} sync
 GENERIC-RESOURCE-API network-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API network-topology-operation-changeassign ${project.version} sync
 GENERIC-RESOURCE-API network-topology-operation-create ${project.version} sync
 GENERIC-RESOURCE-API network-topology-operation-deactivate ${project.version} sync
 GENERIC-RESOURCE-API network-topology-operation-delete ${project.version} sync
@@ -35,7 +74,30 @@ GENERIC-RESOURCE-API network-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API policy-manager-create-policy ${project.version} sync
 GENERIC-RESOURCE-API policy-manager-delete-policy ${project.version} sync
 GENERIC-RESOURCE-API policy-update-notify-operation ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-get-policy ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-rollback-capacity-db ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-activate-async ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-activate-sync ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-assign-async ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-assign-sync ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-async ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-create-vnfcs ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-deactivate-async ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-deactivate-sync ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-disable ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-enable ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-mapping-pprobe ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-mapping-vprobe ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-unassign ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation-validation ${project.version} sync
+GENERIC-RESOURCE-API port-mirror-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API preload-network-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API preload-vf-module-topology-operation ${project.version} sync
 GENERIC-RESOURCE-API process-eipam-pools ${project.version} sync
+GENERIC-RESOURCE-API process-generic-eipam-pools ${project.version} sync
+GENERIC-RESOURCE-API query-aai-l3-network-by-network-role ${project.version} sync
+GENERIC-RESOURCE-API rollback-eipam-ip-assignment ${project.version} sync
+GENERIC-RESOURCE-API rollback-generated-names ${project.version} sync
 GENERIC-RESOURCE-API security-zone-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API security-zone-topology-operation-assign ${project.version} sync
 GENERIC-RESOURCE-API security-zone-topology-operation-create ${project.version} sync
@@ -43,10 +105,41 @@ GENERIC-RESOURCE-API security-zone-topology-operation-deactivate ${project.versi
 GENERIC-RESOURCE-API security-zone-topology-operation-delete ${project.version} sync
 GENERIC-RESOURCE-API security-zone-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API security-zone-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API self-serve-aai-vfmodule-put ${project.version} sync
+GENERIC-RESOURCE-API self-serve-alts-assignment ${project.version} sync
+GENERIC-RESOURCE-API self-serve-capability-param-resolution ${project.version} sync
+GENERIC-RESOURCE-API self-serve-create-vpe-pool ${project.version} sync
+GENERIC-RESOURCE-API self-serve-eipam-create-pool ${project.version} sync
+GENERIC-RESOURCE-API self-serve-eipam-ip-assignment ${project.version} sync
+GENERIC-RESOURCE-API self-serve-generate-FQPN ${project.version} sync
+GENERIC-RESOURCE-API self-serve-generate-name ${project.version} sync
+GENERIC-RESOURCE-API self-serve-mac-address-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-unresolved-composite-data ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vfmodule-ra-assignment ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vf-module-unassign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vlan-tag-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-assign ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-ra-assignment ${project.version} sync
+GENERIC-RESOURCE-API self-serve-vnf-unassign ${project.version} sync
 GENERIC-RESOURCE-API service-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API service-topology-operation-changeassign ${project.version} sync
 GENERIC-RESOURCE-API service-topology-operation-deactivate ${project.version} sync
 GENERIC-RESOURCE-API service-topology-operation-delete ${project.version} sync
 GENERIC-RESOURCE-API service-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API site-vnf-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API site-vnf-topology-operation-create ${project.version} sync
+GENERIC-RESOURCE-API site-vnf-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API site-vnf-topology-operation-delete ${project.version} sync
+GENERIC-RESOURCE-API sotn-attachment-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API sotn-attachment-topology-operation-create ${project.version} sync
+GENERIC-RESOURCE-API sotn-attachment-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API sotn-attachment-topology-operation-delete ${project.version} sync
+GENERIC-RESOURCE-API sotn-get-saved-ar-param ${project.version} sync
+GENERIC-RESOURCE-API sotn-network-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API sotn-network-topology-operation-create ${project.version} sync
+GENERIC-RESOURCE-API sotn-network-topology-operation-deactivate ${project.version} sync
+GENERIC-RESOURCE-API sotn-network-topology-operation-delete ${project.version} sync
 GENERIC-RESOURCE-API tunnelxconn-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API tunnelxconn-topology-operation-assign ${project.version} sync
 GENERIC-RESOURCE-API tunnelxconn-topology-operation-create ${project.version} sync
@@ -54,34 +147,40 @@ GENERIC-RESOURCE-API tunnelxconn-topology-operation-deactivate ${project.version
 GENERIC-RESOURCE-API tunnelxconn-topology-operation-delete ${project.version} sync
 GENERIC-RESOURCE-API tunnelxconn-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API tunnelxconn-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API validate-api-contrail-route-input ${project.version} sync
 GENERIC-RESOURCE-API validate-brg-input ${project.version} sync
+GENERIC-RESOURCE-API validate-connection-attachment-input ${project.version} sync
 GENERIC-RESOURCE-API validate-contrail-route-input ${project.version} sync
+GENERIC-RESOURCE-API validate-generic-configuration-input ${project.version} sync
+GENERIC-RESOURCE-API validate-getpathsegment-input ${project.version} sync
 GENERIC-RESOURCE-API validate-network-input-parameters ${project.version} sync
 GENERIC-RESOURCE-API validate-network-input ${project.version} sync
 GENERIC-RESOURCE-API validate-overlay-network-input-parameters ${project.version} sync
 GENERIC-RESOURCE-API validate-security-zone-input ${project.version} sync
 GENERIC-RESOURCE-API validate-service-input ${project.version} sync
+GENERIC-RESOURCE-API validate-sotn-network-input-parameters ${project.version} sync
 GENERIC-RESOURCE-API validate-tunnelxconn-input ${project.version} sync
 GENERIC-RESOURCE-API validate-vf-module-input ${project.version} sync
 GENERIC-RESOURCE-API validate-vnf-input ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-assign-rollback ${project.version} sync
 GENERIC-RESOURCE-API vf-module-topology-operation-activate ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-assign-no-preload ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-assign-preload ${project.version} sync
 GENERIC-RESOURCE-API vf-module-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-operation-changeassign ${project.version} sync
 GENERIC-RESOURCE-API vf-module-topology-operation-deactivate ${project.version} sync
 GENERIC-RESOURCE-API vf-module-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API vf-module-topology-operation ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-activate ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-assign ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-deactivate ${project.version} sync
+GENERIC-RESOURCE-API vf-module-topology-vlan-tagging-ip-addresses ${project.version} sync
+GENERIC-RESOURCE-API vnf-get-resource-request ${project.version} sync
 GENERIC-RESOURCE-API vnf-topology-operation-activate ${project.version} sync
 GENERIC-RESOURCE-API vnf-topology-operation-assign ${project.version} sync
+GENERIC-RESOURCE-API vnf-topology-operation-changeassign ${project.version} sync
 GENERIC-RESOURCE-API vnf-topology-operation-deactivate ${project.version} sync
 GENERIC-RESOURCE-API vnf-topology-operation-unassign ${project.version} sync
 GENERIC-RESOURCE-API vnf-topology-operation ${project.version} sync
 SUBNET-API managed-network-notification ${project.version} sync
 SUBNET-API subnet-allocated-notification ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API sotn-network-topology-operation-deactivate ${project.version} sync
-GENERIC-RESOURCE-API validate-sotn-network-input-parameters ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-create ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-delete ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-activate ${project.version} sync
-GENERIC-RESOURCE-API site-vnf-topology-operation-deactivate ${project.version} sync
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-aic-zone.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-aic-zone.xml
new file mode 100755 (executable)
index 0000000..5f174c6
--- /dev/null
@@ -0,0 +1,124 @@
+<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='aai-get-aic-zone' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='aaiapi.output.cloud-zone' value='' />\r
+                <parameter name='aaiapi.output.complex-name' value='' />\r
+                <parameter name='aaiapi.output.aic-clli' value='' />\r
+            </set>\r
+            <switch test='`$aaiapi.input.cloud-owner`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error aaiapi.input.network-instance-group-id is NULL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$aaiapi.input.cloud-region-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error aaiapi.input.network-instance-group-id is NULL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $aaiapi.input.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aaiapi.input.cloud-region-id AND \r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' local-only='false' >\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="Cloud region not found in AAI"/>\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$tmp.error-message`" />\r
+                        </return>\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="Error retrieving cloud region from AAI"/>\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$tmp.error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                <outcome value='0'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Cloud region missing relationships in AAI"/>\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$tmp.error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Cloud region missing relationships in AAI"/>\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$tmp.error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='false' index='ridx' start='0' end="`$aai.cloud-region.relationship-list.relationship_length`" >\r
+                <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                    <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                        <outcome value='complex.physical-location-id'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='tmp.complex-found' value='true' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='aaiapi.output.aic-clli' value='`$aai.complex.physical-location-id`' />\r
+                                </set>\r
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+        pfx='aai.complex' local-only='false' ></get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test='`$tmp.complex-found`'>\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Complex not found in AAI"/>\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$tmp.error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='aaiapi.output.cloud-zone' value='`$aai.cloud-region.cloud-zone`' />\r
+                <parameter name='aaiapi.output.complex-name' value='`$aai.cloud-region.complex-name`' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-network-instance-group.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_aai-get-network-instance-group.xml
new file mode 100755 (executable)
index 0000000..7383c3f
--- /dev/null
@@ -0,0 +1,95 @@
+<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='aai-get-network-instance-group' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='aaiapi.output.collection-customization-uuid' value='' />\r
+                <parameter name='aaiapi.output.collection-name' value='' />\r
+                <parameter name='aaiapi.output.collection-function' value='' />\r
+                <parameter name='aaiapi.output.collection.collection-id' value='' />\r
+            </set>\r
+            <switch test='`$aaiapi.input.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error aaiapi.input.network-instance-group-id is NULL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="instance-group" \r
+               key="instance-group.id = $aaiapi.input.network-instance-group-id" \r
+               local-only="false" \r
+               pfx="tmp.AnAI.networkInstanceGroup">\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Error retrieving network instance group with id=' + $aaiapi.input.network-instance-group-id + ' from AnAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'network instance group id: ' + $aaiapi.input.network-instance-group-id + 'not found in AnAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <for silentFailure='true' index='ridx' start='0' end="`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship_length`" >\r
+                            <for silentFailure='true' index='rdidx' start='0' end="`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='collection.collection-id'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='aaiapi.output.collection.collection-id' value='`$tmp.AnAI.networkInstanceGroup.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <switch test='`$aaiapi.output.collection.collection-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'network instance group id: ' + $aaiapi.input.network-instance-group-id + ' collection not found in AnAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="collection" \r
+               key="collection.collection-id = $aaiapi.output.collection.collection-id" \r
+               local-only="false" \r
+               pfx="tmp.AnAI.collection">\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Error retrieving collection with id=' + $aaiapi.output.collection.collection-id + ' from AnAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'collection: ' + $aaiapi.output.collection.collection-id + 'not found in AnAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='aaiapi.output.collection-customization-uuid' value='`$tmp.AnAI.collection.collection-customization-id`' />\r
+                                        <parameter name='aaiapi.output.collection-name' value='`$tmp.AnAI.collection.collection-name`' />\r
+                                        <parameter name='aaiapi.output.collection-function' value='`$tmp.AnAI.collection.collection-function`' />\r
+                                    </set>\r
+                                    <return status='success'>\r
+                                        <parameter name='' value='' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-activate.xml
new file mode 100644 (file)
index 0000000..658cee1
--- /dev/null
@@ -0,0 +1,560 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='api-contrail-route-topology-operation-activate' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' ></call>
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$cto-api.contrail-route-allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$cto-api.parent-service-instance-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + ', expecting Created.'`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />
+            </set>
+            <switch test='`$ar-assignments.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error activating contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block></block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar-assignments.source-network.network-id" 
+               local-only="false" 
+               pfx="aai.src-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <set>
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+                <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />
+                <parameter name='original_string' value='`$aai.src-network.contrail-network-fqdn`' />
+                <parameter name='regex' value=':' />
+            </execute>
+            <switch test='`$virtual-network-fqdn-split_length`'>
+                <outcome value='0'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='src-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />
+                    </set>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='fqname-to-uuid' />
+                <parameter name='api-action' value='get' />
+                <parameter name='resp-prefix' value='uuidresp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='fqname-type' value='virtual-network' />
+                <parameter name='policy-name' value='`$src-virtual-network-fqname`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to find network uuid for Contrail to source network" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='src-uuid' value='`$uuidresp.uuid`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='apply' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to apply policy in Contrail to source network" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test='`$ar-assignments.dest-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error activating contrail route.  Destination network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block></block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" 
+               local-only="false" 
+               pfx="aai.dest-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+                <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />
+                <parameter name='original_string' value='`$aai.dest-network.contrail-network-fqdn`' />
+                <parameter name='regex' value=':' />
+            </execute>
+            <switch test='`$virtual-network-fqdn-split_length`'>
+                <outcome value='0'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='dest-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />
+                        <parameter name='dest-default-project' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 2]`' />
+                    </set>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='fqname-to-uuid' />
+                <parameter name='api-action' value='get' />
+                <parameter name='resp-prefix' value='uuidresp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$dest-default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='fqname-type' value='virtual-network' />
+                <parameter name='policy-name' value='`$dest-virtual-network-fqname`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to find network uuid for Contrail to destination network" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='dest-uuid' value='`$uuidresp.uuid`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='apply' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to apply policy in Contrail to destination network" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="network-policy:relationship-list" 
+       key="network-policy.network-policy-id = $ar-assignments.contrail-id" >
+                <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />
+                <parameter name="relationship-list.relationship[0].related-link" 
+value="`'/aai/v$/network/l3-networks/l3-network/' + $ar-assignments.source-network.network-id`" />
+                <parameter name="relationship-list.relationship[1].related-to" value="l3-network" />
+                <parameter name="relationship-list.relationship[1].related-link" 
+value="`'/aai/v$/network/l3-networks/l3-network/' + $ar-assignments.dest-network.network-id`" />
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to save network policy in AAI" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to save network policy in AAI" />
+                        </return>
+                    </block>
+                </outcome>
+            </save>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.parent-service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="in-service-path" />
+                <parameter name="orchestration-status" value="activated" />
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="AAI failed" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="AAI failed" />
+                        </return>
+                    </block>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-create.xml
new file mode 100644 (file)
index 0000000..674e547
--- /dev/null
@@ -0,0 +1,1443 @@
+<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='api-contrail-route-topology-operation-create' mode='sync'>\r
+        <block atomic="true">\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create"/>\r
+                <parameter name='field3' value='cto-api.parent-service-instance-id' />\r
+                <parameter name='field4' value='`$cto-api.parent-service-instance-id`' />\r
+                <parameter name='field5' value='cto-api.default-domain' />\r
+                <parameter name='field6' value='`$cto-api.default-domain`' />\r
+                <parameter name='field7' value='cto-api.port-mirror-configuration-instance-id' />\r
+                <parameter name='field8' value='`$cto-api.port-mirror-configuration-instance-id`' />\r
+                <parameter name='field9' value='cto-api.service-type' />\r
+                <parameter name='field10' value='`$cto-api.service-type`' />\r
+                <parameter name='field11' value='cto-api.source-network-role' />\r
+                <parameter name='field12' value='`$cto-api.source-network-fole`' />\r
+                <parameter name='field13' value='cto-api.collector-network-role' />\r
+                <parameter name='field14' value='`$cto-api.collector-network-4ole`' />\r
+                <parameter name='field15' value='cto-api.default-project' />\r
+                <parameter name='field16' value='`$cto-api.default-project`' />\r
+                <parameter name='field17' value='cto-api.cloud-region-id' />\r
+                <parameter name='field18' value='`$cto-api.cloud-region-id`' />\r
+                <parameter name='field19' value='cto-api.cloud-owner' />\r
+                <parameter name='field20' value='`$cto-api.cloud-owner`' />\r
+                <parameter name='field21' value='cto-api.isTest' />\r
+                <parameter name='field22' value='`$cto-api.isTest`' />\r
+                <parameter name='field23' value='cto-api.owning-entity' />\r
+                <parameter name='field24' value='`$cto-api.owning-entity`' />\r
+            </record>\r
+            <set>\r
+                <parameter name="ctotmp." value="" />\r
+                <parameter name="ar-request-information." value="" />\r
+                <parameter name="ar-created" value="" />\r
+                <parameter name="ar-aai-created" value="" />\r
+                <parameter name="np-aai-created" value="" />\r
+                <parameter name="contrail-created" value="" />\r
+            </set>\r
+            <set>\r
+                <parameter name="ctotmp.s-l3-network" value="" />\r
+                <parameter name="ctotmp.num-s-network" value="0" />\r
+                <parameter name="ctotmp.s-network-policy" value="" />\r
+                <parameter name="ctotmp.num-s-np" value="0" />\r
+                <parameter name="ctotmp.c-l3-network" value="" />\r
+                <parameter name="ctotmp.num-c-network" value="0" />\r
+                <parameter name="ctotmp.c-network-policy" value="" />\r
+                <parameter name="ctotmp.num-c-np" value="0" />\r
+                <parameter name="ctotmp.s-network-policy-list_length" value="0" />\r
+                <parameter name="ctotmp.c-network-policy-list_length" value="0" />\r
+                <parameter name="ctotmp.network-policy-id" value="" />\r
+                <parameter name="ctotmp.action" value="create" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' ></call>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="ctotmp.aai.source-network">\r
+                <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $cto-api.cloud-owner + '/'  + $cto-api.cloud-region-id`" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole='  + $cto-api.source-network-role`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="API-contrail-route-topology-operation-create: Failed to get source network from aai" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="API-contrail-route-topology-operation-create: Source network not found in AAI" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <for index='ctotmp.sidx' start='0' end='`$ctotmp.aai.source-network.results_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`'>\r
+                                <outcome value=''>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name="ctotmp.s-network-policy-list[$ctotmp.num-s-np].network-policy-id" value="`$ctotmp.aai.source-network.results[$ctotmp.sidx].network-policy.network-policy-id`" />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name="ctotmp.num-s-np" value="`$ctotmp.num-s-np+1`" />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name="ctotmp.s-network-policy-list_length" value="`$ctotmp.num-s-np`" />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.network-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true"></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <switch test='`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.network-id`'>\r
+                                <outcome value=''>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name="ctotmp.s-l3-network." value="`$ctotmp.aai.source-network.results[$ctotmp.sidx].l3-network.`" />\r
+                                            <parameter name="ctotmp.num-s-network" value="`$ctotmp.num-s-network+1`" />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test='`$ctotmp.num-s-network`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="API-contrail-route-topology-operation-create: Source network not found from aai" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='1'>\r
+                    <set>\r
+                        <parameter name="ctotmp.source-network.network-id" value="`$ctotmp.s-l3-network.network-id`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="API-contrail-route-topology-operation-create: Too many networks returned for source network from aai" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="ctotmp.aai.collector-network">\r
+                <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $cto-api.cloud-owner + '/'  + $cto-api.cloud-region-id`" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole='  + $cto-api.collector-network-role`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="API-contrail-route-topology-operation-create: Failed to get collector network from aai" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="API-contrail-route-topology-operation-create: Collector network not found in AAI" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <for index='ctotmp.cidx' start='0' end='`$ctotmp.aai.collector-network.results_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.network-id`'>\r
+                        <outcome value=''>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="API-contrail-route-topology-operation-create: Collector network not found from aai" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.network-id`'>\r
+                                <outcome value=''>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name="ctotmp.c-l3-network." value="`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.`" />\r
+                                            <parameter name="ctotmp.num-c-network" value="`$ctotmp.num-c-network+1`" />\r
+                                        </set>\r
+                                        <for index='ridx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship_length`' >\r
+                                            <switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].related-to`'>\r
+                                                <outcome value='service-instance'>\r
+                                                    <block atomic="true">\r
+                                                        <for index='rdidx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data_length`' >\r
+                                                            <switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                                                <outcome value='service-instance.service-instance-id'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name="collector-service-instance-id" value="`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`" />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='network-policy'>\r
+                                                    <block atomic="true">\r
+                                                        <for index='rdidx' start='0' end='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data_length`' >\r
+                                                            <switch test='`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                                                <outcome value='network-policy.network-policy-id'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name="ctotmp.c-network-policy-list[$ctotmp.num-c-np].network-policy-id" value="`$ctotmp.aai.collector-network.results[$ctotmp.cidx].l3-network.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`" />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="ctotmp.num-c-np" value="`$ctotmp.num-c-np+1`" />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="ctotmp.c-network-policy-list_length" value="`$ctotmp.num-c-np`" />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test='`$ctotmp.num-c-network`'>\r
+                <outcome value='0'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="API-contrail-route-topology-operation-create: Collector network not found from aai" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='1'>\r
+                    <set>\r
+                        <parameter name="ctotmp.dest-network.network-id" value="`$ctotmp.c-l3-network.network-id`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="API-contrail-route-topology-operation-create: Too many networks returned for collector network from aai" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='ctotmp.spidx' start='0' end='`$ctotmp.s-network-policy-list_length`' >\r
+                <for index='ctotmp.cpidx' start='0' end='`$ctotmp.c-network-policy-list_length`' >\r
+                    <block atomic="true">\r
+                        <switch test='`$ctotmp.s-network-policy-list[$ctotmp.spidx].network-policy-id == $ctotmp.c-network-policy-list[$ctotmp.cpidx].network-policy-id`'>\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="ctotmp.network-policy-id" value="`$ctotmp.s-network-policy-list[$ctotmp.spidx].network-policy-id`" />\r
+                                        <parameter name="ctotmp.existing-network-policy-found" value="true" />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <switch test='`$ctotmp.network-policy-id`'>\r
+                <outcome value=''>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="existing policy - error" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ar-request-information.source' value="SDNC" />\r
+            </set>\r
+            <set>\r
+                <parameter name='ar-contrail-route-request-input.source-network.network-role' value="`$cto-api.source-network-role`" />\r
+                <parameter name='ar-contrail-route-request-input.source-network.network-id' value="`$ctotmp.source-network.network-id`" />\r
+                <parameter name='ar-contrail-route-request-input.dest-network.network-role' value="`$cto-api.collector-network-role`" />\r
+                <parameter name='ar-contrail-route-request-input.dest-network.network-id' value="`$ctotmp.dest-network.network-id`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='generate-allottedresource-id' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='ar-identifiers.allotted-resource-id' value="`$tmp.return.generate-allottedresource-id.id`" />\r
+                <parameter name='ar-identifiers.allotted-resource-type' value="contrail-route" />\r
+                <parameter name='ar-identifiers.parent-service-instance-id' value="`$cto-api.parent-service-instance-id`" />\r
+                <parameter name='ar-identifiers.consuming-service-instance-id' value="`$cto-api.service-instance-id` " />\r
+                <parameter name="tmp.ar.allotted-resource-id" value="`$tmp.return.generate-allottedresource-id.id`" />\r
+                <parameter name='tmp.ar.allotted-resource-type' value="contrail-route" />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value="`$cto-api.parent-service-instance-id`" />\r
+                <!-- <parameter name='tmp.ar.contrail-applied-service-instance-id' value='' />  -->\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
+ + $tmp.ar.allotted-resource-id\r
+ + '/allotted-resource-data/contrail-route-topology/'` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>\r
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$cto-api.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network`"/>\r
+                <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$cto-api.parent-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
+                            <outcome value='1'>\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: Existing contrail route allotted resource" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <!--\r
+<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " /><parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" /><parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " /><parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " /><parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " /><parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " /><parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " /><parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
+-->\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.parent-ar-url`"/>\r
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>\r
+                <parameter name="outputPath" value="tmp.network-ar-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
+            </execute>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.ar-name' value='$source-network-name_$cloud-region-id_$source-network-role_$collector-network-role _policy_' />\r
+                </set>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                    <parameter name="source" value="`$tmp.ar-name`"/>\r
+                    <parameter name="outputPath" value="tmp.ar-name"/>\r
+                    <parameter name="target" value="$source-network-name"/>\r
+                    <parameter name="replacement" value="`$ctotmp.s-l3-network.network-name`"/>\r
+                </execute>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                    <parameter name="source" value="`$tmp.ar-name`"/>\r
+                    <parameter name="outputPath" value="tmp.ar-name"/>\r
+                    <parameter name="target" value="$cloud-region-id"/>\r
+                    <parameter name="replacement" value="`$cto-api.cloud-region-id`"/>\r
+                </execute>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                    <parameter name="source" value="`$tmp.ar-name`"/>\r
+                    <parameter name="outputPath" value="tmp.ar-name"/>\r
+                    <parameter name="target" value="$source-network-role"/>\r
+                    <parameter name="replacement" value="`$cto-api.source-network-role`"/>\r
+                </execute>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                    <parameter name="source" value="`$tmp.ar-name`"/>\r
+                    <parameter name="outputPath" value="tmp.ar-name"/>\r
+                    <parameter name="target" value="$collector-network-role"/>\r
+                    <parameter name="replacement" value="`$cto-api.collector-network-role`"/>\r
+                </execute>\r
+                <set>\r
+                    <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\r
+                    <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\r
+                    <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\r
+                    <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />\r
+                    <parameter name='generate-unique-name-input.index-length' value='2' />\r
+                </set>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="tmp.ar-name="/>\r
+                    <parameter name="field3" value="`$tmp.ar-name`"/>\r
+                    <parameter name="field4" value="generate-unique-name-input.prefix" />\r
+                    <parameter name="field5" value="`$generate-unique-name-input.prefix`" />\r
+                </record>\r
+                <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
+                    <outcome value='failure'>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <set>\r
+                            <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\r
+                        </set>\r
+                    </outcome>\r
+                </call>\r
+                <set>\r
+                    <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\r
+                </set>\r
+            </block>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' \r
+value="`$ar-identifiers.`" />\r
+            </set>\r
+            <set>\r
+                <parameter name='ar-assignments.source-network.network-id' value="`$ctotmp.s-l3-network.network-id` " />\r
+                <parameter name='ar-assignments.source-network.network-role' value="`$cto-api.source-network-role` " />\r
+                <parameter name='ar-assignments.dest-network.network-id' value="`$ctotmp.c-l3-network.network-id` " />\r
+                <parameter name='ar-assignments.dest-network.network-role' value="`$cto-api.collector-network-role` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.fq-name`"/>\r
+                <parameter name="outputPath" value="tmp.fq-name"/>\r
+                <parameter name="target" value="$defaultDomain"/>\r
+                <parameter name="replacement" value="`$cto-api.default-domain`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.fq-name`"/>\r
+                <parameter name="outputPath" value="tmp.fq-name"/>\r
+                <parameter name="target" value="$defaultProject"/>\r
+                <parameter name="replacement" value="`$cto-api.default-project`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.fq-name`"/>\r
+                <parameter name="outputPath" value="tmp.fq-name"/>\r
+                <parameter name="target" value="$sdncNetworkPolicy"/>\r
+                <parameter name="replacement" value="`$tmp.ar-name`"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar-assignments.fq-name' value="`$tmp.fq-name` " />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <switch test='`$cto-api.isTest`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create"/>\r
+                            <parameter name='field3' value='network-policy' />\r
+                            <parameter name='field4' value='create' />\r
+                            <parameter name='field5' value='contrailResp' />\r
+                            <parameter name='field6' value='`$cto-api.default-domain`' />\r
+                            <parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
+                            <parameter name='field8' value='`$cto-api.default-project`' />\r
+                            <parameter name='field9' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field10' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field11' value='&lt;&gt;' />\r
+                            <parameter name='field12' value='`$cto-api.cloud-region-id`' />\r
+                        </record>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                            <parameter name='api-name' value='network-policy' />\r
+                            <parameter name='api-action' value='create' />\r
+                            <parameter name='resp-prefix' value='contrailResp' />\r
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                            <parameter name='policy-name' value='`$tmp.fq-name`' />\r
+                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                            <!-- <parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' /> -->\r
+                            <parameter name='dst-virtual-network' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='src-virtual-network' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='direction' value='&lt;&gt;' />\r
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="contrail-created" value="true" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='ar-assignments.contrail-id' value="`$contrailResp.network-policy.uuid`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create"/>\r
+                            <parameter name='field3' value='network-policy' />\r
+                            <parameter name='field4' value='TESTcreate' />\r
+                            <parameter name='field5' value='contrailResp' />\r
+                            <parameter name='field6' value='`$cto-api.default-domain`' />\r
+                            <parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
+                            <parameter name='field8' value='`$cto-api.default-project`' />\r
+                            <parameter name='field10' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field11' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field12' value='&lt;&gt;' />\r
+                            <parameter name='field13' value='`$cto-api.cloud-region-id`' />\r
+                        </record>\r
+                        <set>\r
+                            <parameter name='ar-assignments.contrail-id' value="dummy12345" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.api-contrail-route-topology-operation-create"/>\r
+                            <parameter name='field3' value='network-policy' />\r
+                            <parameter name='field4' value='create' />\r
+                            <parameter name='field5' value='contrailResp' />\r
+                            <parameter name='field6' value='`$cto-api.default-domain`' />\r
+                            <parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
+                            <parameter name='field8' value='`$cto-api.default-project`' />\r
+                            <parameter name='field9' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field10' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='field11' value='&lt;&gt;' />\r
+                            <parameter name='field12' value='`$cto-api.cloud-region-id`' />\r
+                        </record>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                            <parameter name='api-name' value='network-policy' />\r
+                            <parameter name='api-action' value='create' />\r
+                            <parameter name='resp-prefix' value='contrailResp' />\r
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                            <parameter name='policy-name' value='`$tmp.fq-name`' />\r
+                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                            <!-- <parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' /> -->\r
+                            <parameter name='dst-virtual-network' value='`$ctotmp.c-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='src-virtual-network' value='`$ctotmp.s-l3-network.contrail-network-fqdn`' />\r
+                            <parameter name='direction' value='&lt;&gt;' />\r
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="contrail-created" value="true" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='ar-assignments.contrail-id' value="`$contrailResp.network-policy.uuid`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' \r
+value="`$ar-assignments.`" />\r
+            </set>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                <!-- Create network-policy object -->\r
+                <parameter name="network-policy-id" value="`$ar-assignments.contrail-id`" />\r
+                <parameter name="network-policy-fqdn" value="`$ar-assignments.fq-name`" />\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="np-aai-created" value="" />\r
+                        </set>\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 save network-policy in AAI"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $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="Failed to save network-policy in AAI"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $cto-api.service-type AND\r
+                       service-instance.service-instance-id = $cto-api.parent-service-instance-id AND\r
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
+        pfx='pfx' local-only='false' force='false'>\r
+                <parameter name="id" value="`$tmp.ar.allotted-resource-id`" />\r
+                <parameter name="description" value="`$tmp.ar.allotted-resource-type`" />\r
+                <parameter name="selflink" value="`$tmp.ar.self-link`" />\r
+                <parameter name="operational-status" value="out-of-service-path" />\r
+                <parameter name="order-status" value="Created" />\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="ar-aai-created" value="" />\r
+                        </set>\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 save allotted resource in AAI"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $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="Failed to save allotted resource in AAI"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.cidx' value="`0`" />\r
+                        <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.cidx' value='`$cidx`' />\r
+                                            <parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\r
+                                            <parameter name='tmp.found-cidx' value='true' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$tmp.found-cidx`'>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$tmp.ar.allotted-resource-type` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />\r
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='PUT' />\r
+                <parameter name="responsePrefix" value="parent" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error updating md-sal for contrail-route-allotted-resource"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $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="Error updating md-sal for contrail-route-allotted-resource"/>\r
+                        </set>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="ar-created" value="true" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='DELETE' />\r
+                            <parameter name="responsePrefix" value="parent" />\r
+                            <outcome value='success'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='DELETE' />\r
+                            <parameter name="responsePrefix" value="parent" />\r
+                            <outcome value='success'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="ROLLING BACK the create due to error"/>\r
+                            </record>\r
+                            <switch test='`$np-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$contrail-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                                            <parameter name='api-name' value='network-policy' />\r
+                                            <parameter name='api-action' value='delete' />\r
+                                            <parameter name='resp-prefix' value='contrailResp' />\r
+                                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                                            <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                                            <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                                            <outcome value='success'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                            <outcome value='failure'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-aai-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </delete>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$ar-created`'>\r
+                                <outcome value=''></outcome>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-ar" />\r
+                                            <outcome value='failure'></outcome>\r
+                                            <outcome value='not-found'></outcome>\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error creating contrail route - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='cto-api.contrail-route-allotted-instance-id' value='`$tmp.ar.allotted-resource-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ctotmp.' value='' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-deactivate.xml
new file mode 100644 (file)
index 0000000..c49f2eb
--- /dev/null
@@ -0,0 +1,618 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='api-contrail-route-topology-operation-deactivate' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' ></call>
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$cto-api.contrail-route-allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$cto-api.parent-service-instance-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Active'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />
+            </set>
+            <switch test='`$ar-assignments.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error activating contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block></block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar-assignments.source-network.network-id" 
+               local-only="false" 
+               pfx="aai.src-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <set>
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+                <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />
+                <parameter name='original_string' value='`$aai.src-network.contrail-network-fqdn`' />
+                <parameter name='regex' value=':' />
+            </execute>
+            <switch test='`$virtual-network-fqdn-split_length`'>
+                <outcome value='0'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='src-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />
+                    </set>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='fqname-to-uuid' />
+                <parameter name='api-action' value='get' />
+                <parameter name='resp-prefix' value='uuidresp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='fqname-type' value='virtual-network' />
+                <parameter name='policy-name' value='`$src-virtual-network-fqname`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to find network uuid for Contrail to source network" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='src-uuid' value='`$uuidresp.uuid`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='remove' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to remove policy in Contrail from source network" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test='`$ar-assignments.dest-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error activating contrail route.  Dest network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block></block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar-assignments.dest-network.network-id" 
+               local-only="false" 
+               pfx="aai.dest-network">
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>
+                <parameter name='ctx_memory_result_key' value='virtual-network-fqdn-split' />
+                <parameter name='original_string' value='`$aai.dest-network.contrail-network-fqdn`' />
+                <parameter name='regex' value=':' />
+            </execute>
+            <switch test='`$virtual-network-fqdn-split_length`'>
+                <outcome value='0'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='error-code' value='500' />
+                            <parameter name='error-message' value='Unable to determine network fq-name from contrail fqdn' />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='dest-virtual-network-fqname' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 1]`' />
+                        <parameter name='dest-default-project' value='`$virtual-network-fqdn-split[$virtual-network-fqdn-split_length - 2]`' />
+                    </set>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='fqname-to-uuid' />
+                <parameter name='api-action' value='get' />
+                <parameter name='resp-prefix' value='uuidresp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$dest-default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='fqname-type' value='virtual-network' />
+                <parameter name='policy-name' value='`$dest-virtual-network-fqname`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to find network uuid for Contrail to destination network" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='dest-uuid' value='`$uuidresp.uuid`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='remove' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                <parameter name='default-project' value='`$cto-api.default-project`' />
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$uuidresp.uuid`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to remove policy in Contrail from dest network" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="network-policy:relationship-list" 
+       key="network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' " >
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to save network policy in AAI" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Failed to save network policy in AAI" />
+                        </return>
+                    </block>
+                </outcome>
+            </delete>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.parent-service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="out-of-service-path" />
+                <parameter name="orchestration-status" value="deactivated" />
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="AAI failed" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="AAI failed" />
+                        </return>
+                    </block>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$src-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='remove' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />
+                            <parameter name='default-project' value='`$cto-api.default-project`' />
+                            <parameter name='default-domain' value='`$cto-api.default-domain`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.fq-name`' />
+                            <parameter name='contrail-virtual-network-id' value='`$dest-uuid`' />
+                            <outcome value='Other'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_api-contrail-route-topology-operation-delete.xml
new file mode 100644 (file)
index 0000000..f0dacbe
--- /dev/null
@@ -0,0 +1,332 @@
+<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='api-contrail-route-topology-operation-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="GENERIC-RESOURCE-API.api-contrail-route-topology-operation-delete"/>\r
+                <parameter name='field3' value='cto-api.parent-service-instance-id' />\r
+                <parameter name='field4' value='`$cto-api.parent-service-instance-id`' />\r
+                <parameter name='field5' value='cto-api.default-domain' />\r
+                <parameter name='field6' value='`$cto-api.default-domain`' />\r
+                <parameter name='field7' value='cto-api.port-mirror-configuration-instance-id' />\r
+                <parameter name='field8' value='`$cto-api.port-mirror-configuration-instance-id`' />\r
+                <parameter name='field9' value='cto-api.service-type' />\r
+                <parameter name='field10' value='`$cto-api.service-type`' />\r
+                <parameter name='field11' value='cto-api.source-network-role' />\r
+                <parameter name='field12' value='`$cto-api.source-network-fole`' />\r
+                <parameter name='field13' value='cto-api.collector-network-role' />\r
+                <parameter name='field14' value='`$cto-api.collector-network-4ole`' />\r
+                <parameter name='field15' value='cto-api.default-project' />\r
+                <parameter name='field16' value='`$cto-api.default-project`' />\r
+                <parameter name='field17' value='cto-api.cloud-region-id' />\r
+                <parameter name='field18' value='`$cto-api.cloud-region-id`' />\r
+                <parameter name='field19' value='cto-api.cloud-owner' />\r
+                <parameter name='field20' value='`$cto-api.cloud-owner`' />\r
+                <parameter name='field21' value='cto-api.isTest' />\r
+                <parameter name='field22' value='`$cto-api.isTest`' />\r
+                <parameter name='field23' value='service-data.service-information.global-customer-id' />\r
+                <parameter name='field24' value='`$service-data.service-information.global-customer-id`' />\r
+            </record>\r
+            <set>\r
+                <parameter name="ctotmp." value="" />\r
+            </set>\r
+            <set>\r
+                <parameter name="ctotmp.action" value="delete" />\r
+                <parameter name="ctotmp.config-count" value="0" />\r
+                <parameter name="ctotmp.config-found" value="true" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-api-contrail-route-input' mode='sync' ></call>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id"\r
+        pfx='aai.ar' local-only='false' >\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <switch test='`$cto-api.rollback-flag`'>\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <return status='success'>\r
+                                        <parameter name="ack-final-indicator" value="Y" />\r
+                                        <parameter name="error-code" value="200" />\r
+                                        <parameter name="error-message" value="`$error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="AAI failed" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </get-resource>\r
+            <for silentFailure='true' index='ridx' start='0' end="`$aai.ar.relationship-list.relationship_length`" >\r
+                <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                    <switch test='`$aai.ar.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                        <outcome value='configuration.configuration-id'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='ctotmp.config-count' value='`$ctotmp.config-count+1`' />\r
+                                </set>\r
+                                <switch test='`$aai.ar.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $cto-api.configuration-id`'>\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='ctotmp.config-found' value='true' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test="`$ctotmp.config-count > 1`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="AAI Allotted Resource is tied to more than one configuration object" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$ctotmp.config-count == 1 and $ctotmp.config-found == 'true'`">\r
+                <outcome value='false'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="AAI Allotted resource is not tied to configuration object" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$cto-api.contrail-route-allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="Error: Contrail Route not found in md-sal" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="404" />\r
+                            <parameter name="error-message" value="Error: Contrail Route not found in md-sal" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                <parameter name='api-name' value='network-policy' />\r
+                <parameter name='api-action' value='delete' />\r
+                <parameter name='resp-prefix' value='contrailResp' />\r
+                <parameter name='cloud-region-id' value='`$cto-api.cloud-region-id`' />\r
+                <parameter name='default-project' value='`$cto-api.default-project`' />\r
+                <parameter name='default-domain' value='`$cto-api.default-domain`' />\r
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to create policy in Contrail" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="network-policy" \r
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </delete>\r
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="allotted-resource" \r
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
+                       allotted-resource.id = $cto-api.contrail-route-allotted-resource-id">\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+            </delete>\r
+            <for silentFailure='true' index='snidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$sdix].allotted-resource-id == $cto-api.contrail-route-allotted-resource-id`'>\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="tmp.sdidx" value="`$snidx`"/>\r
+                                </set>\r
+                                <break/>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+                <outcome value='1'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="service-data.consumed-allotted-resources." value=""/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="0"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="tmp.new_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>\r
+                        </set>\r
+                        <for silentFailure='true' index='snidx' start='`$tmp.sdidx + 1`' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.newidx]." value="$service-data.consumed-allotted-resources.consumed-allotted-resource[$snidx]." />\r
+                                </set>\r
+                            </block>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.new_length]." value=""/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $contrail-route-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_assign-vlan-tags.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_assign-vlan-tags.xml
new file mode 100755 (executable)
index 0000000..f23891c
--- /dev/null
@@ -0,0 +1,441 @@
+<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='assign-vlan-tags' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.vlan-vnics.' value='' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.vlan-vnics.'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='total-subs' value='`$get-data-from-policy-output.precreate-sub-intf-num`' />\r
+            </set>\r
+            <switch test='`$total-subs &gt; ( $tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf )`'>\r
+                <outcome value='true'>\r
+                    <set>\r
+                        <parameter name='total-subs' value='`$tmp.vlan-vnics.vlan-vnic_length * $get-data-from-policy-output.max-num-sub-intf`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='cur-tag-id' value='`$get-data-from-policy-output.vlan-tag-start + $get-data-from-policy-output.vlan-tag-offset`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='sub-index' value='0' />\r
+                <parameter name='vnic-index' value='0' />\r
+            </set>\r
+            <while test='`$total-subs &gt; 0`'>\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id'\r
+  value='`$cur-tag-id`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length'\r
+  value='`$sub-index + 1`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='cur-tag-id' value='`$cur-tag-id + 1`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='vnic-index' value='`$vnic-index + 1`' />\r
+                    </set>\r
+                    <switch test='`$vnic-index == $tmp.vlan-vnics.vlan-vnic_length`'>\r
+                        <outcome value='true'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='vnic-index' value='0' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='sub-index' value='`$sub-index + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name='total-subs' value='`$total-subs - 1`' />\r
+                    </set>\r
+                </block>\r
+            </while>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+  resource="instance-groups" \r
+  key="instance-group.instance-group-function = $db.group-uuids[$group-index].network-collection-function\r
+    AND instance-group.instance-group-type = 'L3-NETWORK'"\r
+  pfx='aai.instance-group' local-only='false' >\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message"\r
+      value="`'Unable to find AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].network-collection-function\r
+        + ' and instance-group-type L3-NETWORK'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message"\r
+      value="`'System error getting AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].network-collection-function\r
+        + ' and instance-group-type L3-NETWORK'`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='found-instance-group' value='false' />\r
+            </set>\r
+            <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\r
+                <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\r
+                    <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\r
+                        <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\r
+  == 'service-instance.service-instance-id'`">\r
+                            <outcome value='true'>\r
+                                <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\r
+  == $service-data.service-information.service-instance-id`'>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='found-instance-group' value='true' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='aai-ig-index' value='`$ig-index`' />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <switch test='`$found-instance-group`'>\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message"\r
+      value="`'Unable to find AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].vfc-instance-group-function\r
+        + ' and instance-group-type VNFC'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='network-instance-group-id' value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\r
+                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id'\r
+  value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='network-instance-group-index' value='-1' />\r
+            </set>\r
+            <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                <switch test='`$network-instance-group-id\r
+== $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='network-instance-group-index' value='`$nig-index`' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$network-instance-group-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Unable to find network instance group ID '\r
+  + $network-instance-group-id\r
+  + ' in network-instance-groups'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\r
+                <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='network-index' value='-1' />\r
+                            <parameter name='unassigned-network-index' value='-1' />\r
+                        </set>\r
+                        <for index='n-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network_length`' >\r
+                            <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id\r
+  == $service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].vlan-tag-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='network-index' value='`$n-index`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='false'>\r
+                                    <switch test="`$unassigned-network-index`">\r
+                                        <outcome value='-1'>\r
+                                            <switch test='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$n-index].network-status`'>\r
+                                                <outcome value='unassigned'>\r
+                                                    <set>\r
+                                                        <parameter name='unassigned-network-index' value='`$n-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$network-index`'>\r
+                            <outcome value='-1'>\r
+                                <switch test='`$unassigned-network-index`'>\r
+                                    <outcome value='-1'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="L3-network not found" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'\r
+  value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-id`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].vlan-tag-id'\r
+  value='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].vlan-tag-id`' />\r
+                                                <parameter name='service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$unassigned-network-index].network-status'\r
+  value='assigned' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id'\r
+  value='`$service-data.network-instance-groups.network-instance-group[$network-instance-group-index].networks.network[$network-index].network-id`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <for index='vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\r
+                <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                    <block atomic="true">\r
+                        <for index='n-index' start='0' end='`$service-data.networks.network_length`' >\r
+                            <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id\r
+  == $service-data.networks.network[$n-index].network-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name'\r
+  value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-name`' />\r
+                                            <parameter name='tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-role'\r
+  value='`$service-data.networks.network[$n-index].network-data.network-topology.network-topology-identifier-structure.network-role`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <switch test='`$tmp.vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-name`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Failed to find a network name for network id '\r
+  + $service-data.networks.network[$n-index].network-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='found-collection' value='false' />\r
+            </set>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length`' >\r
+                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$idx].network-instance-group-function\r
+  == $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='found-collection' value='true' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='vnc-index' value='`$idx`' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$found-collection`'>\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Unable to find vnf-network-collection for network-instance-group-function '\r
+  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='found-network-instance-group' value='false' />\r
+            </set>\r
+            <for index='idx' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\r
+  == $service-data.network-instance-groups.network-instance-group[$idx].network-instance-group-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='found-network-instance-group' value='true' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='nig-index' value='`$idx`' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$found-network-instance-group`'>\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Unable to find network-instance-group for network-instance-group-id '\r
+  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='subnet-index' start='0'\r
+  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\r
+                <switch test='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`'>\r
+                    <outcome value='ipv4'>\r
+                        <block>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address`'>\r
+                                <outcome value=''>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vt-ip.network-instance-group-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\r
+                                            <parameter name='tmp.vt-ip.network-instance-group-function'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\r
+                                            <parameter name='tmp.vt-ip.nf-role'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\r
+                                            <parameter name='tmp.vt-ip.vm-type'\r
+  value='`$db.group-uuids[$group-index].vm-type`' />\r
+                                            <parameter name='tmp.vt-ip.vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\r
+                                            <parameter name='tmp.vt-ip.type'\r
+  value='VIP' />\r
+                                            <parameter name='tmp.vt-ip.vf-module-id'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                            <parameter name='tmp.vt-ip.ip-version'\r
+  value='ipv4' />\r
+                                            <parameter name='tmp.vt-ip.network-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'></return>\r
+                                            </outcome>\r
+                                        </call>\r
+                                        <set>\r
+                                            <parameter name='eipam-ip-block.plans_length' value='2' />\r
+                                            <parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].client-key'\r
+  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value="`'34.52.87.1' + $counter`" />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='4' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv4-address'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\r
+                                <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                                    <set>\r
+                                        <parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v4'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                    </set>\r
+                                </for>\r
+                            </for>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='ipv6'>\r
+                        <block>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address`'>\r
+                                <outcome value=''>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vt-ip.network-instance-group-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\r
+                                            <parameter name='tmp.vt-ip.network-instance-group-function'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\r
+                                            <parameter name='tmp.vt-ip.nf-role'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\r
+                                            <parameter name='tmp.vt-ip.vm-type'\r
+  value='`$db.group-uuids[$group-index].vm-type`' />\r
+                                            <parameter name='tmp.vt-ip.vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\r
+                                            <parameter name='tmp.vt-ip.type'\r
+  value='VIP' />\r
+                                            <parameter name='tmp.vt-ip.vf-module-id'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                            <parameter name='tmp.vt-ip.ip-version'\r
+  value='ipv6' />\r
+                                            <parameter name='tmp.vt-ip.network-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[0].vnic-sub-interface.sub-interface-network-data[0].network-id`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'></return>\r
+                                            </outcome>\r
+                                        </call>\r
+                                        <set>\r
+                                            <parameter name='eipam-ip-block.plans_length' value='2' />\r
+                                            <parameter name='eipam-ip-block.plans[0].plan-name' value='plan-1' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests_length' value='6' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].client-key'\r
+  value='vm-type-1|zmtn6nf-code-16code-1001|network-role-1|subnet-role-1|FIXED|4|1' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-type' value='FIXED' />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-prefix' value="`'cafe:1111' + $counter`" />\r
+                                            <parameter name='eipam-ip-block.plans[0].requests[0].ip-version' value='6' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$vnc-index].vnf-floating-ip.ip-addresses.vipv6-address'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <for index='vlan-vnic-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic_length`' >\r
+                                <for index='sub-index' start='0' end='`$tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                                    <set>\r
+                                        <parameter name='tmp.vlan-vnics.vlan-vnic[$vlan-vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].floating-ips.floating-ip-v6'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                    </set>\r
+                                </for>\r
+                            </for>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.'\r
+  value='`$tmp.vlan-vnics.`' />\r
+            </set>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_auto-ip-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_auto-ip-assignment.xml
new file mode 100644 (file)
index 0000000..77fdb44
--- /dev/null
@@ -0,0 +1,1593 @@
+<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='auto-ip-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$auto-ip-assignment-input.aic-cloud-region`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="auto-ip-assignment-input.aic-cloud-region is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$auto-ip-assignment-input.vf-module.model-customization-uuid`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="auto-ip-assignment-input.vf-module.model-customization-uuid is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$auto-ip-assignment-input.vf-module-id`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="auto-ip-assignment-input.vf-module-id is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$auto-ip-assignment-input.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="auto-ip-assignment-input.service-instance-id is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $auto-ip-assignment-input.vf-module.model-customization-uuid'\r
+  pfx='db1.vf-module-model'>\r
+                <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'No model found for VF module customization UUID ' + $vnf-topology-operation-input.vnf-request-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $auto-ip-assignment-input.vf-module.model-customization-uuid \r
+               AND vm_count > 0'\r
+  pfx='db1.vf-module-to-vfc-mapping[]'>\r
+                <outcome value='failure'>\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 reading VF_MODULE_TO_VFC_MAPPING table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db1.vf-module-to-vfc-mapping_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic='true'>\r
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $auto-ip-assignment-input.aic-cloud-region AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                    <outcome value='not-found'>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="404" />\r
+                            <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                        </return>\r
+                    </outcome>\r
+                </get-resource>\r
+                <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                    <outcome value='0'>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value=''>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                        </return>\r
+                    </outcome>\r
+                </switch>\r
+                <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                    <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                            <outcome value='complex.physical-location-id'>\r
+                                <block atomic='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                        </set>\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                            <parameter name='result' value='tmp.truncated.clli8' />\r
+                                            <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                            <parameter name='begin-index' value='0' />\r
+                                            <parameter name='end-index' value='8' />\r
+                                        </execute>\r
+                                        <set>\r
+                                            <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                        </set>\r
+                                    </block>\r
+                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="Complex not found in AAI" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\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 retrieving complex from AAI" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <set>\r
+                                        <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+                <set>\r
+                    <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$auto-ip-assignment-input.aic-cloud-region`' />\r
+                </set>\r
+            </block>\r
+            <set>\r
+                <parameter name='tmp.network-role-query-results_length' value='0' />\r
+            </set>\r
+            <set>\r
+                <parameter name='eipam-ip-block.plans_length' value = '0' />\r
+                <parameter name='query-aai-l3-network-by-network-role-output.' value = '' />\r
+            </set>\r
+            <set>\r
+                <parameter name='qridx' value = '0' />\r
+            </set>\r
+            <set>\r
+                <parameter name='pidx' value = '0' />\r
+            </set>\r
+            <for index='vm-type-index' start='0' end='`$db1.vf-module-to-vfc-mapping_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='vm-type-loop' value = 'START' />\r
+                        <parameter name='tmp.vm-type' value = '`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.db1.' value = '' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='db1.vfc-to-network-role-mapping.' value = '' />\r
+                    </set>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db1.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid \r
+               AND (ipv4_count > 0 OR ipv6_count > 0 OR ipv4_floating_count > 0 OR ipv6_floating_count > 0)'\r
+       pfx='db1.vfc-to-network-role-mapping[]'>\r
+                        <outcome value='not-found'>\r
+                            <set>\r
+                                <parameter name='db1.vfc-to-network-role-mapping_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='failure'>\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 reading VFC_TO_NETWORK_ROLE_MAPPING table" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <set>\r
+                        <parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\r
+                    </set>\r
+                    <for index='network-role-index' start='0' end='`$db1.vfc-to-network-role-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='network-role-loop' value = 'START' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.plan-index-to-be-incremented' value='false' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.network-role.found' value = 'false' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.db1.network-role' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.db1.network-role-tag' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\r
+                            </set>\r
+                            <block atomic='true'>\r
+                                <block>\r
+                                    <for index='q' start='0' end='`$tmp.network-role-query-results_length`' >\r
+                                        <set>\r
+                                            <parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\r
+                                        </set>\r
+                                        <switch test='`$tmp.qresult.network-role == $tmp.db1.network-role`' >\r
+                                            <outcome value='true'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='generate-FQPN-input.network-name' \r
+       value='`$tmp.network-role-query-results[$q].l3-network.network-name`' />\r
+                                                        <parameter name='generate-FQPN-input.network-id' \r
+       value='`$tmp.network-role-query-results[$q].l3-network.network-id`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.network-role.found' value = 'true' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='query-results-found-index' value = '`$q`' />\r
+                                                    </set>\r
+                                                    <return status='failure'></return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <return status='success'></return>\r
+                                </block>\r
+                                <switch test='`$tmp.network-role.found`'>\r
+                                    <outcome value='false'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.aic-cloud-region' \r
+       value='`$auto-ip-assignment-input.aic-cloud-region`' />\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.service-instance-id' \r
+       value='`$auto-ip-assignment-input.service-instance-id`' />\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.network-role' \r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                <!--\r
+filter options: service-instance-id, aic-cloud-region, null, Other (or any string)\r
+    - null or Other will filter by aic-cloud-region first, then service-instance-id\r
+<parameter name='query-aai-l3-network-by-network-role-input.filter' \r
+       value='service-instance-id' />\r
+-->\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='query-aai-l3-network-by-network-role' mode='sync' >\r
+                                                <outcome value='failure'>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="ack-final" value="Y" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="`'An error occured while querying AAI to retrieve l3-network by network-role: ' + $error-message`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </call>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.network-name' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\r
+                                                <parameter name='generate-FQPN-input.network-id' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-id`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.network-role-query-results[$qridx].l3-network.' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.`' />\r
+                                                <parameter name='tmp.network-role-query-results[$qridx].l3-network.network-role-tag' \r
+       value='`$tmp.db1.network-role-tag`' />\r
+                                                <!--\r
+<parameter name='tmp.network-role-query-results[$qridx].network-role' \r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' /><parameter name='tmp.network-role-query-results[$qridx].network-name' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\r
+-->\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.plans[$pidx].l3-network.' \r
+       value='query-aai-l3-network-by-network-role-output.l3-network.' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='qridx' value='`$qridx + 1`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.network-role-query-results_length' value='`$qridx`' />\r
+                                            </set>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='ridx' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].subnet-role'\r
+    value="`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`" />\r
+                                                </set>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                                    <outcome value='4'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv4-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                                    <outcome value='6'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv6-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.plan-index-to-be-incremented`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='pidx' value='`$pidx + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.plans_length" value="`$pidx`"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='true'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.plans[$pidx].l3-network.' \r
+       value='tmp.network-role-query-results[$query-results-found-index].l3-network.' />\r
+                                            </set>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='ridx' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].subnet-role'\r
+    value="`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`" />\r
+                                                </set>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                                    <outcome value='4'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv4-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                                    <outcome value='6'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv6-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.plan-index-to-be-incremented`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='pidx' value='`$pidx + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.plans_length" value="`$pidx`"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <for index='vm-type-index' start='0' end='`$db1.vf-module-to-vfc-mapping_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='vm-type-floating-loop' value = 'START' />\r
+                        <parameter name='tmp.vm-type' value = '`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='db1.vfc-to-network-role-mapping.' value = '' />\r
+                    </set>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db1.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid \r
+               AND (ipv4_count > 0 OR ipv6_count > 0 OR ipv4_floating_count > 0 OR ipv6_floating_count > 0)'\r
+       pfx='db1.vfc-to-network-role-mapping[]'>\r
+                        <outcome value='not-found'>\r
+                            <set>\r
+                                <parameter name='db1.vfc-to-network-role-mapping_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='failure'>\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 reading VFC_TO_NETWORK_ROLE_MAPPING table" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <set>\r
+                        <parameter name='tmp.db1.network-role' value = '' />\r
+                    </set>\r
+                    <for index='network-role-index' start='0' end='`$db1.vfc-to-network-role-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='network-role-loop' value = 'START' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.plan-index-to-be-incremented' value='false' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.network-role.found' value = 'false' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.db1.network-role' value = '`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                            </set>\r
+                            <block atomic="true">\r
+                                <block>\r
+                                    <for index='q' start='0' end='`$tmp.network-role-query-results_length`' >\r
+                                        <set>\r
+                                            <parameter name='tmp.qresult.network-role' value = '`$tmp.network-role-query-results[$q].l3-network.network-role`' />\r
+                                        </set>\r
+                                        <switch test='`$tmp.qresult.network-role == $tmp.db1.network-role`' >\r
+                                            <outcome value='true'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='generate-FQPN-input.network-name' \r
+       value='`$tmp.network-role-query-results[$q].l3-network.network-name`' />\r
+                                                        <parameter name='generate-FQPN-input.network-id' \r
+       value='`$tmp.network-role-query-results[$q].l3-network.network-id`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.network-role.found' value = 'true' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='query-results-found-index' value = '`$q`' />\r
+                                                    </set>\r
+                                                    <return status='failure'></return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <return status='success'></return>\r
+                                </block>\r
+                                <switch test='`$tmp.network-role.found`'>\r
+                                    <outcome value='false'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.aic-cloud-region' \r
+       value='`$auto-ip-assignment-input.aic-cloud-region`' />\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.service-instance-id' \r
+       value='`$auto-ip-assignment-input.service-instance-id`' />\r
+                                                <parameter name='query-aai-l3-network-by-network-role-input.network-role' \r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                <!--\r
+filter options: service-instance-id, aic-cloud-region, null, Other (or any string)\r
+    - null or Other will filter by aic-cloud-region first, then service-instance-id\r
+<parameter name='query-aai-l3-network-by-network-role-input.filter' \r
+       value='service-instance-id' />\r
+-->\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='query-aai-l3-network-by-network-role' mode='sync' >\r
+                                                <outcome value='failure'>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="ack-final" value="Y" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="`'An error occured while querying AAI to retrieve l3-network by network-role: ' + $error-message`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </call>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.network-name' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\r
+                                                <parameter name='generate-FQPN-input.network-id' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-id`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.network-role-query-results[$qridx].l3-network.' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.`' />\r
+                                                <parameter name='tmp.network-role-query-results[$qridx].l3-network.network-role-tag' \r
+       value='`$tmp.db1.network-role-tag`' />\r
+                                                <!--\r
+<parameter name='tmp.network-role-query-results[$qridx].network-role' \r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' /><parameter name='tmp.network-role-query-results[$qridx].network-name' \r
+       value='`$query-aai-l3-network-by-network-role-output.l3-network.network-name`' />\r
+-->\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.plans[$pidx].l3-network.' \r
+       value='query-aai-l3-network-by-network-role-output.l3-network.' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='qridx' value='`$qridx + 1`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.network-role-query-results_length' value='`$qridx`' />\r
+                                            </set>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='ridx' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].subnet-role'\r
+    value="`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`" />\r
+                                                </set>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                                    <outcome value='4'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv4-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                                    <outcome value='6'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.client-key.seq' value='0' />\r
+                                                                            </set>\r
+                                                                            <for index='vm-index' start='0' end='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                                                                                <for index='ipv6-index' start='0' end='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' >\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\r
+                                                                                            <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.client-key.seq' value='`$tmp.client-key.seq + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <block atomic='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='FIXED' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                            </set>\r
+                                                                                            <block>\r
+                                                                                                <switch test='`$tmp.client-key.seq &lt; 10`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.client-key.padding' value='000' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                    <outcome value='false'>\r
+                                                                                                        <switch test='`$tmp.client-key.seq &lt; 100`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='tmp.client-key.padding' value='00' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <switch test='`$tmp.client-key.seq &lt; 1000`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='tmp.client-key.padding' value='0' />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='false'>\r
+                                                                                                                        <switch test='`$tmp.client-key.seq &lt; 10000`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.client-key.padding' value='' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' +\r
+                       $tmp.client-key.padding + $tmp.client-key.seq`"/>\r
+                                                                                                <!-- rdn|zrdm3amdns02testdns001|data|static|VIP|4|0001 -->\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.plan-index-to-be-incremented`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='pidx' value='`$pidx + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.plans_length" value="`$pidx`"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='eipam-ip-block.plans[$pidx].l3-network.' \r
+       value='tmp.network-role-query-results[$query-results-found-index].l3-network.' />\r
+                                            </set>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='ridx' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                    <parameter name='eipam-ip-block.plans[$pidx].subnet-role'\r
+    value="`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`" />\r
+                                                </set>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                                    <outcome value='4'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-floating-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-vrf-name`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                                                            </set>\r
+                                                                            <block atomic='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='VIP' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].group-number'\r
+    value='1' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].group-number + '|0001'`" />\r
+                                                                                    <!-- rdn|data|static|FIXED|4|1|0001 -->\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                                    <outcome value='6'>\r
+                                                        <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`'>\r
+                                                            <outcome value='N'>\r
+                                                                <switch test='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-floating-count &gt; 0`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='generate-FQPN-input.plan-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.vrf-name'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-vrf-name`' />\r
+                                                                                <parameter name='generate-FQPN-input.subnet-role' \r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                <parameter name='generate-FQPN-input.network-role'\r
+       value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                <!--\r
+<parameter name='generate-FQPN-input.plans-index' value='`$pidx`' /><parameter name='generate-FQPN-input.requests-index' value='`$ridx`' />\r
+-->\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="ack-final" value="Y" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                            </call>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-index-to-be-incremented' value='true' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].plan-name'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-address-plan-name`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].address-family'\r
+    value="`'ipv' + $db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`" />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-version'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`' />\r
+                                                                                <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].use-dhcp'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                                                            </set>\r
+                                                                            <block atomic='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].'\r
+    value='generate-FQPN-output.' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vm-type'\r
+    value='`$db1.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].network-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role'\r
+    value='`$db1.vfc-to-network-role-mapping[$network-role-index].subnet-role`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].ip-type'\r
+    value='VIP' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].group-number'\r
+    value='1' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].vnfc-name'\r
+    value='`$auto-ip-assignment-input.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-index].vnfc-names[0].vnfc-name`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].client-key'\r
+   value="`$eipam-ip-block.plans[$pidx].requests[$ridx].vm-type + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].network-role + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].subnet-role + '|' +\r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-type + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].ip-version + '|' + \r
+                       $eipam-ip-block.plans[$pidx].requests[$ridx].group-number + '|0001'`" />\r
+                                                                                    <!-- rdn|data|static|FIXED|4|1|0001 -->\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests[$ridx].info'\r
+   value='`$auto-ip-assignment-input.vf-module-id`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='ridx' value='`$ridx + 1`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='eipam-ip-block.plans[$pidx].requests_length' value='`$ridx`' />\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.plan-index-to-be-incremented`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='pidx' value='`$pidx + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.plans_length" value="`$pidx`"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <block atomic='true'>\r
+                <switch test='`$eipam-ip-block.plans_length &gt; 0`'>\r
+                    <outcome value='true'>\r
+                        <block atomic='true'>\r
+                            <switch test='`$auto-ip-assignment-input.service-type`'>\r
+                                <outcome value=''>\r
+                                    <set>\r
+                                        <parameter name='service-data.service-information.service-type' value='NA' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <parameter name="ack-final" value="Y" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 3cb6f93..06756c6 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation-activate' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
+<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='contrail-route-topology-operation-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
  + $tmp.ar.allotted-resource-id\r
  + '/allotted-resource-data/contrail-route-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
-</set><set>\r
-<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
-</set><switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" \r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
+                <parameter name="outputPath" value="tmp.ar-url"/>\r
+                <parameter name="target" value="{allotted-resource-id}"/>\r
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
+                                    </set>\r
+                                    <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
+                                        <outcome value='Created'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" \r
     value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + ', expecting Created.'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></block></outcome></execute><set>\r
-<parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-<parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-<parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-</set><set>\r
-<parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
-\r
-\r
-\r
-</set><switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\r
-\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error activating contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'><block>\r
-<switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\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 activating contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">\r
-\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\r
-<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
-\r
-\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="tenant" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\r
-                    tenant.tenant-id = $tmp.ar.tenant-id"\r
-        pfx='aai.tenant' local-only='false' >\r
-\r
-<outcome value='success'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\r
-\r
-\r
-</set></block></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'>\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 activating contrail route.  Source network not found" />\r
-</return></outcome></switch></for></block></outcome></switch></block></outcome></switch><set>\r
-<parameter name='tmp.fq-name' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` " />\r
-</set><set>\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='apply' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
-<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
-<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to apply policy in Contrail to source network" />\r
-</return></outcome></execute><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="404" />\r
+                            <parameter name="error-message" value="Error: Contrail Route not found" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
+            </set>\r
+            <switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\r
+                <outcome value=''>\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 activating contrail route.  Source network not found" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <switch test='`$service-data.networks.network_length`'>\r
+                            <outcome value=''>\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 activating contrail route.  Source network not found" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">\r
+                                            <outcome value='true'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\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 activating contrail route.  Source network not found" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.fq-name' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` " />\r
+            </set>\r
+            <set>\r
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                <parameter name='api-name' value='network-policy' />\r
+                <parameter name='api-action' value='apply' />\r
+                <parameter name='resp-prefix' value='contrailResp' />\r
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
+                <parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to apply policy in Contrail to source network" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
                key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" \r
                local-only="false" \r
                pfx="aai.dest-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></get-resource><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='apply' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
-<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
-<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to apply policy in Contrail to source network" />\r
-</return></outcome></execute><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+            </get-resource>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
+                <parameter name='api-name' value='network-policy' />\r
+                <parameter name='api-action' value='apply' />\r
+                <parameter name='resp-prefix' value='contrailResp' />\r
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
+                <parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to apply policy in Contrail to source network" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
 resource="related-link"\r
 key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id"\r
 local-only="true"\r
 pfx="tmp.AnAI-src">\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
-</return></outcome></get-resource><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
 resource="related-link"\r
 key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id"\r
 local-only="true"\r
 pfx="tmp.AnAI-dest">\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
-</return></outcome></get-resource><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to get related link for l3-network in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="network-policy:relationship-list" \r
        key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
-<parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
-<parameter name="relationship-list.relationship[0].related-link" value="`tmp.AnAI-src.related-link`" />\r
-<parameter name="relationship-list.relationship[1].related-to" value="l3-network" />\r
-<parameter name="relationship-list.relationship[1].related-link" value="`tmp.AnAI-dest.related-link`" />\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome></save><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`tmp.AnAI-src.related-link`" />\r
+                <parameter name="relationship-list.relationship[1].related-to" value="l3-network" />\r
+                <parameter name="relationship-list.relationship[1].related-link" value="`tmp.AnAI-dest.related-link`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </save>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="allotted-resource" \r
                key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
                        service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
                        service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
                        allotted-resource.id = $tmp.ar.allotted-resource-id"\r
         pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="in-service-path" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+                <parameter name="operational-status" value="in-service-path" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-ar" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $contrail-route-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 997695b..444b50d 100755 (executable)
-<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='contrail-route-topology-operation-assign' mode='sync'>\r
-        <block atomic="true">\r
-            <set>\r
-                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-                <parameter name='tmp.ar.contrail-applied-service-instance-id' value='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`' />\r
-                <parameter name='tmp.ar.allotted-resource-type' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\r
-            </set>\r
-            <set>\r
-                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/contrail-route-topology/'` " />\r
-            </set>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-                <parameter name='contextPrefix' value='prop' />\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-                <parameter name="outputPath" value="tmp.ar-url"/>\r
-                <parameter name="target" value="{allotted-resource-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$prop.restapi.network`"/>\r
-                <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>\r
-                <parameter name="target" value="{service-instance-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$prop.restapi.vnf`"/>\r
-                <parameter name="outputPath" value="tmp.ar-contrailappliedsvc-url"/>\r
-                <parameter name="target" value="{service-instance-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.contrail-applied-service-instance-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>\r
-                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
-                <parameter name="target" value="{service-instance-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$tmp.parent-ar-url`"/>\r
-                <parameter name="outputPath" value="tmp.parent-ar-url"/>\r
-                <parameter name="target" value="{allotted-resource-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>\r
-                <parameter name="outputPath" value="tmp.network-ar-url"/>\r
-                <parameter name="target" value="{service-instance-id}"/>\r
-                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-                <outcome value='success'>\r
-                    <block atomic="true">\r
-                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-                            <outcome value='1'>\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: Existing contrail route allotted resource" />\r
-                                </return>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block atomic="true"></block>\r
-                </outcome>\r
-            </execute>\r
-            <set>\r
-                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-            </set>\r
-            <set>\r
-                <parameter name='ar-identifiers.consuming-service-instance-id' value="`$contrail-route-topology-operation-input.service-information.service-instance-id` " />\r
-                <parameter name='ar-identifiers.parent-service-instance-id' value="`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
-                <parameter name='ar-identifiers.allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
-                <parameter name='ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-            </set>\r
-            <set>\r
-                <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.' \r
-value="`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.`" />\r
-            </set>\r
-            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\r
-                <outcome value=''>\r
-                    <set>\r
-                        <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-invariant-uuid' \r
-value="`$ar-model.invariant-uuid`" />\r
-                    </set>\r
-                </outcome>\r
-            </switch>\r
-            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\r
-                <outcome value=''>\r
-                    <set>\r
-                        <parameter name='sar.allotted-resource-data.contrail-route-topology.onap-model-information.model-uuid' \r
-value="`$ar-model.uuid`" />\r
-                    </set>\r
-                </outcome>\r
-            </switch>\r
-            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\r
-                <outcome value=''>\r
-                    <set>\r
-                        <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-version' \r
-value="`$ar-model.version`" />\r
-                    </set>\r
-                </outcome>\r
-            </switch>\r
-            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\r
-                <outcome value=''>\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 assigning contrail route.  Source network not found" />\r
-                    </return>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block>\r
-                        <switch test='`$service-data.networks.network_length`'>\r
-                            <outcome value=''>\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 assigning contrail route.  Source network not found" />\r
-                                </return>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='source-network-found' value='false' />\r
-                                    </set>\r
-                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-                                        <block>\r
-                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-                                                <parameter name="logger" value="message-log"/>\r
-                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
-                                                <parameter name="field2" value="tmp.ar-name="/>\r
-                                                <parameter name="field3" value="`$tmp.ar-name`"/>\r
-                                                <parameter name="field4" value="service-data-network-id" />\r
-                                                <parameter name="field5" value="`$service-data.networks.network[$nidx].network-id`" />\r
-                                                <parameter name="field6" value="contrail-route-input-network-id" />\r
-                                                <parameter name="field7" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`" />\r
-                                                <parameter name="field8" value="`$nidx`" />\r
-                                            </record>\r
-                                            <switch test="`$service-data.networks.network[$nidx].network-id == $contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`">\r
-                                                <outcome value='true'>\r
-                                                    <block>\r
-                                                        <set>\r
-                                                            <parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\r
-                                                            <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
-                                                            <parameter name='source-network-found' value='true' />\r
-                                                        </set>\r
-                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="tenant" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\r
-                    tenant.tenant-id = $tmp.ar.tenant-id"\r
-        pfx='aai.tenant' local-only='false' >\r
-                                                            <outcome value='success'>\r
-                                                                <block atomic="true">\r
-                                                                    <set>\r
-                                                                        <parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\r
-                                                                    </set>\r
-                                                                </block>\r
-                                                            </outcome>\r
-                                                            <outcome value='not-found'>\r
-                                                                <return status='failure'>\r
-                                                                    <parameter name='ack-final' value='Y'/>\r
-                                                                    <parameter name="error-code" value="500" />\r
-                                                                    <parameter name="error-message" value="Tenant not found in AAI" />\r
-                                                                </return>\r
-                                                            </outcome>\r
-                                                            <outcome value='Other'>\r
-                                                                <return status='failure'>\r
-                                                                    <parameter name='ack-final' value='Y'/>\r
-                                                                    <parameter name="error-code" value="500" />\r
-                                                                    <parameter name="error-message" value="Tenant not found in AAI" />\r
-                                                                </return>\r
-                                                            </outcome>\r
-                                                        </get-resource>\r
-                                                    </block>\r
-                                                </outcome>\r
-                                            </switch>\r
-                                        </block>\r
-                                    </for>\r
-                                    <switch test="`$source-network-found`">\r
-                                        <outcome value='false'>\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 assigning contrail route.  Source network not found" />\r
-                                            </return>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-            </switch>\r
-            <switch test='`$ar-model.ecomp-generated-naming`'>\r
-                <outcome value='Y'>\r
-                    <block atomic="true">\r
-                        <switch test='`$ar-model.naming-policy`'>\r
-                            <outcome value='oam_network_policy'>\r
-                                <block atomic='true'>\r
-                                    <set>\r
-                                        <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />\r
-                                    </set>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$TenantName"/>\r
-                                        <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$CloudRegionID"/>\r
-                                        <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$TenantNetworkRole"/>\r
-                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$LandingNetworkRole"/>\r
-                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>\r
-                                    </execute>\r
-                                    <set>\r
-                                        <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\r
-                                        <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\r
-                                        <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\r
-                                        <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />\r
-                                        <parameter name='generate-unique-name-input.index-length' value='2' />\r
-                                    </set>\r
-                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-                                        <parameter name="logger" value="message-log"/>\r
-                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
-                                        <parameter name="field2" value="tmp.ar-name="/>\r
-                                        <parameter name="field3" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="field4" value="generate-unique-name-input.prefix" />\r
-                                        <parameter name="field5" value="`$generate-unique-name-input.prefix`" />\r
-                                    </record>\r
-                                    <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-                                        <outcome value='failure'>\r
-                                            <return status='failure'>\r
-                                                <parameter name='ack-final' value='Y'/>\r
-                                                <parameter name="error-code" value="500" />\r
-                                                <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-                                            </return>\r
-                                        </outcome>\r
-                                        <outcome value='success'>\r
-                                            <set>\r
-                                                <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\r
-                                            </set>\r
-                                        </outcome>\r
-                                    </call>\r
-                                    <set>\r
-                                        <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\r
-                                    </set>\r
-                                </block>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic='true'>\r
-                                    <set>\r
-                                        <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />\r
-                                    </set>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$TenantName"/>\r
-                                        <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$CloudRegionID"/>\r
-                                        <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$TenantNetworkRole"/>\r
-                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>\r
-                                    </execute>\r
-                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                                        <parameter name="source" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="outputPath" value="tmp.ar-name"/>\r
-                                        <parameter name="target" value="$LandingNetworkRole"/>\r
-                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>\r
-                                    </execute>\r
-                                    <set>\r
-                                        <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />\r
-                                        <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />\r
-                                        <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />\r
-                                        <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />\r
-                                        <parameter name='generate-unique-name-input.index-length' value='2' />\r
-                                    </set>\r
-                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-                                        <parameter name="logger" value="message-log"/>\r
-                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
-                                        <parameter name="field2" value="tmp.ar-name="/>\r
-                                        <parameter name="field3" value="`$tmp.ar-name`"/>\r
-                                        <parameter name="field4" value="generate-unique-name-input.prefix" />\r
-                                        <parameter name="field5" value="`$generate-unique-name-input.prefix`" />\r
-                                    </record>\r
-                                    <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-                                        <outcome value='failure'>\r
-                                            <return status='failure'>\r
-                                                <parameter name='ack-final' value='Y'/>\r
-                                                <parameter name="error-code" value="500" />\r
-                                                <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-                                            </return>\r
-                                        </outcome>\r
-                                        <outcome value='success'>\r
-                                            <set>\r
-                                                <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />\r
-                                            </set>\r
-                                        </outcome>\r
-                                    </call>\r
-                                    <set>\r
-                                        <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\r
-                                    </set>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='Other'>\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 in allotted-resource-model data.  Ecomp-generated-naming should be true" />\r
-                    </return>\r
-                </outcome>\r
-            </switch>\r
-            <set>\r
-                <parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' \r
-value="`$ar-identifiers.`" />\r
-            </set>\r
-            <set>\r
-                <parameter name='ar-assignments.source-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.` " />\r
-                <parameter name='ar-assignments.dest-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.` " />\r
-                <parameter name='ar-assignments.contrail-applied-service.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.` " />\r
-            </set>\r
-            <set>\r
-                <parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />\r
-            </set>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$tmp.fq-name`"/>\r
-                <parameter name="outputPath" value="tmp.fq-name"/>\r
-                <parameter name="target" value="$defaultDomain"/>\r
-                <parameter name="replacement" value="default-domain"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$tmp.fq-name`"/>\r
-                <parameter name="outputPath" value="tmp.fq-name"/>\r
-                <parameter name="target" value="$defaultProject"/>\r
-                <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$tmp.fq-name`"/>\r
-                <parameter name="outputPath" value="tmp.fq-name"/>\r
-                <parameter name="target" value="$sdncNetworkPolicy"/>\r
-                <parameter name="replacement" value="`$tmp.ar-name`"/>\r
-            </execute>\r
-            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id`'>\r
-                <outcome value=''>\r
-                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-parentnetwork-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="parent-net" />\r
-                        <outcome value='success'>\r
-                            <block atomic="true">\r
-                                <switch test='`$parent-net.networks.network_length`'>\r
-                                    <outcome value='1'>\r
-                                        <set>\r
-                                            <parameter name='ar-assignments.dest-network.network-id' value="`$parent-net.networks.network[0].network-id` " />\r
-                                        </set>\r
-                                    </outcome>\r
-                                    <outcome value='Other'>\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: Network id not found.  Parent Service should only have one network" />\r
-                                        </return>\r
-                                    </outcome>\r
-                                </switch>\r
-                            </block>\r
-                        </outcome>\r
-                        <outcome value='Other'>\r
-                            <block atomic="true">\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: No existing parent netorks" />\r
-                                </return>\r
-                            </block>\r
-                        </outcome>\r
-                    </execute>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <set>\r
-                        <parameter name='ar-assignments.dest-network.network-id' value="`$contrail-route-request-input.dest-network.network-id` " />\r
-                    </set>\r
-                </outcome>\r
-            </switch>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-contrailappliedsvc-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="vnf" />\r
-                <outcome value='success'>\r
-                    <block atomic="true">\r
-                        <switch test='`$vnf.vnfs.vnf_length`'>\r
-                            <outcome value='1'>\r
-                                <set>\r
-                                    <parameter name='ar-assignments.contrail-applied-service.vnf-id' value="`$vnf.vnfs.vnf[0].vnf-id` " />\r
-                                </set>\r
-                            </outcome>\r
-                            <outcome value='Other'>\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: vnf id not found.  Contrail applied service should only have one vnf" />\r
-                                </return>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block atomic="true">\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: No existing contrail applied service vnfs" />\r
-                        </return>\r
-                    </block>\r
-                </outcome>\r
-            </execute>\r
-            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`'>\r
-                <outcome value=''>\r
-                    <block atomic="true">\r
-                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="generic-vnf" \r
-               key="generic-vnf.vnf-id = $ar-assignments.contrail-applied-service.vnf-id"\r
-        pfx='aai.vnf' local-only='false' >\r
-                            <outcome value='not-found'>\r
-                                <return status='failure'>\r
-                                    <parameter name='ack-final' value='Y'/>\r
-                                    <parameter name="error-code" value="500" />\r
-                                    <parameter name="error-message" value="Vnf not found in AAI" />\r
-                                </return>\r
-                            </outcome>\r
-                            <outcome value='failure'>\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 retrieving vnf from AAI" />\r
-                                </return>\r
-                            </outcome>\r
-                        </get-resource>\r
-                        <switch test='`$aai.vnf.vf-modules.vf-module_length`'>\r
-                            <outcome value=''>\r
-                                <return status='failure'>\r
-                                    <parameter name='ack-final' value='Y'/>\r
-                                    <parameter name="error-code" value="500" />\r
-                                    <parameter name="error-message" value="VF Module not found in AAI" />\r
-                                </return>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <for index='idx' start='0' end='`$aai.vnf.vf-modules.vf-module_length`' >\r
-                                    <switch test='`$aai-vf-module.contrail-service-instance-fqdn`'>\r
-                                        <outcome value=''>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='Other'>\r
-                                            <block>\r
-                                                <set>\r
-                                                    <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$aai-vf-module.contrail-service-instance-fqdn` " />\r
-                                                </set>\r
-                                                <break/>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </for>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <set>\r
-                        <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn` " />\r
-                    </set>\r
-                </outcome>\r
-            </switch>\r
-            <switch test='`$ar-assignments.contrail-applied-service.contrail-fqdn`'>\r
-                <outcome value=''>\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: No vf-module with contrail-service-instance-fqdn found in AAI" />\r
-                    </return>\r
-                </outcome>\r
-            </switch>\r
-            <set>\r
-                <parameter name='ar-assignments.fq-name' value="`$tmp.fq-name` " />\r
-            </set>\r
-            <set>\r
-                <parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' \r
-value="`$ar-assignments.`" />\r
-            </set>\r
-            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
-                <outcome value=''>\r
-                    <set>\r
-                        <parameter name='tmp.cidx' value="`0`" />\r
-                        <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />\r
-                    </set>\r
-                </outcome>\r
-                <outcome value='Other'>\r
-                    <block atomic="true">\r
-                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
-                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
-                                <outcome value='true'>\r
-                                    <block atomic="true">\r
-                                        <set>\r
-                                            <parameter name='tmp.cidx' value='`$cidx`' />\r
-                                            <parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\r
-                                            <parameter name='tmp.found-cidx' value='true' />\r
-                                        </set>\r
-                                        <break/>\r
-                                    </block>\r
-                                </outcome>\r
-                            </switch>\r
-                        </for>\r
-                        <switch test='`$tmp.found-cidx`'>\r
-                            <outcome value='false'>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\r
-                                    </set>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-            </switch>\r
-            <set>\r
-                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
-                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />\r
-                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\r
-            </set>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-                <parameter name="outputPath" value="tmp.current-time" />\r
-            </execute>\r
-            <set>\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-            </set>\r
-            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-                <parameter name="description" value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`" />\r
-                <parameter name="selflink" value="`$tmp.ar.self-link`" />\r
-                <parameter name="model-invariant-id" value="`$ar-model.invariant-uuid`" />\r
-                <parameter name="model-version-id" value="`$ar-model.uuid`" />\r
-                <parameter name="operational-status" value="null" />\r
-                <outcome value='failure'>\r
-                    <return status='failure'>\r
-                        <parameter name='ack-final' value='Y'/>\r
-                        <parameter name="error-code" value="500" />\r
-                        <parameter name="error-message" value="AAI failed" />\r
-                    </return>\r
-                </outcome>\r
-                <outcome value='not-found'>\r
-                    <return status='failure'>\r
-                        <parameter name='ack-final' value='Y'/>\r
-                        <parameter name="error-code" value="500" />\r
-                        <parameter name="error-message" value="AAI failed" />\r
-                    </return>\r
-                </outcome>\r
-            </update>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
-                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='PUT' />\r
-                <parameter name="responsePrefix" value="parent" />\r
-                <outcome value='success'>\r
-                    <block></block>\r
-                </outcome>\r
-                <outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-                    </return>\r
-                </outcome>\r
-                <outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-                    </return>\r
-                </outcome>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-                <parameter name="source" value="`$tmp.network-ar-url`"/>\r
-                <parameter name="outputPath" value="tmp.network-ar-url"/>\r
-                <parameter name="target" value="{network-id}"/>\r
-                <parameter name="replacement" value="`$ar-assignments.dest-network.network-id`"/>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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="net-ar" />\r
-                <outcome value='success'>\r
-                    <block atomic="true">\r
-                        <set>\r
-                            <parameter name='tmp.found-nidx' value='false' />\r
-                        </set>\r
-                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\r
-                            <outcome value=''>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                    </set>\r
-                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                        <parameter name="responsePrefix" value="p-network-ar" />\r
-                                        <outcome value='success'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='failure'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='not-found'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                    </execute>\r
-                                </block>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic="true">\r
-                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\r
-                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">\r
-                                            <outcome value='true'>\r
-                                                <block atomic="true">\r
-                                                    <set>\r
-                                                        <parameter name='tmp.found-nidx' value='true' />\r
-                                                    </set>\r
-                                                    <break/>\r
-                                                </block>\r
-                                            </outcome>\r
-                                        </switch>\r
-                                    </for>\r
-                                    <switch test='`$tmp.found-nidx`'>\r
-                                        <outcome value='false'>\r
-                                            <block atomic="true">\r
-                                                <set>\r
-                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />\r
-                                                </set>\r
-                                                <set>\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                                </set>\r
-                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                                    <parameter name="responsePrefix" value="p-network-ar" />\r
-                                                    <outcome value='success'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='failure'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='not-found'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                </execute>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='not-found'>\r
-                    <block atomic="true">\r
-                        <set>\r
-                            <parameter name='tmp.found-nidx' value='false' />\r
-                        </set>\r
-                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\r
-                            <outcome value=''>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                    </set>\r
-                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                        <parameter name="responsePrefix" value="p-network-ar" />\r
-                                        <outcome value='success'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='failure'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='not-found'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                    </execute>\r
-                                </block>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic="true">\r
-                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\r
-                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">\r
-                                            <outcome value='true'>\r
-                                                <block atomic="true">\r
-                                                    <set>\r
-                                                        <parameter name='tmp.found-nidx' value='true' />\r
-                                                    </set>\r
-                                                    <break/>\r
-                                                </block>\r
-                                            </outcome>\r
-                                        </switch>\r
-                                    </for>\r
-                                    <switch test='`$tmp.found-nidx`'>\r
-                                        <outcome value='false'>\r
-                                            <block atomic="true">\r
-                                                <set>\r
-                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />\r
-                                                </set>\r
-                                                <set>\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                                </set>\r
-                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                                    <parameter name="responsePrefix" value="p-network-ar" />\r
-                                                    <outcome value='success'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='failure'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='not-found'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                </execute>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='failure'>\r
-                    <block atomic="true">\r
-                        <set>\r
-                            <parameter name='tmp.found-nidx' value='false' />\r
-                        </set>\r
-                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>\r
-                            <outcome value=''>\r
-                                <block atomic="true">\r
-                                    <set>\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />\r
-                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                    </set>\r
-                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                        <parameter name="responsePrefix" value="p-network-ar" />\r
-                                        <outcome value='success'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='failure'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                        <outcome value='not-found'>\r
-                                            <block></block>\r
-                                        </outcome>\r
-                                    </execute>\r
-                                </block>\r
-                            </outcome>\r
-                            <outcome value='Other'>\r
-                                <block atomic="true">\r
-                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >\r
-                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">\r
-                                            <outcome value='true'>\r
-                                                <block atomic="true">\r
-                                                    <set>\r
-                                                        <parameter name='tmp.found-nidx' value='true' />\r
-                                                    </set>\r
-                                                    <break/>\r
-                                                </block>\r
-                                            </outcome>\r
-                                        </switch>\r
-                                    </for>\r
-                                    <switch test='`$tmp.found-nidx`'>\r
-                                        <outcome value='false'>\r
-                                            <block atomic="true">\r
-                                                <set>\r
-                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />\r
-                                                </set>\r
-                                                <set>\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />\r
-                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />\r
-                                                </set>\r
-                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />\r
-                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-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='PUT' />\r
-                                                    <parameter name="responsePrefix" value="p-network-ar" />\r
-                                                    <outcome value='success'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='failure'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                    <outcome value='not-found'>\r
-                                                        <block></block>\r
-                                                    </outcome>\r
-                                                </execute>\r
-                                            </block>\r
-                                        </outcome>\r
-                                    </switch>\r
-                                </block>\r
-                            </outcome>\r
-                        </switch>\r
-                    </block>\r
-                </outcome>\r
-            </execute>\r
-            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
-                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-                <parameter name="responsePrefix" value="mdsal-ar" />\r
-                <outcome value='failure'>\r
-                    <block>\r
-                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
-                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='DELETE' />\r
-                            <parameter name="responsePrefix" value="parent" />\r
-                            <outcome value='success'>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value='failure'>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value='not-found'>\r
-                                <block></block>\r
-                            </outcome>\r
-                        </execute>\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 updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />\r
-                        </return>\r
-                    </block>\r
-                </outcome>\r
-                <outcome value='not-found'>\r
-                    <block>\r
-                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
-                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='DELETE' />\r
-                            <parameter name="responsePrefix" value="parent" />\r
-                            <outcome value='success'>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value='failure'>\r
-                                <block></block>\r
-                            </outcome>\r
-                            <outcome value='not-found'>\r
-                                <block></block>\r
-                            </outcome>\r
-                        </execute>\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 updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />\r
-                        </return>\r
-                    </block>\r
-                </outcome>\r
-            </execute>\r
-            <set>\r
-                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
-                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $contrail-route-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
-            </set>\r
-            <return status='success'>\r
-                <parameter name="ack-final-indicator" value="Y" />\r
-                <parameter name="error-code" value="200" />\r
-                <parameter name="error-message" value="`$error-message`" />\r
-            </return>\r
-        </block>\r
-    </method>\r
-</service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation-assign' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.contrail-applied-service-instance-id' value='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`' />
+                <parameter name='tmp.ar.allotted-resource-type' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.network`"/>
+                <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.vnf`"/>
+                <parameter name="outputPath" value="tmp.ar-contrailappliedsvc-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.contrail-applied-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.parent-ar-url`"/>
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>
+                <parameter name="outputPath" value="tmp.network-ar-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error: Existing contrail route allotted resource" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
+            </set>
+            <set>
+                <parameter name='ar-identifiers.consuming-service-instance-id' value="`$contrail-route-topology-operation-input.service-information.service-instance-id` " />
+                <parameter name='ar-identifiers.parent-service-instance-id' value="`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />
+                <parameter name='ar-identifiers.allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
+                <parameter name='ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+            </set>
+            <set>
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.' 
+value="`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.`" />
+            </set>
+            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-invariant-uuid' 
+value="`$ar-model.invariant-uuid`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='sar.allotted-resource-data.contrail-route-topology.onap-model-information.model-uuid' 
+value="`$ar-model.uuid`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='ar.allotted-resource-data.contrail-route-topology.onap-model-information.model-version' 
+value="`$ar-model.version`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block>
+                        <switch test='`$service-data.networks.network_length`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='source-network-found' value='false' />
+                                    </set>
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <block>
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                <parameter name="logger" value="message-log"/>
+                                                <parameter name="field1" value="__TIMESTAMP__"/>
+                                                <parameter name="field2" value="tmp.ar-name="/>
+                                                <parameter name="field3" value="`$tmp.ar-name`"/>
+                                                <parameter name="field4" value="service-data-network-id" />
+                                                <parameter name="field5" value="`$service-data.networks.network[$nidx].network-id`" />
+                                                <parameter name="field6" value="contrail-route-input-network-id" />
+                                                <parameter name="field7" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`" />
+                                                <parameter name="field8" value="`$nidx`" />
+                                            </record>
+                                            <switch test="`$service-data.networks.network[$nidx].network-id == $contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`">
+                                                <outcome value='true'>
+                                                    <block>
+                                                        <set>
+                                                            <parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />
+                                                            <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />
+                                                            <parameter name='source-network-found' value='true' />
+                                                        </set>
+                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="tenant" 
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND 
+                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND
+                    tenant.tenant-id = $tmp.ar.tenant-id"
+        pfx='aai.tenant' local-only='false' >
+                                                            <outcome value='success'>
+                                                                <block atomic="true">
+                                                                    <set>
+                                                                        <parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />
+                                                                    </set>
+                                                                </block>
+                                                            </outcome>
+                                                            <outcome value='not-found'>
+                                                                <return status='failure'>
+                                                                    <parameter name='ack-final' value='Y'/>
+                                                                    <parameter name="error-code" value="500" />
+                                                                    <parameter name="error-message" value="Tenant not found in AAI" />
+                                                                </return>
+                                                            </outcome>
+                                                            <outcome value='Other'>
+                                                                <return status='failure'>
+                                                                    <parameter name='ack-final' value='Y'/>
+                                                                    <parameter name="error-code" value="500" />
+                                                                    <parameter name="error-message" value="Tenant not found in AAI" />
+                                                                </return>
+                                                            </outcome>
+                                                        </get-resource>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </block>
+                                    </for>
+                                    <switch test="`$source-network-found`">
+                                        <outcome value='false'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <switch test='`$ar-model.ecomp-generated-naming`'>
+                <outcome value='Y'>
+                    <block atomic="true">
+                        <switch test='`$ar-model.naming-policy`'>
+                            <outcome value='oam_network_policy'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantName"/>
+                                        <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$CloudRegionID"/>
+                                        <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantNetworkRole"/>
+                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$LandingNetworkRole"/>
+                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>
+                                    </execute>
+                                    <set>
+                                        <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />
+                                        <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />
+                                        <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />
+                                        <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />
+                                        <parameter name='generate-unique-name-input.index-length' value='2' />
+                                    </set>
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                        <parameter name="logger" value="message-log"/>
+                                        <parameter name="field1" value="__TIMESTAMP__"/>
+                                        <parameter name="field2" value="tmp.ar-name="/>
+                                        <parameter name="field3" value="`$tmp.ar-name`"/>
+                                        <parameter name="field4" value="generate-unique-name-input.prefix" />
+                                        <parameter name="field5" value="`$generate-unique-name-input.prefix`" />
+                                    </record>
+                                    <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+                                        <outcome value='failure'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='success'>
+                                            <set>
+                                                <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />
+                                            </set>
+                                        </outcome>
+                                    </call>
+                                    <set>
+                                        <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='tmp.ar-name' value='$TenantName_$CloudRegionID_$TenantNetworkRole_$LandingNetworkRole_policy_' />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantName"/>
+                                        <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$CloudRegionID"/>
+                                        <parameter name="replacement" value="`$tmp.ar.cloud-region-id`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantNetworkRole"/>
+                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$LandingNetworkRole"/>
+                                        <parameter name="replacement" value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`"/>
+                                    </execute>
+                                    <set>
+                                        <parameter name='generate-unique-name-input.index-table-name' value='CONTRAIL_ROUTE_NAME_INDEX' />
+                                        <parameter name='generate-unique-name-input.index-table-prefix-column' value='contrail_route_name_prefix' />
+                                        <parameter name='generate-unique-name-input.name-table-type' value='CONTRAIL_ROUTE_INSTANCE' />
+                                        <parameter name='generate-unique-name-input.prefix' value="`$tmp.ar-name`" />
+                                        <parameter name='generate-unique-name-input.index-length' value='2' />
+                                    </set>
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                        <parameter name="logger" value="message-log"/>
+                                        <parameter name="field1" value="__TIMESTAMP__"/>
+                                        <parameter name="field2" value="tmp.ar-name="/>
+                                        <parameter name="field3" value="`$tmp.ar-name`"/>
+                                        <parameter name="field4" value="generate-unique-name-input.prefix" />
+                                        <parameter name="field5" value="`$generate-unique-name-input.prefix`" />
+                                    </record>
+                                    <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >
+                                        <outcome value='failure'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='success'>
+                                            <set>
+                                                <parameter name='tmp.ar-name' value='`$generate-unique-name-output.generated-name`' />
+                                            </set>
+                                        </outcome>
+                                    </call>
+                                    <set>
+                                        <parameter name='ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error in allotted-resource-model data.  Ecomp-generated-naming should be true" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.allotted-resource-identifiers.' 
+value="`$ar-identifiers.`" />
+            </set>
+            <set>
+                <parameter name='ar-assignments.source-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.` " />
+                <parameter name='ar-assignments.dest-network.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.` " />
+                <parameter name='ar-assignments.contrail-applied-service.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.` " />
+            </set>
+            <set>
+                <parameter name='tmp.fq-name' value='$defaultDomain.$defaultProject.$sdncNetworkPolicy' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.fq-name`"/>
+                <parameter name="outputPath" value="tmp.fq-name"/>
+                <parameter name="target" value="$defaultDomain"/>
+                <parameter name="replacement" value="default-domain"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.fq-name`"/>
+                <parameter name="outputPath" value="tmp.fq-name"/>
+                <parameter name="target" value="$defaultProject"/>
+                <parameter name="replacement" value="`$tmp.ar.tenant-name`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.fq-name`"/>
+                <parameter name="outputPath" value="tmp.fq-name"/>
+                <parameter name="target" value="$sdncNetworkPolicy"/>
+                <parameter name="replacement" value="`$tmp.ar-name`"/>
+            </execute>
+            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id`'>
+                <outcome value=''>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-parentnetwork-url`' />
+                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                        <parameter name='format' value='json' />
+                        <parameter name='httpMethod' value='GET' />
+                        <parameter name="responsePrefix" value="parent-net" />
+                        <outcome value='success'>
+                            <block atomic="true">
+                                <switch test='`$parent-net.networks.network_length`'>
+                                    <outcome value='1'>
+                                        <set>
+                                            <parameter name='ar-assignments.dest-network.network-id' value="`$parent-net.networks.network[0].network-id` " />
+                                        </set>
+                                    </outcome>
+                                    <outcome value='Other'>
+                                        <return status='failure'>
+                                            <parameter name='ack-final' value='Y'/>
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="Error: Network id not found.  Parent Service should only have one network" />
+                                        </return>
+                                    </outcome>
+                                </switch>
+                            </block>
+                        </outcome>
+                        <outcome value='Other'>
+                            <block atomic="true">
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error: No existing parent netorks" />
+                                </return>
+                            </block>
+                        </outcome>
+                    </execute>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='ar-assignments.dest-network.network-id' value="`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-id` " />
+                    </set>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-contrailappliedsvc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="vnf" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$vnf.vnfs.vnf_length`'>
+                            <outcome value='1'>
+                                <set>
+                                    <parameter name='ar-assignments.contrail-applied-service.vnf-id' value="`$vnf.vnfs.vnf[0].vnf-id` " />
+                                </set>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error: vnf id not found.  Contrail applied service should only have one vnf" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error: No existing contrail applied service vnfs" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`'>
+                <outcome value=''>
+                    <block atomic="true">
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="generic-vnf" 
+               key="generic-vnf.vnf-id = $ar-assignments.contrail-applied-service.vnf-id"
+        pfx='aai.vnf' local-only='false' >
+                            <outcome value='not-found'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Vnf not found in AAI" />
+                                </return>
+                            </outcome>
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error retrieving vnf from AAI" />
+                                </return>
+                            </outcome>
+                        </get-resource>
+                        <switch test='`$aai.vnf.vf-modules.vf-module_length`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="VF Module not found in AAI" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <for index='idx' start='0' end='`$aai.vnf.vf-modules.vf-module_length`' >
+                                    <switch test='`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn`'>
+                                        <outcome value=''>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block>
+                                                <set>
+                                                    <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$aai.vnf.vf-modules.vf-module[$idx].contrail-service-instance-fqdn` " />
+                                                </set>
+                                                <break/>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </for>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='ar-assignments.contrail-applied-service.contrail-fqdn' value="`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn` " />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='`$ar-assignments.contrail-applied-service.contrail-fqdn`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error: No vf-module with contrail-service-instance-fqdn found in AAI" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='ar-assignments.fq-name' value="`$tmp.fq-name` " />
+            </set>
+            <set>
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' 
+value="`$ar-assignments.`" />
+            </set>
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='tmp.cidx' value="`0`" />
+                        <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />
+                    </set>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
+                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">
+                                <outcome value='true'>
+                                    <block atomic="true">
+                                        <set>
+                                            <parameter name='tmp.cidx' value='`$cidx`' />
+                                            <parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />
+                                            <parameter name='tmp.found-cidx' value='true' />
+                                        </set>
+                                        <break/>
+                                    </block>
+                                </outcome>
+                            </switch>
+                        </for>
+                        <switch test='`$tmp.found-cidx`'>
+                            <outcome value='false'>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="description" value="`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`" />
+                <parameter name="selflink" value="`$tmp.ar.self-link`" />
+                <parameter name="model-invariant-id" value="`$ar-model.invariant-uuid`" />
+                <parameter name="model-version-id" value="`$ar-model.uuid`" />
+                <parameter name="operational-status" value="null" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="parent" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.network-ar-url`"/>
+                <parameter name="outputPath" value="tmp.network-ar-url"/>
+                <parameter name="target" value="{network-id}"/>
+                <parameter name="replacement" value="`$ar-assignments.dest-network.network-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="net-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='tmp.found-nidx' value='false' />
+                        </set>
+                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
+                            <outcome value=''>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                        <parameter name='format' value='json' />
+                                        <parameter name='httpMethod' value='PUT' />
+                                        <parameter name="responsePrefix" value="p-network-ar" />
+                                        <outcome value='success'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='failure'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='not-found'>
+                                            <block></block>
+                                        </outcome>
+                                    </execute>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
+                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
+                                            <outcome value='true'>
+                                                <block atomic="true">
+                                                    <set>
+                                                        <parameter name='tmp.found-nidx' value='true' />
+                                                    </set>
+                                                    <break/>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test='`$tmp.found-nidx`'>
+                                        <outcome value='false'>
+                                            <block atomic="true">
+                                                <set>
+                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
+                                                </set>
+                                                <set>
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
+                                                </set>
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                                    <parameter name='format' value='json' />
+                                                    <parameter name='httpMethod' value='PUT' />
+                                                    <parameter name="responsePrefix" value="p-network-ar" />
+                                                    <outcome value='success'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='failure'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='not-found'>
+                                                        <block></block>
+                                                    </outcome>
+                                                </execute>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='tmp.found-nidx' value='false' />
+                        </set>
+                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
+                            <outcome value=''>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                        <parameter name='format' value='json' />
+                                        <parameter name='httpMethod' value='PUT' />
+                                        <parameter name="responsePrefix" value="p-network-ar" />
+                                        <outcome value='success'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='failure'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='not-found'>
+                                            <block></block>
+                                        </outcome>
+                                    </execute>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
+                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
+                                            <outcome value='true'>
+                                                <block atomic="true">
+                                                    <set>
+                                                        <parameter name='tmp.found-nidx' value='true' />
+                                                    </set>
+                                                    <break/>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test='`$tmp.found-nidx`'>
+                                        <outcome value='false'>
+                                            <block atomic="true">
+                                                <set>
+                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
+                                                </set>
+                                                <set>
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
+                                                </set>
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                                    <parameter name='format' value='json' />
+                                                    <parameter name='httpMethod' value='PUT' />
+                                                    <parameter name="responsePrefix" value="p-network-ar" />
+                                                    <outcome value='success'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='failure'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='not-found'>
+                                                        <block></block>
+                                                    </outcome>
+                                                </execute>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='tmp.found-nidx' value='false' />
+                        </set>
+                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
+                            <outcome value=''>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value="1" />
+                                        <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[0]' value="`$tmp.ar.allotted-resource-id`" />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                        <parameter name='format' value='json' />
+                                        <parameter name='httpMethod' value='PUT' />
+                                        <parameter name="responsePrefix" value="p-network-ar" />
+                                        <outcome value='success'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='failure'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='not-found'>
+                                            <block></block>
+                                        </outcome>
+                                    </execute>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
+                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
+                                            <outcome value='true'>
+                                                <block atomic="true">
+                                                    <set>
+                                                        <parameter name='tmp.found-nidx' value='true' />
+                                                    </set>
+                                                    <break/>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test='`$tmp.found-nidx`'>
+                                        <outcome value='false'>
+                                            <block atomic="true">
+                                                <set>
+                                                    <parameter name='tmp.nidx' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' />
+                                                </set>
+                                                <set>
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length + 1`' />
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.nidx]' value="`$tmp.ar.allotted-resource-id`" />
+                                                </set>
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                                    <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                                    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                                    <parameter name='format' value='json' />
+                                                    <parameter name='httpMethod' value='PUT' />
+                                                    <parameter name="responsePrefix" value="p-network-ar" />
+                                                    <outcome value='success'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='failure'>
+                                                        <block></block>
+                                                    </outcome>
+                                                    <outcome value='not-found'>
+                                                        <block></block>
+                                                    </outcome>
+                                                </execute>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='failure'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
+                            <parameter name='restapiUser' value='`$prop.controller.user`' />
+                            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='DELETE' />
+                            <parameter name="responsePrefix" value="parent" />
+                            <outcome value='success'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='failure'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
+                            <parameter name='restapiUser' value='`$prop.controller.user`' />
+                            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='DELETE' />
+                            <parameter name="responsePrefix" value="parent" />
+                            <outcome value='success'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='failure'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource.  Parent provided resource rolled back" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $contrail-route-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index b17e9d9..2f3c907 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation-create' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/contrail-route-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
-</set><set>\r
-<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
-</set></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></block></outcome></execute><set>\r
-<parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-<parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-<parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-</set><set>\r
-<parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
-\r
-\r
-\r
-</set><switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\r
-\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'><block>\r
-<switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\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 assigning contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">\r
-\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\r
-<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
-\r
-\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="tenant" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\r
-                    tenant.tenant-id = $tmp.ar.tenant-id"\r
-        pfx='aai.tenant' local-only='false' >\r
-\r
-<outcome value='success'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\r
-\r
-\r
-</set></block></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'>\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 assigning contrail route.  Source network not found" />\r
-</return></outcome></switch></for></block></outcome></switch></block></outcome></switch><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="l3-network" \r
-               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id" \r
-               local-only="false" \r
-               pfx="aai.src-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></get-resource><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="l3-network" \r
-               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" \r
-               local-only="false" \r
-               pfx="aai.dest-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></get-resource><set>\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-</set><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.contrail-route-topology-operation-create"/>\r
-<parameter name='field3' value='network-policy' />\r
-<parameter name='field4' value='create' />\r
-<parameter name='field5' value='contrailResp' />\r
-<parameter name='field6' value='default-domain' />\r
-<parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
-<parameter name='field8' value='`$tmp.ar.tenant-name`' />\r
-<parameter name='field9' value='`$ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`' />\r
-<parameter name='field10' value='$aai.dest-network.contrail-network-fqdn' />\r
-<parameter name='field11' value='$aai.src-network.contrail-network-fqdn' />\r
-<parameter name='field12' value='&lt;&gt;' />\r
-<parameter name='field13' value='$tmp.ar.cloud-region-id' />\r
-\r
-\r
-</record><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='create' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='default-domain' value='default-domain' />\r
-<parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
-<parameter name='default-project' value='`$tmp.ar.tenant-name`' /> \r
-<!-- dummy for dev <parameter name='default-project' value='default-project' /> -->\r
-<parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />\r
-<parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />\r
-<parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />\r
-<parameter name='direction' value='&lt;&gt;' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
-</return></outcome></execute><switch test='`$contrailResp.resp-code`'>\r
-\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
-</return></outcome></switch><set>\r
-<parameter name='ar-assignments.contrail-id' value="`$contrailResp.network-policy.uuid`" />\r
-\r
-\r
-\r
-</set><call module='GENERIC-RESOURCE-API' rpc='policy-manager-create-policy' mode='sync' >\r
-<outcome value='failure'>\r
-<block atomic="true">\r
-<execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='delete' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='default-domain' value='default-domain' />\r
-<parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />\r
-<parameter name='default-project' value='`$tmp.ar.tenant-name`' /> \r
-<!-- dummy for dev <parameter name='default-project' value='default-project' /> -->\r
-<parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />\r
-<parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />\r
-<parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />\r
-<parameter name='direction' value='&lt;&gt;' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to create Policy in Policy Mgr.  Rollback failed to delete policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
-</return></outcome></execute><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to create policy in PolicyMgr. '+ $error-message  + 'Contrail network policy rolled back.'`" />\r
-</return></block></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></call><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="network-policy" \r
-               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
-<!-- Create l3-network object -->\r
-<parameter name="network-policy-id" value="`$ar-assignments.contrail-id`" />\r
-<parameter name="network-policy-fqdn" value="`$ar-assignments.fq-name`" />\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome></save><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="out-of-service-path" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><set>\r
-<parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' value='`$ar-assignments.`' />\r
-\r
-\r
-\r
-</set><set>\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $contrail-route-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation-create' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
+            </set>
+            <set>
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />
+            </set>
+            <switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block>
+                        <switch test='`$service-data.networks.network_length`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">
+                                            <outcome value='true'>
+                                                <block>
+                                                    <set>
+                                                        <parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />
+                                                        <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />
+                                                    </set>
+                                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="tenant" 
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND 
+                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND
+                    tenant.tenant-id = $tmp.ar.tenant-id"
+        pfx='aai.tenant' local-only='false' >
+                                                        <outcome value='success'>
+                                                            <block atomic="true">
+                                                                <set>
+                                                                    <parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />
+                                                                </set>
+                                                            </block>
+                                                        </outcome>
+                                                        <outcome value='not-found'>
+                                                            <return status='failure'>
+                                                                <parameter name='ack-final' value='Y'/>
+                                                                <parameter name="error-code" value="500" />
+                                                                <parameter name="error-message" value="Tenant not found in AAI" />
+                                                            </return>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <return status='failure'>
+                                                                <parameter name='ack-final' value='Y'/>
+                                                                <parameter name="error-code" value="500" />
+                                                                <parameter name="error-message" value="Tenant not found in AAI" />
+                                                            </return>
+                                                        </outcome>
+                                                    </get-resource>
+                                                </block>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <return status='failure'>
+                                                    <parameter name='ack-final' value='Y'/>
+                                                    <parameter name="error-code" value="500" />
+                                                    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id" 
+               local-only="false" 
+               pfx="aai.src-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" 
+               local-only="false" 
+               pfx="aai.dest-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <set>
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+            </set>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                <parameter name="logger" value="message-log"/>
+                <parameter name="field1" value="__TIMESTAMP__"/>
+                <parameter name="field2" value="GENERIC-RESOURCE-API.contrail-route-topology-operation-create"/>
+                <parameter name='field3' value='network-policy' />
+                <parameter name='field4' value='create' />
+                <parameter name='field5' value='contrailResp' />
+                <parameter name='field6' value='default-domain' />
+                <parameter name='field7' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />
+                <parameter name='field8' value='`$tmp.ar.tenant-name`' />
+                <parameter name='field9' value='`$ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.contrail-applied-service-info.contrail-fqdn`' />
+                <parameter name='field10' value='$aai.dest-network.contrail-network-fqdn' />
+                <parameter name='field11' value='$aai.src-network.contrail-network-fqdn' />
+                <parameter name='field12' value='&lt;&gt;' />
+                <parameter name='field13' value='$tmp.ar.cloud-region-id' />
+            </record>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='create' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='default-domain' value='default-domain' />
+                <parameter name='policy-name' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name`' />
+                <parameter name='default-project' value='`$tmp.ar.tenant-name`' />
+                <!-- dummy for dev <parameter name='default-project' value='default-project' /> -->
+                <parameter name='vipr-service-instance' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.contrail-applied-service.contrail-fqdn`' />
+                <parameter name='dst-virtual-network' value='`$aai.dest-network.contrail-network-fqdn`' />
+                <parameter name='src-virtual-network' value='`$aai.src-network.contrail-network-fqdn`' />
+                <parameter name='direction' value='&lt;&gt;' />
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test='`$contrailResp.resp-code`'>
+                <outcome value='0'>
+                    <block></block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Failed to create policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='ar-assignments.contrail-id' value="`$contrailResp.network-policy.uuid`" />
+            </set>
+            <call module='GENERIC-RESOURCE-API' rpc='policy-manager-create-policy' mode='sync' >
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='delete' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+                            <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                            <outcome value='success'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'Failed to create Policy in Policy Mgr.  Rollback failed to delete policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                </return>
+                            </outcome>
+                        </execute>
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="500" />
+                            <parameter name="error-message" value="`'Failed to create policy in PolicyMgr. '+ $error-message  + 'Contrail network policy rolled back.'`" />
+                        </return>
+                    </block>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </call>
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="network-policy" 
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >
+                <!-- Create l3-network object -->
+                <parameter name="network-policy-id" value="`$ar-assignments.contrail-id`" />
+                <parameter name="network-policy-fqdn" value="`$ar-assignments.fq-name`" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+            </save>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="out-of-service-path" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <set>
+                <parameter name='ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.' value='`$ar-assignments.`' />
+            </set>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $contrail-route-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index ec9d9b2..5fc21d2 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/contrail-route-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
-</set><set>\r
-<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
-</set><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></block></outcome></execute><set>\r
-<parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-<parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-<parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-</set><set>\r
-<parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
-\r
-\r
-\r
-</set><switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\r
-\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error activating contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'><block>\r
-<switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\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 activating contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">\r
-\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\r
-<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
-\r
-\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="tenant" \r
-                       key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\r
-                    tenant.tenant-id = $tmp.ar.tenant-id"\r
-        pfx='aai.tenant' local-only='false' >\r
-\r
-<outcome value='success'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\r
-\r
-\r
-</set></block></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'>\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 activating contrail route.  Source network not found" />\r
-</return></outcome></switch></for></block></outcome></switch></block></outcome></switch><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="l3-network" \r
-               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id" \r
-               local-only="false" \r
-               pfx="aai.src-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></get-resource><set>\r
-<parameter name='tmp.fq-name' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` " />\r
-</set><set>\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='remove' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
-<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
-<parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to remove policy in Contrail from source network" />\r
-</return></outcome></execute><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="l3-network" \r
-               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" \r
-               local-only="false" \r
-               pfx="aai.dest-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" /></return></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></get-resource><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='remove' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
-<parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />\r
-<parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to remove policy in Contrail from dest network" />\r
-</return></outcome></execute><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="network-policy:relationship-list" \r
-       key="network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' " >\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome></delete><set>\r
-<parameter name='ar-assignments.vlan-tag' value="" />\r
-\r
-\r
-\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="out-of-service-path" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $contrail-route-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation-deactivate' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
+            </set>
+            <set>
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />
+            </set>
+            <switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error activating contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block>
+                        <switch test='`$service-data.networks.network_length`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error activating contrail route.  Source network not found" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">
+                                            <outcome value='true'>
+                                                <block>
+                                                    <set>
+                                                        <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />
+                                                    </set>
+                                                </block>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <return status='failure'>
+                                                    <parameter name='ack-final' value='Y'/>
+                                                    <parameter name="error-code" value="500" />
+                                                    <parameter name="error-message" value="Error activating contrail route.  Source network not found" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id" 
+               local-only="false" 
+               pfx="aai.src-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving source network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <set>
+                <parameter name='tmp.fq-name' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.fq-name` " />
+            </set>
+            <set>
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='remove' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$aai.src-network.contrail-network-fqdn`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to remove policy in Contrail from source network" />
+                    </return>
+                </outcome>
+            </execute>
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id" 
+               local-only="false" 
+               pfx="aai.dest-network">
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="`'Error retrieving destination network with network-id=' + $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id + ' from AnAI'`" />
+                    </return>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </get-resource>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='remove' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <parameter name='contrail-network-policy-fq-name' value='`$ar-assignments.contrail-fq-name`' />
+                <parameter name='contrail-virtual-network-id' value='`$aai.dest-network.contrail-network-fqdn`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to remove policy in Contrail from dest network" />
+                    </return>
+                </outcome>
+            </execute>
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="network-policy:relationship-list" 
+       key="network-policy.network-policy-id = $ar-assignments.contrail-id and related-to = 'l3-network' " >
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+            </delete>
+            <set>
+                <parameter name='ar-assignments.vlan-tag' value="" />
+            </set>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="out-of-service-path" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $contrail-route-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 176ac41..c57b5f9 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation-delete' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/contrail-route-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
-</set><set>\r
-<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
-</set><switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='PendingDelete'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" \r
-    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></block></outcome></execute><set>\r
-<parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-<parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-<parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-</set><set>\r
-<parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />\r
-\r
-\r
-\r
-</set><switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>\r
-\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'><block>\r
-<switch test='`$service-data.networks.network_length`'>\r
-<outcome value=''>\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 assigning contrail route.  Source network not found" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">\r
-\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.ar.tenant-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.tenant`' />\r
-<parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />\r
-\r
-\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="tenant" \r
-                               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $tmp.ar.cloud-region-id AND\r
-                    tenant.tenant-id = $tmp.ar.tenant-id"\r
-        pfx='aai.tenant' local-only='false' >\r
-\r
-<outcome value='success'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.tenant-name' value='`$aai.tenant.tenant-name`' />\r
-\r
-\r
-</set></block></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Tenant not found in AAI" />\r
-\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'>\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 assigning contrail route.  Source network not found" />\r
-</return></outcome></switch></for></block></outcome></switch></block></outcome></switch><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='delete' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />\r
-<parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to create policy in Contrail" />\r
-</return></outcome></execute><call module='GENERIC-RESOURCE-API' rpc='policy-manager-delete-policy' mode='sync' >\r
-<outcome value='failure'>\r
-<block atomic="true">\r
-</block></outcome><outcome value='success'>\r
-<block atomic="true"></block></outcome></call><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="network-policy" \r
-               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to save network policy in AAI" />\r
-</return></outcome></delete><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="null" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $contrail-route-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation-delete' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='PendingDelete'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
+            </set>
+            <set>
+                <parameter name='ar-assignments.' value="`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.`" />
+            </set>
+            <switch test='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <block>
+                        <switch test='`$service-data.networks.network_length`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                </return>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.source-network.network-id`">
+                                            <outcome value='true'>
+                                                <block>
+                                                    <set>
+                                                        <parameter name='tmp.ar.cloud-region-id' value='`$service-data.networks.network[$nidx].network-data.network-topology.aic-cloud-region`' />
+                                                    </set>
+                                                </block>
+                                            </outcome>
+                                            <outcome value='Other'>
+                                                <return status='failure'>
+                                                    <parameter name='ack-final' value='Y'/>
+                                                    <parameter name="error-code" value="500" />
+                                                    <parameter name="error-message" value="Error assigning contrail route.  Source network not found" />
+                                                </return>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='network-policy' />
+                <parameter name='api-action' value='delete' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='cloud-region-id' value='`$tmp.ar.cloud-region-id`' />
+                <parameter name='contrail-network-policy-id' value='`$ar-assignments.contrail-id`' />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to create policy in Contrail" />
+                    </return>
+                </outcome>
+            </execute>
+            <call module='GENERIC-RESOURCE-API' rpc='policy-manager-delete-policy' mode='sync' >
+                <outcome value='failure'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+            </call>
+            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="network-policy" 
+               key="network-policy.network-policy-id = $ar-assignments.contrail-id" >
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Failed to save network policy in AAI" />
+                    </return>
+                </outcome>
+            </delete>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="null" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.cr.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='contrail-route-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $contrail-route-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index d52b258..e4cbfc2 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation-unassign' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$contrail-route-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/contrail-route-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='bk-cr-ar' value='$mdsal-ar.' />\r
-</set><set>\r
-<parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />\r
-</set><switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" \r
-    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
-</return></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="Error: Contrail Route not found" />\r
-    \r
-</return></block></outcome></execute><set>\r
-<parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />\r
-<parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />\r
-<parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />\r
-</set><set>\r
-<parameter name='contrail-api-output.contrail-id' value="dummycid" />\r
-</set><set>\r
-<parameter name='ar-assignments.contrail-id' value="`$contrail-api-output.contrail-id`" />\r
-\r
-\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$contrail-route-topology-operation-input.request-information.request-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for contrail-route-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $contrail-route-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation-unassign' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:contrail-route-allotted-resources/contrail-route-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/contrail-route-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.cr-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.parent-provided-resource`"/>
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.parent-ar-url`"/>
+                <parameter name="outputPath" value="tmp.parent-ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.network`"/>
+                <parameter name="outputPath" value="tmp.ar-parentnetwork-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.network-provided-resource`"/>
+                <parameter name="outputPath" value="tmp.network-ar-url"/>
+                <parameter name="target" value="{service-instance-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <switch test='`$mdsal-ar.contrail-route-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='bk-cr-ar' value='$mdsal-ar.' />
+                                    </set>
+                                    <set>
+                                        <parameter name='ar.' value='$mdsal-ar.contrail-route-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing contrail-route-allotted-resource with order status of ' + $ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="404" />
+                                    <parameter name="error-message" value="Error: Contrail Route not found" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <return status='failure'>
+                            <parameter name='ack-final' value='Y'/>
+                            <parameter name="error-code" value="404" />
+                            <parameter name="error-message" value="Error: Contrail Route not found" />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='ar.allotted-resource-status.action' value="`$contrail-route-topology-operation-input.request-information.request-action` " />
+                <parameter name='ar.allotted-resource-status.rpc-name' value="contrail-route-topology-operation" />
+                <parameter name='ar.allotted-resource-status.rpc-action' value="`$contrail-route-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$contrail-route-topology-operation-input.request-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$contrail-route-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$contrail-route-topology-operation-input.service-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$contrail-route-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='ar.allotted-resource-data.allotted-resource-operation-information.contrail-route-request-input.' value="`$contrail-route-topology-operation-input.contrail-route-request-input.` " />
+                <parameter name='tmp.dest-network-id' value='`$ar.allotted-resource-data.contrail-route-topology.contrail-route-assignments.dest-network.network-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='DELETE' />
+                <parameter name="responsePrefix" value="parent" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for contrail-route-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.network-ar-url`"/>
+                <parameter name="outputPath" value="tmp.network-ar-url"/>
+                <parameter name="target" value="{network-id}"/>
+                <parameter name="replacement" value="`$tmp.dest-network-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="net-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='tmp.found-nidx' value='false' />
+                        </set>
+                        <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`'>
+                            <outcome value=''>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <for index='nidx' start='0' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
+                                        <switch test="`$net-ar.network-provided-allotted-resources.network-provided-ar-id[$nidx] == $tmp.ar.allotted-resource-id`">
+                                            <outcome value='true'>
+                                                <block atomic="true">
+                                                    <set>
+                                                        <parameter name='tmp.found-nidx' value='true' />
+                                                        <parameter name='tmp.nidx' value='`$nidx`' />
+                                                    </set>
+                                                    <break/>
+                                                </block>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <switch test='`$tmp.found-nidx`'>
+                                        <outcome value='true'>
+                                            <block atomic="true">
+                                                <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length`' >
+                                                    <block atomic="true">
+                                                        <set>
+                                                            <parameter name="tmp.newidx" value="`$snidx - 1`"/>
+                                                        </set>
+                                                        <set>
+                                                            <parameter name="$net-ar.network-provided-allotted-resources.network-provided-ar-id[$tmp.newidx]" value="$net-ar.network-provided-allotted-resources.network-provided-ar-id[$snidx]" />
+                                                        </set>
+                                                    </block>
+                                                </for>
+                                                <set>
+                                                    <parameter name='net-ar.network-provided-allotted-resources.network-provided-ar-id_length' value='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length - 1`' />
+                                                </set>
+                                                <switch test='`$net-ar.network-provided-allotted-resources.network-provided-ar-id_length == 0`'>
+                                                    <outcome value='true'>
+                                                        <block atomic="true">
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                                                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                                                <parameter name='format' value='json' />
+                                                                <parameter name='httpMethod' value='DELETE' />
+                                                                <parameter name="responsePrefix" value="p-network-ar" />
+                                                                <outcome value='success'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                                <outcome value='failure'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                                <outcome value='not-found'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                            </execute>
+                                                        </block>
+                                                    </outcome>
+                                                    <outcome value='false'>
+                                                        <block atomic="true">
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-ar.templatefile`" />
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.network-ar-url`' />
+                                                                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                                                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                                                <parameter name='format' value='json' />
+                                                                <parameter name='httpMethod' value='PUT' />
+                                                                <parameter name="responsePrefix" value="p-network-ar" />
+                                                                <outcome value='success'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                                <outcome value='failure'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                                <outcome value='not-found'>
+                                                                    <block></block>
+                                                                </outcome>
+                                                            </execute>
+                                                        </block>
+                                                    </outcome>
+                                                </switch>
+                                            </block>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='DELETE' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <for silentFailure='true' index='snidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
+                <block atomic="true">
+                    <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$sdix].allotted-resource-id == $tmp.ar.allotted-resource-id`'>
+                        <outcome value='true'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="tmp.sdidx" value="`$snidx`"/>
+                                </set>
+                                <break/>
+                            </block>
+                        </outcome>
+                    </switch>
+                </block>
+            </for>
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
+                <outcome value='1'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="service-data.consumed-allotted-resources." value=""/>
+                        </set>
+                        <set>
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="0"/>
+                        </set>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="tmp.new_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>
+                        </set>
+                        <for silentFailure='true' index='snidx' start='`$tmp.sdidx + 1`' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="tmp.newidx" value="`$snidx - 1`"/>
+                                </set>
+                                <set>
+                                    <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.newidx]." value="$service-data.consumed-allotted-resources.consumed-allotted-resource[$snidx]." />
+                                </set>
+                            </block>
+                        </for>
+                        <set>
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource_length" value="`$service-data.consumed-allotted-resources.consumed-allotted-resource_length - 1`"/>
+                        </set>
+                        <set>
+                            <parameter name="service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.new_length]." value=""/>
+                        </set>
+                    </block>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $contrail-route-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 478b850..3b4b87e 100755 (executable)
@@ -1,26 +1,56 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='contrail-route-topology-operation' mode='sync'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='validate-contrail-route-input' mode='sync' >\r
-</call><switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-assign' mode='sync' >\r
-</call></block></outcome><outcome value='create'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-create' mode='sync' >\r
-</call></block></outcome><outcome value='activate'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-activate' mode='sync' >\r
-</call></block></outcome><outcome value='deactivate'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-deactivate' mode='sync' >\r
-</call></block></outcome><outcome value='delete'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-delete' mode='sync' >\r
-</call></block></outcome><outcome value='unassign'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-unassign' mode='sync' >\r
-</call></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><set>\r
-<parameter name="ack-final" value="Y"/></set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='contrail-route-topology-operation' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='validate-contrail-route-input' mode='sync' ></call>
+            <switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-assign' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='create'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-create' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-activate' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-deactivate' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='delete'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-delete' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='contrail-route-topology-operation-unassign' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name="ack-final" value="Y"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 5000dfd..c7e3454 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='create-l3-subnet' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='subnet-idx' value='0' />\r
-</set><switch test='`$tmp.l3-network.level2.v4.entity-id`'>\r
-<outcome value=''>\r
-<block atomic="true"><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
-<parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="tmp.l3-network.level2.v4.entity-id"/>\r
-<parameter name="field5" value="null"/>\r
-\r
-\r
-\r
-</record></block></outcome><outcome value='Other'>\r
-<block atomic="true"><execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
-       <parameter name="ipAddress" value="`$tmp.l3-network.level2.v4.ip-prefix`" />\r
-       <parameter name="ipVersion" value="4" />\r
-       <parameter name="subnet" value="`$tmp.l3-network.level2.v4.mask`" />\r
-       <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
-       <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
-       <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to generate ipv4 addresses using IpAddressTools" /></return></outcome></execute><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$tmp.l3-network.level2.v4.entity-id`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$tmp.l3-network.level2.v4.ip-prefix`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$tmp.l3-network.level2.v4.mask`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv4-ip-version`' />\r
-</set><switch test='`$network-model.ipv4-dhcp-enabled`'>\r
-<outcome value='Y'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
-\r
-\r
-</set></block></outcome><outcome value='N'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
-\r
-\r
-</set></block></outcome></switch><set>\r
-<parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
-\r
-</set><set>\r
-<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
-</set></block></outcome></switch><switch test='`$tmp.l3-network.level2.v6.entity-id`'>\r
-<outcome value=''>\r
-<block atomic="true"><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
-<parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="tmp.l3-network.level2.v6.entity-id"/>\r
-<parameter name="field5" value="null"/>\r
-\r
-\r
-\r
-</record></block></outcome><outcome value='Other'>\r
-<block atomic="true"><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
-<parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="tmp.l3-network.level2.v6.entity-id"/>\r
-<parameter name="field5" value="`$tmp.l3-network.level2.v6.entity-id`"/>\r
-\r
-\r
-\r
-</record><execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
-       <parameter name="ipAddress" value="`$tmp.l3-network.level2.v6.ip-prefix`" />\r
-       <parameter name="ipVersion" value="6" />\r
-       <parameter name="subnet" value="`$tmp.l3-network.level2.v6.mask`" />\r
-       <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
-       <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
-       <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to generate ipv6 addresses using IpAddressTools" /></return></outcome></execute><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$tmp.l3-network.level2.v6.entity-id`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$tmp.l3-network.level2.v6.ip-prefix`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$tmp.l3-network.level2.v6.mask`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv6-ip-version`' />\r
-\r
-\r
-</set><switch test='`$network-model.ipv6-dhcp-enabled`'>\r
-<outcome value='Y'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
-\r
-\r
-</set></block></outcome><outcome value='N'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
-<parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
-\r
-\r
-</set></block></outcome></switch><set>\r
-<parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
-</set><set>\r
-<parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
-</set></block></outcome></switch><return status='success'>\r
-<parameter name='' value='' />\r
-</return></block></method></service-logic>
+<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='create-l3-subnet' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='subnet-idx' value='0' />\r
+            </set>\r
+            <switch test='`$v4.entity-id`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
+                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                            <parameter name="field4" value="v4.entity-id"/>\r
+                            <parameter name="field5" value="null"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <switch test='`$network-model.ipv4-dhcp-enabled`'>\r
+                            <outcome value='Y'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.ipv4dhcp-enabled' value='true' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.ipv4dhcp-enabled' value='false' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
+                            <parameter name="ipAddress" value="`$v4.ip-prefix`" />\r
+                            <parameter name="ipVersion" value="4" />\r
+                            <parameter name="subnet" value="`$v4.mask`" />\r
+                            <parameter name="dhcp-enabled" value="`$tmp.ipv4dhcp-enabled`" />\r
+                            <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
+                            <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
+                            <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Failed to generate ipv4 addresses using IpAddressTools" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v4.entity-id`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v4.ip-prefix`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v4.mask`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv4-ip-version`' />\r
+                        </set>\r
+                        <switch test='`$network-model.ipv4-dhcp-enabled`'>\r
+                            <outcome value='Y'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$v6.entity-id`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
+                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                            <parameter name="field4" value="v6.entity-id"/>\r
+                            <parameter name="field5" value="null"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="GENERIC-RESOURCE-API.create-l3-subnet:REQID"/>\r
+                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                            <parameter name="field4" value="v6.entity-id"/>\r
+                            <parameter name="field5" value="`$v6.entity-id`"/>\r
+                        </record>\r
+                        <switch test='`$network-model.ipv6-dhcp-enabled`'>\r
+                            <outcome value='Y'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.ipv6dhcp-enabled' value='true' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.ipv6dhcp-enabled' value='false' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
+                            <parameter name="ipAddress" value="`$v6.ip-prefix`" />\r
+                            <parameter name="ipVersion" value="6" />\r
+                            <parameter name="subnet" value="`$v6.mask`" />\r
+                            <parameter name="dhcp-enabled" value="`$tmp.ipv6dhcp-enabled`" />\r
+                            <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
+                            <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
+                            <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="Failed to generate ipv6 addresses using IpAddressTools" />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].orchestration-status' value='PendingCreate' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-id' value='`$v6.entity-id`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].subnet-name' value="`$tmp.l3-network.network-name + '_S' + $subnet-idx`" />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].gateway-address' value='`$tmp.return.generate.gateway-address`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].network-start-address' value='`$v6.ip-prefix`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].cidr-mask' value='`$v6.mask`' />\r
+                            <parameter name='tmp.l3-network.subnet[$subnet-idx].ip-version' value='`$network-model.ipv6-ip-version`' />\r
+                        </set>\r
+                        <switch test='`$network-model.ipv6-dhcp-enabled`'>\r
+                            <outcome value='Y'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='true' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-enabled' value='false' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-start' value='' />\r
+                                        <parameter name='tmp.l3-network.subnet[$subnet-idx].dhcp-end' value='' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='subnet-idx' value='`$subnet-idx+1`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.l3-network.subnet_length' value='`$subnet-idx`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name='' value='' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_create-route-target-and-vpn-binding.xml
new file mode 100755 (executable)
index 0000000..f9866fe
--- /dev/null
@@ -0,0 +1,437 @@
+<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='create-route-target-and-vpn-binding' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$rt.aic-zone`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.resource`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.resource-value`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-name`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rt.network-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error missing parameters to create-local-route-target" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network-instance-group-vpn-binding`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$rt.service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{network-instance-group-id}"/>\r
+                <parameter name="replacement" value="`$rt.network-instance-group-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{network-id}"/>\r
+                <parameter name="replacement" value="`$rt.network-id`"/>\r
+            </execute>\r
+            <set>\r
+                <parameter name="get-data-from-policy-input.policy-instance-name" value="`$get-complex-resource-service-model-output.vpn-binding-policy`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' ></call>\r
+            <set>\r
+                <parameter name="vpn-binding.vpn-name" value="`$rt.network-name`" />\r
+                <parameter name="vpn-binding.asn" value="`$get-data-from-policy-output.asn`" />\r
+                <parameter name="vpn-binding.route-target-role" value="`$get-data-from-policy-output.route-target-role`" />\r
+                <parameter name="vpn-binding.aic-zone" value="`$rt.aic-zone`" />\r
+                <parameter name="vpn-binding.route-target-category" value="local" />\r
+                <parameter name="vpn-binding.resource" value="`$rt.resource`" />\r
+                <parameter name="vpn-binding.resource-value" value="`$rt.resource-value`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='generate-vpn-binding-id' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='vpn-binding.vpn-binding-id' value='`$tmp.return.generate-vpn-binding-id.uuid`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.vpn-binding-url`"/>\r
+                <parameter name="outputPath" value="tmp.vpn-binding-url"/>\r
+                <parameter name="target" value="{vpn-binding-id}"/>\r
+                <parameter name="replacement" value="`$vpn-binding.vpn-binding-id`"/>\r
+            </execute>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+               key="vpn-binding.vpn-id = $vpn-binding.vpn-binding-id" >\r
+                <parameter name="vpn-id" value="`$vpn-binding.vpn-binding-id`" />\r
+                <parameter name="vpn-name" value="`$vpn-binding.vpn-name`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Error creating vpn-binding in AAI" />\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="Error creating vpn-binding in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </save>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.allocateRT`' />\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='POST' />\r
+                <parameter name="responsePrefix" value="msRT" />\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <switch test='`$msRT.responseCode`'>\r
+                            <outcome value='200'></outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="`'Error: calling allocate resource microservice - responseCode: ' + $msRT.responseCode + ' responseMsg: ' + $msRT.responseMessage + ' allocateRouteTargetStatus: ' + $msRT.allocateRouteTargetStatus `"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                            <outcome value='true'>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                                    <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                                    <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                                    <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                                    <parameter name='format' value='json' />\r
+                                                    <parameter name='httpMethod' value='POST' />\r
+                                                    <parameter name="responsePrefix" value="msRT" />\r
+                                                </execute>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                            <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                            <outcome value='failure'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                        </execute>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: calling allocate resource microservice"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="vpn-binding.global-route-target" value="`$msRT.routeTargetID`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save vpn-binding in md-sal" />\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $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="Error: failed to save vpn-binding in md-sal" />\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="route-target" \r
+               key="vpn-binding.vpn-binding-id = $vpn-binding.vpn-binding-id \r
+                       AND route-target.global-route-target = $vpn-binding.global-route-target\r
+                       AND route-target.route-target-role = $vpn-binding.route-target-role" >\r
+                <!-- Create route-target object -->\r
+                <parameter name="global-route-target" value="`$vpn-binding.global-route-target`" />\r
+                <parameter name="route-target-role" value="`$vpn-binding.route-target-role`" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Error: failed to save route target in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $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="Error: failed to save route target in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <switch test="`$vpn-binding.global-route-target != ''`">\r
+                                <outcome value='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.rt.microservice.url + $prop.restapi.mS.releaseRT`' />\r
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.rtmS.allocateRT.templatefile`" />\r
+                                        <parameter name='restapiUser' value='`$prop.rt.mS.user`' />\r
+                                        <parameter name='restapiPassword' value='`$prop.rt.mS.pwd`' />\r
+                                        <parameter name='customHttpHeaders' value='x-UserId=SDNCP' />\r
+                                        <parameter name='format' value='json' />\r
+                                        <parameter name='httpMethod' value='POST' />\r
+                                        <parameter name="responsePrefix" value="msRT" />\r
+                                    </execute>\r
+                                </outcome>\r
+                            </switch>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+       key="vpn-id = $rt.vpn-id"></delete>\r
+                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-vpn-binding.templatefile`" />\r
+                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vpn-binding-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='DELETE' />\r
+                                <parameter name="responsePrefix" value="mdsal-vpn-binding" />\r
+                                <outcome value='failure'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                            </execute>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to vpn binding - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-allocate-generic-subnet.xml
new file mode 100755 (executable)
index 0000000..1e6c8bb
--- /dev/null
@@ -0,0 +1,1127 @@
+<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='eipam-allocate-generic-subnet' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="tmp.allocate-v4-subnet-flag" value="N" />\r
+                <parameter name="tmp.allocate-v6-subnet-flag" value="N" />\r
+                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                <parameter name="eipam-pool.v4.pre-existing" value="N"/>\r
+                <parameter name="eipam-pool.v6.pre-existing" value="N"/>\r
+                <parameter name="tmp.leaf-level" value="N" />\r
+            </set>\r
+            <switch test="`$tmp.activate-subnet-flag`">\r
+                <outcome value="">\r
+                    <block atomic='true'>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="tmp.activate-subnet-flag" value="Y"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Y'></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                <outcome value='true'>\r
+                    <block atomic='true'>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="tmp.leaf-level" value="Y" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <!--Need to know which ipv version to get the plan name from the network-model.-->\r
+            <switch test="`$eipam-ip-block.allocate-version`">\r
+                <outcome value='ipv4'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$l-idx`">\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$tmp.skip-first-level`">\r
+                                        <outcome value='Y'></outcome>\r
+                                        <outcome value="">\r
+                                            <block atomic='true'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                    <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                                    <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                                    <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+                                                    <!-- Number of Pool Levels -->\r
+                                                    <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                </set>\r
+                                                <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                            <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                                        </set>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="network-topology-operation"/>\r
+                                                            <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                            <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+                                                            <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value="not-found">\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                                <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                                    <outcome value='shared'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value=''>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-key-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500' />\r
+                                                            <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'></outcome>\r
+                                                </save>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$key-value`"/>\r
+                                                    <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                                    <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                                    <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                                    <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                                    <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                                    <parameter name="field11" value="subnet saved to DB."/>\r
+                                                </record>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='N'>\r
+                                            <block atomic='true'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                    <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                                    <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                                    <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+                                                    <!-- Number of Pool Levels -->\r
+                                                    <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                </set>\r
+                                                <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                            <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                                        </set>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="network-topology-operation"/>\r
+                                                            <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                            <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+                                                            <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value="not-found">\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                                <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                                    <outcome value='shared'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value=''>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-key-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500' />\r
+                                                            <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'></outcome>\r
+                                                </save>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$key-value`"/>\r
+                                                    <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                                    <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                                    <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                                    <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                                    <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                                    <parameter name="field11" value="subnet saved to DB."/>\r
+                                                </record>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                        <parameter name="tmp.allocate-v4-subnet-flag" value="Y" />\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                    </set>\r
+                                    <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                        <block atomic='true'>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                <parameter name="eipam-ip-block.pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                <parameter name="field5" value="`$eipam-ip-block.pools[$l4-idx].key-name`"/>\r
+                                                <parameter name="field6" value="`$eipam-ip-block.pools[$l4-idx].key-value`"/>\r
+                                            </record>\r
+                                        </block>\r
+                                    </for>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                        <outcome value='shared'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-key-row'>\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$key-value`"/>\r
+                                        <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                        <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="subnet saved to DB."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='ipv6'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$l-idx`">\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$tmp.skip-first-level`">\r
+                                        <outcome value='Y'></outcome>\r
+                                        <outcome value="">\r
+                                            <block atomic='true'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                    <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                                    <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                                    <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+                                                    <!-- Number of Pool Levels -->\r
+                                                    <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                </set>\r
+                                                <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                            <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                                        </set>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="network-topology-operation"/>\r
+                                                            <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                            <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+                                                            <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+                                                            <parameter name="field7" value="`$l6-idx`"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while allocating V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value="not-found">\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                                <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                                    <outcome value='shared'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value=''>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-key-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500' />\r
+                                                            <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'></outcome>\r
+                                                </save>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$key-value`"/>\r
+                                                    <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                                    <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                                    <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                                    <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                                    <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                                    <parameter name="field11" value="subnet info are saved to DB."/>\r
+                                                </record>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='N'>\r
+                                            <block atomic='true'>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                    <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                                    <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                                    <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+                                                    <!-- Number of Pool Levels -->\r
+                                                    <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                </set>\r
+                                                <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                            <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                                        </set>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="network-topology-operation"/>\r
+                                                            <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                            <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                            <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+                                                            <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+                                                            <parameter name="field7" value="`$l6-idx`"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while allocating V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value="not-found">\r
+                                                        <return status="failure">\r
+                                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                                <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                                    <outcome value='shared'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                    <outcome value=''>\r
+                                                        <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-key-row'>\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500' />\r
+                                                            <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'></outcome>\r
+                                                </save>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$key-value`"/>\r
+                                                    <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                                    <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                                    <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                                    <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                                    <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                                    <parameter name="field11" value="subnet info are saved to DB."/>\r
+                                                </record>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="`$tmp.activate-subnet-flag`"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="`$tmp.leaf-level`"/>\r
+                                        <parameter name="tmp.allocate-v6-subnet-flag" value="Y" />\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="`$eipam-ip-block.level`"/>\r
+                                    </set>\r
+                                    <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                        <block atomic='true'>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                <parameter name="eipam-ip-block.pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                                <parameter name="field4" value="`$eipam-ip-block.plan-name`"/>\r
+                                                <parameter name="field5" value="`$eipam-ip-block.pools[$l6-idx].key-name`"/>\r
+                                                <parameter name="field6" value="`$eipam-ip-block.pools[$l6-idx].key-value`"/>\r
+                                                <parameter name="field7" value="`$l6-idx`"/>\r
+                                            </record>\r
+                                        </block>\r
+                                    </for>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $tmp.key-value ; "\r
+        pfx='pfx.eipam-pool-row'>\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                        <outcome value='shared'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.ip-prefix ,\r
+             prefix_length = $eipam-ip-block.mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ACTIVE' ,\r
+             pool_id = $pfx.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.entity-id ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6subnet-key-row'>\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-generic-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="field5" value="`$key-value`"/>\r
+                                        <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                        <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="subnet info are saved to DB."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="tmp.eipam-error" value="true" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="Please set the eipam-ip-block.allocate-version for appropriate EIPAM request." />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index fb62d6d..8fd6376 100755 (executable)
@@ -1,47 +1,75 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='eipam-allocate-network-role-subnet' mode='sync'>\r
-<block atomic='true'><set>\r
-       <parameter name="tmp.eipam-error" value="false" />\r
-       <parameter name="eipam-ip-block.ip-prefix" value='' />\r
-       <parameter name="eipam-ip-block.mask" value='' />\r
-       <parameter name="pfx.eipam-pool-row" value='' />\r
-       <parameter name="tmp.level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.level2-key-name" value="NETWORK_ROLE:NETWORK_ID" /></set><!--Need to know which ipv version to get the plan name from the network-model.--><switch test="`$eipam-ip-block.allocate-version`"><outcome value='ipv4'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><block atomic='true'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
-       <parameter name="eipam-ip-block.activate-subnet-flag" value="Y"/>       \r
-       <parameter name="eipam-ip-block.leaf-level-indicator" value="N"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/></set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
-       </return></outcome></execute><get-resource\r
+<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='eipam-allocate-network-role-subnet' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="eipam-ip-block.ip-prefix" value='' />\r
+                <parameter name="eipam-ip-block.mask" value='' />\r
+                <parameter name="pfx.eipam-pool-row" value='' />\r
+                <parameter name="tmp.level1-key-name" value="LOCATION_CLLI8:CLOUD_REGION_ID" />\r
+                <parameter name="tmp.level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
+            </set>\r
+            <!--Need to know which ipv version to get the plan name from the network-model.-->\r
+            <switch test="`$eipam-ip-block.allocate-version`">\r
+                <outcome value='ipv4'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-ip-block.level`">\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="Y"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="N"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="1"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                    </set>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ; "\r
         pfx='pfx.eipam-pool-row'>\r
-\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
-       </return></outcome></get-resource><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
-<parameter name="field7" value="Level 1 subnet saved to DB."/></record><save\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                        <parameter name="field7" value="Level 1 subnet saved to DB."/>\r
+                                    </record>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNETS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v4subnet-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><save\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 1 ; "\r
     force='true'\r
         pfx='pfx.eipam-v4subnet-key-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save></block></outcome><outcome value='2'><block atomic='true'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
-       <parameter name="eipam-ip-block.activate-subnet-flag" value="N"/>       \r
-       <parameter name="eipam-ip-block.leaf-level-indicator" value="Y"/>\r
-\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.pools_length" value="2"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.pools[1].key-name" value="`$tmp.level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[1].key-value" value="`$tmp.level2-key-value`"/></set><switch test="`$eipam-ip-block.subnet-size-override`"><outcome value=''>\r
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field6" value="Level 2 subnet override not set, default to network model value."/>\r
-\r
-</record><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.subnet-size-override" value="`$network-model.ipv4-cidr-mask`" />\r
-</set></block></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
-       </return></outcome></execute><get-resource\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='2'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="N"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="Y"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="2"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                        <!-- Level 2 -->\r
+                                        <parameter name="eipam-ip-block.pools[1].key-name" value="`$tmp.level2-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.subnet-size-override`">\r
+                                        <outcome value=''>\r
+                                            <block atomic='true'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$tmp.level2-key-value`"/>\r
+                                                    <parameter name="field6" value="Level 2 subnet override not set, default to network model value."/>\r
+                                                </record>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.subnet-size-override" value="`$network-model.ipv4-cidr-mask`" />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v4-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; "\r
         pfx='pfx.eipam-pool-row'>\r
-\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
-       </return></outcome></get-resource><save\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNETS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><save\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 1 ; "\r
     force='true'\r
         pfx='pfx.eipam-v4subnet-key-row'>\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome></save><save\r
+                                        <outcome value='success'></outcome>\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 2 ; "\r
     force='true'\r
         pfx='pfx.eipam-v4subnet-key-row'>\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-\r
-<!-- Level 2 -->\r
-       <parameter name="field6" value="NETWORK_ROLE_NETWORK_ID"/>\r
-       <parameter name="field7" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field8" value="Level 2 subnet saved to DB."/></record></block></outcome><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome></switch></block></outcome><outcome value='ipv6'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><block atomic='true'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
-       <parameter name="eipam-ip-block.activate-subnet-flag" value="Y"/>       \r
-       <parameter name="eipam-ip-block.leaf-level-indicator" value="N"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/></set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
-       </return></outcome></execute><get-resource\r
+                                        <outcome value='success'></outcome>\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.subnet-size-override" value='' />\r
+                                    </set>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                        <!-- Level 2 -->\r
+                                        <parameter name="field6" value="NETWORK_ROLE_NETWORK_ID"/>\r
+                                        <parameter name="field7" value="`$tmp.level2-key-value`"/>\r
+                                        <parameter name="field8" value="Level 2 subnet saved to DB."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='ipv6'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-ip-block.level`">\r
+                            <outcome value='1'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="Y"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="N"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="1"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                    </set>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ; "\r
         pfx='pfx.eipam-pool-row'>\r
-\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
-       </return></outcome></get-resource><save\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNETS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v6subnet-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><save\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 1 ; "\r
     force='true'\r
         pfx='pfx.eipam-v6subnet-key-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
-<parameter name="field7" value="Level 1 subnet saved to DB."/></record></block></outcome><outcome value='2'><block atomic='true'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
-       <parameter name="eipam-ip-block.activate-subnet-flag" value="N"/>       \r
-       <parameter name="eipam-ip-block.leaf-level-indicator" value="Y"/>\r
-       \r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.pools_length" value="2"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.pools[1].key-name" value="`$tmp.level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.pools[1].key-value" value="`$tmp.level2-key-value`"/></set><switch test="`$eipam-ip-block.subnet-size-override`"><outcome value=''>\r
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field6" value="Level 2 subnet override not set, default to network model value."/>\r
-\r
-</record><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.subnet-size-override" value="`$network-model.ipv6-cidr-mask`" />\r
-</set></block></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
-       </return></outcome></execute><get-resource\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="field6" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                        <parameter name="field7" value="Level 1 subnet saved to DB."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='2'>\r
+                                <block atomic='true'>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.activate-subnet-flag" value="N"/>\r
+                                        <parameter name="eipam-ip-block.leaf-level-indicator" value="Y"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.pools_length" value="2"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.pools[0].key-name" value="`$tmp.level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                        <!-- Level 2 -->\r
+                                        <parameter name="eipam-ip-block.pools[1].key-name" value="`$tmp.level2-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.subnet-size-override`">\r
+                                        <outcome value=''>\r
+                                            <block atomic='true'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                    <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                                    <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                    <parameter name="field5" value="`$tmp.level2-key-value`"/>\r
+                                                    <parameter name="field6" value="Level 2 subnet override not set, default to network model value."/>\r
+                                                </record>\r
+                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                <set>\r
+                                                    <parameter name="eipam-ip-block.subnet-size-override" value="`$network-model.ipv6-cidr-mask`" />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="allocateSubnet">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while allocating V4 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                    <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS WHERE plan_name = $network-model.eipam-v6-address-plan and level = 2 and parent_pool = $tmp.level1-key-value AND key_value = $tmp.level2-key-value ; "\r
         pfx='pfx.eipam-pool-row'>\r
-\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
-       </return></outcome></get-resource><save\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value="not-found">\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while looking for entry in EIPAM_IP_POOLS for V6 subnet in EIPAM." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNETS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v6subnet-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><save\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 1 ; "\r
     force='true'\r
         pfx='pfx.eipam-v6subnet-key-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><save\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_SUBNET_KEYS\r
              level = 2 ; "\r
     force='true'\r
         pfx='pfx.eipam-v6subnet-key-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
-</return></outcome><outcome value='success'>\r
-</outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-\r
-<!-- Level 2 -->\r
-       <parameter name="field6" value="NETWORK_ROLE_NETWORK_ID"/>\r
-       <parameter name="field7" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field8" value="Level 2 subnet saved to DB."/></record></block></outcome><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome></switch></block></outcome><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.allocate-version for appropriate EIPAM request." />\r
-       </return></outcome></switch><return status='success'>\r
-       <parameter name="error-code" value="200" />\r
-</return></block></method></service-logic>
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS table.' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'></outcome>\r
+                                    </save>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-allocate-network-role-subnet"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                        <!-- Level 2 -->\r
+                                        <parameter name="field6" value="NETWORK_ROLE_NETWORK_ID"/>\r
+                                        <parameter name="field7" value="`$tmp.level2-key-value`"/>\r
+                                        <parameter name="field8" value="Level 2 subnet saved to DB."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="tmp.eipam-error" value="true" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="Please set the eipam-ip-block.allocate-version for appropriate EIPAM request." />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-create-generic-pool.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_eipam-create-generic-pool.xml
new file mode 100755 (executable)
index 0000000..1940615
--- /dev/null
@@ -0,0 +1,901 @@
+<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='eipam-create-generic-pool' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="tmp.create-v4-pool-flag" value="N" />\r
+                <parameter name="tmp.create-v6-pool-flag" value="N" />\r
+                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                <parameter name="eipam-pool.v4.pre-existing" value="N"/>\r
+                <parameter name="eipam-pool.v6.pre-existing" value="N"/>\r
+                <parameter name="level" value="`$eipam-ip-block.level - 1`" />\r
+            </set>\r
+            <switch test="`$tmp.allocate-subnet-flag`">\r
+                <outcome value="">\r
+                    <block atomic='true'>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="tmp.allocate-subnet-flag" value="Y"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Y'></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $v4FQPN-output.pools[$level].key-value ;"\r
+        pfx='tmp.eipam-pool-row'>\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block atomic='true'>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-value`"/>\r
+                                        <parameter name="field6" value="Level already exists, SKIP."/>\r
+                                        <parameter name="field7" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field8" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name="eipam-pool.v4.pre-existing" value="Y"/>\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value="not-found">\r
+                                <switch test="`$l-idx`">\r
+                                    <outcome value='1'>\r
+                                        <block atomic='true'>\r
+                                            <switch test="`$tmp.qip-pool`">\r
+                                                <outcome value=""></outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                                        <parameter name="tmp.v4-qip-pool" value="`$tmp.qip-pool`" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test="`$tmp.skip-first-level`">\r
+                                                <outcome value='Y'></outcome>\r
+                                                <outcome value="">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="network-topology-identifier-structure.eipam-v4-address-plan" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                            <!-- Number of Pool Levels -->\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        </set>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
+                                                        </set>\r
+                                                        <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                            <block atomic='true'>\r
+                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                <set>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                                                </set>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                                    <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                                    <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                                    <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name`"/>\r
+                                                                    <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value`"/>\r
+                                                                </record>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='N'>\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="network-topology-identifier-structure.eipam-v4-address-plan" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                            <!-- Number of Pool Levels -->\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        </set>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
+                                                        </set>\r
+                                                        <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                            <block atomic='true'>\r
+                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                <set>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                                                </set>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                                    <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                                    <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                                    <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name`"/>\r
+                                                                    <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value`"/>\r
+                                                                </record>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=''>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic='true'>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="network-topology-identifier-structure.eipam-v4-address-plan" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                            </set>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
+                                            </set>\r
+                                            <for index="l4-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                <block atomic='true'>\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name" value="`$v4FQPN-output.pools[$l4-idx].key-name`"/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value" value="`$v4FQPN-output.pools[$l4-idx].key-value`"/>\r
+                                                    </set>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                                        <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                        <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                        <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-name`"/>\r
+                                                        <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l4-idx].key-value`"/>\r
+                                                    </record>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $v6FQPN-output.pools[$level].key-value ;"\r
+        pfx='tmp.eipam-pool-row'>\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block atomic='true'>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="field5" value="`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-value`"/>\r
+                                        <parameter name="field6" value="Level already exists, SKIP."/>\r
+                                        <parameter name="field7" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field8" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name="eipam-pool.v6.pre-existing" value="Y"/>\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value="not-found">\r
+                                <switch test="`$l-idx`">\r
+                                    <outcome value='1'>\r
+                                        <block atomic='true'>\r
+                                            <switch test="`$tmp.qip-pool`">\r
+                                                <outcome value=""></outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                                        <parameter name="tmp.v6-qip-pool" value="`$tmp.qip-pool`" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test="`$tmp.skip-first-level`">\r
+                                                <outcome value='Y'></outcome>\r
+                                                <outcome value="">\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="network-topology-identifier-structure.eipam-v6-address-plan" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                            <!-- Number of Pool Levels -->\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        </set>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
+                                                        </set>\r
+                                                        <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                            <block atomic='true'>\r
+                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                <set>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                                                </set>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                                    <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                                    <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                                    <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name`"/>\r
+                                                                    <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value`"/>\r
+                                                                    <parameter name="field7" value="`$l6-idx`"/>\r
+                                                                </record>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='N'>\r
+                                                    <block atomic='true'>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="network-topology-identifier-structure.eipam-v6-address-plan" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                            <!-- Number of Pool Levels -->\r
+                                                            <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        </set>\r
+                                                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                        <set>\r
+                                                            <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
+                                                        </set>\r
+                                                        <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                            <block atomic='true'>\r
+                                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                <set>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                                    <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                                                </set>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="network-topology-operation"/>\r
+                                                                    <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                                    <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                                    <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name`"/>\r
+                                                                    <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value`"/>\r
+                                                                    <parameter name="field7" value="`$l6-idx`"/>\r
+                                                                </record>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <set>\r
+                                                            <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=''>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic='true'>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="network-topology-identifier-structure.eipam-v6-address-plan" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="`$tmp.allocate-subnet-flag`"/>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                            </set>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
+                                            </set>\r
+                                            <for index="l6-idx" start="0" end="`$eipam-ip-block.level`">\r
+                                                <block atomic='true'>\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name" value="`$v6FQPN-output.pools[$l6-idx].key-name`"/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value" value="`$v6FQPN-output.pools[$l6-idx].key-value`"/>\r
+                                                    </set>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                                        <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                                        <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                        <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-name`"/>\r
+                                                        <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[$l6-idx].key-value`"/>\r
+                                                        <parameter name="field7" value="`$l6-idx`"/>\r
+                                                    </record>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$tmp.create-v4-pool-flag`">\r
+                <outcome value='Y'>\r
+                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
+                        <outcome value='success'></outcome>\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                                <parameter name="tmp.eipam-error" value="true" />\r
+                                <parameter name="error-code" value="500"/>\r
+                                <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+                <outcome value='N'>\r
+                    <switch test="`$tmp.create-v6-pool-flag`">\r
+                        <outcome value='Y'>\r
+                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
+                                <outcome value='success'></outcome>\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-pool.v4.pre-existing`">\r
+                            <outcome value='N'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="key-name" value="`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-name`" />\r
+                                        <parameter name="key-value" value="`$v4FQPN-output.pools[$eipam-ip-block.level - 1].key-value`" />\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value='1'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="parent_pool" value="`$tmp.v4-qip-pool`" />\r
+                                                    <parameter name="level" value="`$eipam-ip-block.level - 1`" />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="parent_pool" value="`$v4FQPN-output.pools[$eipam-ip-block.level - 2].key-value`" />\r
+                                                    <parameter name="level" value="`$eipam-ip-block.level - 1`" />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-generic-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$key-name`"/>\r
+                                        <parameter name="field6" value="`$key-value`"/>\r
+                                        <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
+                                    </record>\r
+                                    <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                        <outcome value='shared'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test="`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <switch test="`$tmp.allocate-subnet-flag`">\r
+                                                    <outcome value='Y'>\r
+                                                        <block atomic='true'>\r
+                                                            <for index="i" start="0" end="`$eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan_length`">\r
+                                                                <block atomic='true'>\r
+                                                                    <switch test="`$network-model.eipam-v4-address-plan == $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PlanName`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <block atomic='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name="index_found" value="true" />\r
+                                                                                </set>\r
+                                                                                <break/>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <switch test="`$index_found`">\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic='true'>\r
+                                                                        <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = $eipam-ip-block.level and key_value = $v4FQPN-output.pools[$level].key-value ;"\r
+        pfx='tmp.eipam-pool-row'>\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status="failure">\r
+                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic='true'>\r
+                                                                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IPAddress ,\r
+             prefix_length = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.Mask ,\r
+             plan_name = $network-model.eipam-v4-address-plan ,\r
+             status = 'ALLOCATED' ,\r
+             pool_id = $tmp.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv4-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-subnet-row'>\r
+                                                                                        <outcome value='failure'>\r
+                                                                                            <return status='failure'>\r
+                                                                                                <parameter name='error-code' value='500' />\r
+                                                                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS .' />\r
+                                                                                            </return>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='success'></outcome>\r
+                                                                                    </save>\r
+                                                                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-key-row'>\r
+                                                                                        <outcome value='success'></outcome>\r
+                                                                                        <outcome value='failure'>\r
+                                                                                            <return status='failure'>\r
+                                                                                                <parameter name='error-code' value='500' />\r
+                                                                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS .' />\r
+                                                                                            </return>\r
+                                                                                        </outcome>\r
+                                                                                    </save>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value="not-found">\r
+                                                                                <return status="failure">\r
+                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='Other'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                                <outcome value=''>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='N'></outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Y'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-pool.v6.pre-existing`">\r
+                            <outcome value='N'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="key-name" value="`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-name`" />\r
+                                        <parameter name="key-value" value="`$v6FQPN-output.pools[$eipam-ip-block.level - 1].key-value`" />\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value='1'>\r
+                                            <set>\r
+                                                <parameter name="parent_pool" value="`$tmp.v6-qip-pool`" />\r
+                                                <parameter name="level" value="`$eipam-ip-block.level - 1`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name="parent_pool" value="`$v6FQPN-output.pools[$eipam-ip-block.level - 2].key-value`" />\r
+                                                <parameter name="level" value="`$eipam-ip-block.level - 1`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="field5" value="`$v6FQPN-output.pools[$level].key-name`"/>\r
+                                        <parameter name="field6" value="`$v6FQPN-output.pools[$level].key-value`"/>\r
+                                        <parameter name="field7" value="`$tmp.network_instance_group_id`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.level`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
+                                    </record>\r
+                                    <switch test="`$network-instance-group-data.subnet-assignment-policy.subnet-use`">\r
+                                        <outcome value='shared'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $v6FQPN-output.pools[$level].key-name ,\r
+             key_value = $v6FQPN-output.pools[$level].key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ,\r
+             network_instance_group_id = $tmp.network-instance-group-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $v6FQPN-output.pools[$level].key-name ,\r
+             key_value = $v6FQPN-output.pools[$level].key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value=''>\r
+                                            <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_POOLS\r
+             SET\r
+             key_name = $v6FQPN-output.pools[$level].key-name ,\r
+             key_value = $v6FQPN-output.pools[$level].key-value ,\r
+             level = $eipam-ip-block.level ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             parent_pool = $parent_pool ,\r
+             service_instance_id = $network-topology-operation-input.service-information.service-instance-id ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v6pool-row'>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test="`$eipam-ip-block.level == $eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <switch test="`$tmp.allocate-subnet-flag`">\r
+                                                    <outcome value='Y'>\r
+                                                        <block atomic='true'>\r
+                                                            <for index="i" start="0" end="`$eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan_length`">\r
+                                                                <block atomic='true'>\r
+                                                                    <switch test="`$network-model.eipam-v6-address-plan == $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PlanName`">\r
+                                                                        <outcome value='true'>\r
+                                                                            <block atomic='true'>\r
+                                                                                <set>\r
+                                                                                    <parameter name="index_found" value="true" />\r
+                                                                                </set>\r
+                                                                                <break/>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <switch test="`$index_found`">\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic='true'>\r
+                                                                        <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = $eipam-ip-block.level and key_value = $v6FQPN-output.pools[$level].key-value ;"\r
+        pfx='tmp.eipam-pool-row'>\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status="failure">\r
+                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='success'>\r
+                                                                                <block atomic='true'>\r
+                                                                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNETS\r
+             SET\r
+             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\r
+             service_type = $tmp.service-type ,\r
+             ip_address = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IPAddress ,\r
+             prefix_length = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.Mask ,\r
+             plan_name = $network-model.eipam-v6-address-plan ,\r
+             status = 'ALLOCATED' ,\r
+             pool_id = $tmp.eipam-pool-row.pool-id ,\r
+             address_family = $network-model.ipv6-ip-version ,\r
+             network_id = $tmp.network-id ; "\r
+    force='true'\r
+        pfx='pfx.eipam-subnet-row'>\r
+                                                                                        <outcome value='failure'>\r
+                                                                                            <return status='failure'>\r
+                                                                                                <parameter name='error-code' value='500' />\r
+                                                                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNETS .' />\r
+                                                                                            </return>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='success'></outcome>\r
+                                                                                    </save>\r
+                                                                                    <save\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="INSERT EIPAM_IP_SUBNET_KEYS\r
+             SET\r
+             entity_id = $eipam-ip-block.createPoolResponse.CreatePoolPlans.CreatePoolPlan[$i].PoolItem.IPDataBlock.IpamPoolAllocId ,\r
+             key_name = $key-name ,\r
+             key_value = $key-value ,\r
+             level = $eipam-ip-block.level ; "\r
+    force='true'\r
+        pfx='pfx.eipam-v4subnet-key-row'>\r
+                                                                                        <outcome value='success'></outcome>\r
+                                                                                        <outcome value='failure'>\r
+                                                                                            <return status='failure'>\r
+                                                                                                <parameter name='error-code' value='500' />\r
+                                                                                                <parameter name='error-message' value='failed to update EIPAM_IP_SUBNET_KEYS .' />\r
+                                                                                            </return>\r
+                                                                                        </outcome>\r
+                                                                                    </save>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value="not-found">\r
+                                                                                <return status="failure">\r
+                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </get-resource>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='Other'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                                <outcome value=''>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value='failed to find plan name in CreatePoolResponse.' />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='N'></outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Y'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index ae2bb75..49436b4 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='eipam-create-network-role-pool' mode='sync'>\r
-<block atomic='true'><set>\r
-       <parameter name="tmp.eipam-error" value="false" />\r
-       <parameter name="tmp.create-v4-pool-flag" value="N" />\r
-       <parameter name="tmp.create-v6-pool-flag" value="N" />\r
-       <parameter name='eipam-ip-block.plans_length' value='0' />\r
-       <parameter name="eipam-pool.v4.pre-existing" value="false"/>\r
-       <parameter name="eipam-pool.v6.pre-existing" value="false"/>\r
-       <parameter name="tmp.v4-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v4-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" /></set><switch test="`$tmp.region`"><outcome value="USA"><set>\r
-       <parameter name="tmp.region" value="US" />\r
-</set></outcome></switch><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><get-resource\r
+<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='eipam-create-network-role-pool' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="tmp.create-v4-pool-flag" value="N" />\r
+                <parameter name="tmp.create-v6-pool-flag" value="N" />\r
+                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                <parameter name="eipam-pool.v4.pre-existing" value="false"/>\r
+                <parameter name="eipam-pool.v6.pre-existing" value="false"/>\r
+                <parameter name="tmp.v4-level1-key-name" value="LOCATION_CLLI8:CLOUD_REGION_ID" />\r
+                <parameter name="tmp.v4-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
+                <parameter name="tmp.v6-level1-key-name" value="LOCATION_CLLI8:CLOUD_REGION_ID" />\r
+                <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
+            </set>\r
+            <switch test="`$tmp.region`">\r
+                <outcome value="USA">\r
+                    <set>\r
+                        <parameter name="tmp.region" value="US" />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-ip-block.level`">\r
+                            <outcome value='1'>\r
+                                <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v4-address-plan and level = 1 and key_value = $tmp.level1-key-value ;"\r
         pfx='tmp.eipam-pool-row'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field6" value="Level 1 already exists, SKIP."/>\r
-<parameter name="field7" value="`$tmp.eipam-pool-row.pool-id`"/>\r
-</record><set>\r
-       <parameter name="eipam-pool.v4.pre-existing" value="true"/>\r
-</set></block></outcome><outcome value="not-found"><block atomic='true'><switch test="`$network-model.eipam-v4-address-plan`"><outcome value="AIC_ATM_UNPROTECTED_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-U ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_UNPROTECTED_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-U ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PRIVATE_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-Private ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_ATM_PROTECTED_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-P ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PROTECTED_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-P ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_AIM_LANDING_NETWORK_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V4 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v4-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v4-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value='Other'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
-       </return></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>   \r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v4-level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-       <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
-       <parameter name="tmp.v4-qip-pool" value="`$tmp.qip-pool`" /></set><switch test="`$eipam-ip-block.level`"><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><set>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v4-level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/></set></outcome><outcome value='Other'></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
-</record><set>\r
-       <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" /></set></block></outcome></get-resource></outcome><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><block atomic='true'><switch test="`$network-model.eipam-v4-address-plan`"><outcome value="AIC_ATM_UNPROTECTED_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-U ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_UNPROTECTED_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-U ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PRIVATE_V4"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-Private ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_ATM_PROTECTED_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-P ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PROTECTED_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'DP-P ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_AIM_LANDING_NETWORK_V4"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V4 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v4-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v4-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value='Other'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
-       </return></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>   \r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v4-level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-       <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
-       <parameter name="tmp.v4-qip-pool" value="`$tmp.qip-pool`" /></set><switch test="`$eipam-ip-block.level`"><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><set>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v4-level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/></set></outcome><outcome value='Other'></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
-</record><set>\r
-       <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" /></set></block></outcome></switch></block></outcome><outcome value=""></outcome><outcome value='N'></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><get-resource\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block atomic='true'>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                                <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                                <parameter name="field6" value="Level 1 already exists, SKIP."/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name="eipam-pool.v4.pre-existing" value="true"/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <switch test="`$network-model.eipam-v4-address-plan`">\r
+                                                <outcome value="AIC_ATM_UNPROTECTED_V4">\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'ATM-U ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_UNPROTECTED_V4">\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'DP-U ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_PRIVATE_V4">\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'DP-Private ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_ATM_PROTECTED_V4">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'ATM-P ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_PROTECTED_V4">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'DP-P ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_AIM_LANDING_NETWORK_V4">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V4 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
+                                                <!-- Level 1 -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v4-level1-key-name`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                                <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
+                                                <parameter name="tmp.v4-qip-pool" value="`$tmp.qip-pool`" />\r
+                                            </set>\r
+                                            <switch test="`$eipam-ip-block.level`">\r
+                                                <outcome value=''>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='2'>\r
+                                                    <set>\r
+                                                        <!-- Number of Pool Levels -->\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        <!-- Level 2 -->\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v4-level2-key-name`"/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                            </switch>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                                <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
+                                                <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
+                                                <parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
+                                                <parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='2'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$network-model.eipam-v4-address-plan`">\r
+                                        <outcome value="AIC_ATM_UNPROTECTED_V4">\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'ATM-U ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_UNPROTECTED_V4">\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'DP-U ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PRIVATE_V4">\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'DP-Private ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_ATM_PROTECTED_V4">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'ATM-P ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PROTECTED_V4">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'DP-P ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_AIM_LANDING_NETWORK_V4">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V4 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v4-level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="tmp.create-v4-pool-flag" value="Y" />\r
+                                        <parameter name="tmp.v4-qip-pool" value="`$tmp.qip-pool`" />\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value=''>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='2'>\r
+                                            <set>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                <!-- Level 2 -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v4-level2-key-name`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'></outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                        <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                        <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
+                                        <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
+                                        <parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$eipam-ip-block.level`">\r
+                            <outcome value='1'>\r
+                                <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $network-model.eipam-v6-address-plan and level = 1 and key_value = $tmp.level1-key-value ;"\r
         pfx='tmp.eipam-pool-row'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field6" value="Level 1 already exists, SKIP."/>\r
-<parameter name="field7" value="`$tmp.eipam-pool-row.pool-id`"/></record><set>\r
-       <parameter name="eipam-pool.v6.pre-existing" value="true"/>\r
-</set></block></outcome><outcome value="not-found"><block atomic='true'><switch test="`$network-model.eipam-v6-address-plan`"><outcome value="AIC_ATM_UNPROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-U-V6 ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_AIM_LANDING_NETWORK_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V6 ' + $tmp.region`"/>\r
-\r
-</set></outcome><outcome value="AIC_ATM_PROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-P-V6 ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_UNPROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-U-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PRIVATE_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-PRIVATE-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-P-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value='Other'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
-       </return></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>   \r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v6-level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-       <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
-       <parameter name="tmp.v6-qip-pool" value="`$tmp.qip-pool`" /></set><switch test="`$eipam-ip-block.level`"><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v6-level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/></set></outcome><outcome value='Other'></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
-</record><set>\r
-       <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" /></set></block></outcome></get-resource></outcome><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><block atomic='true'><switch test="`$network-model.eipam-v6-address-plan`"><outcome value="AIC_ATM_UNPROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-U-V6 ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_AIM_LANDING_NETWORK_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V6 ' + $tmp.region`"/>\r
-\r
-</set></outcome><outcome value="AIC_ATM_PROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'ATM-P-V6 ' + $tmp.region`"/>\r
-</set></outcome><outcome value="AIC_DATA_PLANE_UNPROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-U-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PRIVATE_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-PRIVATE-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value="AIC_DATA_PLANE_PROTECTED_V6"><set>\r
-       <parameter name="tmp.qip-pool" value="`'AIC-DP-P-V6 ' + $tmp.region`"/>\r
-       <parameter name="tmp.v6-level1-key-name" value="CLLI:CLOUD_REGION" />\r
-       <parameter name="tmp.v6-level2-key-name" value="NETWORK_ROLE:NETWORK_ID" />\r
-</set></outcome><outcome value='Other'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
-       </return></outcome></switch><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>   \r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
-\r
-       <!-- Level 1 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v6-level1-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
-       <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
-       <parameter name="tmp.v6-qip-pool" value="`$tmp.qip-pool`" /></set><switch test="`$eipam-ip-block.level`"><outcome value=''><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
-       </return></outcome><outcome value='2'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><set>\r
-       <!-- Number of Pool Levels -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
-\r
-       <!-- Level 2 -->\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v6-level2-key-name`"/>\r
-       <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/></set></outcome><outcome value='Other'></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
-</record><set>\r
-       <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" /></set></block></outcome></switch></block></outcome><outcome value=""></outcome><outcome value='N'></outcome></switch><switch test="`$tmp.create-v4-pool-flag`"><outcome value='Y'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
-       </return></outcome></execute></outcome><outcome value='N'><switch test="`$tmp.create-v6-pool-flag`"><outcome value='Y'><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
-       </return></outcome></execute></outcome><outcome value='N'></outcome></switch></outcome></switch><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic='true'><switch test="`$tmp.create-v4-pool-flag`"><outcome value='Y'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><save\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_POOLS failed." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block atomic='true'>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                                <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                <parameter name="field5" value="`$tmp.level1-key-value`"/>\r
+                                                <parameter name="field6" value="Level 1 already exists, SKIP."/>\r
+                                                <parameter name="field7" value="`$tmp.eipam-pool-row.pool-id`"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name="eipam-pool.v6.pre-existing" value="true"/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'>\r
+                                            <switch test="`$network-model.eipam-v6-address-plan`">\r
+                                                <outcome value="AIC_ATM_UNPROTECTED_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'ATM-U-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_AIM_LANDING_NETWORK_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_ATM_PROTECTED_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'ATM-P-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_UNPROTECTED_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'AIC-DP-U-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_PRIVATE_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'AIC-DP-Private-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value="AIC_DATA_PLANE_PROTECTED_V6">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.qip-pool" value="`'AIC-DP-P-V6 ' + $tmp.region`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
+                                                <!-- Level 1 -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v6-level1-key-name`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                                <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
+                                                <parameter name="tmp.v6-qip-pool" value="`$tmp.qip-pool`" />\r
+                                            </set>\r
+                                            <switch test="`$eipam-ip-block.level`">\r
+                                                <outcome value=''>\r
+                                                    <return status="failure">\r
+                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='2'>\r
+                                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                    <set>\r
+                                                        <!-- Number of Pool Levels -->\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                        <!-- Level 2 -->\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v6-level2-key-name`"/>\r
+                                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                            </switch>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="network-topology-operation"/>\r
+                                                <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                                <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                                <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
+                                                <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
+                                                <parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
+                                                <parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='2'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$network-model.eipam-v6-address-plan`">\r
+                                        <outcome value="AIC_ATM_UNPROTECTED_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'ATM-U-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_AIM_LANDING_NETWORK_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'AIC-AIM-LANDING-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_ATM_PROTECTED_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'ATM-P-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_UNPROTECTED_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'AIC-DP-U-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PRIVATE_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'AIC-DP-Private-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PROTECTED_V6">\r
+                                            <set>\r
+                                                <parameter name="tmp.qip-pool" value="`'AIC-DP-P-V6 ' + $tmp.region`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="EIPAM Address Plan is not valid." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].allocate-subnet-flag" value="N"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value="`$tmp.qip-pool`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests_length" value="1"/>\r
+                                        <!-- Number of Pool Levels -->\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="1"/>\r
+                                        <!-- Level 1 -->\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name" value="`$tmp.v6-level1-key-name`"/>\r
+                                        <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="tmp.create-v6-pool-flag" value="Y" />\r
+                                        <parameter name="tmp.v6-qip-pool" value="`$tmp.qip-pool`" />\r
+                                    </set>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value=''>\r
+                                            <return status="failure">\r
+                                                <parameter name="tmp.eipam-error" value="true" />\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="Please set the eipam-ip-block.level for appropriate EIPAM request." />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='2'>\r
+                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                            <set>\r
+                                                <!-- Number of Pool Levels -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools_length" value="`$eipam-ip-block.level`"/>\r
+                                                <!-- Level 2 -->\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].parent-pool" value=""/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name" value="`$tmp.v6-level2-key-name`"/>\r
+                                                <parameter name="eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value" value="`$tmp.level2-key-value`"/>\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'></outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                        <parameter name="field4" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].plan-name`"/>\r
+                                        <parameter name="field5" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-name`"/>\r
+                                        <parameter name="field6" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[0].key-value`"/>\r
+                                        <parameter name="field7" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-name`"/>\r
+                                        <parameter name="field8" value="`$eipam-ip-block.plans[$eipam-ip-block.plans_length].requests[0].pools[1].key-value`"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name="eipam-ip-block.plans_length" value="`$eipam-ip-block.plans_length + 1`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$tmp.create-v4-pool-flag`">\r
+                <outcome value='Y'>\r
+                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
+                        <outcome value='success'></outcome>\r
+                        <outcome value='failure'>\r
+                            <return status="failure">\r
+                                <parameter name="tmp.eipam-error" value="true" />\r
+                                <parameter name="error-code" value="500"/>\r
+                                <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
+                            </return>\r
+                        </outcome>\r
+                    </execute>\r
+                </outcome>\r
+                <outcome value='N'>\r
+                    <switch test="`$tmp.create-v6-pool-flag`">\r
+                        <outcome value='Y'>\r
+                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="createPool">\r
+                                <outcome value='success'></outcome>\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="An error occured while creating pool in EIPAM." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </outcome>\r
+                        <outcome value='N'></outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$tmp.create-v4-pool-flag`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value='1'>\r
+                                            <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_POOLS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v4pool-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
-</return></outcome><outcome value='Other'></outcome><outcome value='Other'></outcome></save></outcome><outcome value='2'><save\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='2'>\r
+                                            <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_POOLS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v4pool-row'>\r
-<outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
-</return></outcome><outcome value='Other'></outcome><outcome value='Other'></outcome></save></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.v4-level1-key-name`"/>\r
-<parameter name="field6" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field7" value="`$tmp.v4-level2-key-name`"/>\r
-<parameter name="field8" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field9" value="`$network-model.network-role`"/>\r
-<parameter name="field10" value="`$tmp.network-id`"/>\r
-<parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
-</record></block></outcome><outcome value='N'></outcome></switch></block></outcome><outcome value=""></outcome><outcome value='N'></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic='true'><switch test="`$tmp.create-v6-pool-flag`"><outcome value='Y'><block atomic='true'><switch test="`$eipam-ip-block.level`"><outcome value='1'><save\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v4-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.v4-level1-key-name`"/>\r
+                                        <parameter name="field6" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="field7" value="`$tmp.v4-level2-key-name`"/>\r
+                                        <parameter name="field8" value="`$tmp.level2-key-value`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <switch test="`$tmp.create-v6-pool-flag`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test="`$eipam-ip-block.level`">\r
+                                        <outcome value='1'>\r
+                                            <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_POOLS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v6pool-row'>\r
-<outcome value='Other'></outcome><outcome value='Other'></outcome><outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
-</return></outcome></save></outcome><outcome value='2'><save\r
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                        <outcome value='2'>\r
+                                            <save\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="INSERT EIPAM_IP_POOLS\r
              network_id = $tmp.network-id ; "\r
     force='true'\r
         pfx='pfx.eipam-v6pool-row'>\r
-<outcome value='Other'></outcome><outcome value='Other'></outcome><outcome value='failure'><return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
-</return></outcome></save></outcome></switch><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="network-topology-operation"/>\r
-<parameter name="field3" value="eipam-create-network-role-pool"/>\r
-<parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
-<parameter name="field5" value="`$tmp.v6-level1-key-name`"/>\r
-<parameter name="field6" value="`$tmp.level1-key-value`"/>\r
-<parameter name="field7" value="`$tmp.v6-level2-key-name`"/>\r
-<parameter name="field8" value="`$tmp.level2-key-value`"/>\r
-<parameter name="field9" value="`$network-model.network-role`"/>\r
-<parameter name="field10" value="`$tmp.network-id`"/>\r
-<parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
-</record></block></outcome><outcome value='N'></outcome></switch></block></outcome><outcome value=""></outcome><outcome value='N'></outcome></switch><return status='success'>\r
-       <parameter name="error-code" value="200" />\r
-</return></block></method></service-logic>
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='Other'></outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='failed to update EIPAM_IP_POOLS .' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="network-topology-operation"/>\r
+                                        <parameter name="field3" value="eipam-create-network-role-pool"/>\r
+                                        <parameter name="field4" value="`$network-model.eipam-v6-address-plan`"/>\r
+                                        <parameter name="field5" value="`$tmp.v6-level1-key-name`"/>\r
+                                        <parameter name="field6" value="`$tmp.level1-key-value`"/>\r
+                                        <parameter name="field7" value="`$tmp.v6-level2-key-name`"/>\r
+                                        <parameter name="field8" value="`$tmp.level2-key-value`"/>\r
+                                        <parameter name="field9" value="`$network-model.network-role`"/>\r
+                                        <parameter name="field10" value="`$tmp.network-id`"/>\r
+                                        <parameter name="field11" value="Saving to EIPAM_IP_POOLS table."/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='N'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+                <outcome value='N'></outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-FQPN.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-FQPN.xml
new file mode 100644 (file)
index 0000000..b9699d6
--- /dev/null
@@ -0,0 +1,472 @@
+<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='generate-FQPN' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$generate-FQPN-input.plan-name`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="generate-FQPN-input.plan-name is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='eipam-ip-block.plan-name' value='`$generate-FQPN-input.plan-name`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='generate-FQPN-output.' value='' />\r
+            </set>\r
+            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="getPlanTopology">\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="`'An error occured while getting Keyname and Keyvalue for address plan, '+ $eipam-ip-block.planName + ', from EIPAM'`" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="eipam-ip-block.getPlanTopologyResponse.TopologyDetails is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\r
+                <outcome value='true'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <for index="resp-index" start="0" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                            <switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>\r
+                                <outcome value='false'>\r
+                                    <return status="failure">\r
+                                        <parameter name="ack-final" value="Y" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="`'eipam response plan-name ['+ $eipam-ip-block.getPlanTopologyResponse.PlanName + ' is not the same as input '+$eipam-ip-block.planName`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='pool-index'\r
+   value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.final.key-value' value="" />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.getPlanTopologyResponse.key-name' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />\r
+                            </set>\r
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                <parameter name="original_string" value="`$tmp.getPlanTopologyResponse.key-name`" />\r
+                                <parameter name="regex" value=":" />\r
+                                <parameter name="ctx_memory_result_key" value="tmp.split.key-name" />\r
+                            </execute>\r
+                            <for index="split-index" start="0" end="`$tmp.split.key-name_length`">\r
+                                <set>\r
+                                    <parameter name='tmp.eipam.key-name' \r
+       value='`$tmp.split.key-name[$split-index]`' />\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT key_value_source from ADDRESS_PLAN_POLICIES WHERE key_name = $tmp.eipam.key-name '\r
+  pfx='db.address-plan-policies'>\r
+                                        <outcome value='failure'>\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 reading ADDRESS_PLAN_POLICIES table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'No ADDRESS_PLAN_POLICIES entry found for key_name = ' + $eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$key-index].KeyName`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from ROUTING_CHARACTERISTIC_MAPPING WHERE network_role = $generate-FQPN-input.network-role '\r
+  pfx='db.routing-characteristic_mapping[]'>\r
+                                        <outcome value='failure'>\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 reading ROUTING_CHARACTERISTIC_MAPPING table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'No ROUTING_CHARACTERISTIC_MAPPING entry found for network_role = ' + $generate-FQPN-input.network-role`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <set>\r
+                                        <parameter name='tmp.key-value' value='' />\r
+                                    </set>\r
+                                    <switch test='`$db.address-plan-policies.key-value-source`'>\r
+                                        <outcome value='AddressPlanPolicyDG-Routing_Characteristic'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.key-value' value='-1' />\r
+                                                </set>\r
+                                                <switch test='`$db.routing-characteristic_mapping_length &gt; 1`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <for index="routing-index" start="0" end="`$db.routing-characteristic_mapping_length`">\r
+                                                                <switch test='`$db.routing-characteristic_mapping[$routing-index].vrf-name == $generate-FQPN-input.vrf-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[$routing-index].routing-characteristic`' />\r
+                                                                            </set>\r
+                                                                            <return status='failure'></return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                            <return status='success'></return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='false'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].routing-characteristic`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.key-value`'>\r
+                                                    <outcome value='-1'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="No matching ROUTING_CHARACTERISTIC_MAPPING.vrf-name found" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Location_Clli8'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.location-clli8`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Vrf_Name'>\r
+                                            <switch test='`$generate-FQPN-input.vrf-name`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].vrf-name`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='cloud_region_id'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.aic-cloud-region`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Complex_region'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Name'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Subnet_Role'>\r
+                                            <switch test='`$generate-FQPN-input.subnet-role`' >\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='STATIC' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='`$generate-FQPN-input.subnet-role`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Role'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-role`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Id'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-id`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Collection'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-collection`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Zone'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.zone`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'Unknown ADDRESS_PLAN_POLICIES: ' + $db.address-plan-policies.key-value-source`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                                <switch test='`$split-index == 0`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.final.key-value' value="`$tmp.key-value`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='false'>\r
+                                        <set>\r
+                                            <parameter name='tmp.final.key-value' \r
+       value="`$tmp.final.key-value + ':' + $tmp.key-value`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='generate-FQPN-output.pools[$pool-index].key-name'\r
+   value='`$tmp.getPlanTopologyResponse.key-name`' />\r
+                                <parameter name='generate-FQPN-output.pools[$pool-index].key-value'\r
+       value='`$tmp.final.key-value`' />\r
+                            </set>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-output.pools_length' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <for index="resp-index" start="0" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                            <switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>\r
+                                <outcome value='false'>\r
+                                    <return status="failure">\r
+                                        <parameter name="ack-final" value="Y" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="`'eipam response plan-name ['+ $eipam-ip-block.getPlanTopologyResponse.PlanName + ' is not the same as input '+$eipam-ip-block.planName`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='pool-index'\r
+   value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.final.key-value' value="" />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.getPlanTopologyResponse.key-name' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />\r
+                            </set>\r
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                <parameter name="original_string" value="`$tmp.getPlanTopologyResponse.key-name`" />\r
+                                <parameter name="regex" value=":" />\r
+                                <parameter name="ctx_memory_result_key" value="tmp.split.key-name" />\r
+                            </execute>\r
+                            <for index="split-index" start="0" end="`$tmp.split.key-name_length`">\r
+                                <set>\r
+                                    <parameter name='tmp.eipam.key-name' \r
+       value='`$tmp.split.key-name[$split-index]`' />\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT key_value_source from ADDRESS_PLAN_POLICIES WHERE key_name = $tmp.eipam.key-name '\r
+  pfx='db.address-plan-policies'>\r
+                                        <outcome value='failure'>\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 reading ADDRESS_PLAN_POLICIES table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'No ADDRESS_PLAN_POLICIES entry found for key_name = ' + $eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$key-index].KeyName`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from ROUTING_CHARACTERISTIC_MAPPING WHERE network_role = $generate-FQPN-input.network-role '\r
+  pfx='db.routing-characteristic_mapping[]'>\r
+                                        <outcome value='failure'>\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 reading ROUTING_CHARACTERISTIC_MAPPING table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'No ROUTING_CHARACTERISTIC_MAPPING entry found for network_role = ' + $generate-FQPN-input.network-role`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <set>\r
+                                        <parameter name='tmp.key-value' value='' />\r
+                                    </set>\r
+                                    <switch test='`$db.address-plan-policies.key-value-source`'>\r
+                                        <outcome value='AddressPlanPolicyDG-Routing_Characteristic'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.key-value' value='-1' />\r
+                                                </set>\r
+                                                <switch test='`$db.routing-characteristic_mapping_length &gt; 1`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <for index="routing-index" start="0" end="`$db.routing-characteristic_mapping_length`">\r
+                                                                <switch test='`$db.routing-characteristic_mapping[$routing-index].vrf-name == $generate-FQPN-input.vrf-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[$routing-index].routing-characteristic`' />\r
+                                                                            </set>\r
+                                                                            <return status='failure'></return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                            <return status='success'></return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='false'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].routing-characteristic`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$tmp.key-value`'>\r
+                                                    <outcome value='-1'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="No matching ROUTING_CHARACTERISTIC_MAPPING.vrf-name found" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Location_Clli8'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.location-clli8`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Vrf_Name'>\r
+                                            <switch test='`$generate-FQPN-input.vrf-name`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='`$db.routing-characteristic_mapping[0].vrf-name`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='cloud_region_id'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.aic-cloud-region`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Complex_region'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Name'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Subnet_Role'>\r
+                                            <switch test='`$generate-FQPN-input.subnet-role`' >\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='STATIC' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.key-value' value='`$generate-FQPN-input.subnet-role`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Role'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-role`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Id'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-id`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Network_Collection'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.network-collection`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='AddressPlanPolicyDG-Zone'>\r
+                                            <set>\r
+                                                <parameter name='tmp.key-value' value='`$generate-FQPN-input.zone`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'Unknown ADDRESS_PLAN_POLICIES: ' + $db.address-plan-policies.key-value-source`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                                <switch test='`$split-index == 0`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.final.key-value' value="`$tmp.key-value`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='false'>\r
+                                        <set>\r
+                                            <parameter name='tmp.final.key-value' \r
+       value="`$tmp.final.key-value + ':' + $tmp.key-value`" />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='generate-FQPN-output.pools[$pool-index].key-name'\r
+   value='`$tmp.getPlanTopologyResponse.key-name`' />\r
+                                <parameter name='generate-FQPN-output.pools[$pool-index].key-value'\r
+       value='`$tmp.final.key-value`' />\r
+                            </set>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-output.pools_length' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-allottedresource-id.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-allottedresource-id.xml
new file mode 100644 (file)
index 0000000..b6792ad
--- /dev/null
@@ -0,0 +1,68 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc="generate-allottedresource-id" mode="sync">
+        <block atomic="true">
+            <set>
+                <parameter name="tmp.local-variables.generate-allottedresource-id." value="" />
+                <parameter name="tmp.return.generate-allottedresource-id." value="" />
+            </set>
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >
+                <parameter name="ctx-destination" value="tmp.return.generate-allottedresource-id.id" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <!-- Used to work around execute node bug -->
+                        <parameter name="execute_failure" value="false" />
+                        <!-- return parameters -->
+                        <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." />
+                    </return>
+                </outcome>
+            </execute>
+            <for atomic="true" index="n" start="0" end="1" >
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+              resource="allotted-resource"
+              key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                                       service-subscription.service-type = $cto-api.service-type AND
+                                       service-instance.service-instance-id = $cto-api.port-mirror-configuration-instance-id AND
+                                       allotted-resource.id = $tmp.return.generate-allottedresource-id.id"
+              local-only="false"
+              pfx="tmp.local-variables.generate-allottedresource-id.ALLOTTEDRESOURCE" >
+                    <outcome value='success'>
+                        <block atomic='true'>
+                            <set>
+                                <parameter name="tmp.local-variables.generate-allottedresource-id.is-unique" value="0" />
+                            </set>
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >
+                                <parameter name="ctx-destination" value="tmp.return.generate-allottedresource-id.id" />
+                                <outcome value='failure'>
+                                    <return status="failure">
+                                        <!-- return parameters -->
+                                        <parameter name="error-message.generate-allottedresource-id" value="An error occured while generating a UUID for ALLOTTED-RESOURCE." />
+                                    </return>
+                                </outcome>
+                            </execute>
+                        </block>
+                    </outcome>
+                    <outcome value='not-found'>
+                        <block></block>
+                    </outcome>
+                    <outcome value='failure'>
+                        <return status="failure">
+                            <!-- return parameters -->
+                            <parameter name="error-message.generate-allottedresource-id" value="`'An error occured while checking if a generated allotted-resource-id was unique. allotted-resource-id = ' + $tmp.local-variables.generate-allottedresource-id.id`" />
+                        </return>
+                    </outcome>
+                    <outcome value="Other">
+                        <return status="failure">
+                            <!-- return parameters -->
+                            <parameter name="error-message.generate-allottedresource-id" value="`'An error occured while checking if a generated allotted-resource-id was unique. allotted-resource-id = ' + $tmp.local-variables.generate-allottedresource-id.id`" />
+                        </return>
+                    </outcome>
+                </get-resource>
+            </for>
+            <set>
+                <parameter name="tmp.local-variables.generate-allottedresource-id." value="" />
+            </set>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-host-routes-host-route-id.xml
new file mode 100755 (executable)
index 0000000..928e3a8
--- /dev/null
@@ -0,0 +1,67 @@
+<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="generate-host-routes-host-route-id" mode="sync">\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-host-routes-host-route-id." value="" />\r
+                <parameter name="tmp.return.generate-host-routes-host-route-id." value="" />\r
+            </set>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate-host-routes-host-route-id.uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <!-- Used to work around execute node bug -->\r
+                        <parameter name="execute_failure" value="false" />\r
+                        <!-- return parameters -->\r
+                        <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for atomic="true" index="s" start="0" end="1" >\r
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="subnet"\r
+               key="l3-network.network-id = $tmp.local.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
+               local-only="false"\r
+               pfx="tmp.local-variables.generate-host-routes-host-route-id.HOST_ROUTE" >\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name="tmp.local-variables.generate-host-routes-host-route-id.is-unique" value="0" />\r
+                            </set>\r
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                <parameter name="ctx-destination" value="tmp.return.generate-host-routes-host-route-id.uuid" />\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <!-- return parameters -->\r
+                                        <parameter name="error-message.generate-host-routes-host-route-id" value="An error occured while generating a UUID for HOST_ROUTE." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='not-found'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-host-routes-host-route-id" value="`'An error occured while checking if a generated host-routes-host-route-id was unique. host-route-id = ' + $tmp.local-variables.generate-host-routes-host-route-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value="Other">\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-host-routes-host-route-id" value="`'An error occured while checking if a generated host-routes-host-route-id was unique. host-route-id = ' + $tmp.local-variables.generate-host-routes-host-route-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                </get-resource>\r
+            </for>\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-host-routes-host-route-id." value="" />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index fbf20b2..e44c148 100755 (executable)
@@ -1,27 +1,65 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc="generate-l3network-network-id" mode="sync"><block atomic="true"><set>\r
-       <parameter name="tmp.local-variables.generate-l3network-network-id." value="" />\r
-       <parameter name="tmp.return.generate-l3network-network-id." value="" /></set><execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
-       <parameter name="ctx-destination" value="tmp.return.generate-l3network-network-id.uuid" /><outcome value='failure'>\r
-<return status='failure'>\r
-       <!-- Used to work around execute node bug -->\r
-       <parameter name="execute_failure" value="false" />\r
-\r
-       <!-- return parameters -->\r
-       <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." /></return></outcome></execute><for atomic="true" index="n" start="0" end="1" ><get-resource 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"\r
-              local-only="false"\r
-              pfx="tmp.local-variables.generate-l3network-network-id.L3NETWORK" ><outcome value='success'>\r
-<block atomic='true'><set>\r
-       <parameter name="tmp.local-variables.generate-l3network-network-id.is-unique" value="0" /></set><execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
-       <parameter name="ctx-destination" value="tmp.return.generate-l3network-network-id.uuid" /><outcome value='failure'>\r
-<return status="failure">\r
-       <!-- return parameters -->\r
-       <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." /></return></outcome></execute></block></outcome><outcome value='not-found'>\r
-<block></block></outcome><outcome value='failure'>\r
-<return status="failure">\r
-       <!-- return parameters -->\r
-       <parameter name="error-message.generate-l3network-network-id" value="`'An error occured while checking if a generated l3network-network-id was unique. network-id = ' + $tmp.local-variables.generate-l3network-network-id.uuid`" /></return></outcome><outcome value="Other"><return status="failure">\r
-       <!-- return parameters -->\r
-       <parameter name="error-message.generate-l3network-network-id" value="`'An error occured while checking if a generated l3network-network-id was unique. network-id = ' + $tmp.local-variables.generate-l3network-network-id.uuid`" /></return></outcome></get-resource></for><set>\r
-       <parameter name="tmp.local-variables.generate-l3network-network-id." value="" /></set></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc="generate-l3network-network-id" mode="sync">
+        <block atomic="true">
+            <set>
+                <parameter name="tmp.local-variables.generate-l3network-network-id." value="" />
+                <parameter name="tmp.return.generate-l3network-network-id." value="" />
+            </set>
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >
+                <parameter name="ctx-destination" value="tmp.return.generate-l3network-network-id.uuid" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <!-- Used to work around execute node bug -->
+                        <parameter name="execute_failure" value="false" />
+                        <!-- return parameters -->
+                        <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." />
+                    </return>
+                </outcome>
+            </execute>
+            <for atomic="true" index="n" start="0" end="1" >
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+              resource="l3-network"
+              key="l3-network.network-id = $tmp.return.generate-l3network-network-id.uuid"
+              local-only="false"
+              pfx="tmp.local-variables.generate-l3network-network-id.L3NETWORK" >
+                    <outcome value='success'>
+                        <block atomic='true'>
+                            <set>
+                                <parameter name="tmp.local-variables.generate-l3network-network-id.is-unique" value="0" />
+                            </set>
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >
+                                <parameter name="ctx-destination" value="tmp.return.generate-l3network-network-id.uuid" />
+                                <outcome value='failure'>
+                                    <return status="failure">
+                                        <!-- return parameters -->
+                                        <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." />
+                                    </return>
+                                </outcome>
+                            </execute>
+                        </block>
+                    </outcome>
+                    <outcome value='not-found'>
+                        <block></block>
+                    </outcome>
+                    <outcome value='failure'>
+                        <return status="failure">
+                            <!-- return parameters -->
+                            <parameter name="error-message.generate-l3network-network-id" value="`'An error occured while checking if a generated l3network-network-id was unique. network-id = ' + $tmp.local-variables.generate-l3network-network-id.uuid`" />
+                        </return>
+                    </outcome>
+                    <outcome value="Other">
+                        <return status="failure">
+                            <!-- return parameters -->
+                            <parameter name="error-message.generate-l3network-network-id" value="`'An error occured while checking if a generated l3network-network-id was unique. network-id = ' + $tmp.local-variables.generate-l3network-network-id.uuid`" />
+                        </return>
+                    </outcome>
+                </get-resource>
+            </for>
+            <set>
+                <parameter name="tmp.local-variables.generate-l3network-network-id." value="" />
+            </set>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index dde1709..b31a9ff 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='generate-panorama-name' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.trust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_T' />\r
-<parameter name='tmp.untrust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_U' />\r
-</set><set>\r
-<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
-    <parameter name="original_string" value="`$original-name`" />\r
-    <parameter name="regex" value="\."/>\r
-    <parameter name="limit" value="2" />\r
-    <parameter name="ctx_memory_result_key" value="splits" />\r
-  \r
-</execute><switch test='`$splits_length`'>\r
-<outcome value='1'>\r
-<set>\r
-<parameter name='new-name' value='`$splits[0]`' />\r
-</set></outcome><outcome value='2'>\r
-<set>\r
-<parameter name='new-name' value='`$splits[1]`' />\r
-</set></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Unexpected network role used for panorama naming' />\r
-</return></outcome></switch><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\r
-    <parameter name="source" value="`$new-name`" />\r
-    <parameter name="outputPath" value="tmp.strlen"/>\r
-  \r
-</execute><switch test='`$tmp.strlen > 14`'>\r
-<outcome value='true'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\r
-    <parameter name="string" value="`$new-name`" />\r
-    <parameter name="result" value="new-name"/>\r
-    <parameter name="begin-index" value="0" />\r
-    <parameter name="end-index" value="14" />\r
-  \r
-</execute></block></outcome><outcome value='false'>\r
-<block atomic="true"><set>\r
-<parameter name='new-name' value='`$new-name`' />\r
-</set></block></outcome></switch><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.trust-sz`"/>\r
-    <parameter name="outputPath" value="tmp.trust-sz"/>\r
-    <parameter name="target" value="$TenantOAMNetworkRole"/>\r
-    <parameter name="replacement" value="`$new-name`"/>\r
-\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.untrust-sz`"/>\r
-    <parameter name="outputPath" value="tmp.untrust-sz"/>\r
-    <parameter name="target" value="$TenantOAMNetworkRole"/>\r
-    <parameter name="replacement" value="`$new-name`"/>\r
-\r
-</execute><set>\r
-<parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
-    <parameter name="original_string" value="`$original-name`" />\r
-    <parameter name="regex" value="\."/>\r
-    <parameter name="limit" value="2" />\r
-    <parameter name="ctx_memory_result_key" value="splits" />\r
-  \r
-</execute><switch test='`$splits_length`'>\r
-<outcome value='1'>\r
-<set>\r
-<parameter name='new-name' value='`$splits[0]`' />\r
-</set></outcome><outcome value='2'>\r
-<set>\r
-<parameter name='new-name' value='`$splits[1]`' />\r
-</set></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Unexpected network role used for panorama naming' />\r
-</return></outcome></switch><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >\r
-    <parameter name="source" value="`$new-name`" />\r
-    <parameter name="outputPath" value="tmp.strlen"/>\r
-  \r
-</execute><switch test='`$tmp.strlen > 14`'>\r
-<outcome value='true'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >\r
-    <parameter name="string" value="`$new-name`" />\r
-    <parameter name="result" value="new-name"/>\r
-    <parameter name="begin-index" value="0" />\r
-    <parameter name="end-index" value="14" />\r
-  \r
-</execute></block></outcome><outcome value='false'>\r
-<block atomic="true"><set>\r
-<parameter name='new-name' value='`$new-name`' />\r
-</set></block></outcome></switch><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.trust-sz`"/>\r
-    <parameter name="outputPath" value="tmp.trust-sz"/>\r
-    <parameter name="target" value="$LandingNetworkRole"/>\r
-    <parameter name="replacement" value="`$new-name`"/>\r
-\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.untrust-sz`"/>\r
-    <parameter name="outputPath" value="tmp.untrust-sz"/>\r
-    <parameter name="target" value="$LandingNetworkRole"/>\r
-    <parameter name="replacement" value="`$new-name`"/>\r
-\r
-</execute></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='generate-panorama-name' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.trust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_T' />
+                <parameter name='tmp.untrust-sz' value='$TenantOAMNetworkRole_$LandingNetworkRole_U' />
+            </set>
+            <set>
+                <parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+                <parameter name="original_string" value="`$original-name`" />
+                <parameter name="regex" value="\."/>
+                <parameter name="limit" value="2" />
+                <parameter name="ctx_memory_result_key" value="splits" />
+            </execute>
+            <switch test='`$splits_length`'>
+                <outcome value='1'>
+                    <set>
+                        <parameter name='new-name' value='`$splits[0]`' />
+                    </set>
+                </outcome>
+                <outcome value='2'>
+                    <set>
+                        <parameter name='new-name' value='`$splits[1]`' />
+                    </set>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Unexpected network role used for panorama naming' />
+                    </return>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >
+                <parameter name="source" value="`$new-name`" />
+                <parameter name="outputPath" value="tmp.strlen"/>
+            </execute>
+            <switch test='`$tmp.strlen > 14`'>
+                <outcome value='true'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >
+                            <parameter name="string" value="`$new-name`" />
+                            <parameter name="result" value="new-name"/>
+                            <parameter name="begin-index" value="0" />
+                            <parameter name="end-index" value="14" />
+                        </execute>
+                    </block>
+                </outcome>
+                <outcome value='false'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='new-name' value='`$new-name`' />
+                        </set>
+                    </block>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.trust-sz`"/>
+                <parameter name="outputPath" value="tmp.trust-sz"/>
+                <parameter name="target" value="$TenantOAMNetworkRole"/>
+                <parameter name="replacement" value="`$new-name`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.untrust-sz`"/>
+                <parameter name="outputPath" value="tmp.untrust-sz"/>
+                <parameter name="target" value="$TenantOAMNetworkRole"/>
+                <parameter name="replacement" value="`$new-name`"/>
+            </execute>
+            <set>
+                <parameter name='original-name' value='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+                <parameter name="original_string" value="`$original-name`" />
+                <parameter name="regex" value="\."/>
+                <parameter name="limit" value="2" />
+                <parameter name="ctx_memory_result_key" value="splits" />
+            </execute>
+            <switch test='`$splits_length`'>
+                <outcome value='1'>
+                    <set>
+                        <parameter name='new-name' value='`$splits[0]`' />
+                    </set>
+                </outcome>
+                <outcome value='2'>
+                    <set>
+                        <parameter name='new-name' value='`$splits[1]`' />
+                    </set>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Unexpected network role used for panorama naming' />
+                    </return>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='getLength' >
+                <parameter name="source" value="`$new-name`" />
+                <parameter name="outputPath" value="tmp.strlen"/>
+            </execute>
+            <switch test='`$tmp.strlen > 14`'>
+                <outcome value='true'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring' >
+                            <parameter name="string" value="`$new-name`" />
+                            <parameter name="result" value="new-name"/>
+                            <parameter name="begin-index" value="0" />
+                            <parameter name="end-index" value="14" />
+                        </execute>
+                    </block>
+                </outcome>
+                <outcome value='false'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='new-name' value='`$new-name`' />
+                        </set>
+                    </block>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.trust-sz`"/>
+                <parameter name="outputPath" value="tmp.trust-sz"/>
+                <parameter name="target" value="$LandingNetworkRole"/>
+                <parameter name="replacement" value="`$new-name`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.untrust-sz`"/>
+                <parameter name="outputPath" value="tmp.untrust-sz"/>
+                <parameter name="target" value="$LandingNetworkRole"/>
+                <parameter name="replacement" value="`$new-name`"/>
+            </execute>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-subnets-subnet-id.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-subnets-subnet-id.xml
new file mode 100755 (executable)
index 0000000..14ba7fe
--- /dev/null
@@ -0,0 +1,66 @@
+<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="generate-subnets-subnet-id" mode="sync">\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-subnets-subnet-id." value="" />\r
+                <parameter name="tmp.return.generate-subnets-subnet-id." value="" />\r
+            </set>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate-subnets-subnet-id.uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <!-- Used to work around execute node bug -->\r
+                        <parameter name="execute_failure" value="false" />\r
+                        <!-- return parameters -->\r
+                        <parameter name="error-message.generate-l3network-network-id" value="An error occured while generating a UUID for L3-NETWORK." />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for atomic="true" index="s" start="0" end="1" >\r
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="subnet"\r
+               key="l3-network.network-id = $tmp.local.network-id \r
+                       AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid"\r
+               local-only="false"\r
+               pfx="tmp.local-variables.generate-subnets-subnet-id.SUBNETS" >\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name="tmp.local-variables.generate-subnets-subnet-id.is-unique" value="0" />\r
+                            </set>\r
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                <parameter name="ctx-destination" value="tmp.return.generate-subnets-subnet-id.uuid" />\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <!-- return parameters -->\r
+                                        <parameter name="error-message.generate-subnets-subnet-id" value="An error occured while generating a UUID for SUBNETS." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='not-found'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-subnets-subnet-id" value="`'An error occured while checking if a generated subnets-subnet-id was unique. subnet-id = ' + $tmp.local-variables.generate-subnets-subnet-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value="Other">\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-subnets-subnet-id" value="`'An error occured while checking if a generated subnets-subnet-id was unique. subnet-id = ' + $tmp.local-variables.generate-subnets-subnet-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                </get-resource>\r
+            </for>\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-subnets-subnet-id." value="" />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index f74af96..267a2cc 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='generate-unique-name' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-output.error-message' value='' />\r
-<parameter name='generate-unique-name-output.generated-name' value='' />\r
-</set><switch test='`$generate-unique-name-input.supplied-name`'>\r
-<outcome value='Other'>\r
-<block atomic="true"><switch test='`$generate-unique-name-input.name-table-type`'>\r
-<outcome value=''><return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
-</return></outcome></switch><set>\r
-<parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
+<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='generate-unique-name' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='generate-unique-name-output.error-message' value='' />\r
+                <parameter name='generate-unique-name-output.generated-name' value='' />\r
+            </set>\r
+            <switch test='`$generate-unique-name-input.supplied-name`'>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <switch test='`$generate-unique-name-input.name-table-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
 + ' AND name = $generate-unique-name-input.supplied-name'`" />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                        </set>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value="`'Error reading the ' + $generate-unique-name-input.name-table-index + ' table'`" />\r
-\r
-</return></outcome><outcome value='not-found'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
-+ ' $generate-unique-name-input.name-table-type , $generate-unique-name-input.supplied-name )'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value="`'Error reading the ' + $generate-unique-name-input.name-table-index + ' table'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
++ ' $generate-unique-name-input.name-table-type , $generate-unique-name-input.supplied-name , null , null, null )'`" />\r
+                                    </set>\r
+                                    <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-<parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
-</return></outcome></save></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value="`'The name ' + $generate-unique-name-input.supplied-name + ' has already been used'`" />\r
-\r
-</return></outcome></get-resource></block></outcome><outcome value=''><block atomic="true"><switch test='`$generate-unique-name-input.index-table-name`'>\r
-<outcome value=''><return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-name not supplied' />\r
-</return></outcome></switch><switch test='`$generate-unique-name-input.index-table-prefix-column`'>\r
-<outcome value=''><return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-prefix-column not supplied' />\r
-</return></outcome></switch><switch test='`$generate-unique-name-input.name-table-type`'>\r
-<outcome value=''><return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
-</return></outcome></switch><switch test='`$generate-unique-name-input.prefix`'>\r
-<outcome value=''><return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
-</return></outcome></switch><switch test='`$generate-unique-name-input.index-length`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.gun.list-end' value='10000' />\r
-</set></outcome><outcome value='1'>\r
-<set>\r
-<parameter name='tmp.gun.list-end' value='10' />\r
-</set></outcome><outcome value='2'>\r
-<set>\r
-<parameter name='tmp.gun.list-end' value='100' />\r
-</set></outcome><outcome value='3'>\r
-<set>\r
-<parameter name='tmp.gun.list-end' value='1000' />\r
-</set></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
-</return></outcome></switch><set>\r
-<parameter name='tmp.gun.sql' value="`'SELECT * from ' + $generate-unique-name-input.index-table-name\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </save>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value="`'The name ' + $generate-unique-name-input.supplied-name + ' has already been used'`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <switch test='`$generate-unique-name-input.index-table-name`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-name not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$generate-unique-name-input.index-table-prefix-column`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.index-table-prefix-column not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$generate-unique-name-input.name-table-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$generate-unique-name-input.prefix`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$generate-unique-name-input.index-length`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='100000' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='0'>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='0' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='1'>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='10' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='2'>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='100' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='3'>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='1000' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='4'>\r
+                                <set>\r
+                                    <parameter name='tmp.gun.list-end' value='10000' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.prefix not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='tmp.gun.noindex-flag' value='false' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.gun.sql' value="`'SELECT * from ' + $generate-unique-name-input.index-table-name\r
 + ' WHERE ' + $generate-unique-name-input.index-table-prefix-column + ' = '\r
 + '$generate-unique-name-input.prefix'`" />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                        </set>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='tmp.gun.prefixdb'>\r
-\r
-<outcome value='success'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.gun.index-exists' value='true' />\r
-</set><set>\r
-<parameter name='tmp.gun.index-number' value='`$tmp.gun.prefixdb.index-number + 1`' />\r
-</set></block></outcome><outcome value='not-found'>\r
-<block>\r
-<set>\r
-<parameter name='tmp.gun.index-exists' value='false' />\r
-</set><set>\r
-<parameter name='tmp.gun.index-number' value='1' />\r
-</set></block></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="`'Error reading the ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='tmp.gun.found-flag' value='false' />\r
-</set><block>\r
-<for index='tmp.gun.idx' start='`$tmp.gun.index-number`' end='`$tmp.gun.list-end`' >\r
-<block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome><outcome value='1'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome><outcome value='2'>\r
-<switch test='`$tmp.gun.idx &lt; 10`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome></switch></outcome><outcome value='3'>\r
-<switch test='`$tmp.gun.idx &lt; 10`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<switch test='`$tmp.gun.idx &lt; 100`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome></switch></outcome></switch></outcome></switch><set>\r
-<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
-</set><set>\r
-<parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.index-exists' value='true' />\r
+                                    </set>\r
+                                    <switch test='`$generate-unique-name-input.index-length`'>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.gun.index-number' value='`$tmp.gun.prefixdb.index-number + 1`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='0'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.index-number' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.noindex-flag' value='true' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.index-exists' value='false' />\r
+                                    </set>\r
+                                    <switch test='`$generate-unique-name-input.index-length`'>\r
+                                        <outcome value='0'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.index-number' value='0' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.noindex-flag' value='true' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.gun.index-number' value='1' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name="generate-unique-name-output.error-message" value="`'Error reading the ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <set>\r
+                            <parameter name='tmp.gun.found-flag' value='false' />\r
+                        </set>\r
+                        <block>\r
+                            <for index='tmp.gun.idx' start='`$tmp.gun.index-number`' end='`$tmp.gun.list-end`' >\r
+                                <block atomic="true">\r
+                                    <switch test='`$generate-unique-name-input.index-length`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='1'>\r
+                                            <set>\r
+                                                <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='2'>\r
+                                            <switch test='`$tmp.gun.idx &lt; 10`'>\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='3'>\r
+                                            <switch test='`$tmp.gun.idx &lt; 10`'>\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <switch test='`$tmp.gun.idx &lt; 100`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='false'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                        <outcome value='4'>\r
+                                            <switch test='`$tmp.gun.idx &lt; 10`'>\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.index-string' value="`'' + '000' + $tmp.gun.idx`" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <switch test='`$tmp.gun.idx &lt; 100`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='false'>\r
+                                                            <switch test='`$tmp.gun.idx &lt; 1000`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='false'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
 + ' AND name = $tmp.gun.generated-name'`" />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                    </set>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
-\r
-<outcome value='failure'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-output.error-message' value="`'Error reading the GENERIC_RESOURCE_NAME table'`" />\r
-</set><return status='failure'>\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.found-flag' value='true' />\r
-</set><return status='failure'>\r
-</return></block></outcome></get-resource></block></for><return status='success'>\r
-\r
-</return></block><switch test='`$generate-unique-name-output.error-message`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-</return></outcome></switch><switch test='`$tmp.gun.found-flag`'>\r
-<outcome value='true'><block atomic="true"><set>\r
-<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
-</set><switch test='`$tmp.gun.index-exists`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
+                                        <outcome value='failure'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='generate-unique-name-output.error-message' value="`'Error reading the GENERIC_RESOURCE_NAME table'`" />\r
+                                                </set>\r
+                                                <return status='failure'></return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.found-flag' value='true' />\r
+                                                </set>\r
+                                                <return status='failure'></return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                </block>\r
+                            </for>\r
+                            <switch test='`$tmp.gun.noindex-flag`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.gun.index-string' value='0' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
++ ' AND name = $tmp.gun.generated-name'`" />\r
+                                        </set>\r
+                                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
+                                            <outcome value='failure'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='generate-unique-name-output.error-message' value="`'Error reading the GENERIC_RESOURCE_NAME table'`" />\r
+                                                    </set>\r
+                                                    <return status='failure'></return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.found-flag' value='true' />\r
+                                                    </set>\r
+                                                    <return status='failure'></return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='tmp.gun.found-flag' value='true' />\r
+                                                    </set>\r
+                                                    <return status='failure'></return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </get-resource>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <return status='success'></return>\r
+                        </block>\r
+                        <switch test='`$generate-unique-name-output.error-message`'>\r
+                            <outcome value=''>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'></return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$tmp.gun.found-flag`'>\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
+                                    </set>\r
+                                    <switch test='`$tmp.gun.index-exists`'>\r
+                                        <outcome value='true'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
 + ' set index_number = ' + $tmp.gun.index-string + ' where '\r
 + $generate-unique-name-input.index-table-prefix-column\r
 + ' = $generate-unique-name-input.prefix'`" />\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                </set>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
-</return></outcome></save></block></outcome><outcome value='false'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </save>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='false'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
 + '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\r
 + ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                </set>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
-</return></outcome></save></block></outcome></switch><set>\r
-<parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
-+ ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </save>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='tmp.gun.sql' \r
+       value="`'insert into GENERIC_RESOURCE_NAME values ( $generate-unique-name-input.name-table-type , $tmp.gun.generated-name , $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ' , $tmp.gun.transient )'`" />\r
+                                    </set>\r
+                                    <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
-</return></outcome></save><return status='success'>\r
-</return></block></outcome><outcome value='false'>\r
-<block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
-<outcome value=''><return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
-</return></outcome></switch><block>\r
-<for index='tmp.gun.idx' start='1' end='`$tmp.gun.index-number`' >\r
-<block atomic="true"><switch test='`$generate-unique-name-input.index-length`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome><outcome value='1'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome><outcome value='2'>\r
-<switch test='`$tmp.gun.idx &lt; 10`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome></switch></outcome><outcome value='3'>\r
-<switch test='`$tmp.gun.idx &lt; 10`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<switch test='`$tmp.gun.idx &lt; 100`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
-</set></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
-</set></outcome></switch></outcome></switch></outcome></switch><set>\r
-<parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
-</set><set>\r
-<parameter name='tmp.gun.namedb.name' value='' />\r
-</set><set>\r
-<parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <return status='success'></return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <switch test='`$tmp.gun.noindex-flag`'>\r
+                                        <outcome value='true'>\r
+                                            <return status='failure'>\r
+                                                <parameter name="generate-unique-name-output.error-message" value="naming exhausted for input with index-length = 0" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$generate-unique-name-input.index-length`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <for index='tmp.gun.idx' start='1' end='`$tmp.gun.index-number`' >\r
+                                            <block atomic="true">\r
+                                                <switch test='`$generate-unique-name-input.index-length`'>\r
+                                                    <outcome value=''>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='1'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='2'>\r
+                                                        <switch test='`$tmp.gun.idx &lt; 10`'>\r
+                                                            <outcome value='true'>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                    <outcome value='3'>\r
+                                                        <switch test='`$tmp.gun.idx &lt; 10`'>\r
+                                                            <outcome value='true'>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.gun.index-string' value="`'' + '00' + $tmp.gun.idx`" />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <switch test='`$tmp.gun.idx &lt; 100`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.gun.index-string' value="`'' + '0' + $tmp.gun.idx`" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='false'>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.gun.index-string' value='`$tmp.gun.idx`' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.generated-name' value='`$generate-unique-name-input.prefix + $tmp.gun.index-string`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.namedb.name' value='' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.sql' value="`'SELECT * from GENERIC_RESOURCE_NAME WHERE type = $generate-unique-name-input.name-table-type'\r
 + ' AND name = $tmp.gun.generated-name'`" />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                </set>\r
+                                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='tmp.gun.namedb'>\r
-\r
-<outcome value='failure'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-output.error-message' value="Error reading the GENERIC_RESOURCE_NAME table" />\r
-</set><return status='failure'>\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.found-flag' value='true' />\r
-</set><return status='failure'>\r
-</return></block></outcome></get-resource></block></for><return status='success'>\r
-\r
-</return></block><switch test='`$generate-unique-name-output.error-message`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-</return></outcome></switch><switch test='`$tmp.gun.found-flag`'>\r
-<outcome value='true'><block atomic="true"><set>\r
-<parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
-</set><switch test='`$tmp.gun.index-exists`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='generate-unique-name-output.error-message' value="Error reading the GENERIC_RESOURCE_NAME table" />\r
+                                                            </set>\r
+                                                            <return status='failure'></return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.found-flag' value='true' />\r
+                                                            </set>\r
+                                                            <return status='failure'></return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                            </block>\r
+                                        </for>\r
+                                        <return status='success'></return>\r
+                                    </block>\r
+                                    <switch test='`$generate-unique-name-output.error-message`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <return status='failure'></return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$tmp.gun.found-flag`'>\r
+                                        <outcome value='true'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='generate-unique-name-output.generated-name' value='`$tmp.gun.generated-name`' />\r
+                                                </set>\r
+                                                <switch test='`$tmp.gun.index-exists`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.sql' value="`'update ' + $generate-unique-name-input.index-table-name\r
 + ' set index_number = ' + $tmp.gun.index-string + ' where '\r
 + $generate-unique-name-input.index-table-prefix-column\r
 + ' = $generate-unique-name-input.prefix'`" />\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                            </set>\r
+                                                            <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
-</return></outcome></save></block></outcome><outcome value='false'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
+                                                                <outcome value='failure'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name="generate-unique-name-output.error-message" value="`'Failed to update ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='false'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.gun.sql' value="`'insert into ' + $generate-unique-name-input.index-table-name\r
 + '(' + $generate-unique-name-input.index-table-prefix-column + ', index_number) values ('\r
 + ' $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ')'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                            </set>\r
+                                                            <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
-</return></outcome></save></block></outcome></switch><set>\r
-<parameter name='tmp.gun.sql' value="`'insert into GENERIC_RESOURCE_NAME values ( '\r
-+ ' $generate-unique-name-input.name-table-type , $tmp.gun.generated-name )'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                                <outcome value='failure'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name="generate-unique-name-output.error-message" value="`'Failed to insert record into ' + $generate-unique-name-input.index-table-name + ' table'`" />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name='tmp.gun.sql' \r
+       value="`'insert into GENERIC_RESOURCE_NAME values ( $generate-unique-name-input.name-table-type , $tmp.gun.generated-name , $generate-unique-name-input.prefix , ' + $tmp.gun.index-string + ' , $tmp.gun.transient )'`" />\r
+                                                </set>\r
+                                                <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key="`$tmp.gun.sql`" pfx='pfx'>\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
-</return></outcome></save><return status='success'>\r
-\r
-</return></block></outcome></switch><return status='failure'>\r
-    <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
-</return></block></outcome></switch></block></outcome></switch></block></method></service-logic>
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name="generate-unique-name-output.error-message" value="Failed insert into GENERIC_RESOURCE_NAME table" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </save>\r
+                                                <return status='success'></return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <return status='failure'>\r
+                                        <parameter name="generate-unique-name-output.error-message" value="We have exhausted the naming index count" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-vpn-binding-id.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generate-vpn-binding-id.xml
new file mode 100755 (executable)
index 0000000..1a981fa
--- /dev/null
@@ -0,0 +1,65 @@
+<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="generate-vpn-binding-id" mode="sync">\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-vpn-binding-id." value="" />\r
+                <parameter name="tmp.return.generate-vpn-binding-id." value="" />\r
+            </set>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate-vpn-binding-id.uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <!-- Used to work around execute node bug -->\r
+                        <parameter name="execute_failure" value="false" />\r
+                        <!-- return parameters -->\r
+                        <parameter name="error-message.generate-vpn-binding-id" value="An error occured while generating a UUID for VPN-BINDING." />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for atomic="true" index="n" start="0" end="1" >\r
+                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+              resource="vpn-binding"\r
+              key="vpn-binding.vpn-id = $tmp.return.generate-vpn-binding-id.uuid"\r
+              local-only="false"\r
+              pfx="tmp.local-variables.generate-vpn-binding-id.VPNBINDING" >\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name="tmp.local-variables.generate-vpn-binding-id.is-unique" value="0" />\r
+                            </set>\r
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                <parameter name="ctx-destination" value="tmp.return.generate-vpn-binding-id.uuid" />\r
+                                <outcome value='failure'>\r
+                                    <return status="failure">\r
+                                        <!-- return parameters -->\r
+                                        <parameter name="error-message.generate-vpn-binding-id" value="An error occured while generating a UUID for VPN-BINDING." />\r
+                                    </return>\r
+                                </outcome>\r
+                            </execute>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='not-found'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-vpn-binding-id" value="`'An error occured while checking if a generated vpn-binding-id was unique. vpn-id = ' + $tmp.local-variables.generate-vpn-binding-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value="Other">\r
+                        <return status="failure">\r
+                            <!-- return parameters -->\r
+                            <parameter name="error-message.generate-vpn-binding-id" value="`'An error occured while checking if a generated vpn-binding-id was unique. vpn-id = ' + $tmp.local-variables.generate-vpn-binding-id.uuid`" />\r
+                        </return>\r
+                    </outcome>\r
+                </get-resource>\r
+            </for>\r
+            <set>\r
+                <parameter name="tmp.local-variables.generate-vpn-binding-id." value="" />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-activate.xml
new file mode 100755 (executable)
index 0000000..3ee1bbc
--- /dev/null
@@ -0,0 +1,108 @@
+<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='generic-configuration-notification-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.gc-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.gc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.configuration-information.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\r
+  value='Active' />\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-action'\r
+  value='CreateGenericConfigurationInstance' />\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-rpc-action'\r
+  value='activate' />\r
+            </set>\r
+            <set>\r
+                <parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                <parameter name="input.ack-final-indicator"\r
+  value="`$generic-configuration-notification-input.ack-final-indicator`" />\r
+                <parameter name="input.response-code"\r
+  value="`$generic-configuration-notification-input.response-code`" />\r
+                <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+            </configure>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-assign.xml
new file mode 100755 (executable)
index 0000000..5db9776
--- /dev/null
@@ -0,0 +1,485 @@
+<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='generic-configuration-notification-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.gc-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.gc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.configuration-information.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$generic-configuration-notification-input.response-code`'>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="`$generic-configuration-notification-input.ack-final-indicator`" />\r
+                            <parameter name="input.response-code"\r
+  value="`$generic-configuration-notification-input.response-code`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`$generic-configuration-notification-input.response-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='200'>\r
+                    <block></block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.provided-configurations.provided-configuration_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='service-data.provided-configurations.provided-configuration_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='found-provided-configuration' value='false' />\r
+            </set>\r
+            <set>\r
+                <parameter name='pc-index' value='0' />\r
+            </set>\r
+            <for silentFailure='true' index='pc-index' start='0' end='`$service-data.provided-configurations.provided-configuration_length`' >\r
+                <switch test='`$service-data.provided-configurations.provided-configuration[$pc-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='found-provided-configuration' value='true' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$found-provided-configuration`'>\r
+                <outcome value='false'>\r
+                    <set>\r
+                        <parameter name='service-data.provided-configurations.provided-configuration_length'\r
+  value='`$service-data.provided-configurations.provided-configuration_length + 1`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-id'\r
+  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-type'\r
+  value='`$generic-configuration-notification-input.configuration-information.configuration-type`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-sub-type'\r
+  value='`$generic-configuration-notification-input.configuration-information.configuration-sub-type`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$pc-index].configuration-topology-link'\r
+  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+   + $generic-configuration-notification-input.service-information.service-instance-id\r
+   + '/service-data/provided-configurations/provided-configuration/'\r
+   + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.vnf-sub-interface-group`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{vnf-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnf-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{vnfc-instance-group-function}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnfc-instance-group-function`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{network-instance-group-function}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-instance-group-function`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.vsig-url"/>\r
+                <parameter name="target" value="{parent-port-role}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.parent-port-role`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-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="mdsal-vsig" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <for silentFailure='true' index='vnfc-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc_length`' >\r
+                <for silentFailure='true' index='vnic-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic_length`' >\r
+                    <for silentFailure='true' index='si-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface_length`' >\r
+                        <switch test='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].vlan-tags.lower-tag-id\r
+  == $generic-configuration-notification-input.vnr-parameters.lower-tag-id`'>\r
+                            <outcome value='true'>\r
+                                <set>\r
+                                    <parameter name='mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].sub-interface-status'\r
+  value='assigned' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='found-customer-bonding-request' value='false' />\r
+            </set>\r
+            <for index='cbr-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                <switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='found-customer-bonding-request' value='true' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$found-customer-bonding-request`'>\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length].configuration-id'\r
+  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length + 1`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vnfsubinterfacegroup.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-vsig" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Failure writing vnf-sub-interface-group" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="Failure writing vnf-sub-interface-group" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network-instance-group-network`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{network-instance-group-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-instance-group-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.nign-url"/>\r
+                <parameter name="target" value="{network-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-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="mdsal-nign" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='found-customer-bonding-request' value='false' />\r
+            </set>\r
+            <set>\r
+                <parameter name='cbr-index' value='0' />\r
+            </set>\r
+            <for index='cbr-index' start='0' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                <switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='found-customer-bonding-request' value='true' />\r
+                            </set>\r
+                            <break/>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$found-customer-bonding-request`'>\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length].configuration-id'\r
+  value='`$generic-configuration-notification-input.configuration-information.configuration-id`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length + 1`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='mdsal-nign.network[0].network-status' value='assigned' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-network.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-nign" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Failure writing network-instance-group network" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="Failure writing network-instance-group network" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\r
+  value='Created' />\r
+            </set>\r
+            <set>\r
+                <parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Error updating md-sal for gc-configuration" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Error updating md-sal for gc-configuration" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                <parameter name="input.ack-final-indicator"\r
+  value="`$generic-configuration-notification-input.ack-final-indicator`" />\r
+                <parameter name="input.response-code"\r
+  value="`$generic-configuration-notification-input.response-code`" />\r
+                <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+            </configure>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-deactivate.xml
new file mode 100755 (executable)
index 0000000..88fcf35
--- /dev/null
@@ -0,0 +1,108 @@
+<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='generic-configuration-notification-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.gc-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.gc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.configuration-information.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.order-status'\r
+  value='PendingDelete' />\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-action'\r
+  value='DeleteGenericConfigurationInstance' />\r
+                <parameter name='mdsal-gc.gc-configuration[0].configuration-data.configuration-oper-status.last-rpc-action'\r
+  value='deactivate' />\r
+            </set>\r
+            <set>\r
+                <parameter name='gc.' value='mdsal-gc.gc-configuration[0].' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                <parameter name="input.ack-final-indicator"\r
+  value="`$generic-configuration-notification-input.ack-final-indicator`" />\r
+                <parameter name="input.response-code"\r
+  value="`$generic-configuration-notification-input.response-code`" />\r
+                <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+            </configure>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification-unassign.xml
new file mode 100755 (executable)
index 0000000..a3c5fff
--- /dev/null
@@ -0,0 +1,353 @@
+<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='generic-configuration-notification-unassign' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <for silentFailure='true' index='pc-index' start='0' end='`$service-data.provided-configurations.provided-configuration_length`' >\r
+                <switch test='`$service-data.provided-configurations.provided-configuration[$pc-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <for index='pc2-index' start='`$pc-index + 1`' end='`$service-data.provided-configurations.provided-configuration_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='prev-index' value='`$pc2-index - 1`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.provided-configurations.provided-configuration[$prev-index].'\r
+  value='`$service-data.provided-configurations.provided-configuration[$pc2-index].`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='service-data.provided-configurations.provided-configuration_length'\r
+  value='`$service-data.provided-configurations.provided-configuration_length - 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.gc-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.gc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.configuration-information.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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="mdsal-gc" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find configuration ' + $generic-configuration-notification-input.configuration-information.configuration-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$generic-configuration-notification-input.response-code`'>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="`$generic-configuration-notification-input.ack-final-indicator`" />\r
+                            <parameter name="input.response-code"\r
+  value="`$generic-configuration-notification-input.response-code`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`$generic-configuration-notification-input.response-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='200'>\r
+                    <block></block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.vnf-sub-interface-group`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{vnf-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnf-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{vnfc-instance-group-function}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.vnfc-instance-group-function`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{network-instance-group-function}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-instance-group-function`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.vsig-url"/>\r
+                <parameter name="target" value="{parent-port-role}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.parent-port-role`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-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="mdsal-vsig" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find vnf-sub-interface-group in service ' + $generic-configuration-notification-input.vnr-parameters.vnf-service-instance-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <for silentFailure='true' index='vnfc-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc_length`' >\r
+                <for silentFailure='true' index='vnic-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic_length`' >\r
+                    <for silentFailure='true' index='si-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface_length`' >\r
+                        <switch test='`$mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].vlan-tags.lower-tag-id\r
+  == $generic-configuration-notification-input.vnr-parameters.lower-tag-id`'>\r
+                            <outcome value='true'>\r
+                                <set>\r
+                                    <parameter name='mdsal-vsig.vnf-sub-interface-group[0].vnfcs.vnfc[$vnfc-index].vnics.vnic[$vnic-index].sub-interfaces.sub-interface[$si-index].sub-interface-status'\r
+  value='unassigned' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <for index='cbr-index' start='0' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                <switch test='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <for index='cbr2-index' start='`$cbr-index + 1`' end='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='prev-index' value='`$cbr2-index - 1`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$prev-index].'\r
+  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$cbr2-index].`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='`$mdsal-vsig.vnf-sub-interface-group[0].customer-bonding-requests.customer-bonding-request_length - 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.vnfsubinterfacegroup.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vsig-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-vsig" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Failure writing vnf-sub-interface-group" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="Failure writing vnf-sub-interface-group" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.network-instance-group-network`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{service-instance-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.part"/>\r
+                <parameter name="target" value="{network-instance-group-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-instance-group-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$tmp.part`"/>\r
+                <parameter name="outputPath" value="tmp.nign-url"/>\r
+                <parameter name="target" value="{network-id}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-notification-input.vnr-parameters.network-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-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="mdsal-nign" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'Cannot find network-instance-group-network in service ' + $generic-configuration-notification-input.vnr-parameters.network-collection-service-instance-id`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='mdsal-nign.network[0].network-status' value='unassigned' />\r
+            </set>\r
+            <for index='cbr-index' start='0' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                <switch test='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].configuration-id\r
+  == $generic-configuration-notification-input.configuration-information.configuration-id`'>\r
+                    <outcome value='true'>\r
+                        <block>\r
+                            <for index='cbr2-index' start='`$cbr-index + 1`' end='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='prev-index' value='`$cbr2-index - 1`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$prev-index].'\r
+  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request[$cbr-index].[$cbr2-index].`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length'\r
+  value='`$mdsal-nign.network[0].customer-bonding-requests.customer-bonding-request_length - 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.network-instance-group-network.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nign-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-nign" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url"\r
+  value="`$mdsal-gc.gc-configuration[0].configuration-data.configuration-operation-information.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator"\r
+  value="Y" />\r
+                            <parameter name="input.response-code"\r
+  value="500" />\r
+                            <parameter name="input.response-message"\r
+  value="Failure writing network-instance-group network" />\r
+                            <parameter name="input.svc-request-id"\r
+  value="`$generic-configuration-notification-input.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type"\r
+  value="`$generic-configuration-notification-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id"\r
+  value="`$generic-configuration-notification-input.service-information.service-instance-id`" />\r
+                        </configure>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="Failure writing network-instance-group network" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-gcnotify.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-notification.xml
new file mode 100755 (executable)
index 0000000..34bfcec
--- /dev/null
@@ -0,0 +1,39 @@
+<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='generic-configuration-notification' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$generic-configuration-notification-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-assign' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-activate' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-deactivate' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='generic-configuration-notification-unassign' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_generic-configuration-topology-operation.xml
new file mode 100755 (executable)
index 0000000..56f0d74
--- /dev/null
@@ -0,0 +1,117 @@
+<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='generic-configuration-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-generic-configuration-input' mode='sync' >\r
+                <outcome value='failure'>\r
+                    <return status='failure'></return>\r
+                </outcome>\r
+            </call>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='gc.configuration-id'\r
+  value='`$generic-configuration-topology-operation-input.configuration-information.configuration-id`' />\r
+                            <parameter name='gc.configuration-data.configuration-operation-information.sdnc-request-header.'\r
+  value='`$generic-configuration-topology-operation-input.sdnc-request-header.`' />\r
+                            <parameter name='gc.configuration-data.configuration-operation-information.request-information.'\r
+  value='`$generic-configuration-topology-operation-input.request-information.`' />\r
+                            <parameter name='gc.configuration-data.configuration-operation-information.service-information.'\r
+  value='`$generic-configuration-topology-operation-input.service-information.`' />\r
+                            <parameter name='gc.configuration-data.configuration-operation-information.configuration-information.'\r
+  value='`$generic-configuration-topology-operation-input.configuration-information.`' />\r
+                            <parameter name='gc.configuration-data.configuration-operation-information.gc-request-input.'\r
+  value='`$generic-configuration-topology-operation-input.gc-request-input.`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='gc.configuration-data.configuration-oper-status.order-status'\r
+  value='PendingCreate' />\r
+                            <parameter name='gc.configuration-data.configuration-oper-status.last-rpc-action'\r
+  value='assign' />\r
+                            <parameter name='gc.configuration-data.configuration-oper-status.last-action'\r
+  value='CreateGenericConfigurationInstance' />\r
+                        </set>\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                            <parameter name="source" value="`$prop.restapi.gc-configuration`"/>\r
+                            <parameter name="outputPath" value="tmp.gc-url"/>\r
+                            <parameter name="target" value="{configuration-id}"/>\r
+                            <parameter name="replacement" value="`$gc.configuration-id`"/>\r
+                        </execute>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.genconfig.templatefile`" />\r
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.gc-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='PUT' />\r
+                            <parameter name="responsePrefix" value="mdsal-gc" />\r
+                            <outcome value='failure'>\r
+                                <block atomic="true">\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block atomic="true">\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value='Error updating md-sal for gc-configuration' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='notification-url'\r
+  value="`$prop.controller.url + '/restconf/operations/GENERIC-RESOURCE-API:generic-configuration-notification'`" />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.bondingservice.server + $prop.bondingservice.uri`"/>\r
+                <parameter name="outputPath" value="tmp.bs-url"/>\r
+                <parameter name="target" value="{action}"/>\r
+                <parameter name="replacement" value="`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.bondingservice.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$tmp.bs-url`' />\r
+                <parameter name='restapiUser' value='`$prop.bondingservice.user`' />\r
+                <parameter name='restapiPassword' value='`$prop.bondingservice.password`' />\r
+                <parameter name='format' value='json' />\r
+                <parameter name='httpMethod' value='POST' />\r
+                <parameter name="responsePrefix" value="bonding-service-response" />\r
+                <parameter name='customHttpHeaders'\r
+      value="`'Authorization=Basic ' + $prop.bondingservice.authorization`" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Error calling bonding service; ' + $error-message`" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $service-data.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-genconfig.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="`$bonding-service-response.ackFinalIndicator`" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-complex-resource-service-model.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-complex-resource-service-model.xml
new file mode 100755 (executable)
index 0000000..07a0486
--- /dev/null
@@ -0,0 +1,181 @@
+<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='get-complex-resource-service-model' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from COMPLEX_RESOURCE \r
+  WHERE customization_uuid = $get-complex-resource-service-model-input.customization-uuid'\r
+  pfx='db.complex-resource'>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from ATTRIBUTE_VALUE_PAIR \r
+  WHERE resource_uuid = $db.complex-resource.uuid\r
+  and resource_type = $db.complex-resource.type'\r
+  pfx='db.av-pair'>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No attribute found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No attribute found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <for silentFailure='true' index='idx' start='0' end='`$db.av-pair_length`' >\r
+                        <block atomic='true'>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'cr_function' `">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name='get-complex-resource-service-model-output.cr-function' value='`$db.sdn-circuit-req[$idx].attribute-value`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'cr_role'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.cr-role" value="`$db.sdn-circuit-req[$idx].attribute-value`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'cr_type'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.cr-type" value="`$db.sdn-circuit-req[$idx].attribute-value`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'network_collection_function'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.network-collection-function" value="`$db.sdn-circuit-req[$idx].attribute-value`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'network_collection_description'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.network-collection-description" value="`$db.sdn-circuit-req[$idx].attribute-value`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.sdn-circuit-req[$idx].attribute-name == 'subinterface_network_quantity'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.subinterface-network-quantity" value="`$db.sdn-circuit-req[$idx].attribute-value`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </for>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from NETWORK_MODEL \r
+  WHERE complex_resource_uuid = $db.complex-resource.uuid'\r
+  pfx='db.network-model'>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="No network model found" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="No network model found" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from RESOURCE_POLICY_TO_TARGET_NODE_MAPPING\r
+  WHERE target_node_uuid = $db.network-model.uuid\r
+  AND target_node_customization_uuid = db.network-model.customization-uuid'\r
+  pfx='db.respoltargetnodemap' >\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="No resource_policy_to_target_node_mapping found"  />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="No resource_policy_to_target_node_mapping found"  />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="SELECT * from RESOURCE_POLICY  \r
+  WHERE policy_uuid = $db.respoltargetnodemap.policy_uuid\r
+  and policy_type = 'ecomp.policies.External' "\r
+  pfx='db.resource-policy'>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No complex resource found for customization UUID ' + $get-complex-resource-service-model-input.customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <for silentFailure='true' index='idx' start='0' end='`$db.resource-policy_length`' >\r
+                        <block atomic='true'>\r
+                            <switch test="`$db.resource-policy[$idx].property-type == 'Name' and $db.resource-policy[$idx].property-name == 'Network Collection Name'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.network-naming-policy" value="`$db.resource-policy[$idx].policy-name`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.resource-policy[$idx].property-type == 'subnetwork assignments' and $db.resource-policy[$idx].property-name == 'subnet'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.subnet-assignment-policy" value="`$db.resource-policy[$idx].policy-name`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test="`$db.resource-policy[$idx].property-type == 'network assignments' and $db.resource-policy[$idx].property-name == 'route target'`">\r
+                                <outcome value='true'>\r
+                                    <set>\r
+                                        <parameter name="get-complex-resource-service-model-output.vpn-binding-policy" value="`$db.resource-policy[$idx].policy-name`" />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </for>\r
+                </outcome>\r
+            </get-resource>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-data-from-policy.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_get-data-from-policy.xml
new file mode 100755 (executable)
index 0000000..2c825d6
--- /dev/null
@@ -0,0 +1,204 @@
+<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='get-data-from-policy' mode='sync'>\r
+        <block atomic='true'>\r
+            <block atomic='true'>\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                    <parameter name='contextPrefix' value='prop' />\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: read properties file."/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Could not read properties file."/>\r
+                                <parameter name="field3" value='`$prop.restapi.pm.getpolicy.templatefile`'/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='501' />\r
+                                <parameter name='error-message' value='get-data-from-policy: could not read generic-resource-api properties' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <switch test='`$get-data-from-policy-input.policy-instance-name`'>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: input.policy-instance-name is not set"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='507' />\r
+                                <parameter name='error-message' value='get-data-from-policy: input.policy-instance-name is not set' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.policy-name' value="`$get-data-from-policy-input.policy-instance-name`" />\r
+                </set>\r
+                <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="LAINA: get-data-from-policy: restapi-call-node Call Policy Manager getPolicy"/>\r
+                </record>\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />\r
+                    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />\r
+                    <parameter name='format' value='json' />\r
+                    <parameter name='httpMethod' value='POST' />\r
+                    <parameter name='customHttpHeaders'\r
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
+                    <parameter name="responsePrefix" value="tmp.pm-response" />\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Error calling Policy Manager getPolicy"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='502' />\r
+                                <parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: getPolicy SUCCESS"/>\r
+                                <parameter name='field3' value='`$tmp.pm-response.type`' />\r
+                                <parameter name='field4' value='`$tmp.pm-response.matchingConditions`' />\r
+                                <parameter name='field5' value='`$tmp.pm-response.config`' />\r
+                                <parameter name='field6' value='`$tmp.pm-response.response-code`' />\r
+                                <parameter name='field7' value='`$tmp.pm-response.response-message`' />\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='policy-config' value="`$tmp.pm-response.config`" />\r
+                            </set>\r
+                            <switch test='`$tmp.pm-response.response-code`'>\r
+                                <outcome value='500'>\r
+                                    <block>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="LAINA: get-data-from-policy: Error calling Policy Manager getPolicy"/>\r
+                                        </record>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='502' />\r
+                                            <parameter name='error-message' value='get-data-from-policy: getPolicy call to Policy Manger failed' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="LAINA: get-data-from-policy: call jsonStringToCtx"/>\r
+                    <parameter name='field3' value='`$policy-config`' />\r
+                </record>\r
+                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                    <parameter name="source" value="policy-config" />\r
+                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                    <parameter name="isEscaped" value="true" />\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: Error calling jsonStringToCtx"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='504' />\r
+                                <parameter name='error-message' value='get-data-from-policy: failed to parse Policy Manger getPolicy response' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: jsonStringToCtx SUCCESS: policyName|policy-data|"/>\r
+                                <parameter name='field3' value='`$jsonContextPrefix.policyName`' />\r
+                                <parameter name='field4' value='`$jsonContextPrefix.content.policy-data`' />\r
+                            </record>\r
+                            <switch test='`$jsonContextPrefix.content.policy-data_length > 0`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <for index='policyDataIndex' start='0' end='`$jsonContextPrefix.content.policy-data_length`' >\r
+                                            <set>\r
+                                                <parameter name="`'get-data-from-policy-output[' + $policyDataIndex + ']'`." value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].`' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: get-data-from-policy: policyDataIndex|nf-role|rule-1|rule-2:"/>\r
+                                                <parameter name='field3' value='`$policyDataIndex`' />\r
+                                                <parameter name='field4' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].nf-role`' />\r
+                                                <parameter name='field5' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-1`' />\r
+                                                <parameter name='field6' value='`$jsonContextPrefix.content.policy-data[$policyDataIndex].rule-2`' />\r
+                                            </record>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$jsonContextPrefix.content.policy-data.extended-params_length > 0`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <for index='policyDataExtendedParamsIndex' start='0' end='`$jsonContextPrefix.content.policy-data.extended-params_length`' >\r
+                                            <set>\r
+                                                <parameter name='output-param-name' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-name`'  />\r
+                                                <parameter name='output-param-value' value='`$jsonContextPrefix.content.policy-data.extended-params[$policyDataExtendedParamsIndex].param-value`'  />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name="`'get-data-from-policy-output.' + $output-param-name`" value="`$output-param-value`" />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: get-data-from-policy: policyDataExtendedParamsIndex|output-param-name|output-param-value:"/>\r
+                                                <parameter name='field3' value='`$policyDataExtendedParamsIndex`' />\r
+                                                <parameter name='field4' value='`$output-param-name`' />\r
+                                                <parameter name='field5' value='`$output-param-value`' />\r
+                                            </record>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='get-data-from-policy-output.' value='`$jsonContextPrefix.content.policy-data.`'  />\r
+                            </set>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: get-data-from-policy: get-data-from-policy-output.:"/>\r
+                                <parameter name='field3' value='`$get-data-from-policy-output.`' />\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <return status='success'></return>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-composite-match-pair.xml
new file mode 100755 (executable)
index 0000000..0fb35de
--- /dev/null
@@ -0,0 +1,1912 @@
+<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='getpathsegment-composite-match-pair' mode='sync'>\r
+        <block>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/gpsc.log' />\r
+            </execute>\r
+            <for index='left-node-index' start='0' end='`$serv-cust_length - 1`' >\r
+                <block>\r
+                    <set>\r
+                        <parameter name='right-node-index' value='`$left-node-index + 1`' />\r
+                    </set>\r
+                    <for silentFailure='true' index='left-serv-index' start='0' end='`$serv-cust[$left-node-index].serv-insts_length`' >\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length' value='0' />\r
+                            </set>\r
+                            <for silentFailure='true' index='right-serv-index' start='0' end='`$serv-cust[$right-node-index].serv-insts_length`' >\r
+                                <block>\r
+                                    <switch test='`$match-type`'>\r
+                                        <outcome value='network-name'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='found-match' value='false' />\r
+                                                </set>\r
+                                                <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`'>\r
+                                                    <outcome value=''>\r
+                                                        <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`'>\r
+                                                            <outcome value=''>\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='vnf-index' value='0' />\r
+                                                                        <parameter name='left-vnf-index' value='0' />\r
+                                                                        <parameter name='right-vnf-index' value='0' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                        <block>\r
+                                                                            <switch test="`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == 'oam'`">\r
+                                                                                <outcome value='false'>\r
+                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                    </set>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$found-match`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <break/>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='0'>\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='vnf-index' value='0' />\r
+                                                                        <parameter name='left-vnf-index' value='0' />\r
+                                                                        <parameter name='right-vnf-index' value='0' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                        <block>\r
+                                                                            <switch test="`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == 'oam'`">\r
+                                                                                <outcome value='false'>\r
+                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                    </set>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$found-match`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <break/>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <for index='right-fp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                    <for index='right-sp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path_length`' >\r
+                                                                        <block>\r
+                                                                            <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\r
+  == 1`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\r
+                                                                                            </set>\r
+                                                                                            <break/>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                <block>\r
+                                                                                    <switch test='`$right-vnf-instance-id\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block>\r
+                                                                                                <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <for index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                            <block>\r
+                                                                                                                <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                        <outcome value='true'>\r
+                                                                                                                            <block>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$right-vnf-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                    <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='found-match' value='true' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <break/>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </switch>\r
+                                                                                                                </for>\r
+                                                                                                                <switch test='`$found-match`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <break/>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </block>\r
+                                                                                                        </for>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test='`$found-match`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <break/>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`'>\r
+                                                            <outcome value=''>\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='vnf-index' value='0' />\r
+                                                                        <parameter name='left-vnf-index' value='0' />\r
+                                                                        <parameter name='right-vnf-index' value='0' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                        <block>\r
+                                                                            <switch test="`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == 'oam'`">\r
+                                                                                <outcome value='false'>\r
+                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                    </set>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$found-match`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <break/>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='0'>\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='vnf-index' value='0' />\r
+                                                                        <parameter name='left-vnf-index' value='0' />\r
+                                                                        <parameter name='right-vnf-index' value='0' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                        <block>\r
+                                                                            <switch test="`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == 'oam'`">\r
+                                                                                <outcome value='false'>\r
+                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                    </set>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </for>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$found-match`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <break/>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <for index='right-fp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                    <for index='right-sp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path_length`' >\r
+                                                                        <block>\r
+                                                                            <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\r
+  == 1`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\r
+                                                                                            </set>\r
+                                                                                            <break/>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                <block>\r
+                                                                                    <switch test='`$right-vnf-instance-id\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block>\r
+                                                                                                <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <for index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                            <block>\r
+                                                                                                                <for silentFailure='true' index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                        <outcome value='true'>\r
+                                                                                                                            <block>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$right-vnf-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                    <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='found-match' value='true' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <break/>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </switch>\r
+                                                                                                                </for>\r
+                                                                                                                <switch test='`$found-match`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <break/>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </block>\r
+                                                                                                        </for>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test='`$found-match`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <break/>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`'>\r
+                                                            <outcome value=''>\r
+                                                                <for index='left-fp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                    <for index='left-sp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path_length`' >\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='max-seq' value='-1' />\r
+                                                                            </set>\r
+                                                                            <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id\r
+  &gt; $max-seq`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='max-seq'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id`' />\r
+                                                                                            <parameter name='left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-instance-id`' />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\r
+                                                                                <block>\r
+                                                                                    <switch test='`$left-vnf-instance-id\r
+  == $serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block>\r
+                                                                                                <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                            <block>\r
+                                                                                                                <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                        <outcome value='true'>\r
+                                                                                                                            <block>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$left-vnf-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='found-match' value='true' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <break/>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </switch>\r
+                                                                                                                </for>\r
+                                                                                                                <switch test='`$found-match`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <break/>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </block>\r
+                                                                                                        </for>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test='`$found-match`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <break/>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                            <outcome value='0'>\r
+                                                                <for index='left-fp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                    <for index='left-sp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path_length`' >\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='max-seq' value='-1' />\r
+                                                                            </set>\r
+                                                                            <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id\r
+  &gt; $max-seq`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='max-seq'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id`' />\r
+                                                                                            <parameter name='left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-instance-id`' />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\r
+                                                                                <block>\r
+                                                                                    <switch test='`$left-vnf-instance-id\r
+  == $serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block>\r
+                                                                                                <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                            <block>\r
+                                                                                                                <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                        <outcome value='true'>\r
+                                                                                                                            <block>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$left-vnf-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='found-match' value='true' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <break/>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </switch>\r
+                                                                                                                </for>\r
+                                                                                                                <switch test='`$found-match`'>\r
+                                                                                                                    <outcome value='true'>\r
+                                                                                                                        <break/>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                            </block>\r
+                                                                                                        </for>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <switch test='`$found-match`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <break/>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </block>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <block>\r
+                                                                    <for index='left-fp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                        <for index='left-sp-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path_length`' >\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='max-seq' value='-1' />\r
+                                                                                </set>\r
+                                                                                <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id\r
+  &gt; $max-seq`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-seq'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-path-sequence-id`' />\r
+                                                                                                <parameter name='left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.vnf[$left-vnf-index].vnf-instance-id`' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </for>\r
+                                                                                <for index='left-vnf-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list_length`' >\r
+                                                                                    <block>\r
+                                                                                        <switch test='`$left-vnf-instance-id\r
+  == $serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <for index='right-fp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path_length`' >\r
+                                                                                                        <for index='right-sp-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path_length`' >\r
+                                                                                                            <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`'>\r
+                                                                                                                <outcome value=''>\r
+                                                                                                                    <block>\r
+                                                                                                                        <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                                                            <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\r
+  == 1`'>\r
+                                                                                                                                <outcome value='true'>\r
+                                                                                                                                    <block>\r
+                                                                                                                                        <set>\r
+                                                                                                                                            <parameter name='right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\r
+                                                                                                                                        </set>\r
+                                                                                                                                        <break/>\r
+                                                                                                                                    </block>\r
+                                                                                                                                </outcome>\r
+                                                                                                                            </switch>\r
+                                                                                                                        </for>\r
+                                                                                                                        <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                                                            <block>\r
+                                                                                                                                <switch test='`$right-vnf-instance-id\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\r
+                                                                                                                                    <outcome value='true'>\r
+                                                                                                                                        <block>\r
+                                                                                                                                            <set>\r
+                                                                                                                                                <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index'\r
+  value='`$right-vnf-index`' />\r
+                                                                                                                                            </set>\r
+                                                                                                                                            <break/>\r
+                                                                                                                                        </block>\r
+                                                                                                                                    </outcome>\r
+                                                                                                                                </switch>\r
+                                                                                                                            </block>\r
+                                                                                                                        </for>\r
+                                                                                                                        <block>\r
+                                                                                                                            <set>\r
+                                                                                                                                <parameter name='right-vnf-index'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`' />\r
+                                                                                                                            </set>\r
+                                                                                                                            <for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                                <block>\r
+                                                                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                                            <outcome value='true'>\r
+                                                                                                                                                <block>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <break/>\r
+                                                                                                                                                </block>\r
+                                                                                                                                            </outcome>\r
+                                                                                                                                        </switch>\r
+                                                                                                                                    </for>\r
+                                                                                                                                    <switch test='`$found-match`'>\r
+                                                                                                                                        <outcome value='true'>\r
+                                                                                                                                            <break/>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                    </switch>\r
+                                                                                                                                </block>\r
+                                                                                                                            </for>\r
+                                                                                                                        </block>\r
+                                                                                                                    </block>\r
+                                                                                                                </outcome>\r
+                                                                                                                <outcome value='0'>\r
+                                                                                                                    <block>\r
+                                                                                                                        <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf_length`' >\r
+                                                                                                                            <switch test='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-path-sequence-id\r
+  == 1`'>\r
+                                                                                                                                <outcome value='true'>\r
+                                                                                                                                    <block>\r
+                                                                                                                                        <set>\r
+                                                                                                                                            <parameter name='right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.vnf[$right-vnf-index].vnf-instance-id`' />\r
+                                                                                                                                        </set>\r
+                                                                                                                                        <break/>\r
+                                                                                                                                    </block>\r
+                                                                                                                                </outcome>\r
+                                                                                                                            </switch>\r
+                                                                                                                        </for>\r
+                                                                                                                        <for index='right-vnf-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list_length`' >\r
+                                                                                                                            <block>\r
+                                                                                                                                <switch test='`$right-vnf-instance-id\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`'>\r
+                                                                                                                                    <outcome value='true'>\r
+                                                                                                                                        <block>\r
+                                                                                                                                            <set>\r
+                                                                                                                                                <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index'\r
+  value='`$right-vnf-index`' />\r
+                                                                                                                                            </set>\r
+                                                                                                                                            <break/>\r
+                                                                                                                                        </block>\r
+                                                                                                                                    </outcome>\r
+                                                                                                                                </switch>\r
+                                                                                                                            </block>\r
+                                                                                                                        </for>\r
+                                                                                                                        <block>\r
+                                                                                                                            <set>\r
+                                                                                                                                <parameter name='right-vnf-index'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`' />\r
+                                                                                                                            </set>\r
+                                                                                                                            <for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                                <block>\r
+                                                                                                                                    <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                                        <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                                            <outcome value='true'>\r
+                                                                                                                                                <block>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                        <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <set>\r
+                                                                                                                                                        <parameter name='found-match' value='true' />\r
+                                                                                                                                                    </set>\r
+                                                                                                                                                    <break/>\r
+                                                                                                                                                </block>\r
+                                                                                                                                            </outcome>\r
+                                                                                                                                        </switch>\r
+                                                                                                                                    </for>\r
+                                                                                                                                    <switch test='`$found-match`'>\r
+                                                                                                                                        <outcome value='true'>\r
+                                                                                                                                            <break/>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                    </switch>\r
+                                                                                                                                </block>\r
+                                                                                                                            </for>\r
+                                                                                                                        </block>\r
+                                                                                                                    </block>\r
+                                                                                                                </outcome>\r
+                                                                                                                <outcome value='Other'>\r
+                                                                                                                    <block>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='right-vnf-index'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].leftmost-vnf-index`' />\r
+                                                                                                                        </set>\r
+                                                                                                                        <for index='left-vnf-network-index' start='0' end='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                            <block>\r
+                                                                                                                                <for silentFailure='true' index='right-vnf-network-index' start='0' end='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                                                                                                    <switch test='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+  == $serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name`'>\r
+                                                                                                                                        <outcome value='true'>\r
+                                                                                                                                            <block>\r
+                                                                                                                                                <set>\r
+                                                                                                                                                    <parameter name='ps-index' value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length`' />\r
+                                                                                                                                                </set>\r
+                                                                                                                                                <set>\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].service-instance-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].service-instance-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].lhs_vnf.'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].forwarding-paths.forwarding-path[$left-fp-index].service-paths.service-path[$left-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$right-node-index].serv-insts[$right-serv-index].rhs_vnf.'\r
+  value='`$serv-cust[$right-node-index].serv-insts[$right-serv-index].forwarding-paths.forwarding-path[$right-fp-index].service-paths.service-path[$right-sp-index].service[0].vnfs.`' />\r
+                                                                                                                                                    <parameter name='serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length'\r
+  value='`$serv-cust[$left-node-index].serv-insts[$left-serv-index].path-segments_length + 1`' />\r
+                                                                                                                                                </set>\r
+                                                                                                                                                <set>\r
+                                                                                                                                                    <parameter name='found-match' value='true' />\r
+                                                                                                                                                </set>\r
+                                                                                                                                                <break/>\r
+                                                                                                                                            </block>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                    </switch>\r
+                                                                                                                                </for>\r
+                                                                                                                                <switch test='`$found-match`'>\r
+                                                                                                                                    <outcome value='true'>\r
+                                                                                                                                        <break/>\r
+                                                                                                                                    </outcome>\r
+                                                                                                                                </switch>\r
+                                                                                                                            </block>\r
+                                                                                                                        </for>\r
+                                                                                                                    </block>\r
+                                                                                                                </outcome>\r
+                                                                                                            </switch>\r
+                                                                                                        </for>\r
+                                                                                                    </for>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                        <switch test='`$found-match`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <break/>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </block>\r
+                                                                        </for>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/gpsd.log' />\r
+            </execute>\r
+            <set>\r
+                <parameter name='path-index' value='0' />\r
+            </set>\r
+            <for silentFailure='true' index='first-serv-index' start='0' end='`$serv-cust[0].serv-insts_length`' >\r
+                <switch test='`$serv-cust[0].serv-insts[$first-serv-index].path-segments_length`'>\r
+                    <outcome value=''>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='0'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='cur-vnf-seq' value='1' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='end-to-end-path' value='false' />\r
+                            </set>\r
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                <parameter name="ctx-destination" value="tmp.service-path-instance-id" />\r
+                            </execute>\r
+                            <set>\r
+                                <parameter name='service-paths.service-path[$path-index].service-path-instance-id' value='`$tmp.service-path-instance-id`' />\r
+                                <parameter name='service-paths.service-path[$path-index].service-path-instance-name'\r
+  value='`$db.path-segment[0].path-name + $tmp.service-path-instance-id`' />\r
+                            </set>\r
+                            <switch test='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`'>\r
+                                <outcome value=''>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='service-paths.service-path[$path-index].service_length' value='1' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].service-instance-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-path-sequence-id'\r
+  value='1' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vf-module-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf_length'\r
+  value='1' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-seq' value='`$cur-vnf-seq + 1`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='0'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='service-paths.service-path[$path-index].service_length' value='1' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].service-instance-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-path-sequence-id'\r
+  value='1' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].left-vf-module-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf_length'\r
+  value='1' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-seq' value='`$cur-vnf-seq + 1`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='max-vnf-seq' value='-1' />\r
+                                            <parameter name='max-vnf-idx' value='-1' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-paths.service-path[$path-index].service_length' value='1' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].service-instance-id`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].service-path-sequence-id'\r
+  value='1' />\r
+                                        </set>\r
+                                        <for index='idx' start='0' end='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' >\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                    <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                </set>\r
+                                                <switch test='`$service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &gt; $max-vnf-seq`'>\r
+                                                    <outcome value='true'>\r
+                                                        <set>\r
+                                                            <parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[0].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                            <parameter name='max-vnf-idx' value='`$idx`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$max-vnf-idx].right-network-name'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf[$max-vnf-idx].right-network-role'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-paths.service-path[$path-index].service[0].vnfs.vnf_length'\r
+  value='`$serv-cust[0].serv-insts[$first-serv-index].lhs_vnf.vnf_length`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='next-service-instance-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-service-instance-id`' />\r
+                                <parameter name='prev-network-name' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-name`' />\r
+                                <parameter name='prev-network-role' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].network-role`' />\r
+                                <parameter name='next-vnf-instance-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-vnf-instance-id`' />\r
+                                <parameter name='next-vf-module-id' value='`$serv-cust[0].serv-insts[$first-serv-index].path-segments[0].right-vf-module-id`' />\r
+                            </set>\r
+                            <for index='node-index' start='1' end='`$serv-cust_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='found-match' value='false' />\r
+                                    </set>\r
+                                    <for index='serv-index' start='0' end='`$serv-cust[$node-index].serv-insts_length`' >\r
+                                        <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments_length`'>\r
+                                            <outcome value=''>\r
+                                                <switch test='`$node-index == $serv-cust_length - 1`'>\r
+                                                    <outcome value='false'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id\r
+  == $next-service-instance-id`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-match' value='true' />\r
+                                                                        </set>\r
+                                                                        <switch test='`$node-index == $serv-cust_length - 1`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block>\r
+                                                                                    <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                                        <outcome value=''>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='0'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='Other'>\r
+                                                                                            <block>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='min-vnf-seq' value='99' />\r
+                                                                                                    <parameter name='min-vnf-idx' value='99' />\r
+                                                                                                </set>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                </set>\r
+                                                                                                <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                                        </set>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                                        </set>\r
+                                                                                                        <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &lt; $min-vnf-seq`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='min-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                                    <parameter name='min-vnf-idx' value='`$idx`' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                </set>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' />\r
+                                                                                                </set>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='end-to-end-path' value='true' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='false'>\r
+                                                                                <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='0'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='-1' />\r
+                                                                                                <parameter name='max-vnf-idx' value='-1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' >\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                                    </set>\r
+                                                                                                    <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &gt; $max-vnf-seq`'>\r
+                                                                                                        <outcome value='true'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                                <parameter name='max-vnf-idx' value='`$idx`' />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                    </switch>\r
+                                                                                                </block>\r
+                                                                                            </for>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='0'>\r
+                                                <switch test='`$node-index == $serv-cust_length - 1`'>\r
+                                                    <outcome value='false'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id\r
+  == $next-service-instance-id`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-match' value='true' />\r
+                                                                        </set>\r
+                                                                        <switch test='`$node-index == $serv-cust_length - 1`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block>\r
+                                                                                    <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                                        <outcome value=''>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='0'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='Other'>\r
+                                                                                            <block>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='min-vnf-seq' value='99' />\r
+                                                                                                    <parameter name='min-vnf-idx' value='99' />\r
+                                                                                                </set>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                </set>\r
+                                                                                                <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' >\r
+                                                                                                    <block>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                                        </set>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                                        </set>\r
+                                                                                                        <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &lt; $min-vnf-seq`'>\r
+                                                                                                            <outcome value='true'>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='min-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                                    <parameter name='min-vnf-idx' value='`$idx`' />\r
+                                                                                                                </set>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                </set>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' />\r
+                                                                                                </set>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='end-to-end-path' value='true' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='false'>\r
+                                                                                <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='0'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='max-vnf-seq' value='-1' />\r
+                                                                                                <parameter name='max-vnf-idx' value='-1' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                            </set>\r
+                                                                                            <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' >\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                                    </set>\r
+                                                                                                    <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &gt; $max-vnf-seq`'>\r
+                                                                                                        <outcome value='true'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                                <parameter name='max-vnf-idx' value='`$idx`' />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                    </switch>\r
+                                                                                                </block>\r
+                                                                                            </for>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block>\r
+                                                    <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id\r
+  == $next-service-instance-id`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='found-match' value='true' />\r
+                                                                </set>\r
+                                                                <switch test='`$node-index == $serv-cust_length - 1`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                                <outcome value=''>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='0'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$next-vnf-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$next-vf-module-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='Other'>\r
+                                                                                    <block>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='min-vnf-seq' value='99' />\r
+                                                                                            <parameter name='min-vnf-idx' value='99' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                        </set>\r
+                                                                                        <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' >\r
+                                                                                            <block>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                                </set>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                    <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                                </set>\r
+                                                                                                <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &lt; $min-vnf-seq`'>\r
+                                                                                                    <outcome value='true'>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='min-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                            <parameter name='min-vnf-idx' value='`$idx`' />\r
+                                                                                                        </set>\r
+                                                                                                    </outcome>\r
+                                                                                                </switch>\r
+                                                                                            </block>\r
+                                                                                        </for>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$min-vnf-idx].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                        </set>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`' />\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <set>\r
+                                                                                <parameter name='end-to-end-path' value='true' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='false'>\r
+                                                                        <switch test='`$serv-cust[$node-index].serv-insts[$serv-index].rhs_vnf.vnf_length`'>\r
+                                                                            <outcome value=''>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='0'>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='`$cur-vnf-seq`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[0].vf-module-instance'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='1' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='max-vnf-seq' value='`$cur-vnf-seq`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='Other'>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='max-vnf-seq' value='-1' />\r
+                                                                                        <parameter name='max-vnf-idx' value='-1' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service_length'\r
+  value='`$service-paths.service-path[$path-index].service_length + 1`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].service-instance-id`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].service-path-sequence-id'\r
+  value='`$node-index + 1`' />\r
+                                                                                    </set>\r
+                                                                                    <for index='idx' start='0' end='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' >\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='vnf-seq'\r
+  value='`$cur-vnf-seq + $serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-path-sequence-id - 1`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-instance-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vnf-instance-id`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id'\r
+  value='`$vnf-seq`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].left-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].left-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-name`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].right-network-role`' />\r
+                                                                                                <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vf-module-instance.vf-module-id'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf[$idx].vf-module-instance.vf-module-id`' />\r
+                                                                                            </set>\r
+                                                                                            <switch test='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id\r
+  &gt; $max-vnf-seq`'>\r
+                                                                                                <outcome value='true'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='max-vnf-seq' value='`$service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$idx].vnf-path-sequence-id`' />\r
+                                                                                                        <parameter name='max-vnf-idx' value='`$idx`' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                        </block>\r
+                                                                                    </for>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-name'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf[$max-vnf-idx].right-network-role'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='service-paths.service-path[$path-index].service[$node-index].vnfs.vnf_length'\r
+  value='`$serv-cust[$node-index].serv-insts[$serv-index].lhs_vnf.vnf_length`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <break/>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test='`$found-match`'>\r
+                                        <outcome value='false'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='service-paths.service-path[$path-index].service-path-instance-id' value='' />\r
+                                                </set>\r
+                                                <break/>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='next-service-instance-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-service-instance-id`' />\r
+                                        <parameter name='prev-network-name' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                        <parameter name='prev-network-role' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                        <parameter name='next-vnf-instance-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-vnf-instance-id`' />\r
+                                        <parameter name='next-vf-module-id' value='`$serv-cust[$node-index].serv-insts[$serv-index].path-segments[0].right-vf-module-id`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='cur-vnf-seq' value='`$max-vnf-seq + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='path-index' value='`$path-index + 1`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-paths.service-path_length' value='`$path-index`' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-composite-path.xml
new file mode 100755 (executable)
index 0000000..a09b03c
--- /dev/null
@@ -0,0 +1,627 @@
+<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='getpathsegment-create-composite-path' mode='sync'>\r
+        <block>\r
+            <set>\r
+                <parameter name='match-type' value='network-name' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from PATH_SEGMENT WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+    AND path_name = $db.forwarding-path[$path-index].path-name ORDER BY path_segment_seq'\r
+  pfx='db.path-segment[]'>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'System error reading PATH_SEGMENT table for uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+  + ' and path '\r
+  + $db.forwarding-path[$path-index].path-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'No entries in PATH_SEGMENT table for uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+  + ' and path '\r
+  + $db.forwarding-path[$path-index].path-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='serv-cust_length' value='0' />\r
+                        </set>\r
+                        <for index='path-segment-index' start='0' end='`$db.path-segment_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='serv-cust[$serv-cust_length].id' value='`$db.path-segment[$path-segment-index].source-association-uuid`' />\r
+                                    <parameter name='serv-cust_length' value='`$serv-cust_length + 1`' />\r
+                                </set>\r
+                                <switch test='`$path-segment-index == ( $db.path-segment_length - 1) `'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='serv-cust[$serv-cust_length].id' value='`$db.path-segment[$path-segment-index].target-association-uuid`' />\r
+                                            <parameter name='serv-cust_length' value='`$serv-cust_length + 1`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <for index='serv-index' start='0' end='`$serv-cust_length`' >\r
+                            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='select sm.invariant_uuid\r
+    from SERVICE_PROXY sp, SERVICE_MODEL sm\r
+    where sp.parent_service_uuid = sm.service_uuid\r
+    and sp.customization_uuid = $serv-cust[$serv-index].id'\r
+  pfx='db'>\r
+                                <outcome value='failure'>\r
+                                    <set>\r
+                                        <parameter name='error-message' value="`'Failure reading SERVICE_PROXY and SERVICE_MODEL for customization uuid ' + $serv-cust[$serv-index].id`" />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <set>\r
+                                        <parameter name='error-message' value="`'Cannot find entries in SERVICE_PROXY and SERVICE_MODEL for customization uuid ' + $serv-cust[$serv-index].id`" />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <set>\r
+                                        <parameter name='serv-cust[$serv-index].inv-id' value='`$db.invariant-uuid`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </get-resource>\r
+                        </for>\r
+                        <for index='serv-index' start='0' end='`$serv-cust_length`' >\r
+                            <switch test='`$serv-cust[$serv-index].inv-id`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="custom-query"\r
+       key="format = 'resource'"\r
+       force="true"\r
+       local-only="false"\r
+       pfx="aai.service-instances" >\r
+                                        <parameter name="start[0]" value="`'nodes/service-instances?model-invariant-id=' + $serv-cust[$serv-index].inv-id`" />\r
+                                        <parameter name="start_length" value="1" />\r
+                                        <outcome value='not-found'>\r
+                                            <set>\r
+                                                <parameter name='error-message' value="`'Unable to find runtime service instances for invariant UUID ' + $serv-cust[$serv-index].inv-id`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <set>\r
+                                                <parameter name='error-message' value="`'System error finding runtime service instances for customization UUID ' + $serv-cust[$serv-index].inv-id`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.serv-insts_length' value='0' />\r
+                                                </set>\r
+                                                <for index='runtime-index' start='0' end='`$aai.service-instances.results_length`' >\r
+                                                    <switch test='`$aai.service-instances.results[$runtime-index].service-instance.orchestration-status`'>\r
+                                                        <outcome value='Active'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='serv-inst.service-instance-id' value='`$aai.service-instances.results[$runtime-index].service-instance.service-instance-id`' />\r
+                                                                </set>\r
+                                                                <switch test='`$output-global-customer-id`'>\r
+                                                                    <outcome value=''>\r
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource_and_url'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.si">\r
+                                                                            <parameter name="start[0]" value="`'nodes/service-instance/' + $serv-inst.service-instance-id `" />\r
+                                                                            <parameter name="start_length" value="1" />\r
+                                                                            <outcome value='success'>\r
+                                                                                <block>\r
+                                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                        <parameter name="original_string" value="`$tmp.AnAI-data.si.results[0].url`" />\r
+                                                                                        <parameter name="regex" value="/"/>\r
+                                                                                        <parameter name="limit" value="11" />\r
+                                                                                        <parameter name="ctx_memory_result_key" value="split" />\r
+                                                                                    </execute>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='output-global-customer-id' value='`$split[6]`' />\r
+                                                                                        <parameter name='output-service-type' value='`$split[9]`' />\r
+                                                                                        <parameter name='output-service-role' value='`$tmp.AnAI-data.si.results[0].service-instance.service-role`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </save>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <block>\r
+                                                                    <switch test='`$runtime-index`'>\r
+                                                                        <outcome value='0'>\r
+                                                                            <set>\r
+                                                                                <parameter name='service.service-role' value='`$aai.service-instances.results[0].service-instance.service-role`' />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                    <set>\r
+                                                                        <parameter name='mdsal-service.' value='' />\r
+                                                                        <parameter name='serv-inst.api' value='' />\r
+                                                                    </set>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                        <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                        <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                        <parameter name="target" value="{service-instance-id}"/>\r
+                                                                        <parameter name="replacement" value="`$serv-inst.service-instance-id`"/>\r
+                                                                    </execute>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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="mdsal-service" />\r
+                                                                        <outcome value='success'>\r
+                                                                            <block>\r
+                                                                                <switch test='`$mdsal-service.service[0].service-data.vnfs.vnf_length`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='data-error' value="`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`" />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='0'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='data-error' value="`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`" />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='1'>\r
+                                                                                        <block>\r
+                                                                                            <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' ></call>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                                            </set>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`'>\r
+                                                                                            <outcome value=''>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='data-error' value="`'Service instance ' + $serv-inst.service-instance-id + ' has multiple VNFs but no forwarding paths were found'`" />\r
+                                                                                                </set>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='0'>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='data-error' value="`'Service instance ' + $serv-inst.service-instance-id + ' has multiple VNFs but no forwarding paths were found'`" />\r
+                                                                                                </set>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='Other'>\r
+                                                                                                <block>\r
+                                                                                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' ></call>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].forwarding-paths.'\r
+  value='`$mdsal-service.service[0].service-data.forwarding-paths.`' />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\r
+                                                                                                    </set>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='failure'>\r
+                                                                            <block>\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-vnfapi' mode='sync' ></call>\r
+                                                                                <switch test='`$serv-inst.api`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='data-error' value="`'Failure finding service instance ' + $si.service-instance-id + ' in either GENERIC-REOURCE-API or VNF-API'`" />\r
+                                                                                        </set>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <block>\r
+                                                                                            <switch test='`$serv-inst.vnf-list_length`'>\r
+                                                                                                <outcome value=''>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='data-error' value="`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`" />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='0'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='data-error' value="`'Service instance ' + $si.service-instance-id + ' has no VNFs, skipping'`" />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='1'>\r
+                                                                                                    <block>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                                                        </set>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\r
+                                                                                                        </set>\r
+                                                                                                    </block>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='Other'>\r
+                                                                                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT forwarding_path_service_instance_id from SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING WHERE simple_service_instance_id = $serv-inst.service-instance-id'\r
+  pfx='db.mapped-service-instance-id'>\r
+                                                                                                        <outcome value='failure'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='data-error' value="System error reading SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING table" />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value='not-found'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='data-error' value="`'No entry in SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING table for service instance ' + $serv-inst.service-instance-id`" />\r
+                                                                                                            </set>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value='success'>\r
+                                                                                                            <block>\r
+                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                                                                    <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                                                                    <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                                                                                    <parameter name="replacement" value="`$db.mapped-service-instance-id.forwarding-path-service-instance-id`"/>\r
+                                                                                                                </execute>\r
+                                                                                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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="mdsal-service" />\r
+                                                                                                                    <outcome value='failure'>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='data-error' value="`'Cannot find service instance ' + $db.mapped-service-instance-id.forwarding-path-service-instance-id + ' in MD-SAL'`" />\r
+                                                                                                                        </set>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='success'>\r
+                                                                                                                        <switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`'>\r
+                                                                                                                            <outcome value=''>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='data-error' value="`'Service instance ' + $db.mapped-service-instance-id.forwarding-path-service-instance-id + ' has multiple VNFs but no forwarding paths were found'`" />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                            <outcome value='0'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='data-error' value="`'Service instance ' + $db.mapped-service-instance-id.forwarding-path-service-instance-id + ' has multiple VNFs but no forwarding paths were found'`" />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                            <outcome value='Other'>\r
+                                                                                                                                <block>\r
+                                                                                                                                    <set>\r
+                                                                                                                                        <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                                                                                    </set>\r
+                                                                                                                                    <set>\r
+                                                                                                                                        <parameter name='serv-cust[$serv-index].serv-insts[$tmp.serv-insts_length].forwarding-paths.'\r
+  value='`$mdsal-service.service[0].service-data.forwarding-paths.`' />\r
+                                                                                                                                    </set>\r
+                                                                                                                                    <set>\r
+                                                                                                                                        <parameter name='tmp.serv-insts_length' value='`$tmp.serv-insts_length + 1`' />\r
+                                                                                                                                    </set>\r
+                                                                                                                                </block>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </execute>\r
+                                                                                                            </block>\r
+                                                                                                        </outcome>\r
+                                                                                                    </get-resource>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </execute>\r
+                                                                    <set>\r
+                                                                        <parameter name='serv-inst.' value='' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='serv-cust[$serv-index].serv-insts_length' value='`$tmp.serv-insts_length`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </save>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-composite-match-pair' mode='sync' ></call>\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                            <parameter name='filename' value='/var/tmp/gpsx.log' />\r
+                        </execute>\r
+                        <switch test='`$service-paths.service-path_length`'>\r
+                            <outcome value=''>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='0'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='found-service-path' value='false' />\r
+                                    </set>\r
+                                    <for index='sp-index' start='0' end='`$service-paths.service-path_length`' >\r
+                                        <switch test='`$service-paths.service-path[$sp-index].service_length == $serv-cust_length`'>\r
+                                            <outcome value='true'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='found-service-path' value='true' />\r
+                                                    </set>\r
+                                                    <break/>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test='`$found-service-path`'>\r
+                                        <outcome value='false'>\r
+                                            <set>\r
+                                                <parameter name='error-message' value="`'No service paths found for path name '\r
+  + $db.path-segment[0].path-name`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='true'>\r
+                                            <block>\r
+                                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                    <parameter name="ctx-destination" value="forwarding-path.forwarding-path-id" />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\r
+                                                    <parameter name='forwarding-path.forwarding-path-type' value='Service' />\r
+                                                    <parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='forwarding-path.service-paths.' value='`$service-paths.`' />\r
+                                                </set>\r
+                                                <switch test='`$output-service-instance-id`'>\r
+                                                    <outcome value=''>\r
+                                                        <block>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                                <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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='PUT' />\r
+                                                                <parameter name="responsePrefix" value="mdsal-sr" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </execute>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="service-instance" \r
+       key="customer.global-customer-id = $output-global-customer-id\r
+         AND service-subscription.service-type = $output-service-type\r
+         AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
+                                                                <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
+                                                                <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
+                                                                <parameter name="service-type" value="`$output-service-type`" />\r
+                                                                <parameter name="service-role" value="`$output-service-role`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <set>\r
+                                                                <parameter name='output-service-instance-id' value='`$tmp.service-instance-id`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <block>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                                <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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='PUT' />\r
+                                                                <parameter name="responsePrefix" value="mdsal-sr" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </execute>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="service-instance" \r
+       key="customer.global-customer-id = $output-global-customer-id\r
+         AND service-subscription.service-type = $output-service-type\r
+         AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
+                                                                <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
+                                                                <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
+                                                                <parameter name="service-type" value="`$output-service-type`" />\r
+                                                                <parameter name="service-role" value="`$output-service-role`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <set>\r
+                                                                <parameter name='output-service-instance-id' value='`$tmp.service-instance-id`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.forwarding-path`"/>\r
+                                                    <parameter name="outputPath" value="tmp.fp-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$output-service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-fp" />\r
+                                                    <outcome value='failure'>\r
+                                                        <set>\r
+                                                            <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <set>\r
+                                                            <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <for index='sp-index' start='0' end='`$service-paths.service-path_length`' >\r
+                                                    <switch test='`$service-paths.service-path[$sp-index].service_length == $serv-cust_length`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block>\r
+                                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarding-path" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id" >\r
+                                                                    <parameter name="forwarding-path-id" value="`$forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id`" />\r
+                                                                    <parameter name="forwarding-path-name" value="`$forwarding-path.service-paths.service-path[$sp-index].service-path-instance-name`" />\r
+                                                                    <parameter name="selflink" value="`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+  + $output-service-instance-id\r
+  + '/forwarding-paths/forwarding-path/'\r
+  + $forwarding-path.forwarding-path-id\r
+  + '/services-paths/service-path/'\r
+  + $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id`" />\r
+                                                                    <outcome value='failure'>\r
+                                                                        <set>\r
+                                                                            <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='not-found'>\r
+                                                                        <set>\r
+                                                                            <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </save>\r
+                                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarding-path:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                    <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
+                                                                    <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/business/customers/customer/'\r
+        + $output-global-customer-id\r
+        + '/service-subscriptions/service-subscription/'\r
+        + $output-service-type\r
+        + '/service-instances/service-instance/'\r
+        + $output-service-instance-id`" />\r
+                                                                    <outcome value='failure'>\r
+                                                                        <set>\r
+                                                                            <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='not-found'>\r
+                                                                        <set>\r
+                                                                            <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </save>\r
+                                                                <for index='service-index' start='0' end='`$service-paths.service-path[$sp-index].service_length`' >\r
+                                                                    <for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf_length`' >\r
+                                                                        <block>\r
+                                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarder" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\r
+         AND forwarder.sequence = $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id" >\r
+                                                                                <parameter name="sequence" value="`$forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id`" />\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='not-found'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </save>\r
+                                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarder:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[$sp-index].service-path-instance-id\r
+     AND forwarder.sequence = $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-path-sequence-id"\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
+        + $forwarding-path.service-paths.service-path[$sp-index].service[$service-index].vnfs.vnf[$vnf-index].vnf-instance-id`" />\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='not-found'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                                    </set>\r
+                                                                                </outcome>\r
+                                                                            </save>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-create-simple-path.xml
new file mode 100755 (executable)
index 0000000..71d3c77
--- /dev/null
@@ -0,0 +1,749 @@
+<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='getpathsegment-create-simple-path' mode='sync'>\r
+        <block>\r
+            <set>\r
+                <parameter name='match-type' value='network-name' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from PATH_SEGMENT WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+    AND path_name = $db.forwarding-path[$path-index].path-name ORDER BY path_segment_seq'\r
+  pfx='db.path-segment[]'>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'System error reading PATH_SEGMENT table for uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+  + ' and path '\r
+  + $db.forwarding-path[$path-index].path-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'No entries in PATH_SEGMENT table for uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid\r
+  + ' and path '\r
+  + $db.forwarding-path[$path-index].path-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-ids_length' value='0' />\r
+                        </set>\r
+                        <for index='path-segment-index' start='0' end='`$db.path-segment_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].source-association-uuid`' />\r
+                                    <parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\r
+                                </set>\r
+                                <switch test='`$path-segment-index == ( $db.path-segment_length - 1) `'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='vnf-ids[$vnf-ids_length]' value='`$db.path-segment[$path-segment-index].target-association-uuid`' />\r
+                                            <parameter name='vnf-ids_length' value='`$vnf-ids_length + 1`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="custom-query"\r
+       key="format = 'resource'"\r
+       force="true"\r
+       local-only="false"\r
+       pfx="aai.service-instances" >\r
+                            <parameter name="start[0]" value="`'nodes/service-instances?model-invariant-id=' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
+                            <parameter name="start_length" value="1" />\r
+                            <outcome value='not-found'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='error-message' value="`'No run-time service instances in AAI for invariant uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='error-message' value="`'System error calling AAI to get run-time service instances for invariant uuid '\r
+  + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='runtime_length' value='0' />\r
+                                    </set>\r
+                                    <for index='runtime-index' start='0' end='`$aai.service-instances.results_length`' >\r
+                                        <switch test='`$aai.service-instances.results[$runtime-index].service-instance.orchestration-status`'>\r
+                                            <outcome value='Active'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='runtime-ids[$runtime_length]' value='`$aai.service-instances.results[$runtime-index].service-instance.service-instance-id`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='runtime_length' value='`$runtime_length + 1`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='serv-insts_length' value='0' />\r
+                                    </set>\r
+                                    <for index='runtime-index' start='0' end='`$runtime_length`' >\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='serv-inst.service-instance-id' value='`$runtime-ids[$runtime-index]`' />\r
+                                            </set>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource_and_url'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.si">\r
+                                                <parameter name="start[0]" value="`'nodes/service-instance/' + $serv-inst.service-instance-id `" />\r
+                                                <parameter name="start_length" value="1" />\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                            <parameter name="original_string" value="`$tmp.AnAI-data.si.results[0].url`" />\r
+                                                            <parameter name="regex" value="/"/>\r
+                                                            <parameter name="limit" value="11" />\r
+                                                            <parameter name="ctx_memory_result_key" value="split" />\r
+                                                        </execute>\r
+                                                        <set>\r
+                                                            <parameter name='output-global-customer-id' value='`$split[6]`' />\r
+                                                            <parameter name='output-service-type' value='`$split[9]`' />\r
+                                                            <parameter name='output-service-role' value='`$tmp.AnAI-data.si.results[0].service-instance.service-role`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                            <set>\r
+                                                <parameter name='mdsal-service.' value='' />\r
+                                                <parameter name='serv-inst.api' value='' />\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                <parameter name="replacement" value="`$serv-inst.service-instance-id`"/>\r
+                                            </execute>\r
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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="mdsal-service" />\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='found-path' value='false' />\r
+                                                        </set>\r
+                                                        <for silentFailure='true' index='fp-index' start='0' end='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path_length`' >\r
+                                                            <switch test='`$mdsal-service.service[0].service-data.forwarding-paths.forwarding-path[$fp-index].forwarding-path-name\r
+  == $db.path-segment[0].path-name`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-path' value='true' />\r
+                                                                        </set>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                        <switch test='`$found-path`'>\r
+                                                            <outcome value='false'>\r
+                                                                <block>\r
+                                                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-grapi' mode='sync' ></call>\r
+                                                                    <set>\r
+                                                                        <parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='select forwarding_path_service_instance_id\r
+    from SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
+    where simple_service_instance_id = $serv-inst.service-instance-id'\r
+  pfx='db.sitcim'>\r
+                                                            <outcome value='not-found'>\r
+                                                                <block>\r
+                                                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-populate-from-vnfapi' mode='sync' ></call>\r
+                                                                    <switch test='`$serv-inst.api`'>\r
+                                                                        <outcome value=''>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="`'Failure finding service instance ' + $serv-inst.service-instance-id + ' in either GENERIC-REOURCE-API or VNF-API'`" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='Other'>\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='serv-insts[$serv-insts_length].' value='`$serv-inst.`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='serv-insts_length' value='`$serv-insts_length + 1`' />\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </get-resource>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </execute>\r
+                                        </block>\r
+                                    </for>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-simple-match-pair' mode='sync' ></call>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/gps.log' />\r
+                                    </execute>\r
+                                    <for index='serv-index' start='0' end='`$serv-insts_length`' >\r
+                                        <switch test='`$serv-insts[$serv-index].api`'>\r
+                                            <outcome value='GR'>\r
+                                                <switch test='`$serv-insts[$serv-index].path-segments_length`'>\r
+                                                    <outcome value=''>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="forwarding-path.forwarding-path-id" />\r
+                                                            </execute>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="forwarding-path.service-paths.service-path[0].service-path-instance-id" />\r
+                                                            </execute>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\r
+                                                                <parameter name='forwarding-path.forwarding-path-type' value='VNF' />\r
+                                                                <parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path_length' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service-path-instance-name'\r
+  value='`$db.path-segment[0].path-name + $forwarding-path.service-paths.service-path[0].service-path-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service_length' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-instance-id'\r
+  value='`$serv-insts[$serv-index].service-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-path-sequence-id' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
+  value='`$serv-insts[$serv-index].path-segments_length`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                            </set>\r
+                                                            <for index='ps-index' start='1' end='`$serv-insts[$serv-index].path-segments_length`' >\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-path-sequence-id'\r
+  value='`$ps-index + 1`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vnf-instance-id`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-name'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-role'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vf-module-id`' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
+                                                                        <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-path-sequence-id'\r
+  value='`$ps-index + 2`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vnf-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vf-module-id`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
+  value='`$serv-insts[$serv-index].path-segments_length + 1`' />\r
+                                                            </set>\r
+                                                            <switch test='`$serv-insts[$serv-index].api`'>\r
+                                                                <outcome value='GR'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.service-instance-id' value='`$serv-insts[$serv-index].service-instance-id`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='VNF'>\r
+                                                                    <block>\r
+                                                                        <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                            <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
+                                                                        </execute>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                            <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                            <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                            <parameter name="target" value="{service-instance-id}"/>\r
+                                                                            <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                                        </execute>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
+                                                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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='PUT' />\r
+                                                                            <parameter name="responsePrefix" value="mdsal-sr" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </execute>\r
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="service-instance" \r
+       key="customer.global-customer-id = $output-global-customer-id\r
+         AND service-subscription.service-type = $output-service-type\r
+         AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
+                                                                            <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
+                                                                            <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
+                                                                            <parameter name="service-type" value="`$output-service-type`" />\r
+                                                                            <parameter name="service-role" value="`$output-service-role`" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </save>\r
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="INSERT INTO SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
+  (simple_service_instance_id, forwarding_path_service_instance_id)\r
+  VALUES ( $serv-insts[$serv-index].service-instance-id , $tmp.service-instance-id )" ></save>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                <parameter name="source" value="`$prop.restapi.forwarding-path`"/>\r
+                                                                <parameter name="outputPath" value="tmp.fp-url"/>\r
+                                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                                <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`" />\r
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\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='PUT' />\r
+                                                                <parameter name="responsePrefix" value="mdsal-fp" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </execute>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarding-path" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id" >\r
+                                                                <parameter name="forwarding-path-id" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
+                                                                <parameter name="forwarding-path-name" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-name`" />\r
+                                                                <parameter name="selflink" value="`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+  + $tmp.service-instance-id\r
+  + '/forwarding-paths/forwarding-path/'\r
+  + $forwarding-path.forwarding-path-id\r
+  + '/services-paths/service-path/'\r
+  + $forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarding-path:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
+                                                                <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/business/customers/customer/'\r
+        + $output-global-customer-id\r
+        + '/service-subscriptions/service-subscription/'\r
+        + $output-service-type\r
+        + '/service-instances/service-instance/'\r
+        + $tmp.service-instance-id`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length`' >\r
+                                                                <block>\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarder" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id" >\r
+                                                                        <parameter name="sequence" value="`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id`" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarder:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\r
+     AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id"\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
+        + $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-instance-id`" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                            <outcome value='VNF'>\r
+                                                <switch test='`$serv-insts[$serv-index].path-segments_length`'>\r
+                                                    <outcome value=''>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="forwarding-path.forwarding-path-id" />\r
+                                                            </execute>\r
+                                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                <parameter name="ctx-destination" value="forwarding-path.service-paths.service-path[0].service-path-instance-id" />\r
+                                                            </execute>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.forwarding-path-name' value='`$db.path-segment[0].path-name`' />\r
+                                                                <parameter name='forwarding-path.forwarding-path-type' value='VNF' />\r
+                                                                <parameter name='forwarding-path.onap-model-information.model-name' value='`$db.path-segment[0].path-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path_length' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service-path-instance-name'\r
+  value='`$db.path-segment[0].path-name + $forwarding-path.service-paths.service-path[0].service-path-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service_length' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-instance-id'\r
+  value='`$serv-insts[$serv-index].service-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].service-path-sequence-id' value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
+  value='`$serv-insts[$serv-index].path-segments_length`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-path-sequence-id'\r
+  value='1' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[0].left-vnf-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-name'\r
+  value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].right-network-role'\r
+  value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[0].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[0].left-vf-module-id`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[0].network-name`' />\r
+                                                                <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[0].network-role`' />\r
+                                                            </set>\r
+                                                            <for index='ps-index' start='1' end='`$serv-insts[$serv-index].path-segments_length`' >\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-path-sequence-id'\r
+  value='`$ps-index + 1`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vnf-instance-id`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-name'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].right-network-role'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
+                                                                        <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].left-vf-module-id`' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='prev-network-name' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-name`' />\r
+                                                                        <parameter name='prev-network-role' value='`$serv-insts[$serv-index].path-segments[$ps-index].network-role`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-path-sequence-id'\r
+  value='`$ps-index + 2`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vnf-instance-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vnf-instance-id`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-name'\r
+  value='`$prev-network-name`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].left-network-role'\r
+  value='`$prev-network-role`' />\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$ps-index + 1].vf-module-instance.vf-module-id'\r
+  value='`$serv-insts[$serv-index].path-segments[$ps-index].right-vf-module-id`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length'\r
+  value='`$serv-insts[$serv-index].path-segments_length + 1`' />\r
+                                                            </set>\r
+                                                            <switch test='`$serv-insts[$serv-index].api`'>\r
+                                                                <outcome value='GR'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.service-instance-id' value='`$serv-insts[$serv-index].service-instance-id`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='VNF'>\r
+                                                                    <block>\r
+                                                                        <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                                                                            <parameter name="ctx-destination" value="tmp.service-instance-id" />\r
+                                                                        </execute>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                            <parameter name="source" value="`$prop.restapi.service`"/>\r
+                                                                            <parameter name="outputPath" value="tmp.service-url"/>\r
+                                                                            <parameter name="target" value="{service-instance-id}"/>\r
+                                                                            <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                                        </execute>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.csm.serviceinstance.templatefile`" />\r
+                                                                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.service-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='PUT' />\r
+                                                                            <parameter name="responsePrefix" value="mdsal-sr" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in MD-SAL" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </execute>\r
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="service-instance" \r
+       key="customer.global-customer-id = $output-global-customer-id\r
+         AND service-subscription.service-type = $output-service-type\r
+         AND service-instance.service-instance-id = $tmp.service-instance-id" >\r
+                                                                            <parameter name="service-instance-id" value="`$tmp.service-instance-id`" />\r
+                                                                            <parameter name="global-customer-id" value="`$output-global-customer-id`" />\r
+                                                                            <parameter name="service-type" value="`$output-service-type`" />\r
+                                                                            <parameter name="service-role" value="`$output-service-role`" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <set>\r
+                                                                                    <parameter name='error-message' value="Failure creating service instance in AAI" />\r
+                                                                                </set>\r
+                                                                            </outcome>\r
+                                                                        </save>\r
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="INSERT INTO SERVICE_INSTANCE_TO_COMPOSITE_INSTANCE_MAPPING\r
+  (simple_service_instance_id, forwarding_path_service_instance_id)\r
+  VALUES ( $serv-insts[$serv-index].service-instance-id , $tmp.service-instance-id )" ></save>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                <parameter name="source" value="`$prop.restapi.forwarding-path`"/>\r
+                                                                <parameter name="outputPath" value="tmp.fp-url"/>\r
+                                                                <parameter name="target" value="{service-instance-id}"/>\r
+                                                                <parameter name="replacement" value="`$tmp.service-instance-id`"/>\r
+                                                            </execute>\r
+                                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.forwardingpath.templatefile`" />\r
+                                                                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.fp-url + $forwarding-path.forwarding-path-id`' />\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='PUT' />\r
+                                                                <parameter name="responsePrefix" value="mdsal-fp" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to MD-SAL" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </execute>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarding-path" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id" >\r
+                                                                <parameter name="forwarding-path-id" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
+                                                                <parameter name="forwarding-path-name" value="`$forwarding-path.service-paths.service-path[0].service-path-instance-name`" />\r
+                                                                <parameter name="selflink" value="`'/restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+  + $tmp.service-instance-id\r
+  + '/forwarding-paths/forwarding-path/'\r
+  + $forwarding-path.forwarding-path-id\r
+  + '/services-paths/service-path/'\r
+  + $forwarding-path.service-paths.service-path[0].service-path-instance-id`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarding-path:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                <parameter name="relationship-list.relationship[0].related-to" value="service-instance" />\r
+                                                                <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/business/customers/customer/'\r
+        + $output-global-customer-id\r
+        + '/service-subscriptions/service-subscription/'\r
+        + $output-service-type\r
+        + '/service-instances/service-instance/'\r
+        + $tmp.service-instance-id`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <set>\r
+                                                                        <parameter name='error-message' value="Failure writing forwarding-path relationship to AAI" />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <for index='vnf-index' start='0' end='`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf_length`' >\r
+                                                                <block>\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="forwarder" \r
+       key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id" >\r
+                                                                        <parameter name="sequence" value="`$forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id`" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="forwarder:relationship-list"\r
+   key="forwarding-path.forwarding-path-id = $forwarding-path.service-paths.service-path[0].service-path-instance-id\r
+     AND forwarder.sequence = $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-path-sequence-id"\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
+        + $forwarding-path.service-paths.service-path[0].service[0].vnfs.vnf[$vnf-index].vnf-instance-id`" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <set>\r
+                                                                                <parameter name='error-message' value="Failure writing forwarder relationship to AAI" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </save>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-grapi.xml
new file mode 100755 (executable)
index 0000000..1ae609a
--- /dev/null
@@ -0,0 +1,145 @@
+<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='getpathsegment-populate-from-grapi' mode='sync'>\r
+        <block>\r
+            <switch test='`$vnf-ids_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <for silentFailure='true' index='vnf-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='vnf-network-list_length' value='0' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='vnf-ids-index' value='`$vnf-index`' />\r
+                                </set>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-id' value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                    </set>\r
+                                    <for silentFailure='true' index='vnf-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                        <for silentFailure='true' index='vf-module-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                            <for silentFailure='true' index='vm-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                                <for silentFailure='true' index='vm-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network_length`' >\r
+                                                    <switch test='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\r
+  == $mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network[$vm-network-index].network-role`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-name'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`' />\r
+                                                                    <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-role'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\r
+                                                                    <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].vf-module-id'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='vnf-network-list_length' value='`$vnf-network-list_length + 1`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </for>\r
+                                        </for>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list_length' value='`$vnf-network-list_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </block>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='serv-inst.api' value='GR' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='serv-inst.vnf-list_length'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='mismatch' value='false' />\r
+                        </set>\r
+                        <for silentFailure='true' index='vnf-ids-index' start='0' end='`$vnf-ids_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='vnf-network-list_length' value='0' />\r
+                                </set>\r
+                                <for silentFailure='true' index='vnf-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' >\r
+                                    <switch test='`$vnf-ids[$vnf-ids-index] == $mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.onap-model-information.model-customization-uuid`'>\r
+                                        <outcome value='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-id' value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                                </set>\r
+                                                <for silentFailure='true' index='vnf-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                                    <for silentFailure='true' index='vf-module-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                        <for silentFailure='true' index='vm-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                                            <for silentFailure='true' index='vm-network-index' start='0' end='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network_length`' >\r
+                                                                <switch test='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\r
+  == $mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-index].vm-networks.vm-network[$vm-network-index].network-role`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-name'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`' />\r
+                                                                                <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].network-role'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\r
+                                                                                <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list[$vnf-network-list_length].vf-module-id'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='vnf-network-list_length' value='`$vnf-network-list_length + 1`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </for>\r
+                                                    </for>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='serv-inst.vnf-list[$vnf-ids-index].vnf-network-list_length' value='`$vnf-network-list_length`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test='`$vnf-network-list_length == 0`'>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='matching-error' value="`'Unable to find VNF with customization UUID of ' + $vnf-ids[vnf-ids-index] + ' for service instance ' + $serv-inst.service-instance-id`" />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='mismatch' value='true' />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <switch test='`$mismatch`'>\r
+                            <outcome value='false'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='serv-inst.api' value='GR' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='serv-inst.vnf-list_length'\r
+  value='`$mdsal-service.service[0].service-data.vnfs.vnf_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-populate-from-vnfapi.xml
new file mode 100755 (executable)
index 0000000..e84e426
--- /dev/null
@@ -0,0 +1,569 @@
+<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='getpathsegment-populate-from-vnfapi' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="serv-inst.api" value= ""/>\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: read properties file."/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Could not read properties file."/>\r
+                            <parameter name="field3" value='`$prop.restapi.pm.getpolicy.templatefile`'/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name="serv-inst.api" value= ""/>\r
+                            <parameter name="error-message" value="Could not read properties file" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$serv-inst.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input service-instance-id is not set"/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name="serv-inst.api" value= ""/>\r
+                            <parameter name="error-message" value="serv-inst.service-instance-id is not set" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$match-type`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input match-type is not set"/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name="serv-inst.api" value= ""/>\r
+                            <parameter name="error-message" value="input match-type is not set" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-ids_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="path-type" value= "COMPOSITE"/>\r
+                        </set>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is blank, this is a COMPOSITE path"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name="path-type" value= "SIMPLE"/>\r
+                        </set>\r
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: input vnf-ids_length is NOT blank, this is a SIMPLE path"/>\r
+                        </record>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="vnfListIndex" value= "0"/>\r
+            </set>\r
+            <switch test='`$path-type`'>\r
+                <outcome value='SIMPLE'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids"/>\r
+                        </record>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.vf-module-ids">\r
+                            <parameter name="start[0]" value="`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `" />\r
+                            <!--<parameter name="start[0]" value="`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `" />-->\r
+                            <!--<parameter name="start[0]" value="`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `" />-->\r
+                            <parameter name="start_length" value="1" />\r
+                            <parameter name="query" value="/query/vfModule-fromServiceInstance" />\r
+                            <!--<parameter name="query" value="/query/vnfs-fromServiceInstance" /> -->\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Failed call to AAI custom query: vfModule-fromServiceInstance" />\r
+                                        <parameter name="serv-inst.api" value= ""/>\r
+                                        <parameter name='tmp.vf-module-ids_length' value='0' />\r
+                                        <parameter name='tmp.vnf-instances_length' value='0' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-message" value="No vfModules returned from AAI: vfModule-fromService-instance" />\r
+                                        <parameter name="serv-inst.api" value= ""/>\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\r
+                                        <set>\r
+                                            <parameter name="`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />\r
+                                        </set>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </save>\r
+                        <set>\r
+                            <parameter name="tmp.triplet-list_length" value= "0" />\r
+                            <parameter name="tmp.tripletListIndex" value= "0" />\r
+                            <parameter name="tmp.vnf-instances_length" value= "0" />\r
+                            <parameter name="tmp.vnfInstancesIndex" value= "0" />\r
+                            <parameter name="tmp.mdsal-error-encountered" value= "false"/>\r
+                        </set>\r
+                        <for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="tmp.vnf-url" value="`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`" />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-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="vnf-mdsal" />\r
+                                    <outcome value='failure'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name="error-message" value="Failed to read vnf info from MD-SAL" />\r
+                                                <parameter name="serv-inst.api" value= ""/>\r
+                                                <parameter name="tmp.mdsal-error-encountered" value= "true"/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name="error-message" value="Cannot find vnf info in MD-SAL" />\r
+                                                <parameter name="serv-inst.api" value= ""/>\r
+                                                <parameter name="tmp.mdsal-error-encountered" value= "true"/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name="`'tmp.vnf-instances[' + $tmp.vnfInstancesIndex + ']'`." value= '`$vnf-mdsal.vnf-list[0].`' />\r
+                                                <parameter name="genericVnfIdFound" value= 'false' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id|generic-vnf-id: "/>\r
+                                                <parameter name="field3" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.vnf-id`' />\r
+                                                <parameter name="field4" value='`$tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`' />\r
+                                            </record>\r
+                                            <for index='tmp.tripletListIndex2' start='0' end='`$tmp.triplet-list_length`' >\r
+                                                <switch test='`$tmp.triplet-list[$tmp.tripletListIndex2].generic-vnf-id == $tmp.vnf-instances[$tmp.vnfInstancesIndex].service-data.vnf-request-information.generic-vnf-id`'>\r
+                                                    <outcome value='false'></outcome>\r
+                                                    <outcome value='true'>\r
+                                                        <set>\r
+                                                            <parameter name="genericVnfIdFound" value= 'true' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test='`$genericVnfIdFound`'>\r
+                                                <outcome value='false'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].generic-vnf-id'`" value= '`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`' />\r
+                                                            <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].vf-module-id'`" value= '`$tmp.vf-module-ids[$vfModuleIndex]`' />\r
+                                                            <parameter name="tmp.triplet-list_length" value= '`$tmp.triplet-list_length + 1`'/>\r
+                                                            <parameter name="tmp.tripletListIndex" value= '`$tmp.tripletListIndex + 1`'/>\r
+                                                        </set>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id in NOT found in triplet-list, add it"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='true'>\r
+                                                    <block>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf-id is already in triplet-list, don't add it"/>\r
+                                                        </record>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name="tmp.vnfInstancesIndex" value= '`$tmp.vnfInstancesIndex + 1`'/>\r
+                                                <parameter name="tmp.vnf-instances_length" value= '`$tmp.vnf-instances_length + 1`'/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </for>\r
+                        <switch test='`$tmp.mdsal-error-encountered`'>\r
+                            <outcome value='false'>\r
+                                <block>\r
+                                    <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
+                                        <block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="generic-vnf"\r
+        key="generic-vnf.vnf-id = $tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id"\r
+        pfx='aai.generic-vnf' local-only='false' >\r
+                                                <outcome value='success'>\r
+                                                    <switch test='`$aai.generic-vnf.model-customization-id`'>\r
+                                                        <outcome value=''>\r
+                                                            <block>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: model-customization-id is BLANK for vf-module-id|generic-vnf-id: "/>\r
+                                                                    <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
+                                                                    <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
+                                                                </record>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Set model-customization-id for vf-module-id|generic-vnf-id: "/>\r
+                                                                    <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
+                                                                    <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
+                                                                    <parameter name="field5" value='`$aai.generic-vnf.model-customization-id`'/>\r
+                                                                </record>\r
+                                                                <set>\r
+                                                                    <parameter name="`'tmp.triplet-list[' + $tmp.tripletListIndex + '].model-customization-id'`" value= '`$aai.generic-vnf.model-customization-id`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: generic-vnf not found in AAI for generic-vnf-id: "/>\r
+                                                        <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
+                                                    </record>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: unable to access AAI for generic-vnf-id: "/>\r
+                                                        <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='true'>\r
+                                <block></block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <block>\r
+                            <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: PRINT triplet-list | vf-module-id:generic-vnf-id:model-customization-id | "/>\r
+                                    <parameter name="field3" value='`$tmp.tripletListIndex`'/>\r
+                                    <parameter name="field4" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
+                                    <parameter name="field5" value='`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`'/>\r
+                                    <parameter name="field6" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>\r
+                                </record>\r
+                            </for>\r
+                        </block>\r
+                        <for index='vnfIdIndex' start='0' end='`$vnf-ids_length`' >\r
+                            <block>\r
+                                <for index='tmp.tripletListIndex' start='0' end='`$tmp.triplet-list_length`' >\r
+                                    <block>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | tripletListIndex:model-customization-id | : "/>\r
+                                            <parameter name="field3" value='`$vnfIdIndex`'/>\r
+                                            <parameter name="field4" value='`$vnf-ids[$vnfIdIndex]`'/>\r
+                                            <parameter name="field5" value='`$tmp.tripletListIndex`'/>\r
+                                            <parameter name="field6" value='`$tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'/>\r
+                                        </record>\r
+                                        <switch test='`$vnf-ids[$vnfIdIndex] == $tmp.triplet-list[$tmp.tripletListIndex].model-customization-id`'>\r
+                                            <outcome value='true'>\r
+                                                <block>\r
+                                                    <for index='vnfInstanceIndex' start='0' end='`$tmp.vnf-instances_length`' >\r
+                                                        <block>\r
+                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                <parameter name="logger" value="message-log"/>\r
+                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: vnfIdIndex:id | vnfInstanceIndex:id | : "/>\r
+                                                                <parameter name="field3" value='`$vnfIdIndex`'/>\r
+                                                                <parameter name="field4" value='`$vnf-ids[$vnfIdIndex]`'/>\r
+                                                                <parameter name="field5" value='`$vnfInstanceIndex`'/>\r
+                                                                <parameter name="field6" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`'/>\r
+                                                            </record>\r
+                                                            <switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id == $tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block>\r
+                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-instances.vnf-id and triplet-list.vf-module-id: "/>\r
+                                                                            <parameter name="field3" value='`$tmp.triplet-list[$tmp.tripletListIndex].vf-module-id`'/>\r
+                                                                        </record>\r
+                                                                        <switch test='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >\r
+                                                                                    <block>\r
+                                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for vnf-id and vnf-instances for vnf-id: "/>\r
+                                                                                            <parameter name="field3" value='`$vnf-ids[$vnfIdIndex]`'/>\r
+                                                                                            <parameter name="field4" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>\r
+                                                                                        </record>\r
+                                                                                        <set>\r
+                                                                                            <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`"/>\r
+                                                                                            <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`"/>\r
+                                                                                            <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id" value= "`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`"/>\r
+                                                                                            <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length" value= '`$vnfNetworksIndex + 1`'/>\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </for>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='false'>\r
+                                                                                <block>\r
+                                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                        <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: "/>\r
+                                                                                        <parameter name="field3" value='`$tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-request-information.vnf-id`' />\r
+                                                                                    </record>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='`tmp.vnf-instances[$vnfInstanceIndex].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value="0" />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <set>\r
+                                                                            <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-id" value= "`$tmp.triplet-list[$tmp.tripletListIndex].generic-vnf-id`"/>\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="vnfListIndex" value= '`$vnfListIndex + 1`'/>\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='false'></outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MATCH for input vnf-id and triplet-list.model-customizaiton-id: "/>\r
+                                                        <parameter name="field3" value='`$vnf-ids[$vnfIdIndex]`'/>\r
+                                                    </record>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='false'></outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='COMPOSITE'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: Call AAI custom query vfModule-fromServiceInstance to get vf-module-ids"/>\r
+                        </record>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.vf-module-ids">\r
+                            <parameter name="start[0]" value="`'/nodes/service-instances/service-instance?service-instance-id=' + $serv-inst.service-instance-id `" />\r
+                            <!--<parameter name="start[0]" value="`'/business/customers/customer/bgb-customer/service-subscriptions/service-subscription/bgb-service-type/service-instances' `" />-->\r
+                            <!--<parameter name="start[0]" value="`'/business/customers/customer/la-customer/service-subscriptions/service-subscription/la-service-type/service-instances' `" />-->\r
+                            <parameter name="start_length" value="1" />\r
+                            <parameter name="query" value="/query/vfModule-fromServiceInstance" />\r
+                            <!--<parameter name="query" value="/query/vnfs-fromServiceInstance" /> -->\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Failed call to AAI custom query: vfModule-fromServiceInstance" />\r
+                                        <parameter name="serv-inst.api" value= ""/>\r
+                                        <parameter name='tmp.vf-module-ids_length' value='0' />\r
+                                        <parameter name='tmp.vnf-instances_length' value='0' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name="error-message" value="No vfModules returned from AAI: vfModule-fromService-instance" />\r
+                                        <parameter name="serv-inst.api" value= ""/>\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <for index='vfModuleResultIndex' start='0' end='`$tmp.AnAI-data.vf-module-ids.results_length`' >\r
+                                        <set>\r
+                                            <parameter name="`'tmp.vf-module-ids[' + $vfModuleResultIndex + ']'`" value='`$tmp.AnAI-data.vf-module-ids.results[$vfModuleResultIndex].vf-module.vf-module-id`' />\r
+                                        </set>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-ids_length' value='`$tmp.AnAI-data.vf-module-ids.results_length`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </save>\r
+                        <for index='vfModuleIndex' start='0' end='`$tmp.vf-module-ids_length`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="tmp.vnf-url" value="`'/restconf/config/VNF-API:vnfs/vnf-list/' + $tmp.vf-module-ids[$vfModuleIndex]`" />\r
+                                </set>\r
+                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.vnf-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="vnf-mdsal" />\r
+                                    <outcome value='failure'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="Failed to read vnf info from MD-SAL" />\r
+                                                <parameter name="serv-inst.api" value= ""/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="Cannot find vnf info in MD-SAL" />\r
+                                                <parameter name="serv-inst.api" value= ""/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name="`'tmp.vnf-instances[0]'`." value= '`$vnf-mdsal.vnf-list[0].`' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: MDSAL vnf-instances vnf-id: "/>\r
+                                                <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <switch test='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length > 0`'>\r
+                                    <outcome value='true'>\r
+                                        <for index='vnfNetworksIndex' start='0' end='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length`' >\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: copy vnf-instance data to output: "/>\r
+                                                    <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfnetworksIndex].`'/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-name" value= "`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-name`"/>\r
+                                                    <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].network-role" value= "`$tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks[$vnfNetworksIndex].network-role`"/>\r
+                                                    <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list[$vnfNetworksIndex].vf-module-id" value= "`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`"/>\r
+                                                    <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-network-list_length" value= '`$vnfNetworksIndex + 1`'/>\r
+                                                </set>\r
+                                            </block>\r
+                                        </for>\r
+                                    </outcome>\r
+                                    <outcome value='false'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: getpathsegment-populate-from-vnfapi: No vnf-networks found for vnf-id: "/>\r
+                                                <parameter name="field3" value='`$tmp.vnf-instances[0].service-data.vnf-request-information.vnf-id`' />\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='`tmp.vnf-instances[0].service-data.vnf-topology-information.vnf-assignments.vnf-networks_length' value="0" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <set>\r
+                                    <parameter name="serv-inst.vnf-list[$vnfListIndex].vnf-id" value= "`$vnf-mdsal.vnf-list[0].service-data.vnf-request-information.generic-vnf-id`"/>\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name="vnfListIndex" value= '`$vnfListIndex + 1`'/>\r
+                                </set>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="serv-inst.service-instance-id" value= "`$serv-inst.service-instance-id`"/>\r
+                <parameter name="serv-inst.vnf-list_length" value= "`$vnfListIndex`"/>\r
+            </set>\r
+            <switch test='`$serv-inst.vnf-list_length > 0`'>\r
+                <outcome value='true'>\r
+                    <set>\r
+                        <parameter name="serv-inst.api" value= "VNF"/>\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/getpathsegment-populate-from-vnfapi-output.log' />\r
+            </execute>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-simple-match-pair.xml
new file mode 100755 (executable)
index 0000000..049f22e
--- /dev/null
@@ -0,0 +1,125 @@
+<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='getpathsegment-simple-match-pair' mode='sync'>\r
+        <for index='serv-insts-index' start='0' end='`$serv-insts_length`' >\r
+            <switch test='`$serv-insts[$serv-insts-index].vnf-list_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'Matching VNFs were not found in service instance '\r
+  + $serv-insts[$serv-insts-index].service-instance-id`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='error-message' value="`'Matching VNFs were not found in service instance '\r
+  + $serv-insts[$serv-insts-index].service-instance-id`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='matched-all-vnfs' value='true' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='serv-insts[$serv-insts-index].path-segments_length' value='0' />\r
+                        </set>\r
+                        <for index='left-vnf-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list_length - 1`' >\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='found-match' value='false' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='right-vnf-index' value='`$left-vnf-index + 1`' />\r
+                                </set>\r
+                                <switch test='`$match-type`'>\r
+                                    <outcome value='network-name'>\r
+                                        <for index='left-vnf-network-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list_length`' >\r
+                                            <block>\r
+                                                <for index='right-vnf-network-index' start='0' end='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list_length`' >\r
+                                                    <switch test='`( $serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name\r
+    == $serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-name )\r
+   and \r
+    ( $serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role\r
+    == $serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].network-role )`'>\r
+                                                        <outcome value='true'>\r
+                                                            <switch test="`$serv-insts[$serv-insts-index].vnf-list[$vnf-index].vnf-network-list[$vnf-network-index].network-name == 'oam'`">\r
+                                                                <outcome value='false'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='ps-index' value='`$serv-insts[$serv-insts-index].path-segments_length`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].segment-id' value='`$ps-index + 1`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-service-instance-id'\r
+  value='`$serv-insts[$serv-insts-index].service-instance-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-vnf-instance-id'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].left-vf-module-id'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].vf-module-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-service-instance-id'\r
+  value='`$serv-insts[$serv-insts-index].service-instance-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-vnf-instance-id'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].right-vf-module-id'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$right-vnf-index].vnf-network-list[$right-vnf-network-index].vf-module-id`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].network-name'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-name`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments[$ps-index].network-role'\r
+  value='`$serv-insts[$serv-insts-index].vnf-list[$left-vnf-index].vnf-network-list[$left-vnf-network-index].network-role`' />\r
+                                                                            <parameter name='serv-insts[$serv-insts-index].path-segments_length'\r
+  value='`$serv-insts[$serv-insts-index].path-segments_length + 1`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-match' value='true' />\r
+                                                                        </set>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <switch test="`$found-match`">\r
+                                                    <outcome value='true'>\r
+                                                        <break/>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$found-match`">\r
+                                    <outcome value='false'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='matched-all-vnfs' value='false' />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <switch test="`$matched-all-vnfs`">\r
+                            <outcome value='false'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='matching-error' value="`'Not able to find matches for all vnfs of service instance ' + $serv-insts[$serv-insts-index].service-instance-id`" />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='serv-insts[$serv-insts-index].path-segments.' value='' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </for>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation-create.xml
new file mode 100755 (executable)
index 0000000..77d04d7
--- /dev/null
@@ -0,0 +1,55 @@
+<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='getpathsegment-topology-operation-create' mode='sync'>\r
+        <block>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from FORWARDING_PATH WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid'\r
+  pfx='db.forwarding-path[]'>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="System error reading FORWARDING_PATH table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No paths found for service UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid + ' in FORWARDING_PATH table'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block>\r
+                        <for index='path-index' start='0' end='`$db.forwarding-path_length`' >\r
+                            <switch test='`$db.forwarding-path[$path-index].path-type`'>\r
+                                <outcome value='VF'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-create-simple-path' mode='sync' ></call>\r
+                                </outcome>\r
+                                <outcome value='Service Proxy'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-create-composite-path' mode='sync' ></call>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`'Unexpected path type ' + $db.forwarding-path[$path-index].path-type + ' in FORWARDING_PATH table'`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                            <parameter name='filename' value='/var/tmp/gps.log' />\r
+                        </execute>\r
+                        <return status='success'>\r
+                            <parameter name="ack-final-indicator" value="Y" />\r
+                            <parameter name="error-code" value="200" />\r
+                            <parameter name="error-message" value="`$error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_getpathsegment-topology-operation.xml
new file mode 100755 (executable)
index 0000000..e6c2c9d
--- /dev/null
@@ -0,0 +1,36 @@
+<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='getpathsegment-topology-operation' mode='sync'>\r
+        <block>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-getpathsegment-input' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.sdnc-request-header.' value='`$getpathsegment-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.request-information.' value='`$getpathsegment-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.service-information.' value='`$getpathsegment-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.service-request-input.' value='`$getpathsegment-topology-operation-input.service-request-input.`' />\r
+            </set>\r
+            <switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='getpathsegment-topology-operation-create' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-name.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-name.xml
new file mode 100755 (executable)
index 0000000..2f6def6
--- /dev/null
@@ -0,0 +1,1116 @@
+<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='naming-policy-generate-name' mode='sync'>\r
+        <block atomic='true'>\r
+            <block atomic='true'>\r
+                <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                    <parameter name='contextPrefix' value='prop' />\r
+                    <outcome value='success'>\r
+                        <block atomic='true'>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: read properties file."/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: Could not read properties file."/>\r
+                                <parameter name="field3" value='`$prop.restapi.pm.getpolicy.templatefile`'/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='501' />\r
+                                <parameter name='error-message' value='naming-policy-generate-name: could not read generic-resource-api properties' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </execute>\r
+                <switch test='`$naming-policy-generate-name-input.naming-type`'>\r
+                    <outcome value='VM'>\r
+                        <set>\r
+                            <parameter name='table-name' value="NAMING_POLICY_VM_NAME_INDEX" />\r
+                            <parameter name='table-type' value="VM_INSTANCE" />\r
+                            <parameter name='table-prefix-column' value="vm_name_prefix" />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='VNFC'>\r
+                        <switch test='`$naming-policy-generate-name-input.vm-name`'>\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: input.naming-type is VNFC but input.vm-name is not set"/>\r
+                                    </record>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='505' />\r
+                                        <parameter name='error-message' value='naming-policy-generate-name: input.naming-type is VNFC but input.vm-name is not set' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='table-name' value="NAMING_POLICY_VNFC_NAME_INDEX" />\r
+                                    <parameter name='table-type' value="VNFC_INSTANCE" />\r
+                                    <parameter name='table-prefix-column' value="vnfc_name_prefix" />\r
+                                    <parameter name='seq-length' value="0" />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                    <outcome value='VNF'>\r
+                        <set>\r
+                            <parameter name='table-name' value="VNF_NAME_INDEX" />\r
+                            <parameter name='table-type' value="VNF_INSTANCE" />\r
+                            <parameter name='table-prefix-column' value="vnf_name_prefix" />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='NETWORK'>\r
+                        <set>\r
+                            <parameter name='table-name' value="NETWORK_INSTANCE_NAME_INDEX" />\r
+                            <parameter name='table-type' value="NETWORK_INSTANCE" />\r
+                            <parameter name='table-prefix-column' value="network_instance_name_prefix" />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='SERVICE'>\r
+                        <set>\r
+                            <parameter name='table-name' value="SERVICE_INSTANCE_NAME_INDEX" />\r
+                            <parameter name='table-type' value="SERVICE_INSTANCE" />\r
+                            <parameter name='table-prefix-column' value="service_instance_name_prefix" />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: invalid input.naming-type."/>\r
+                                <parameter name="field3" value='`$naming-policy-generate-name-input.naming-type`'/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='503' />\r
+                                <parameter name='error-message' value='naming-policy-generate-name: Invalid input.naming-type' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test='`$naming-policy-generate-name-input.policy-instance-name`'>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <switch test='`$naming-policy-generate-name-input.action`'>\r
+                                <outcome value='Other'>\r
+                                    <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: input.policy-instance-name is not set but input.policy is not ASSIGN"/>\r
+                                    </record>\r
+                                </outcome>\r
+                                <outcome value='ASSIGN'>\r
+                                    <block>\r
+                                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="LAINA: naming-policy-generate-name: input.policy-instance-name is not set and input.policy is ASSIGN"/>\r
+                                        </record>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='507' />\r
+                                            <parameter name='error-message' value='naming-policy-generate-name: input.policy-instance-name is not set and input.policy is ASSIGN' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test='`$naming-policy-generate-name-input.query-parameter`'>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: input.vfc-customization-uuid is not set"/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+                <switch test='`$naming-policy-generate-name-input.action`'>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: input.action is not set or invalid"/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <block>\r
+                            <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="LAINA: naming-policy-generate-name: input.action is not set or invalid"/>\r
+                            </record>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='ASSIGN | DELETE'></outcome>\r
+                </switch>\r
+            </block>\r
+            <switch test='`$naming-policy-generate-name-input.action`'>\r
+                <outcome value='ASSIGN'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='tmp.policy-name' value="`$naming-policy-generate-name-input.policy-instance-name`" />\r
+                        </set>\r
+                        <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: naming-policy-generate-name: restapi-call-node Call Policy Manager getPolicy"/>\r
+                        </record>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />\r
+                            <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />\r
+                            <parameter name='format' value='json' />\r
+                            <parameter name='httpMethod' value='POST' />\r
+                            <parameter name='customHttpHeaders'\r
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
+                            <parameter name="responsePrefix" value="tmp.pm-response" />\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: Error calling Policy Manager getPolicy"/>\r
+                                    </record>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='502' />\r
+                                        <parameter name='error-message' value='naming-policy-generate-name: getPolicy call to Policy Manger failed' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: getPolicy SUCCESS"/>\r
+                                        <parameter name='field3' value='`$tmp.pm-response.type`' />\r
+                                        <parameter name='field4' value='`$tmp.pm-response.matchingConditions`' />\r
+                                        <parameter name='field5' value='`$tmp.pm-response.config`' />\r
+                                        <parameter name='field6' value='`$tmp.pm-response.response-code`' />\r
+                                        <parameter name='field7' value='`$tmp.pm-response.response-message`' />\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-config' value="`$tmp.pm-response.config`" />\r
+                                    </set>\r
+                                    <switch test='`$tmp.pm-response.response-code`'>\r
+                                        <outcome value='500'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: Error calling Policy Manager getPolicy"/>\r
+                                                </record>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='502' />\r
+                                                    <parameter name='error-message' value='naming-policy-generate-name: getPolicy call to Policy Manger failed' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='vnf-name' value="`$naming-policy-generate-name-input.generic-vnf-name`" />\r
+                            <parameter name='constant-tag' value="`$naming-policy-generate-name-input.constant-tag`" />\r
+                            <parameter name='sequence' value="`$naming-policy-generate-name-input.sequence`" />\r
+                        </set>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: naming-policy-generate-name: call jsonStringToCtx"/>\r
+                            <parameter name='field3' value='`$naming-policy-config`' />\r
+                        </record>\r
+                        <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                            <parameter name="source" value="naming-policy-config" />\r
+                            <parameter name="outputPath" value="jsonContextPrefix" />\r
+                            <parameter name="isEscaped" value="true" />\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: Error calling jsonStringToCtx"/>\r
+                                    </record>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='504' />\r
+                                        <parameter name='error-message' value='naming-policy-generate-name: failed to parse Policy Manger getPolicy response' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block atomic='true'>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: jsonStringToCtx SUCCESS: policy-instance-name|naming-models_length|constructed-name:"/>\r
+                                        <parameter name='field3' value='`$jsonContextPrefix.content.policy-instance-name`' />\r
+                                        <parameter name='field4' value='`$jsonContextPrefix.content.naming-models_length`' />\r
+                                        <parameter name='field5' value='`$constructed-name`' />\r
+                                    </record>\r
+                                    <for index='modelsIndex' start='0' end='`$jsonContextPrefix.content.naming-models_length`' >\r
+                                        <block atomic='true'>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: modelsIndex|naming-type|naming-recipe:"/>\r
+                                                <parameter name='field3' value='`$modelsIndex`' />\r
+                                                <parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-type`' />\r
+                                                <parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-recipe`' />\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='naming-recipe' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-recipe`'  />\r
+                                                <parameter name='naming-type' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-type`'  />\r
+                                            </set>\r
+                                            <switch test='`$naming-type`'>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='504' />\r
+                                                        <parameter name='error-message' value='naming-policy-generate-name: naming-type in policy is blank' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$naming-recipe`'>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='504' />\r
+                                                        <parameter name='error-message' value='naming-policy-generate-name: naming-recipe in policy is blank' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$naming-type == $naming-policy-generate-name-input.naming-type`'>\r
+                                                <outcome value='true'>\r
+                                                    <block atomic='true'>\r
+                                                        <set>\r
+                                                            <parameter name='original-name' value='`$naming-recipe`' />\r
+                                                        </set>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                            <parameter name="original_string" value="`$original-name`" />\r
+                                                            <parameter name="regex" value="\|"/>\r
+                                                            <parameter name="limit" value="10" />\r
+                                                            <parameter name="ctx_memory_result_key" value="namingRecipeSplits" />\r
+                                                        </execute>\r
+                                                        <for index='sectionIndex' start='0' end='`$namingRecipeSplits_length`' >\r
+                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                <parameter name="logger" value="message-log"/>\r
+                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: Split naming-recipe sectionIndex|section value"/>\r
+                                                                <parameter name="field3" value="`$sectionIndex`" />\r
+                                                                <parameter name="field4" value="`$namingRecipeSplits[$sectionIndex]`" />\r
+                                                            </record>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='section-value' value="`$namingRecipeSplits[$sectionIndex]`"  />\r
+                                                                </set>\r
+                                                                <for index='propertiesIndex' start='0' end='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties_length`' >\r
+                                                                    <block>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                                            <parameter name="source" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`" />\r
+                                                                            <parameter name="outputPath" value="property-name-trimmed" />\r
+                                                                        </execute>\r
+                                                                        <set>\r
+                                                                            <!--<parameter name='property-name' value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`"  />-->\r
+                                                                            <parameter name='property-name' value="`$property-name-trimmed`"  />\r
+                                                                        </set>\r
+                                                                        <switch test='`$property-name == $section-value`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block>\r
+                                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: recipe section match: section-value|property-name:"/>\r
+                                                                                        <parameter name="field3" value="`$section-value`" />\r
+                                                                                        <parameter name="field4" value="`$property-name`" />\r
+                                                                                    </record>\r
+                                                                                    <block>\r
+                                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                            <parameter name="field2" value="LAINA: naming-policy-generate-name: propertiesIndex|source-endpoint|source-system|property-name:"/>\r
+                                                                                            <parameter name='field3' value='`$propertiesIndex`' />\r
+                                                                                            <parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-endpoint`' />\r
+                                                                                            <parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-system`' />\r
+                                                                                            <parameter name='field6' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`' />\r
+                                                                                        </record>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='source-system' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-system`'  />\r
+                                                                                            <parameter name='source-endpoint' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].source-endpoint`'  />\r
+                                                                                            <parameter name='property-name' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`'  />\r
+                                                                                            <parameter name='property-value' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-value`'  />\r
+                                                                                        </set>\r
+                                                                                        <switch test='`$property-value`'>\r
+                                                                                            <outcome value=''>\r
+                                                                                                <block>\r
+                                                                                                    <switch test='`$source-system`'>\r
+                                                                                                        <outcome value="MD-SAL">\r
+                                                                                                            <block>\r
+                                                                                                                <switch test='`$property-name`'>\r
+                                                                                                                    <outcome value="VMNAME">\r
+                                                                                                                        <switch test='`$naming-policy-generate-name-input.vm-name`'>\r
+                                                                                                                            <outcome value=''>\r
+                                                                                                                                <block>\r
+                                                                                                                                    <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: required input.vm-name is not set"/>\r
+                                                                                                                                    </record>\r
+                                                                                                                                    <return status='failure'>\r
+                                                                                                                                        <parameter name='error-code' value='506' />\r
+                                                                                                                                        <parameter name='error-message' value='naming-policy-generate-name: required input.vm-name is not set' />\r
+                                                                                                                                    </return>\r
+                                                                                                                                </block>\r
+                                                                                                                            </outcome>\r
+                                                                                                                            <outcome value='Other'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="resolved-source-endpoint" value="`$naming-policy-generate-name-input.vm-name`" />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value="VNFNAME">\r
+                                                                                                                        <switch test='`$naming-policy-generate-name-input.vnf-name`'>\r
+                                                                                                                            <outcome value=''>\r
+                                                                                                                                <block>\r
+                                                                                                                                    <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: required input.vnf-name is not set"/>\r
+                                                                                                                                    </record>\r
+                                                                                                                                    <return status='failure'>\r
+                                                                                                                                        <parameter name='error-code' value='506' />\r
+                                                                                                                                        <parameter name='error-message' value='naming-policy-generate-name: required input.vnf-name is not set' />\r
+                                                                                                                                    </return>\r
+                                                                                                                                </block>\r
+                                                                                                                            </outcome>\r
+                                                                                                                            <outcome value='Other'>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="resolved-source-endpoint" value="`$naming-policy-generate-name-input.vnf-name`" />\r
+                                                                                                                                </set>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </outcome>\r
+                                                                                                                    <outcome value='Other'>\r
+                                                                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\r
+                                                                                                                            <parameter name="source" value="`$source-endpoint`" />\r
+                                                                                                                            <!--<parameter name="source" value="`$naming-policy-generate-name-input.test-source-endpoint-path`" />-->\r
+                                                                                                                            <parameter name="outputPath" value="resolved-source-endpoint" />\r
+                                                                                                                        </execute>\r
+                                                                                                                    </outcome>\r
+                                                                                                                </switch>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name="name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                    <parameter name="value-var" value="`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />\r
+                                                                                                                    <parameter name="new-part" value="`$resolved-source-endpoint` " />\r
+                                                                                                                    <!--<parameter name="new-part" value="`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />-->\r
+                                                                                                                </set>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name="constructed-name" value="`$constructed-name + $new-part` "  />\r
+                                                                                                                </set>\r
+                                                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system MD-SAL name-value pair|new-part|constructed-name:"/>\r
+                                                                                                                    <parameter name="field3" value="`$name-var`" />\r
+                                                                                                                    <parameter name="field4" value="`$value-var`" />\r
+                                                                                                                    <parameter name="field5" value="`$new-part`" />\r
+                                                                                                                    <parameter name="field6" value="`$constructed-name`" />\r
+                                                                                                                </record>\r
+                                                                                                            </block>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value="CONTEXT">\r
+                                                                                                            <block>\r
+                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\r
+                                                                                                                    <parameter name="source" value="`$source-endpoint`" />\r
+                                                                                                                    <parameter name="outputPath" value="resolved-source-endpoint" />\r
+                                                                                                                </execute>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name="name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                    <parameter name="value-var" value="`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />\r
+                                                                                                                    <parameter name="new-part" value="`$resolved-source-endpoint` " />\r
+                                                                                                                    <!--<parameter name="new-part" value="`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />-->\r
+                                                                                                                </set>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name="constructed-name" value="`$constructed-name + $new-part` "  />\r
+                                                                                                                </set>\r
+                                                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|new-part|constructed-name:"/>\r
+                                                                                                                    <parameter name="field3" value="`$name-var`" />\r
+                                                                                                                    <parameter name="field4" value="`$value-var`" />\r
+                                                                                                                    <parameter name="field5" value="`$new-part`" />\r
+                                                                                                                    <parameter name="field6" value="`$constructed-name`" />\r
+                                                                                                                </record>\r
+                                                                                                            </block>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value="TOSCA">\r
+                                                                                                            <switch test='`$naming-policy-generate-name-input.query-parameter`'>\r
+                                                                                                                <outcome value=''>\r
+                                                                                                                    <block>\r
+                                                                                                                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                            <parameter name="field2" value="LAINA: naming-policy-generate-name: input.query-parameter is not set"/>\r
+                                                                                                                        </record>\r
+                                                                                                                        <return status='failure'>\r
+                                                                                                                            <parameter name='error-code' value='506' />\r
+                                                                                                                            <parameter name='error-message' value='naming-policy-generate-name: input.query-parameter is not set' />\r
+                                                                                                                        </return>\r
+                                                                                                                    </block>\r
+                                                                                                                </outcome>\r
+                                                                                                                <outcome value='Other'>\r
+                                                                                                                    <execute plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' method='parameterizedQuery' emitsOutcome='true' >\r
+                                                                                                                        <!--<parameter name='query' value='select nfc_naming_code from VFC_MODEL where customization_uuid = ?' />-->\r
+                                                                                                                        <parameter name='query' value="`$source-endpoint`" />\r
+                                                                                                                        <parameter name='prefix' value='queryPfx' />\r
+                                                                                                                        <parameter name='param1' value="`$naming-policy-generate-name-input.query-parameter`" />\r
+                                                                                                                        <outcome value='not-found'>\r
+                                                                                                                            <return status='failure'>\r
+                                                                                                                                <parameter name='error-code' value='514' />\r
+                                                                                                                                <parameter name='error-message' value='naming-policy-generate-name query-parameter not found in DB table'/>\r
+                                                                                                                            </return>\r
+                                                                                                                        </outcome>\r
+                                                                                                                        <outcome value='failure'>\r
+                                                                                                                            <return status='failure'>\r
+                                                                                                                                <parameter name='error-code' value='515' />\r
+                                                                                                                                <parameter name='error-message' value='naming-policy-generate-name database access failure'/>\r
+                                                                                                                            </return>\r
+                                                                                                                        </outcome>\r
+                                                                                                                        <outcome value='success'>\r
+                                                                                                                            <block>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='original-name' value='`$source-endpoint`' />\r
+                                                                                                                                </set>\r
+                                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                                                                    <parameter name="original_string" value="`$original-name`" />\r
+                                                                                                                                    <parameter name="regex" value=" "/>\r
+                                                                                                                                    <parameter name="limit" value="10" />\r
+                                                                                                                                    <parameter name="ctx_memory_result_key" value="sourceEndpointSplits" />\r
+                                                                                                                                </execute>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="query-parameter-name-underbars" value="`$sourceEndpointSplits[1]`"  />\r
+                                                                                                                                </set>\r
+                                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                                                                                                    <parameter name="source" value="`$query-parameter-name-underbars`"/>\r
+                                                                                                                                    <parameter name="outputPath" value="tmp.query-parameter-name-dashes"/>\r
+                                                                                                                                    <parameter name="target" value="_"/>\r
+                                                                                                                                    <parameter name="replacement" value="-"/>\r
+                                                                                                                                </execute>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="full-query-param-name" value="`'queryPfx.' + $tmp.query-parameter-name-dashes`" />\r
+                                                                                                                                </set>\r
+                                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\r
+                                                                                                                                    <parameter name="source" value="`$full-query-param-name`" />\r
+                                                                                                                                    <parameter name="outputPath" value="resolved-query-parameter" />\r
+                                                                                                                                </execute>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                                    <parameter name="value-var" value="`$property-name + '-' + $resolved-query-parameter`" />\r
+                                                                                                                                    <parameter name="new-part" value="`$resolved-query-parameter` " />\r
+                                                                                                                                </set>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name="constructed-name" value="`$constructed-name + $new-part` "  />\r
+                                                                                                                                </set>\r
+                                                                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system TOSCA name-value pair|new-part|constructed-name:"/>\r
+                                                                                                                                    <parameter name="field3" value="`$name-var`" />\r
+                                                                                                                                    <parameter name="field4" value="`$value-var`" />\r
+                                                                                                                                    <parameter name="field5" value="`$new-part`" />\r
+                                                                                                                                    <parameter name="field6" value="`$constructed-name`" />\r
+                                                                                                                                </record>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </execute>\r
+                                                                                                                </outcome>\r
+                                                                                                            </switch>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value="AAI">\r
+                                                                                                            <block>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name='original-name' value='`$source-endpoint`' />\r
+                                                                                                                </set>\r
+                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                                                    <parameter name="original_string" value="`$original-name`" />\r
+                                                                                                                    <parameter name="regex" value="\|"/>\r
+                                                                                                                    <parameter name="limit" value="10" />\r
+                                                                                                                    <parameter name="ctx_memory_result_key" value="aaiSourceEndpointRegionKeySplits" />\r
+                                                                                                                </execute>\r
+                                                                                                                <set>\r
+                                                                                                                    <parameter name="resource" value="`$aaiSourceEndpointRegionKeySplits[0]`"  />\r
+                                                                                                                    <parameter name="keys" value="`$aaiSourceEndpointRegionKeySplits[1]`"  />\r
+                                                                                                                    <parameter name='aai-constructed-name' value=""  />\r
+                                                                                                                </set>\r
+                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                                                    <parameter name="original_string" value="`$keys`" />\r
+                                                                                                                    <parameter name="regex" value="\:"/>\r
+                                                                                                                    <parameter name="limit" value="10" />\r
+                                                                                                                    <parameter name="ctx_memory_result_key" value="aaiSourceEndpointKeySplits" />\r
+                                                                                                                </execute>\r
+                                                                                                                <for index='keyIndex' start='0' end='`$aaiSourceEndpointKeySplits_length`' >\r
+                                                                                                                    <block>\r
+                                                                                                                        <set>\r
+                                                                                                                            <parameter name='key-value' value="`$aaiSourceEndpointKeySplits[$keyIndex]`"  />\r
+                                                                                                                        </set>\r
+                                                                                                                        <for index='propIndex' start='0' end='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties_length`' >\r
+                                                                                                                            <block>\r
+                                                                                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                                                                                                    <parameter name="source" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`" />\r
+                                                                                                                                    <parameter name="outputPath" value="property-name-trimmed" />\r
+                                                                                                                                </execute>\r
+                                                                                                                                <set>\r
+                                                                                                                                    <!--<parameter name='property-name' value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].property-name`"  />-->\r
+                                                                                                                                    <parameter name='property-name' value="`$property-name-trimmed`"  />\r
+                                                                                                                                </set>\r
+                                                                                                                                <switch test='`$property-name == $key-value`'>\r
+                                                                                                                                    <outcome value='true'>\r
+                                                                                                                                        <block>\r
+                                                                                                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                                <parameter name="logger" value="message-log"/>\r
+                                                                                                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: key match: key-value|property-name:"/>\r
+                                                                                                                                                <parameter name="field3" value="`$key-value`" />\r
+                                                                                                                                                <parameter name="field4" value="`$property-name`" />\r
+                                                                                                                                            </record>\r
+                                                                                                                                            <block>\r
+                                                                                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: propertiesIndex|source-endpoint|source-system|property-name:"/>\r
+                                                                                                                                                    <parameter name='field3' value='`$propertiesIndex`' />\r
+                                                                                                                                                    <parameter name='field4' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-endpoint`' />\r
+                                                                                                                                                    <parameter name='field5' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-system`' />\r
+                                                                                                                                                    <parameter name='field6' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`' />\r
+                                                                                                                                                </record>\r
+                                                                                                                                                <set>\r
+                                                                                                                                                    <parameter name='source-system' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-system`'  />\r
+                                                                                                                                                    <parameter name='source-endpoint' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].source-endpoint`'  />\r
+                                                                                                                                                    <parameter name='property-name' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-name`'  />\r
+                                                                                                                                                    <parameter name='property-value' value='`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propIndex].property-value`'  />\r
+                                                                                                                                                </set>\r
+                                                                                                                                                <switch test='`$property-value`'>\r
+                                                                                                                                                    <outcome value=''>\r
+                                                                                                                                                        <block>\r
+                                                                                                                                                            <switch test='`$source-system`'>\r
+                                                                                                                                                                <outcome value="CONTEXT">\r
+                                                                                                                                                                    <block>\r
+                                                                                                                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='getAttributeValue' >\r
+                                                                                                                                                                            <parameter name="source" value="`$source-endpoint`" />\r
+                                                                                                                                                                            <parameter name="outputPath" value="resolved-source-endpoint" />\r
+                                                                                                                                                                        </execute>\r
+                                                                                                                                                                        <set>\r
+                                                                                                                                                                            <parameter name="aai-name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                                                                            <parameter name="aai-value-var" value="`$property-name + '-' + $naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />\r
+                                                                                                                                                                            <parameter name="aai-new-part" value="`$resolved-source-endpoint` " />\r
+                                                                                                                                                                            <!--<parameter name="new-part" value="`$naming-policy-generate-name-input.test-source-endpoint-resolved-value` " />-->\r
+                                                                                                                                                                        </set>\r
+                                                                                                                                                                        <switch test='`$aai-constructed-name`'>\r
+                                                                                                                                                                            <outcome value=''>\r
+                                                                                                                                                                                <set>\r
+                                                                                                                                                                                    <parameter name="aai-constructed-name" value="`$aai-new-part `"  />\r
+                                                                                                                                                                                </set>\r
+                                                                                                                                                                            </outcome>\r
+                                                                                                                                                                            <outcome value='Other'>\r
+                                                                                                                                                                                <set>\r
+                                                                                                                                                                                    <parameter name="aai-constructed-name" value="`$aai-constructed-name + '|' + $aai-new-part`"  />\r
+                                                                                                                                                                                </set>\r
+                                                                                                                                                                            </outcome>\r
+                                                                                                                                                                        </switch>\r
+                                                                                                                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                                                                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                                                            <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|aai-new-part|aai-constructed-name:"/>\r
+                                                                                                                                                                            <parameter name="field3" value="`$aai-name-var`" />\r
+                                                                                                                                                                            <parameter name="field4" value="`$aai-value-var`" />\r
+                                                                                                                                                                            <parameter name="field5" value="`$aai-new-part`" />\r
+                                                                                                                                                                            <parameter name="field6" value="`$aai-constructed-name`" />\r
+                                                                                                                                                                        </record>\r
+                                                                                                                                                                    </block>\r
+                                                                                                                                                                </outcome>\r
+                                                                                                                                                            </switch>\r
+                                                                                                                                                        </block>\r
+                                                                                                                                                    </outcome>\r
+                                                                                                                                                    <outcome value='Other'>\r
+                                                                                                                                                        <block>\r
+                                                                                                                                                            <set>\r
+                                                                                                                                                                <!-- until PM is passing the correct source-endpoint for memory value, \r
+     use one passed via executeDG test\r
+\r
+<parameter name="`$propertiesIndex` + '-naming-property-value'" value="` $property-name + '-' + $source-endpoint `"  />\r
+-->\r
+                                                                                                                                                                <parameter name="aai-name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                                                                <parameter name="aai-value-var" value="`$property-name + '-' + $property-value` " />\r
+                                                                                                                                                                <parameter name="aai-new-part" value="`$property-value` " />\r
+                                                                                                                                                            </set>\r
+                                                                                                                                                            <switch test='`$aai-constructed-name`'>\r
+                                                                                                                                                                <outcome value=''>\r
+                                                                                                                                                                    <set>\r
+                                                                                                                                                                        <parameter name="aai-constructed-name" value="`$aai-new-part `"  />\r
+                                                                                                                                                                    </set>\r
+                                                                                                                                                                </outcome>\r
+                                                                                                                                                                <outcome value='Other'>\r
+                                                                                                                                                                    <set>\r
+                                                                                                                                                                        <parameter name="aai-constructed-name" value="`$aai-constructed-name + '|' + $aai-new-part`"  />\r
+                                                                                                                                                                    </set>\r
+                                                                                                                                                                </outcome>\r
+                                                                                                                                                            </switch>\r
+                                                                                                                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                                                                <parameter name="logger" value="message-log"/>\r
+                                                                                                                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system CONTEXT name-value pair|aai-new-part|aai-constructed-name:"/>\r
+                                                                                                                                                                <parameter name="field3" value="`$aai-name-var`" />\r
+                                                                                                                                                                <parameter name="field4" value="`$aai-value-var`" />\r
+                                                                                                                                                                <parameter name="field5" value="`$aai-new-part`" />\r
+                                                                                                                                                                <parameter name="field6" value="`$aai-constructed-name`" />\r
+                                                                                                                                                            </record>\r
+                                                                                                                                                        </block>\r
+                                                                                                                                                    </outcome>\r
+                                                                                                                                                </switch>\r
+                                                                                                                                            </block>\r
+                                                                                                                                        </block>\r
+                                                                                                                                    </outcome>\r
+                                                                                                                                </switch>\r
+                                                                                                                            </block>\r
+                                                                                                                        </for>\r
+                                                                                                                    </block>\r
+                                                                                                                </for>\r
+                                                                                                                <block>\r
+                                                                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                                                                                        <parameter name="original_string" value="`$aai-constructed-name`" />\r
+                                                                                                                        <parameter name="regex" value="\|"/>\r
+                                                                                                                        <parameter name="limit" value="10" />\r
+                                                                                                                        <parameter name="ctx_memory_result_key" value="aaiQueryKeySplits" />\r
+                                                                                                                    </execute>\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name="`'tmp.' + $aaiSourceEndpointKeySplits[0]`" value= "`$aaiQueryKeySplits[0]`"/>\r
+                                                                                                                        <parameter name="`'tmp.' + $aaiSourceEndpointKeySplits[1]`" value="`$aaiQueryKeySplits[1]`" />\r
+                                                                                                                        <parameter name="`'tmp.' + $aaiSourceEndpointKeySplits[2]`" value="`$aaiQueryKeySplits[2]`" />\r
+                                                                                                                        <!--<parameter name="aaiQueryKeyPart1" value="cloud-region.cloud-owner = 'att-aic' AND " />-->\r
+                                                                                                                        <parameter name="aaiQueryKeyPart1" value="`$aaiSourceEndpointKeySplits[0]`"/>\r
+                                                                                                                        <parameter name="aaiQueryKeyPart2" value=" = '" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart3" value="`$aaiQueryKeySplits[0]`" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart4" value="' AND " />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart5" value="`$aaiSourceEndpointKeySplits[1]`"/>\r
+                                                                                                                        <parameter name="aaiQueryKeyPart6" value=" = '" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart7" value="`$aaiQueryKeySplits[1]`" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart8" value="' AND " />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart9" value="`$aaiSourceEndpointKeySplits[2]`"/>\r
+                                                                                                                        <parameter name="aaiQueryKeyPart10" value=" = '" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart11" value="`$aaiQueryKeySplits[2]`" />\r
+                                                                                                                        <parameter name="aaiQueryKeyPart12" value="'" />\r
+                                                                                                                        <parameter name="aaiQueryKey" value="`$aaiQueryKeyPart1 + $aaiQueryKeyPart2 + $aaiQueryKeyPart3 + $aaiQueryKeyPart4 + $aaiQueryKeyPart5 + $aaiQueryKeyPart6 + $aaiQueryKeyPart7 + $aaiQueryKeyPart8 + $aaiQueryKeyPart9 + $aaiQueryKeyPart10 + $aaiQueryKeyPart11 + $aaiQueryKeyPart12 `" />\r
+                                                                                                                        <!-- works without single quotes <parameter name="aaiQueryKey" value="`'cloud-region.cloud-owner = att-aic AND ' + $aaiSourceEndpointKeySplits[0] + ' = ' + $aaiQueryKeySplits[0] + ' AND ' + $aaiSourceEndpointKeySplits[1] + ' = ' + $aaiQueryKeySplits[1]`" />-->\r
+                                                                                                                        <!-- key="cloud-region.cloud-owner = '$a' AND cloud-region.cloud-region-id = '$b' AND tenant.tenant-id = '$c' AND vserver.vserver-id = '$d'" -->\r
+                                                                                                                        <!--<parameter name="`'get-data-from-policy-output[' + $policyDataIndex + ']'`." value= '`$jsonContextPrefix.content.policy-data[$policyDataIndex].`' />-->\r
+                                                                                                                    </set>\r
+                                                                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: Call AAI query for keys aai-constructed-name|region|aaiQueryKey:"/>\r
+                                                                                                                        <parameter name="field3" value="`$aai-constructed-name`" />\r
+                                                                                                                        <parameter name="field4" value="`$resource`" />\r
+                                                                                                                        <parameter name="field5" value="`$aaiQueryKey`" />\r
+                                                                                                                    </record>\r
+                                                                                                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource='`$resource`'\r
+        key='`$aaiQueryKey`'\r
+        pfx="`'aai.' + $resource`" local-only='true' >\r
+                                                                                                                        <outcome value='success'>\r
+                                                                                                                            <block atomic="true">\r
+                                                                                                                                <set>\r
+                                                                                                                                    <parameter name='tmp.tenant-name' value='`$aai.tenant.tenant-name`' />\r
+                                                                                                                                </set>\r
+                                                                                                                            </block>\r
+                                                                                                                        </outcome>\r
+                                                                                                                        <outcome value='not-found'>\r
+                                                                                                                            <return status='failure'>\r
+                                                                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                                                                <parameter name="error-code" value="500" />\r
+                                                                                                                                <parameter name="error-message" value="Tenant not found in AAI" />\r
+                                                                                                                            </return>\r
+                                                                                                                        </outcome>\r
+                                                                                                                        <outcome value='Other'>\r
+                                                                                                                            <return status='failure'>\r
+                                                                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                                                                <parameter name="error-code" value="500" />\r
+                                                                                                                                <parameter name="error-message" value="Tenant not found in AAI" />\r
+                                                                                                                            </return>\r
+                                                                                                                        </outcome>\r
+                                                                                                                    </get-resource>\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name="name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                                        <parameter name="value-var" value="`$property-name + '-' + $tmp.tenant-name`" />\r
+                                                                                                                        <parameter name="new-part" value="`$tmp.tenant-name` " />\r
+                                                                                                                    </set>\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name="constructed-name" value="`$constructed-name + $new-part` "  />\r
+                                                                                                                    </set>\r
+                                                                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: source-system AAI name-value pair|new-part|constructed-name:"/>\r
+                                                                                                                        <parameter name="field3" value="`$name-var`" />\r
+                                                                                                                        <parameter name="field4" value="`$value-var`" />\r
+                                                                                                                        <parameter name="field5" value="`$new-part`" />\r
+                                                                                                                        <parameter name="field6" value="`$constructed-name`" />\r
+                                                                                                                    </record>\r
+                                                                                                                </block>\r
+                                                                                                            </block>\r
+                                                                                                        </outcome>\r
+                                                                                                        <outcome value=''>\r
+                                                                                                            <block>\r
+                                                                                                                <set>\r
+                                                                                                                    <!-- until PM is passing the correct source-endpoint for memory value, \r
+     use one passed via executeDG test\r
+\r
+<parameter name="`$propertiesIndex` + '-naming-property-value'" value="` $property-name + '-' + $source-endpoint `"  />\r
+-->\r
+                                                                                                                    <parameter name="seq-scope" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.scope`" />\r
+                                                                                                                    <parameter name="seq-start-value" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.start-value` " />\r
+                                                                                                                    <parameter name="seq-length" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.length` " />\r
+                                                                                                                    <parameter name="seq-increment" value="`$jsonContextPrefix.content.naming-models[$modelsIndex].naming-properties[$propertiesIndex].increment-sequence.increment` " />\r
+                                                                                                                </set>\r
+                                                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: SDN-GC SEQUENCE info: scope|start-value|length|increment|constructed-name:"/>\r
+                                                                                                                    <parameter name="field3" value="`$seq-scope`" />\r
+                                                                                                                    <parameter name="field4" value="`$seq-start-value`" />\r
+                                                                                                                    <parameter name="field5" value="`$seq-length`" />\r
+                                                                                                                    <parameter name="field6" value="`$seq-increment`" />\r
+                                                                                                                    <parameter name="field7" value="`$constructed-name`" />\r
+                                                                                                                </record>\r
+                                                                                                            </block>\r
+                                                                                                        </outcome>\r
+                                                                                                    </switch>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='Other'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <!-- until PM is passing the correct source-endpoint for memory value, \r
+     use one passed via executeDG test\r
+\r
+<parameter name="`$propertiesIndex` + '-naming-property-value'" value="` $property-name + '-' + $source-endpoint `"  />\r
+-->\r
+                                                                                                        <parameter name="name-var" value="`$propertiesIndex + '-naming-property-value'`" />\r
+                                                                                                        <parameter name="value-var" value="`$property-name + '-' + $property-value` " />\r
+                                                                                                        <parameter name="new-part" value="`$property-value` " />\r
+                                                                                                    </set>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name="constructed-name" value="`$constructed-name + $new-part` "  />\r
+                                                                                                    </set>\r
+                                                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: property-value name-value pair|new-part|constructed-name:"/>\r
+                                                                                                        <parameter name="field3" value="`$name-var`" />\r
+                                                                                                        <parameter name="field4" value="`$value-var`" />\r
+                                                                                                        <parameter name="field5" value="`$new-part`" />\r
+                                                                                                        <parameter name="field6" value="`$constructed-name`" />\r
+                                                                                                    </record>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </block>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <block atomic='true'>\r
+                                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                <parameter name="logger" value="message-log"/>\r
+                                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: call generate-unique-name: constructed-name"/>\r
+                                                                <parameter name="field6" value="`$constructed-name`" />\r
+                                                            </record>\r
+                                                            <set>\r
+                                                                <!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->\r
+                                                                <parameter name='generate-unique-name-input.index-table-name' value="`$table-name`" />\r
+                                                                <parameter name='generate-unique-name-input.index-table-prefix-column' value="`$table-prefix-column`" />\r
+                                                                <!--<parameter name='generate-unique-name-input.name-table-type' value='VNFAPI_VM_INSTANCE' />-->\r
+                                                                <parameter name='generate-unique-name-input.name-table-type' value="`$table-type`" />\r
+                                                                <!--<parameter name='generate-unique-name-input.prefix' value="`$naming-policy-generate-name-input.nfc-naming-code`" /><parameter name='generate-unique-name-input.index-length' value='003' />-->\r
+                                                                <parameter name='generate-unique-name-input.prefix' value="`$constructed-name`" />\r
+                                                                <parameter name='generate-unique-name-input.index-length' value="`$seq-length`" />\r
+                                                                <parameter name='generate-unique-name-input.action' value="`$naming-policy-generate-name-input.action`" />\r
+                                                                <parameter name='generate-unique-name-input.context-id' value="`$naming-policy-generate-name-input.context-id`" />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' >\r
+                                                                <outcome value='failure'>\r
+                                                                    <block>\r
+                                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                            <parameter name="logger" value="message-log"/>\r
+                                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                            <parameter name="field2" value="LAINA: naming-policy-generate-name: Error calling generate-unique-name"/>\r
+                                                                        </record>\r
+                                                                        <return status='failure'>\r
+                                                                            <parameter name='ack-final' value='Y'/>\r
+                                                                            <parameter name="error-code" value="500" />\r
+                                                                            <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='success'>\r
+                                                                    <switch test='`$naming-type`'>\r
+                                                                        <outcome value="VM">\r
+                                                                            <!-- <outcome value="MD-SAL"> -->\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='naming-policy-generate-name-output.vm-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                                    <parameter name='constructed-name' value='' />\r
+                                                                                    <parameter name='seq-length' value='' />\r
+                                                                                </set>\r
+                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vm-name|generate-unique-name-output.generated-name:"/>\r
+                                                                                    <parameter name="field5" value="`$naming-policy-generate-name-output.vm-name`" />\r
+                                                                                    <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                                                                </record>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value="VNFC">\r
+                                                                            <!-- <outcome value="MD-SAL"> -->\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='naming-policy-generate-name-output.vnfc-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                                    <parameter name='constructed-name' value='' />\r
+                                                                                    <parameter name='seq-length' value='' />\r
+                                                                                </set>\r
+                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vnfc-name|generate-unique-name-output.generated-name:"/>\r
+                                                                                    <parameter name="field5" value="`$naming-policy-generate-name-output.vnfc-name`" />\r
+                                                                                    <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                                                                </record>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value="VNF">\r
+                                                                            <!-- <outcome value="MD-SAL"> -->\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='naming-policy-generate-name-output.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                                    <parameter name='constructed-name' value='' />\r
+                                                                                    <parameter name='seq-length' value='' />\r
+                                                                                </set>\r
+                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vnf-name|generate-unique-name-output.generated-name:"/>\r
+                                                                                    <parameter name="field5" value="`$naming-policy-generate-name-output.vnf-name`" />\r
+                                                                                    <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                                                                </record>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value="NETWORK">\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='naming-policy-generate-name-output.network-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                                    <parameter name='constructed-name' value='' />\r
+                                                                                    <parameter name='seq-length' value='' />\r
+                                                                                </set>\r
+                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: generated network-name|generate-unique-name-output.generated-name:"/>\r
+                                                                                    <parameter name="field5" value="`$naming-policy-generate-name-output.network-name`" />\r
+                                                                                    <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                                                                </record>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value="SERVICE">\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='naming-policy-generate-name-output.service-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                                    <parameter name='constructed-name' value='' />\r
+                                                                                    <parameter name='seq-length' value='' />\r
+                                                                                </set>\r
+                                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                                    <parameter name="field2" value="LAINA: naming-policy-generate-name: generated service-name|generate-unique-name-output.generated-name:"/>\r
+                                                                                    <parameter name="field5" value="`$naming-policy-generate-name-output.service-name`" />\r
+                                                                                    <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                                                                </record>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </outcome>\r
+                                                            </call>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: naming-type from returned policy does not match input.naming-type.  Do not construct name for: "/>\r
+                                                        <parameter name="field3" value="`$naming-type`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/naming-policy-generate-name.log' />\r
+                                    </execute>\r
+                                    <return status='success'>\r
+                                        <parameter name='naming-policy-generate-name-output.vm-name' value="`$naming-policy-generate-name-output.vm-name`" />\r
+                                        <parameter name='naming-policy-generate-name-output.vnfc-name' value="`$naming-policy-generate-name-output.vnfc-name`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='DELETE'>\r
+                    <block atomic='true'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="LAINA: naming-policy-generate-name: call generate-unique-name: constructed-name"/>\r
+                            <parameter name="field6" value="`$constructed-name`" />\r
+                        </record>\r
+                        <set>\r
+                            <!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->\r
+                            <parameter name='generate-unique-name-input.index-table-name' value="`$table-name`" />\r
+                            <parameter name='generate-unique-name-input.index-table-prefix-column' value="`$table-prefix-column`" />\r
+                            <!--<parameter name='generate-unique-name-input.name-table-type' value='VNFAPI_VM_INSTANCE' />-->\r
+                            <parameter name='generate-unique-name-input.name-table-type' value="`$table-type`" />\r
+                            <!--<parameter name='generate-unique-name-input.prefix' value="`$naming-policy-generate-name-input.nfc-naming-code`" /><parameter name='generate-unique-name-input.index-length' value='003' />-->\r
+                            <parameter name='generate-unique-name-input.prefix' value="`$constructed-name`" />\r
+                            <parameter name='generate-unique-name-input.index-length' value="`$seq-length`" />\r
+                            <parameter name='generate-unique-name-input.action' value="`$naming-policy-generate-name-input.action`" />\r
+                            <parameter name='generate-unique-name-input.context-id' value="`$naming-policy-generate-name-input.context-id`" />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-unique-name' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="LAINA: naming-policy-generate-name: Error calling generate-unique-name"/>\r
+                                    </record>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <switch test='`$naming-type`'>\r
+                                    <outcome value="VM">\r
+                                        <!-- <outcome value="MD-SAL"> -->\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-output.vm-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                <parameter name='constructed-name' value='' />\r
+                                                <parameter name='seq-length' value='' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vm-name|generate-unique-name-output.generated-name:"/>\r
+                                                <parameter name="field5" value="`$naming-policy-generate-name-output.vm-name`" />\r
+                                                <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="VNFC">\r
+                                        <!-- <outcome value="MD-SAL"> -->\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-output.vnfc-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                <parameter name='constructed-name' value='' />\r
+                                                <parameter name='seq-length' value='' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vnfc-name|generate-unique-name-output.generated-name:"/>\r
+                                                <parameter name="field5" value="`$naming-policy-generate-name-output.vnfc-name`" />\r
+                                                <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="VNF">\r
+                                        <!-- <outcome value="MD-SAL"> -->\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-output.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                <parameter name='constructed-name' value='' />\r
+                                                <parameter name='seq-length' value='' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: generated vnf-name|generate-unique-name-output.generated-name:"/>\r
+                                                <parameter name="field5" value="`$naming-policy-generate-name-output.vnf-name`" />\r
+                                                <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="NETWORK">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-output.network-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                <parameter name='constructed-name' value='' />\r
+                                                <parameter name='seq-length' value='' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: generated network-name|generate-unique-name-output.generated-name:"/>\r
+                                                <parameter name="field5" value="`$naming-policy-generate-name-output.network-name`" />\r
+                                                <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="SERVICE">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-output.service-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                <parameter name='constructed-name' value='' />\r
+                                                <parameter name='seq-length' value='' />\r
+                                            </set>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="LAINA: naming-policy-generate-name: generated service-name|generate-unique-name-output.generated-name:"/>\r
+                                                <parameter name="field5" value="`$naming-policy-generate-name-output.service-name`" />\r
+                                                <parameter name="field6" value="`$generate-unique-name-output.generated-name`" />\r
+                                            </record>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_naming-policy-generate-unique-name.xml
new file mode 100644 (file)
index 0000000..23aece7
--- /dev/null
@@ -0,0 +1,182 @@
+<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='naming-policy-generate-unique-name' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$generate-unique-name-input.action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.action not supplied' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='ASSIGN'>\r
+                    <block atomic="true">\r
+                        <switch test='`$generate-unique-name-input.context-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' \r
+       value="generate-unique-name-input.context-id cannot be null for ASSIGN action" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$generate-unique-name-input.name-table-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='generate-unique-name-output.error-message' value='generate-unique-name-input.name-table-type not supplied' />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='VNF_INSTANCE'>\r
+                                <set>\r
+                                    <parameter name='tmp.gname.custom-query-string' value='nodes/generic-vnfs?vnf-name=' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='VM_INSTANCE'>\r
+                                <set>\r
+                                    <parameter name='tmp.gname.custom-query-string' value='nodes/vservers?vserver-name=' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='NETWORK_INSTANCE'>\r
+                                <set>\r
+                                    <parameter name='tmp.gname.custom-query-string' value='nodes/l3-networks?network-name=' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='SERVICE_INSTANCE'>\r
+                                <set>\r
+                                    <parameter name='tmp.gname.custom-query-string' value='nodes/service-instances?service-instance-name=' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='VNFC_INSTANCE'>\r
+                                <set>\r
+                                    <parameter name='tmp.gname.custom-query-string' value='nodes/vnfcs?vnfc-name=' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='tmp.gun.nononap' value='NON-ONAP' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.gun.transient' value='TRANSIENT' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.grn.loop.flag' value='true' />\r
+                        </set>\r
+                        <while test='`$tmp.grn.loop.flag`'>\r
+                            <block atomic="true">\r
+                                <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
+                                    <outcome value='failure'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.grn.loop.flag' value='false' />\r
+                                            </set>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-message' \r
+       value="`'Encountered error in naming-policy-generate-unique-name: ' + \r
+               $generate-unique-name-output.error-message`" />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </call>\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value='`$generate-unique-name-output.generated-name`'/>\r
+                                    <parameter name="outputPath" value="encoded-name" />\r
+                                </execute>\r
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.nodes-query">\r
+                                    <parameter name="start[0]" value="`$tmp.gname.custom-query-string + \r
+                       $encoded-name`" />\r
+                                    <parameter name="start_length" value="1" />\r
+                                    <outcome value='not-found'>\r
+                                        <set>\r
+                                            <parameter name='tmp.grn.loop.flag' value='false' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='failure'>\r
+                                        <block atomic='true'>\r
+                                            <set>\r
+                                                <parameter name='tmp.grn.loop.flag' value='false' />\r
+                                            </set>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-message' \r
+       value="`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \r
+               + $tmp.context-id.nononap`" />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key="update GENERIC_RESOURCE_NAME set context_id = $tmp.gun.nononap  \r
+               WHERE type = $generate-unique-name-input.name-table-type \r
+               AND context_id = $tmp.gun.transient">\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-message' \r
+       value="`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \r
+               + $tmp.context-id.nononap`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-message' \r
+       value="`'No GENERIC_RESOURCE_NAME found with context_id = TRANSIENT and type = ' \r
+               + $generate-unique-name-input.name-table-type`"/>\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </update>\r
+                                    </outcome>\r
+                                </save>\r
+                            </block>\r
+                        </while>\r
+                        <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key="update GENERIC_RESOURCE_NAME set context_id = $generate-unique-name-input.context-id   \r
+               WHERE type = $generate-unique-name-input.name-table-type \r
+               AND name = $generate-unique-name-output.generated-name \r
+               AND context_id = $tmp.gun.transient">\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' \r
+       value="`'Error updating GENERIC_RESOURCE_NAME.context_id from TRANSIENT to ' \r
+               + $tmp.context-id.nononap`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' \r
+       value="`'No GENERIC_RESOURCE_NAME found with context_id = TRANSIENT and type = ' \r
+               + $generate-unique-name-input.name-table-type`"/>\r
+                                </return>\r
+                            </outcome>\r
+                        </update>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='DELETE'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='rollback-generated-names-input.naming-type' value='`$generate-unique-name-input.name-table-type`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='rollback-generated-names-input.context-id' value='`$generate-unique-name-input.context-id`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='rollback-generated-names' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' \r
+       value="`'Encountered error in rollback-generated-names: ' + \r
+               $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='generate-unique-name-output.error-message' value='Invalid generate-unique-name-input.action. Valid values are ASSIGN or DELETE' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index c8593b7..ed5130a 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-activate' mode='sync'>\r
-<block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+<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-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
-               key="l3-network.network-id = $network-topology-operation-input.network-information.network-id" \r
+               key="l3-network.network-id = $network-topology-operation-input.network-information.network-id AND \r
+                     depth = 'all'" \r
                local-only="false" \r
                pfx="aai.l3-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="404" />\r
-       <parameter name="error-message" value="network-id not found in AAI" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" /></return></outcome></get-resource><switch test='`$aai.l3-network.subnets.subnet_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="no networks found" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
-<block atomic="true"><get-resource\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="network-id not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$aai.l3-network.subnets.subnet_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="no networks found" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\r
+                        <outcome value=''>\r
+                            <switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
+                                            <block atomic="true">\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $aai.l3-network.network-id \r
+                       AND subnet.subnet-id = $aai.l3-network.subnets.subnet[$sidx].subnet-id" >\r
+                                                    <parameter name="orchestration-status" value="Active" />\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\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="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </update>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic="true">\r
+                                        <for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
+                                            <block atomic="true">\r
+                                                <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; "\r
         pfx='tmp.eipam-subnet-row'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Subnet not found in EIPAM_IP_SUBNETS - activate failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><set>\r
-       <parameter name="eipam-ip-block.entity-id" value="`$aai.l3-network.subnets.subnet[$sidx].subnet-id`"/>\r
-       <parameter name="eipam-ip-block.plans[0].plan-name" value="`$tmp.eipam-subnet-row.plan-name`"/>\r
-</set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />\r
-       </return></outcome></execute><save \r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet." />\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="Subnet not found in EIPAM_IP_SUBNETS - activate failed." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.entity-id" value="`$aai.l3-network.subnets.subnet[$sidx].subnet-id`"/>\r
+                                                                <parameter name="eipam-ip-block.plans[0].plan-name" value="`$tmp.eipam-subnet-row.plan-name`"/>\r
+                                                            </set>\r
+                                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">\r
+                                                                <outcome value='failure'>\r
+                                                                    <return status="failure">\r
+                                                                        <parameter name="error-code" value="500"/>\r
+                                                                        <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </execute>\r
+                                                            <save \r
        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
        resource='SQL'\r
        key="UPDATE EIPAM_IP_SUBNETS\r
              WHERE entity_id = $eipam-ip-block.entity-id ; "\r
     force='true'\r
         pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                                <outcome value='failure'>\r
+                                                                    <return status="failure">\r
+                                                                        <parameter name="error-code" value="500"/>\r
+                                                                        <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\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="An error occured while updating subnet to active in mysql." />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                                <outcome value='success'>\r
+                                                                    <block atomic='true'>\r
+                                                                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="subnet" \r
                key="l3-network.network-id = $aai.l3-network.network-id \r
                        AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
-<parameter name="orchestration-status" value="Created" />\r
-               <outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
-       </return></outcome></update></block></outcome></save></block></outcome></get-resource></block></for></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                                            <parameter name="orchestration-status" value="Active" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status="failure">\r
+                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                    <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\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="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
+                                                                                </return>\r
+                                                                            </outcome>\r
+                                                                        </update>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network collection activate failed" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
                key="l3-network.network-id = $aai.l3-network.network-id" >\r
-<parameter name="orchestration-status" value="Active" />       <outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network" />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network.  Network not found." />\r
-       </return></outcome></update><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
-</set><set>\r
-<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\r
-</set><set>\r
-<parameter name='network-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+                <parameter name="orchestration-status" value="Active" />\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network" />\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="Failure updating orchestration-status in AAI for l3-network.  Network not found." />\r
+                    </return>\r
+                </outcome>\r
+            </update>\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
+            </set>\r
+            <set>\r
+                <parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='network-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $network-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/networks/network/'\r
  + $networkId\r
  + '/network-data/network-topology/'` " />\r
\r
-</set><set>\r
-<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Created' />\r
-<parameter name='service-data.networks.network[$tmp.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[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+            </set>\r
+            <set>\r
+                <parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.networks.network[$tmp.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[$tmp.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="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-automated.xml
new file mode 100755 (executable)
index 0000000..4de5c5f
--- /dev/null
@@ -0,0 +1,1405 @@
+<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-automated' 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="tmp.error-message" value=""/>\r
+            </set>\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='network-data.service-information.ecomp-model-information.' value="`$s-onap-model-information.`" />\r
+                <parameter name='network-data.network-information.ecomp-model-information.' value="`$n-onap-model-information.`" />\r
+            </set>\r
+            <switch test='`$network-model.is-bound-to-vpn`'>\r
+                <outcome value='Y'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VPN_BINDINGS WHERE network_customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid'\r
+  pfx='vpn-bindings[]'>\r
+                            <outcome value='success'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='hasVpnBindings' value='true' />\r
+                                    </set>\r
+                                    <for index='vidx' start='0' end='`$vpn-bindings_length`' >\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 = $vpn-bindings[$vidx].binding-uuid"\r
+        pfx='aai.vpnBinding' local-only='false' >\r
+                                                <outcome value='success'>\r
+                                                    <block></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="`'No vpn binding found for network-model.vpn-binding=' \r
+    + $vpn-bindings[$vidx].binding-uuid`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic='true'>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.error-message" value="`'No vpn binding found for network-model.vpn-binding=' \r
+    + $vpn-bindings[$vidx].binding-uuid`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </for>\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="Network model is_bound_to_vpn=true but no vpn_binding is present"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                            <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="tmp.error-message" value="Unexpected error retrieving vpn binding"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                            <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.l3-network.network-id' value="`$tmp.return.generate-l3network-network-id.uuid`" />\r
+                <parameter name='tmp.l3-network.network-name' value="`$tmp.network-instance-name`" />\r
+                <parameter name='tmp.l3-network.network-type' value="`$network-model.network-type`" />\r
+                <parameter name='tmp.l3-network.network-role' value="`$network-model.network-role`" />\r
+                <parameter name='tmp.l3-network.network-technology' value="`$network-model.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.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.is-provider-network' value="`$network-model.is-provider-network`" />\r
+                <parameter name='tmp.l3-network.is-shared-network' value="`$network-model.is-shared-network`" />\r
+                <parameter name='tmp.l3-network.is-external-network' value="`$network-model.is-external-network`" />\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
+ + $network-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/networks/network/'\r
+ + $tmp.l3-network.network-id\r
+ + '/network-data/network-topology/'` " />\r
+            </set>\r
+            <switch test='`$network-model.is-provider-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.physical-network-name' value="`$network-model.physical-network-name`" />\r
+                        <parameter name='tmp.l3-network.is-provider-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.physical-network-name' value="" />\r
+                        <parameter name='tmp.l3-network.is-provider-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-shared-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-shared-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-shared-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-external-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-external-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-external-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-bound-to-vpn`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.complex-found' value='false' />\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND \r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' local-only='false' >\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="Cloud region not found in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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="Error retrieving cloud region from AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                <outcome value='0'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Cloud region missing relationships in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Cloud region missing relationships in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='false' index='ridx' start='0' end="`$aai.cloud-region.relationship-list.relationship_length`" >\r
+                <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                    <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                        <outcome value='complex.physical-location-id'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='tmp.complex-found' value='true' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='service-data.network-request-input.aic-clli' value='`$aai.complex.physical-location-id`' />\r
+                                </set>\r
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+        pfx='aai.complex' local-only='false' >\r
+                                    <outcome value='success'>\r
+                                        <block atomic="true">\r
+                                            <switch test='`$aai.complex.region`'>\r
+                                                <outcome value='USA'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='aai.complex.region' value='US' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='CALA'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='aai.complex.region' value='LA' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='CA'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='US'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='LA'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='EMEA'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='AP'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic='true'>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.error-message" value="Complex.region unknown"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\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="Complex not found in AAI"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-network - ' + $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="Error retrieving complex from AA"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test='`$tmp.complex-found`'>\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Complex not found in AAI"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.network-technology`'>\r
+                <outcome value='Contrail'>\r
+                    <block atomic="true">\r
+                        <switch test="`$network-model.use-ipv4`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test='`$network-model.eipam-v4-address-plan`'>\r
+                                        <outcome value='AIC_ATM_UNPROTECTED_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_ATM_PROTECTED_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_AIM_LANDING_NETWORK_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="error-code" value="500"/>\r
+                                                    <parameter name="tmp.error-message" value="Invalid address plan for VIPR"/>\r
+                                                </set>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500'/>\r
+                                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                    </return>\r
+                                                </block>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$network-model.use-ipv6`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test='`$network-model.eipam-v6-address-plan`'>\r
+                                        <outcome value='AIC_ATM_UNPROTECTED_V6'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_ATM_PROTECTED_V6'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_AIM_LANDING_NETWORK_V6'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="error-code" value="500"/>\r
+                                                    <parameter name="tmp.error-message" value="EIPAM V6 Address plan should be null"/>\r
+                                                </set>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500'/>\r
+                                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                    </return>\r
+                                                </block>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='AIC_SR_IOV'>\r
+                    <block atomic="true">\r
+                        <switch test="`$network-model.use-ipv4`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test='`$network-model.eipam-v4-address-plan`'>\r
+                                        <outcome value='AIC_DATA_PLANE_UNPROTECTED_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_DATA_PLANE_PROTECTED_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='AIC_DATA_PLANE_PRIVATE_V4'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="error-code" value="500"/>\r
+                                                    <parameter name="tmp.error-message" value="Invalid address plan for SRIOV"/>\r
+                                                </set>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500'/>\r
+                                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                    </return>\r
+                                                </block>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$network-model.use-ipv6`">\r
+                            <outcome value='Y'>\r
+                                <block atomic='true'>\r
+                                    <switch test='`$network-model.eipam-v6-address-plan`'>\r
+                                        <outcome value="AIC_ATM_UNPROTECTED_V6">\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_ATM_PROTECTED_V6">\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_UNPROTECTED_V6">\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PRIVATE_V6">\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value="AIC_DATA_PLANE_PROTECTED_V6">\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="error-code" value="500"/>\r
+                                                    <parameter name="tmp.error-message" value="Invalid ipv6 address plan for SRIOV"/>\r
+                                                </set>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500'/>\r
+                                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                    </return>\r
+                                                </block>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Invalid network-technology.  Only AIC_SR_IOV and Contrail are supported for network automated flow"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.process-eipam-action' value='assign' />\r
+            </set>\r
+            <!--tmp.level should be set to 1-->\r
+            <call module='GENERIC-RESOURCE-API' rpc='process-eipam-pools' mode='sync' ></call>\r
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                <parameter name="logger" value="message-log"/>\r
+                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                <parameter name="field4" value="Values after process-eipam"/>\r
+                <parameter name="field5" value="`level1-v4-mask`"/>\r
+                <parameter name="field6" value="`$tmp.l3-network.level1.v4.mask`"/>\r
+                <parameter name="field7" value="`level1-v4-ipprefix`"/>\r
+                <parameter name="field8" value="`$tmp.l3-network.level1.v4.ip-prefix`"/>\r
+                <parameter name="field9" value="`level1-v4-entity-id`"/>\r
+                <parameter name="field10" value="`$tmp.l3-network.level1.v4.entity-id`"/>\r
+                <parameter name="field11" value="`level2-v4-mask`"/>\r
+                <parameter name="field12" value="`$tmp.l3-network.level2.v4.mask`"/>\r
+                <parameter name="field13" value="`level2-v4-ipprefix`"/>\r
+                <parameter name="field14" value="`$tmp.l3-network.level2.v4.ip-prefix`"/>\r
+                <parameter name="field15" value="`level2-v4-entity-id`"/>\r
+                <parameter name="field16" value="`$tmp.l3-network.level2.v4.entity-id`"/>\r
+            </record>\r
+            <set>\r
+                <parameter name='v4.entity-id' value='`$tmp.l3-network.level2.v4.entity-id`' />\r
+                <parameter name='v4.ip-prefix' value='`$tmp.l3-network.level2.v4.ip-prefix`' />\r
+                <parameter name='v4.mask' value='`$tmp.l3-network.level2.v4.mask`' />\r
+                <parameter name='v6.entity-id' value='`$tmp.l3-network.level2.v6.entity-id`' />\r
+                <parameter name='v6.ip-prefix' value='`$tmp.l3-network.level2.v6.ip-prefix`' />\r
+                <parameter name='v6.mask' value='`$tmp.l3-network.level2.v6.mask`' />\r
+            </set>\r
+            <!--tmp.level should be set to 1-->\r
+            <call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.network-id' value="`$tmp.l3-network.network-name`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.network-name' value="`$tmp.l3-network.network-name`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.network-type' value="`$tmp.l3-network.network-type`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.network-role' value="`$tmp.l3-network.network-role`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.network-technology' value="`$tmp.l3-network.network-technology`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v4-address-plan' value="`$network-model.eipam-v4-address-plan`" />\r
+                <parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v6-address-plan' value="`$network-model.eipam-v6-address-plan`" />\r
+                <parameter name='tmp.network-topology.region-identifier.tenant' value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                <parameter name='tmp.network-topology.region-identifier.aic-cloud-region' value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
+                <parameter name='tmp.network-topology.region-identifier.aic-clli' value="`$network-topology-operation-input.network-request-input.aic-clli`" />\r
+                <parameter name='tmp.network-topology.onap-model-information.' value="`$network-topology-operation-input.network-information.onap-model-information.`" />\r
+                <parameter name='tmp.network-topology.network-parameters.' value="`$network-topology-operation-input.network-request-input.network-input-parameters.`" />\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.l3-network.network-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="`$tmp.l3-network.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-information.tenant`" />\r
+                        <parameter name="orchestration-status" value="PendingCreate" />\r
+                        <parameter name="persona-model-id" value="`$tmp.l3-network.persona-model-id`" />\r
+                        <parameter name="persona-model-version" value="`$tmp.l3-network.persona-model-version`" />\r
+                        <parameter name="persona-model-customization-id" value="`$tmp.l3-network.persona-model-customization-id`" />\r
+                        <parameter name="physical-network-name" value="`$tmp.l3-network.physical-network-name`" />\r
+                        <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                        <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                        <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                        <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                        <outcome value='failure'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $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="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.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="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.l3-network.network-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="`$tmp.l3-network.network-technology`" />\r
+                        <parameter name="is-bound-to-vpn" value="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                        <parameter name="service-id" value="`$tmp.l3-network.service-id`" />\r
+                        <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />\r
+                        <parameter name="orchestration-status" value="PendingCreate" />\r
+                        <parameter name="persona-model-id" value="`$tmp.l3-network.persona-model-id`" />\r
+                        <parameter name="persona-model-version" value="`$tmp.l3-network.persona-model-version`" />\r
+                        <parameter name="persona-model-customization-id" value="`$tmp.l3-network.persona-model-customization-id`" />\r
+                        <parameter name="physical-network-name" value="`$tmp.l3-network.physical-network-name`" />\r
+                        <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                        <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                        <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                        <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                        <outcome value='failure'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="tmp.error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $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="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                </set>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500'/>\r
+                                        <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                </outcome>\r
+            </switch>\r
+            <for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name="tmp.subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`"/>\r
+                    </set>\r
+                    <switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\r
+                        <outcome value='true'>\r
+                            <block atomic="true">\r
+                                <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                    <outcome value=''>\r
+                                        <block atomic='true'>\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.subnet-id" >\r
+                                                <!-- Create l3-network object -->\r
+                                                <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic='true'>\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.subnet-id" >\r
+                                                <!-- Create l3-network object -->\r
+                                                <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                    <outcome value=''>\r
+                                        <block atomic='true'>\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.subnet-id" >\r
+                                                <!-- Create l3-network object -->\r
+                                                <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic='true'>\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.subnet-id" >\r
+                                                <!-- Create l3-network object -->\r
+                                                <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                        </set>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500'/>\r
+                                                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test='`$hasVpnBindings`'>\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <for index='vidx' start='0' end='`$vpn-bindings_length`' >\r
+                            <block atomic='true'>\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="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="`$vpn-bindings[$vidx].binding-uuid`" />\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 vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                            </set>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500'/>\r
+                                                    <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                                </return>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </save>\r
+                            </block>\r
+                        </for>\r
+                    </block>\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>\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 network-id = ' + $tmp.l3-network.network-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 service instance relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                        </set>\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.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-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
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $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
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                            </return>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <switch test='`$network-model.network-technology`'>\r
+                <outcome value='AIC_SR_IOV'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="tmp.l3-network.segmentation-id" value="1"/>\r
+                        </set>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="segmentation-assignment" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id \r
+                       AND segmentation-assignment.segmentation-id = $tmp.l3-network.segmentation-id" >\r
+                            <!-- Create segmentation-assignment object -->\r
+                            <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                            <parameter name="segmentation-id" value="`$tmp.l3-network.segmentation-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 segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                            <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-network - ' + $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 segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                    </set>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                            <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $tmp.l3-network.network-id"></delete>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500'/>\r
+                                            <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </block>\r
+                            </outcome>\r
+                        </save>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\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-topology." value='$network-topology.' />\r
+                <parameter name="service-data.networks.network[$nidx].network-data.network-request-input." value='$x.' />\r
+                <parameter name="service-data.networks.network_length" value='`$nidx_len`' />\r
+            </set>\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
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-from-preload.xml b/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
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-assign-vlantagging-instancegroup.xml
new file mode 100755 (executable)
index 0000000..56c9f6a
--- /dev/null
@@ -0,0 +1,1097 @@
+<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-vlantagging-instancegroup' 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
+            <switch test="`$tmp.ngidx`">\r
+                <outcome value=''>\r
+                    <switch test='`$service-data.network-instance-groups.network-instance-group_len`'>\r
+                        <outcome value=''>\r
+                            <set>\r
+                                <parameter name='ngidx' value='0' />\r
+                                <parameter name='ngidx_len' value='1'/>\r
+                                <parameter name="ngnidx" value='0' />\r
+                                <parameter name="nig.preexists" value="false"/>\r
+                                <parameter name="nig.first-network" value="true"/>\r
+                                <parameter name="nig.networks.network_len" value="1" />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='ngidx' value='`$service-data.network-instance-groups.network-instance-group_length`' />\r
+                                <parameter name='ngidx_len' value='`$service-data.network-instance-groups.network-instance-group_length + 1`' />\r
+                                <parameter name="nig.preexists" value="false"/>\r
+                                <parameter name="ngnidx" value='0' />\r
+                                <parameter name="nig.first-network" value="true"/>\r
+                                <parameter name="nig.networks.network_len" value="1" />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='ngidx' value='`$tmp.ngidx`' />\r
+                            <parameter name='ngidx_len' value='`$service-data.network-instance-groups.network-instance-group_length`' />\r
+                            <parameter name="nig.preexists" value="false"/>\r
+                        </set>\r
+                        <switch test='`$ctx.network-instance-group-data.networks.network_len`'>\r
+                            <outcome value=''>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="nig.first-network" value="true" />\r
+                                        <parameter name="ngnidx" value="0" />\r
+                                        <parameter name="nig.networks.network_len" value="1" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='0'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="nig.first-network" value="true" />\r
+                                        <parameter name="ngnidx" value="0" />\r
+                                        <parameter name="nig.networks.network_len" value="1" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="nig." value="`$ctx.network-instance-group-data.`" />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name="nig.first-network" value="false" />\r
+                                        <parameter name="ngnidx" value="`$ctx.network-instance-group-data.networks.network_length`" />\r
+                                        <parameter name="nig.networks.network_len" value="`$ctx.network-instance-group-data.networks.network_length + 1`" />\r
+                                        <parameter name="nig." value="`$ctx.network-instance-group-data.`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="tmp.error-message" value=""/>\r
+                <parameter name="tmp.l3-network.network-instance-group-id" value="`$network-topology-operation-input.network-request-input.network-instance-group-id`" />\r
+                <parameter name='tmp.l3-network.network-type' value="`$network-model.network-type`" />\r
+                <parameter name='tmp.l3-network.network-role' value="`$network-model.network-role`" />\r
+                <parameter name='tmp.l3-network.network-technology' value="`$network-model.network-technology`" />\r
+            </set>\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
+                <parameter name='service-data.networks.network[$nidx].network-id' value='`$tmp.l3-network.network-id`' />\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.onap-model-information.' value="`$s-onap-model-information.`" />\r
+                <parameter name='service-data.networks.network[$nidx]..network-data.network-information.onap-model-information.' value="`$n-onap-model-information.`" />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.l3-network.network-type' value="`$network-model.network-type`" />\r
+                <parameter name='tmp.l3-network.network-role' value="`$network-model.network-role`" />\r
+                <parameter name='tmp.l3-network.network-technology' value="`$network-model.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.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.is-provider-network' value="`$network-model.is-provider-network`" />\r
+                <parameter name='tmp.l3-network.is-shared-network' value="`$network-model.is-shared-network`" />\r
+                <parameter name='tmp.l3-network.is-external-network' value="`$network-model.is-external-network`" />\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
+ + $network-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/networks/network/'\r
+ + $tmp.l3-network.network-id\r
+ + '/network-data/network-topology/'` " />\r
+            </set>\r
+            <switch test='`$network-model.is-provider-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.physical-network-name' value="`$network-model.physical-network-name`" />\r
+                        <parameter name='tmp.l3-network.is-provider-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.physical-network-name' value="" />\r
+                        <parameter name='tmp.l3-network.is-provider-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-shared-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-shared-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-shared-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-external-network`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-external-network-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-external-network-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$network-model.is-bound-to-vpn`'>\r
+                <outcome value='Y'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='true' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.l3-network.is-bound-to-vpn-boolean' value='false' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $tmp.l3-network.network-id" \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-id =' + $tmp.l3-network.network-id + 'from AnAI.  Network should be created by MSO'" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'></outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='aaiapi.input.network-instance-group-id' value="`$tmp.l3-network.network-instance-group-id`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='aai-get-network-instance-group' mode='sync' ></call>\r
+            <set>\r
+                <parameter name="get-complex-resource-service-model-input.customization-uuid" value="`$aaiapi.output.collection-customization-uuid`"/>\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='get-complex-resource-service-model' mode='sync' ></call>\r
+            <set>\r
+                <parameter name="nig.network-instance-group-id" value="`$tmp.l3-network.network-instance-group-id`"/>\r
+                <parameter name="nig.network-instance-group-function" value="`$aaiapi.output.collection-function`"/>\r
+                <parameter name="nig.service-instance-id" value="`$network-topology-operation-input.service-information.service-instance-id`"/>\r
+            </set>\r
+            <set>\r
+                <parameter name='nig.networks.network[$ngnidx].network-id' value="`$tmp.l3-network.network-id`" />\r
+            </set>\r
+            <set>\r
+                <parameter name="get-data-from-policy-input.policy-instance-name" value="`$get-complex-resource-service-model-output.subnet-assignment-policy`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' ></call>\r
+            <set>\r
+                <parameter name="nig.subnet-assignment-policy.subnet-use" value="`$get-data-from-policy-output.ip-assignment`" />\r
+            </set>\r
+            <set>\r
+                <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$get-complex-resource-service-model-output.network-naming-policy`' />\r
+                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$network-model.customization-uuid`' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='tmp.l3-network.network-name' value='`$naming-policy-generate-name-output.network-name`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-id' value="`$tmp.l3-network.network-id`" />\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-name' value="`$tmp.l3-network.network-name`" />\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-instance-group-id' value="`$tmp.l3-network.network-instance-group-id`" />\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-type' value="`$tmp.l3-network.network-type`" />\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-role' value="`$tmp.l3-network.network-role`" />\r
+                <parameter name='network-topology.network-topology-identifier-structure.network-technology' value="`$tmp.l3-network.network-technology`" />\r
+                <parameter name='network-topology.region-identifier.tenant' value="`$network-topology-operation-input.network-request-input.tenant`" />\r
+                <parameter name='network-topology.region-identifier.aic-cloud-region' value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
+                <parameter name='network-topology.region-identifier.aic-clli' value="`$network-topology-operation-input.network-request-input.aic-clli`" />\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-input-parameters.`" />\r
+                <parameter name='nig.network.network-id' value="`$tmp.l3-network.network-id`" />\r
+            </set>\r
+            <set>\r
+                <parameter name="aaiapi.input.cloud-owner" value="`$prop.cloud-region.cloud-owner`" />\r
+                <parameter name="aaiapi.input.cloud-region-id" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='aai-get-aic-zone' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='network-topology.region-identifier.aic-clli' value="`$aaiapi.output.aic-clli`" />\r
+            </set>\r
+            <set>\r
+                <parameter name="nig.cloud-zone" value="`$aaiapi.output.cloud-zone`" />\r
+                <parameter name="rt.aic-zone" value="`$aaiapi.output.cloud-zone`" />\r
+                <parameter name="rt.resource" value="NetworkID" />\r
+                <parameter name="rt.resource-value" value="`$tmp.l3-network.network-id`" />\r
+                <parameter name="rt.network-name" value="`$tmp.l3-network.network-name`" />\r
+                <parameter name="rt.service-instance-id" value="`$network-topology-operation-input.service-information.service-instance-id`" />\r
+                <parameter name="rt.network-instance-group-id" value="`$tmp.l3-network.network-instance-group-id`" />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='create-route-target-and-vpn-binding' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='nig.vpn-bindings.id' value="`$vpn-binding.vpn-binding-id`" />\r
+                <parameter name='nig.vpn-bindings.global-route-target' value="`$vpn-binding.global-route-target`" />\r
+                <parameter name='nig.vpn-bindings.aic-zone' value="`$aaiapi.output.cloud-zone`" />\r
+                <parameter name='nig.vpn-bindings.route-target-role' value="`$vpn-binding.route-target-role`" />\r
+            </set>\r
+            <switch test='`$nig.subnet-assignment-policy.subnet-use`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="tmp.error-message" value="Subnet use not set"/>\r
+                        </set>\r
+                        <switch test='`$tmp.nig-preexists`'>\r
+                            <outcome value='true'>\r
+                                <block atomic='true'></block>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.nig-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='DELETE' />\r
+                                        <parameter name="responsePrefix" value="mdsal-nig" />\r
+                                        <outcome value='success'>\r
+                                            <block atomic="true"></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true"></block>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='unique'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="tmp.skip-first-level" value="Y"/>\r
+                            <parameter name="tmp.allocate-subnet-flag" value="Y"/>\r
+                            <parameter name="generate-FQPN-input.aic-cloud-region" value="`$aai.cloud-region.cloud-region-id`" />\r
+                            <parameter name="generate-FQPN-input.network-name" value="`$network-topology.network-topology-identifier-structure.network-name`" />\r
+                            <parameter name="generate-FQPN-input.network-role" value="`$network-topology.network-topology-identifier-structure.network-role`" />\r
+                            <parameter name="generate-FQPN-input.network-collection" value="`$aaiapi.output.collection-name`" />\r
+                            <parameter name="generate-FQPN-input.network-id" value="`$network-topology.network-topology-identifier-structure.network-id`" />\r
+                            <parameter name="tmp.network-id" value="`network-topology.network-topology-identifier-structure.network-id`" />\r
+                            <parameter name="tmp.network-instance-group-id" value="`$network-topology.network-topology-identifier-structure.network-instance-group-id`" />\r
+                            <!-- the following are not set by calling dg\r
+generate-FQPN-input.subnet-role\r
+generate-FQPN-input.zone\r
+generate-FQPN-input.equipment\r
+-->\r
+                            <!-- network model is already in contect memory -->\r
+                            <!-- aai.cloud-region.cloud-region-id  is already in contect memory -->\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\r
+                            <outcome value='failure'>\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 from process-generic-eipam-pools, ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <switch test="`$network-model.eipam-v4-address-plan != ''`">\r
+                            <outcome value='true'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="network-topology.network-identifier-structure.eipam-v4-address-plan" value="`$network-model.eipam-v4-address-plan`" />\r
+                                    </set>\r
+                                    <for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\r
+                                        <switch test="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v4-address-plan`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="v4.ip-prefix" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`"/>\r
+                                                        <parameter name="v4.mask" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`"/>\r
+                                                        <parameter name="v4.entity-id" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`"/>\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$network-model.eipam-v6-address-plan != ''`">\r
+                            <outcome value='true'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name="network-topology.network-identifier-structure.eipam-v6-address-plan" value="`$network-model.eipam-v4-address-plan`" />\r
+                                    </set>\r
+                                    <for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\r
+                                        <switch test="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v6-address-plan`">\r
+                                            <outcome value='true'>\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name="v6.ip-prefix" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`"/>\r
+                                                        <parameter name="v6.mask" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`"/>\r
+                                                        <parameter name="v6.entity-id" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`"/>\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <!--tmp.level should be set to 1-->\r
+                        <call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' ></call>\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.l3-network.network-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="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                                    <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />\r
+                                    <parameter name="model-invariant-id" value="`$network-model.invariant_uuid`" />\r
+                                    <parameter name="model-version" value="`$network-model.version`" />\r
+                                    <parameter name="model-customization-id" value="`$network-model.customization-id`" />\r
+                                    <parameter name="physical-network-name" value="`$network-model.physical-network-name`" />\r
+                                    <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                                    <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                                    <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                                    <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                                    <parameter name="operational-status" value="out-of-service-path" />\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\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.l3-network.network-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="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                                    <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />\r
+                                    <parameter name="model-invariant-id" value="`$network-model.invariant_uuid`" />\r
+                                    <parameter name="model-version" value="`$network-model.version`" />\r
+                                    <parameter name="model-customization-id" value="`$network-model.customization-id`" />\r
+                                    <parameter name="physical-network-name" value="`$network-model.physical-network-name`" />\r
+                                    <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                                    <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                                    <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                                    <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                                    <parameter name="service-id" value="`$tmp.l3-network.service-id`" />\r
+                                    <parameter name="operational-status" value="out-of-service-path" />\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </save>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name="msidx" value="`$nig.subnets_length`" />\r
+                        </set>\r
+                        <for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="tmp.subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`"/>\r
+                                </set>\r
+                                <switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                                <outcome value=''>\r
+                                                    <block atomic='true'>\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.subnet-id" >\r
+                                                            <!-- Create l3-network object -->\r
+                                                            <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                            <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                            <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                            <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                            <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                            <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                            <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                            <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                            <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                            <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic='true'>\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.subnet-id" >\r
+                                                            <!-- Create l3-network object -->\r
+                                                            <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                            <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                            <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                            <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                            <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                            <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                            <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                            <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                            <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                            <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                            <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='false'>\r
+                                        <block atomic="true">\r
+                                            <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                                <outcome value=''>\r
+                                                    <block atomic='true'>\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.subnet-id" >\r
+                                                            <!-- Create l3-network object -->\r
+                                                            <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                            <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                            <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                            <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                            <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                            <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                            <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                            <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic='true'>\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.subnet-id" >\r
+                                                            <!-- Create l3-network object -->\r
+                                                            <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                            <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                            <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                            <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                            <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                            <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                            <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                            <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                            <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <set>\r
+                                    <parameter name="nig.subnets[$msidx].start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                    <parameter name="nig.subnets[$msidx].subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                    <parameter name="nig.subnets[$msidx].subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                    <parameter name="nig.subnets[$msidx].gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                    <parameter name="nig.subnets[$msidx].cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                    <parameter name="nig.subnets[$msidx].ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                    <parameter name="nig.subnets[$msidx].dhcp-start-address" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                    <parameter name="nig.subnets[$msidx].dhcp-end-address" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                    <parameter name="nig.subnets[$msidx].dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                    <parameter name="orchestration-status" value="PendingCreate" />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name="msidx" value="`$msidx + 1`" />\r
+                                    <parameter name="nig.subnets_length" value="`$nig.subnets_length + 1`" />\r
+                                </set>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='shared'>\r
+                    <block atomic="true">\r
+                        <switch test='`$tmp.first-network`'>\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="tmp.skip-first-level" value="Y"/>\r
+                                        <parameter name="tmp.allocate-subnet-flag" value="Y"/>\r
+                                        <parameter name="generate-FQPN-input.aic-cloud-region" value="`$aai.cloud-region.cloud-region-id`" />\r
+                                        <parameter name="generate-FQPN-input.network-name" value="`$network-topology.network-topology-identifier-structure.network-name`" />\r
+                                        <parameter name="generate-FQPN-input.network-role" value="`$network-topology.network-topology-identifier-structure.network-role`" />\r
+                                        <parameter name="generate-FQPN-input.network-collection" value="`$aaiapi.output.collection-name`" />\r
+                                        <parameter name="generate-FQPN-input.network-id" value="`$network-topology.network-topology-identifier-structure.network-id`" />\r
+                                        <parameter name="tmp.network-id" value="`network-topology.network-topology-identifier-structure.network-id`" />\r
+                                        <parameter name="tmp.network-instance-group-id" value="`$network-topology.network-topology-identifier-structure.network-instance-group-id`" />\r
+                                        <!-- the following are not set by calling dg\r
+generate-FQPN-input.subnet-role\r
+generate-FQPN-input.zone\r
+generate-FQPN-input.equipment\r
+-->\r
+                                        <!-- network model is already in contect memory -->\r
+                                        <!-- aai.cloud-region.cloud-region-id  is already in contect memory -->\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\r
+                                        <outcome value='failure'>\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 from process-generic-eipam-pools, ' + $error-message`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </call>\r
+                                    <switch test="`$network-model.eipam-v4-address-plan != ''`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="network-topology.network-identifier-structure.eipam-v4-address-plan" value="`$network-model.eipam-v4-address-plan`" />\r
+                                                </set>\r
+                                                <for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\r
+                                                    <switch test="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v4-address-plan`">\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic='true'>\r
+                                                                <set>\r
+                                                                    <parameter name="v4.ip-prefix" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`"/>\r
+                                                                    <parameter name="v4.mask" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`"/>\r
+                                                                    <parameter name="v4.entity-id" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`"/>\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test="`$network-model.eipam-v6-address-plan != ''`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name="network-topology.network-identifier-structure.eipam-v6-address-plan" value="`$network-model.eipam-v4-address-plan`" />\r
+                                                </set>\r
+                                                <for silentFailure='true' index='eidx' start='0' end='`$eipam-ip-block.createPoolResponse.CreatePoolPlans_length`' >\r
+                                                    <switch test="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.PlanName == $network-model.eipam-v6-address-plan`">\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic='true'>\r
+                                                                <set>\r
+                                                                    <parameter name="v6.ip-prefix" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IPAddress`"/>\r
+                                                                    <parameter name="v6.mask" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.Mask`"/>\r
+                                                                    <parameter name="v6.entity-id" value="`$eipam-ip-block.createPoolResponse.CreatePoolPlans[$eidx].CreatePoolPlan.IPDataBlock.IpamPoolAllocId`"/>\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <!--tmp.level should be set to 1-->\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' ></call>\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.l3-network.network-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="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                                                <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />\r
+                                                <parameter name="model-invariant-id" value="`$network-model.invariant_uuid`" />\r
+                                                <parameter name="model-version" value="`$network-model.version`" />\r
+                                                <parameter name="model-customization-id" value="`$network-model.customization-id`" />\r
+                                                <parameter name="physical-network-name" value="`$network-model.physical-network-name`" />\r
+                                                <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                                                <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                                                <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                                                <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                                                <parameter name="operational-status" value="out-of-service-path" />\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\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.l3-network.network-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="`$tmp.l3-network.is-bound-to-vpn-boolean`" />\r
+                                                <parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />\r
+                                                <parameter name="model-invariant-id" value="`$network-model.invariant_uuid`" />\r
+                                                <parameter name="model-version" value="`$network-model.version`" />\r
+                                                <parameter name="model-customization-id" value="`$network-model.customization-id`" />\r
+                                                <parameter name="physical-network-name" value="`$network-model.physical-network-name`" />\r
+                                                <parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />\r
+                                                <parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />\r
+                                                <parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />\r
+                                                <parameter name="selflink" value="`$tmp.l3-network.self-link`" />\r
+                                                <parameter name="service-id" value="`$tmp.l3-network.service-id`" />\r
+                                                <parameter name="operational-status" value="out-of-service-path" />\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name="msidx" value="`$nig.subnets_length`" />\r
+                                    </set>\r
+                                    <for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="tmp.subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`"/>\r
+                                            </set>\r
+                                            <switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>\r
+                                                <outcome value='true'>\r
+                                                    <block atomic="true">\r
+                                                        <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic='true'>\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.subnet-id" >\r
+                                                                        <!-- Create l3-network object -->\r
+                                                                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                                        <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                                        <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                                        <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                                        <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                                        <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                                        <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                                        <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                                        <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <block atomic='true'>\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.subnet-id" >\r
+                                                                        <!-- Create l3-network object -->\r
+                                                                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                                        <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                                        <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                                        <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                                        <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                                        <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                                        <parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                                        <parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                                        <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                                        <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <block atomic="true">\r
+                                                        <switch test='`$tmp.l3-network.subnet[$sidx].gateway-address`'>\r
+                                                            <outcome value=''>\r
+                                                                <block atomic='true'>\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.subnet-id" >\r
+                                                                        <!-- Create l3-network object -->\r
+                                                                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                                        <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                                        <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                                        <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                                        <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                                        <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                                        <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <block atomic='true'>\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.subnet-id" >\r
+                                                                        <!-- Create l3-network object -->\r
+                                                                        <parameter name="network-id" value="`$tmp.l3-network.network-id`" />\r
+                                                                        <parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                                        <parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                                        <parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                                        <parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                                        <parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                                        <parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                                        <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                                        <parameter name="orchestration-status" value="PendingCreate" />\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\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 subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/>\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name="nig.subnets[$msidx].start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />\r
+                                                <parameter name="nig.subnets[$msidx].subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />\r
+                                                <parameter name="nig.subnets[$msidx].subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />\r
+                                                <parameter name="nig.subnets[$msidx].gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />\r
+                                                <parameter name="nig.subnets[$msidx].cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />\r
+                                                <parameter name="nig.subnets[$msidx].ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />\r
+                                                <parameter name="nig.subnets[$msidx].dhcp-start-address" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />\r
+                                                <parameter name="nig.subnets[$msidx].dhcp-end-address" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />\r
+                                                <parameter name="nig.subnets[$msidx].dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />\r
+                                                <parameter name="orchestration-status" value="PendingCreate" />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name="msidx" value="`$msidx + 1`" />\r
+                                                <parameter name="nig.subnets_length" value="`$nig.subnets_length + 1`" />\r
+                                            </set>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\r
+                                    <switch test='`$ngnidx`'>\r
+                                        <outcome value=''>\r
+                                            <for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`"/>\r
+                                                    </set>\r
+                                                    <switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'></switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </outcome>\r
+                                        <outcome value='Other'></outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\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
+       force="true" \r
+       local-only="false">\r
+                <parameter name="relationship-list.relationship[0].related-to" value="instance-group" />\r
+                <parameter name="relationship-list.relationship[0].related-link" value="`'/aai/v$/network/instance-groups/instance-group/'+ $tmp.network-instance-group-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 instance-group relationship for l3-network in AnAI where instance-group-id = ' + $tmp.network-instance-group-id`"/>\r
+                        </set>\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 instance-group relationship for l3-network in AnAI where instance-group-id = ' + $tmp.network-instance-group-id`"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </save>\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>\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>\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.network-instance-groups.network-instance-group[$ngidx]." value='`$nig.`' />\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-topology." value='$network-topology.' />\r
+                <parameter name="service-data.networks.network_length" value='`$nidx_len`' />\r
+            </set>\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
index 9fd7e92..1f6f5d8 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-assign' mode='sync'>
-<block atomic="true"><switch test='`$network-model.is-bound-to-vpn`'>
-<outcome value='Y'>
-<block atomic="true">
-<get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from VPN_BINDINGS WHERE network_customization_uuid = $network-topology-operation-input.network-information.onap-model-information.model-customization-uuid'
-  pfx='vpn-bindings[]'>
-
-<outcome value='success'>
-<block atomic="true"><set>
-<parameter name='hasVpnBindings' value='true' />
-</set><for index='vidx' start='0' end='`$vpn-bindings_length`' >
-<block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-               resource="vpn-binding" 
-               key="vpn-binding.vpn-id = $vpn-bindings[$vidx].binding-uuid"
-        pfx='aai.vpnBinding' local-only='false' >
-
-<outcome value='success'>
-<block>
-</block></outcome><outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="`'No vpn binding found for network-model.vpn-binding=' 
-    + $vpn-bindings[$vidx].binding-uuid`" />
-
-</return></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="`'No vpn binding found for network-model.vpn-binding=' 
-    + $vpn-bindings[$vidx].binding-uuid`" />
-
-</return></outcome></get-resource></block></for></block></outcome><outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Network model is_bound_to_vpn=true but no vpn_binding is present" />
-
-</return></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Unexpected error retrieving vpn binding" />
-
-</return></outcome></get-resource></block></outcome></switch><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-               resource="tenant" 
-               key="cloud-region.cloud-owner = 'CloudOwner' AND 
-                    cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND
-                    tenant.tenant-id = $network-topology-operation-input.network-request-input.tenant"
-        pfx='aai.tenant' local-only='false' >
-
-<outcome value='success'>
-<block atomic="true"></block></outcome><outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Tenant not found in AAI" />
-
-</return></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Tenant not found in AAI" />
-
-</return></outcome></get-resource><switch test='`$network-topology-operation-input.network-request-input.network-name`'>
-<outcome value=''>
-<block atomic="true"><switch test='`$network-model.ecomp-generated-naming`'>
-<outcome value='Y'>
-<block atomic="true">
-<switch test='`$network-model.naming-policy`'>
-<outcome value='org.openecomp.policy.naming.ViprProtectedOam.ViprOamProtectedNetwork'>
-<block atomic="true"><set>
-<parameter name='tmp.network-name-prefix' value='$TenantName_int_$role_net' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$TenantName"/>
-    <parameter name="replacement" value="`$aai.tenant.tenant-name`"/>
-
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$role"/>
-    <parameter name="replacement" value="`$network-model.network-role`"/>
-
-</execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix
-    = $tmp.network-name-prefix'
-  pfx='db.network-name-prefix'>
-
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error reading the NETWORK_INSTANCE_NAME_INDEX table" />
-</return></outcome></get-resource><switch test='`$db.network-name-prefix.index-number`'>
-<outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="update NETWORK_INSTANCE_NAME_INDEX
-       set index_number = $tmp.index-number
-       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix "
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to update SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome><outcome value=''><block atomic="true"><set>
-<parameter name='tmp.index-number' value='1' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)"
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome></switch><set>
-<parameter name='tmp.network-instance-name' value="`$tmp.network-name-prefix + '_' + $tmp.index-number`" />
-</set></block></outcome><outcome value='oam_vipr_protected_network'>
-<block atomic="true"><set>
-<parameter name='tmp.network-name-prefix' value='$TenantName_int_$role_net' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$TenantName"/>
-    <parameter name="replacement" value="`$aai.tenant.tenant-name`"/>
-
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$role"/>
-    <parameter name="replacement" value="`$network-model.network-role`"/>
-
-</execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix
-    = $tmp.network-name-prefix'
-  pfx='db.network-name-prefix'>
-
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error reading the NETWORK_INSTANCE_NAME_INDEX table" />
-</return></outcome></get-resource><switch test='`$db.network-name-prefix.index-number`'>
-<outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="update NETWORK_INSTANCE_NAME_INDEX
-       set index_number = $tmp.index-number
-       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix "
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to update SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome><outcome value=''><block atomic="true"><set>
-<parameter name='tmp.index-number' value='1' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)"
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome></switch><set>
-<parameter name='tmp.network-instance-name' value="`$tmp.network-name-prefix + '_' + $tmp.index-number`" />
-</set></block></outcome><outcome value='network_without_route_tags_naming_default'>
-<block atomic="true"><set>
-<parameter name='tmp.network-name-prefix' value='$TenantName_int_$role_net' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$TenantName"/>
-    <parameter name="replacement" value="`$aai.tenant.tenant-name`"/>
-
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$role"/>
-    <parameter name="replacement" value="`$network-model.network-role`"/>
-
-</execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix
-    = $tmp.network-name-prefix'
-  pfx='db.network-name-prefix'>
-
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error reading the NETWORK_INSTANCE_NAME_INDEX table" />
-</return></outcome></get-resource><switch test='`$db.network-name-prefix.index-number`'>
-<outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="update NETWORK_INSTANCE_NAME_INDEX
-       set index_number = $tmp.index-number
-       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix "
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to update SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome><outcome value=''><block atomic="true"><set>
-<parameter name='tmp.index-number' value='1' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)"
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome></switch><set>
-<parameter name='tmp.network-instance-name' value="`$tmp.network-name-prefix + '_' + $tmp.index-number`" />
-</set></block></outcome><outcome value='org.openecomp.policy.naming.SriovProvider.SriovProviderNetwork'>
-<block atomic="true"><set>
-<parameter name='tmp.network-name-prefix' value='$TenantName_$role_net' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$TenantName"/>
-    <parameter name="replacement" value="`$aai.tenant.tenant-name`"/>
-
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$role"/>
-    <parameter name="replacement" value="`$network-model.network-role`"/>
-
-</execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix
-    = $tmp.network-name-prefix'
-  pfx='db.network-name-prefix'>
-
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error reading the NETWORK_INSTANCE_NAME_INDEX table" />
-</return></outcome></get-resource><switch test='`$db.network-name-prefix.index-number`'>
-<outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="update NETWORK_INSTANCE_NAME_INDEX
-       set index_number = $tmp.index-number
-       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix "
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to update SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome><outcome value=''><block atomic="true"><set>
-<parameter name='tmp.index-number' value='1' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)"
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome></switch><set>
-<parameter name='tmp.network-instance-name' value="`$tmp.network-name-prefix + '_' + $tmp.index-number`" />
-</set></block></outcome><outcome value='sriov_provider_network'>
-<block atomic="true"><set>
-<parameter name='tmp.network-name-prefix' value='$TenantName_$role_net' />
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$TenantName"/>
-    <parameter name="replacement" value="`$aai.tenant.tenant-name`"/>
-
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
-    <parameter name="source" value="`$tmp.network-name-prefix`"/>
-    <parameter name="outputPath" value="tmp.network-name-prefix"/>
-    <parameter name="target" value="$role"/>
-    <parameter name="replacement" value="`$network-model.network-role`"/>
-
-</execute><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key='SELECT * from NETWORK_INSTANCE_NAME_INDEX WHERE network_instance_name_prefix
-    = $tmp.network-name-prefix'
-  pfx='db.network-name-prefix'>
-
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error reading the NETWORK_INSTANCE_NAME_INDEX table" />
-</return></outcome></get-resource><switch test='`$db.network-name-prefix.index-number`'>
-<outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.index-number' value='`$db.network-name-prefix.index-number+1`' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="update NETWORK_INSTANCE_NAME_INDEX
-       set index_number = $tmp.index-number
-       where network_instance_name_prefix = $db.network-name-prefix.network-instance-name-prefix "
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to update SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome><outcome value=''><block atomic="true"><set>
-<parameter name='tmp.index-number' value='1' />
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
-  key="insert into NETWORK_INSTANCE_NAME_INDEX values ( $tmp.network-name-prefix , 1)"
-  force='false' pfx='pfx'>
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Failed to insert record into SERVICE_INSTANCE_NAME_INDEX table" />
-</return></outcome></save></block></outcome></switch><set>
-<parameter name='tmp.network-instance-name' value="`$tmp.network-name-prefix + '_' + $tmp.index-number`" />
-</set></block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="`'Unknown naming policy = ' 
-    + $network-model.naming-policy`" />
-
-</return></outcome></switch></block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Network name is required if ecomp naming is false" />
-
-</return></outcome></switch></block></outcome><outcome value='Other'>
-<block atomic="true"><set>
-<parameter name='tmp.network-instance-name' value="`$network-topology-operation-input.network-request-input.network-name`" />
-</set></block></outcome></switch><call module='GENERIC-RESOURCE-API' rpc='generate-l3network-network-id' mode='sync' >
-</call><set>
-<parameter name='tmp.l3-network.network-id' value="`$tmp.return.generate-l3network-network-id.uuid`" />
-<parameter name='tmp.l3-network.network-name' value="`$tmp.network-instance-name`" />
-<parameter name='tmp.l3-network.network-type' value="`$network-model.network-type`" />
-<parameter name='tmp.l3-network.network-role' value="`$network-model.network-role`" />
-<parameter name='tmp.l3-network.network-technology' value="`$network-model.network-technology`" />
-<parameter name='tmp.l3-network.is-bound-to-vpn' value="`$network-model.is-bound-to-vpn`" />
-<parameter name='tmp.l3-network.orchestration-status' value="PendingCreate" />
-<parameter name='tmp.l3-network.model-invariant-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`" />
-<parameter name='tmp.l3-network.model-version-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-version`" />
-<parameter name='tmp.l3-network.model-customization-id' value="`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`" />
-<parameter name='tmp.l3-network.is-provider-network' value="`$network-model.is-provider-network`" />
-<parameter name='tmp.l3-network.is-shared-network' value="`$network-model.is-shared-network`" />
-<parameter name='tmp.l3-network.is-external-network' value="`$network-model.is-external-network`" />
-<parameter name='tmp.l3-network.eipam-v6-address-plan' value="`$network-model.eipam-v6-address-plan`" />
-<parameter name='tmp.l3-network.eipam-v4-address-plan' value="`$network-model.eipam-v4-address-plan`" />
-<parameter name='tmp.l3-network.service-id' value="`$service-data.service-information.service-id`" />
-<parameter name='tmp.l3-network.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
- + $network-topology-operation-input.service-information.service-instance-id
- + '/service-data/networks/network/'
- + $tmp.l3-network.network-id
- + '/network-data/network-topology/'` " />
-</set><switch test='`$network-model.is-provider-network`'>
-<outcome value='Y'>
-<set>
-<parameter name='tmp.l3-network.physical-network-name' value="`$network-model.physical-network-name`" />
-<parameter name='tmp.l3-network.is-provider-network-boolean' value='true' /></set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.l3-network.physical-network-name' value="" />
-<parameter name='tmp.l3-network.is-provider-network-boolean' value='false' /></set></outcome></switch><switch test='`$network-model.is-shared-network`'>
-<outcome value='Y'>
-<set>
-<parameter name='tmp.l3-network.is-shared-network-boolean' value='true' /></set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.l3-network.is-shared-network-boolean' value='false' /></set></outcome></switch><switch test='`$network-model.is-external-network`'>
-<outcome value='Y'>
-<set>
-<parameter name='tmp.l3-network.is-external-network-boolean' value='true' /></set></outcome><outcome value='Other'>
-<set>
-<parameter name='tmp.l3-network.is-external-network-boolean' value='false' /></set></outcome></switch><set>
-<parameter name='tmp.complex-found' value='false' />
-
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-               resource="cloud-region" 
-               key="cloud-region.cloud-owner = 'CloudOwner' AND 
-                    cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND 
-                    depth = '0'"
-        pfx='aai.cloud-region' local-only='false' >
-
-<outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Cloud region not found in AAI" />
-</return></outcome><outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error retrieving cloud region from AAI" />
-</return></outcome></get-resource><switch test='`$aai.cloud-region.relationship-list.relationship_length`'>
-<outcome value='0'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Cloud region missing relationships in AAI" />
-</return></outcome><outcome value=''>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Cloud region missing relationships in AAI" />
-</return></outcome></switch><for silentFailure='false' index='ridx' start='0' end="`$aai.cloud-region.relationship-list.relationship_length`" >
-<for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >
-<switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>
-<outcome value='complex.physical-location-id'>
-<block atomic="true"><set>
-<parameter name='tmp.complex-found' value='true' />
-
-</set><set>
-<parameter name='service-data.network-request-input.aic-clli' value='`$aai.complex.physical-location-id`' />
-
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-               resource="complex" 
-               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"
-        pfx='aai.complex' local-only='false' >
-        
-
-
-<outcome value='success'>
-<block atomic="true"><switch test='`$aai.complex.region`'>
-<outcome value='USA'>
-<block>
-</block></outcome><outcome value='US'>
-<block>
-</block></outcome><outcome value='CALA'>
-<block>
-</block></outcome><outcome value='EMEA'>
-<block>
-</block></outcome><outcome value='AP'>
-<block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Complex.region unknown" />
-</return></outcome></switch></block></outcome><outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Complex not found in AAI" />
-</return></outcome><outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Error retrieving complex from AAI" />
-</return></outcome></get-resource></block></outcome></switch></for></for><switch test='`$tmp.complex-found`'>
-<outcome value='false'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Complex not found in AAI" />
-</return></outcome></switch><switch test='`$network-model.network-technology`'>
-<outcome value='Contrail'>
-<block atomic="true"><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic='true'><switch test='`$network-model.eipam-v4-address-plan`'>
-<outcome value='AIC_ATM_UNPROTECTED_V4'><block>
-</block></outcome><outcome value='AIC_ATM_PROTECTED_V4'><block>
-</block></outcome><outcome value='AIC_AIM_LANDING_NETWORK_V4'><block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Invalid address plan for VIPR" />
-</return></outcome></switch></block></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic='true'><switch test='`$network-model.eipam-v6-address-plan`'>
-<outcome value='AIC_ATM_UNPROTECTED_V6'><block>
-</block></outcome><outcome value='AIC_ATM_PROTECTED_V6'><block>
-</block></outcome><outcome value='AIC_AIM_LANDING_NETWORK_V6'><block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="EIPAM V6 Address plan should be null" />
-</return></outcome></switch></block></outcome></switch></block></outcome><outcome value='AIC_SR_IOV'>
-<block atomic="true"><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic='true'><switch test='`$network-model.eipam-v4-address-plan`'>
-<outcome value='AIC_DATA_PLANE_UNPROTECTED_V4'><block>
-</block></outcome><outcome value='AIC_DATA_PLANE_PROTECTED_V4'><block>
-</block></outcome><outcome value='AIC_DATA_PLANE_PRIVATE_V4'><block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Invalid address plan for SRIOV" />
-</return></outcome></switch></block></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic='true'><switch test='`$network-model.eipam-v6-address-plan`'>
-<outcome value="AIC_ATM_UNPROTECTED_V6"><block>
-</block></outcome><outcome value="AIC_ATM_PROTECTED_V6"><block>
-</block></outcome><outcome value="AIC_DATA_PLANE_UNPROTECTED_V6"><block>
-</block></outcome><outcome value="AIC_DATA_PLANE_PRIVATE_V6"><block>
-</block></outcome><outcome value="AIC_DATA_PLANE_PROTECTED_V6"><block>
-</block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Invalid ipv6 address plan for SRIOV" />
-</return></outcome></switch></block></outcome></switch></block></outcome><outcome value='Other'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="Invalid network-technology.  Only AIC_SR_IOV and Contrail are supported" />
-</return></outcome></switch><set>
-<parameter name='tmp.process-eipam-action' value='assign' />
-</set><!--tmp.level should be set to 1--><call module='GENERIC-RESOURCE-API' rpc='process-eipam-pools' mode='sync' >
-</call><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
-<parameter name="logger" value="message-log"/>
-<parameter name="field1" value="__TIMESTAMP__"/>
-<parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>
-<parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>
-<parameter name="field4" value="Values after process-eipam"/>
-<parameter name="field5" value="`level1-v4-mask`"/>
-<parameter name="field6" value="`$tmp.l3-network.level1.v4.mask`"/>
-<parameter name="field7" value="`level1-v4-ipprefix`"/>
-<parameter name="field8" value="`$tmp.l3-network.level1.v4.ip-prefix`"/>
-<parameter name="field9" value="`level1-v4-entity-id`"/>
-<parameter name="field10" value="`$tmp.l3-network.level1.v4.entity-id`"/>
-<parameter name="field11" value="`level2-v4-mask`"/>
-<parameter name="field12" value="`$tmp.l3-network.level2.v4.mask`"/>
-<parameter name="field13" value="`level2-v4-ipprefix`"/>
-<parameter name="field14" value="`$tmp.l3-network.level2.v4.ip-prefix`"/>
-<parameter name="field15" value="`level2-v4-entity-id`"/>
-<parameter name="field16" value="`$tmp.l3-network.level2.v4.entity-id`"/>
-
-
-</record><!--tmp.level should be set to 1--><call module='GENERIC-RESOURCE-API' rpc='create-l3-subnet' mode='sync' >
-</call><set>
-<parameter name='tmp.network-topology.network-topology-identifier-structure.network-id' value="`$tmp.l3-network.network-name`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.network-name' value="`$tmp.l3-network.network-name`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.network-type' value="`$tmp.l3-network.network-type`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.network-role' value="`$tmp.l3-network.network-role`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.network-technology' value="`$tmp.l3-network.network-technology`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v4-address-plan' value="`$network-model.eipam-v4-address-plan`" />
-<parameter name='tmp.network-topology.network-topology-identifier-structure.eipam-v6-address-plan' value="`$network-model.eipam-v6-address-plan`" />
-<parameter name='tmp.network-topology.region-identifier.tenant' value="`$network-topology-operation-input.network-request-input.tenant`" />
-<parameter name='tmp.network-topology.region-identifier.aic-cloud-region' value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />
-<parameter name='tmp.network-topology.region-identifier.aic-clli' value="`$network-topology-operation-input.network-request-input.aic-clli`" />
-<parameter name='tmp.network-topology.onap-model-information.' value="`$network-topology-operation-input.network-information.onap-model-information.`" />
-<parameter name='tmp.network-topology.network-parameters.' value="`$network-topology-operation-input.network-request-input.network-input-parameters.`" />
-</set><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-               key="l3-network.network-id = $tmp.l3-network.network-id" >
-<!-- Create l3-network object -->
-<parameter name="network-id" value="`$tmp.l3-network.network-id`" />
-<parameter name="network-name" value="`$tmp.l3-network.network-name`" />
-<parameter name="network-type" value="`$tmp.l3-network.network-type`" />
-<parameter name="network-role" value="`$tmp.l3-network.network-role`" />
-<parameter name="network-technology" value="`$tmp.l3-network.network-technology`" />
-<parameter name="is-bound-to-vpn" value="`$tmp.l3-network.is-bound-to-vpn`" />
-<parameter name="service-id" value="`$tmp.l3-network.service-id`" />
-<parameter name="tenant-id" value="`$network-topology-operation-input.network-request-information.tenant`" />
-<parameter name="orchestration-status" value="PendingCreate" />
-<parameter name="persona-model-id" value="`$tmp.l3-network.persona-model-id`" />
-<parameter name="persona-model-version" value="`$tmp.l3-network.persona-model-version`" />
-<parameter name="persona-model-customization-id" value="`$tmp.l3-network.persona-model-customization-id`" />
-<parameter name="physical-network-name" value="`$tmp.l3-network.physical-network-name`" />
-<parameter name="is-provider-network" value="`$tmp.l3-network.is-provider-network-boolean`" />
-<parameter name="is-shared-network" value="`$tmp.l3-network.is-shared-network-boolean`" />
-<parameter name="is-external-network" value="`$tmp.l3-network.is-external-network-boolean`" />
-<parameter name="selflink" value="`$tmp.l3-network.self-link`" />
-<outcome value='failure'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />
-</return></outcome><outcome value='not-found'>
-<return status='failure'>
-       <parameter name='ack-final' value='Y'/>
-       <parameter name="error-code" value="500" />
-    <parameter name="error-message" value="`'Failed to save l3-network in AAI for network-id = ' + $tmp.l3-network.network-id`" />
-</return></outcome></save><for index='sidx' start='0' end='`$tmp.l3-network.subnet_length`' >
-<block atomic="true"><set>
-<parameter name="tmp.subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`"/>
-       </set><switch test='`$tmp.l3-network.subnet[$sidx].dhcp-enabled`'>
-<outcome value='true'>
-<block atomic="true"><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="subnet" 
-               key="l3-network.network-id = $tmp.l3-network.network-id 
-                       AND subnet.subnet-id = $tmp.subnet-id" >
-<!-- Create l3-network object -->
-<parameter name="network-id" value="`$tmp.l3-network.network-id`" />
-<parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />
-<parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />
-<parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />
-<parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />
-<parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />
-<parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />
-<parameter name="dhcp-start" value="`$tmp.l3-network.subnet[$sidx].dhcp-start`" />
-<parameter name="dhcp-end" value="`$tmp.l3-network.subnet[$sidx].dhcp-end`" />
-<parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />
-<parameter name="orchestration-status" value="PendingCreate" /><outcome value='failure'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save></block></outcome><outcome value='false'>
-<block atomic="true"><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="subnet" 
-               key="l3-network.network-id = $tmp.l3-network.network-id 
-                       AND subnet.subnet-id = $tmp.subnet-id" >
-<!-- Create l3-network object -->
-<parameter name="network-id" value="`$tmp.l3-network.network-id`" />
-<parameter name="subnet-id" value="`$tmp.l3-network.subnet[$sidx].subnet-id`" />
-<parameter name="subnet-name" value="`$tmp.l3-network.subnet[$sidx].subnet-name`" />
-<parameter name="gateway-address" value="`$tmp.l3-network.subnet[$sidx].gateway-address`" />
-<parameter name="network-start-address" value="`$tmp.l3-network.subnet[$sidx].network-start-address`" />
-<parameter name="cidr-mask" value="`$tmp.l3-network.subnet[$sidx].cidr-mask`" />
-<parameter name="ip-version" value="`$tmp.l3-network.subnet[$sidx].ip-version`" />
-<parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet[$sidx].dhcp-enabled`" />
-<parameter name="orchestration-status" value="PendingCreate" /><outcome value='failure'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving subnet relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save></block></outcome></switch></block></for><switch test='`$hasVpnBindings`'>
-<outcome value='true'>
-<block atomic="true"><for index='vidx' start='0' end='`$vpn-bindings_length`' >
-<block atomic='true'><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network:relationship-list" 
-       key="l3-network.network-id = $tmp.l3-network.network-id" >
-<parameter name="relationship-list.relationship[0].related-to" value="vpn-binding" />
-<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="vpn-binding.vpn-id" />
-<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$vpn-bindings[$vidx].binding-uuid`" /><outcome value='failure'>
-<block><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving vpn binding relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save></block></for></block></outcome></switch><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network:relationship-list" 
-       key="l3-network.network-id = $tmp.l3-network.network-id" >
-<parameter name="relationship-list.relationship[0].related-to" value="service-instance" />
-<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="customer.global-customer-id" />
-<parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.service-information.global-customer-id`" />
-<parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="service-subscription.service-type" />
-<parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$service-data.service-information.subscription-service-type`" />
-<parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="service-instance.service-instance-id" />
-<parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$service-data.service-information.service-instance-id`" /><outcome value='failure'>
-<block><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving service instance relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving service instance relationship for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network:relationship-list" 
-       key="l3-network.network-id = $tmp.l3-network.network-id" 
-       force="true" 
-       local-only="false">
-       <!-- create relationship-list -->
-       <parameter name="relationship-list.relationship[0].related-to" value="tenant" />
-       <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
-       <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="CloudOwner" />
-       <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
-       <parameter name="relationship-list.relationship[0].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />
-       <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="tenant.tenant-id" />
-       <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$network-topology-operation-input.network-request-input.tenant`" />
-       <parameter name="relationship-list.relationship[1].related-to" value="cloud-region" />
-       <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-key" value="cloud-region.cloud-owner" />
-       <parameter name="relationship-list.relationship[1].relationship-data[0].relationship-value" value="CloudOwner" />
-       <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-key" value="cloud-region.cloud-region-id" />
-       <parameter name="relationship-list.relationship[1].relationship-data[1].relationship-value" value="`$network-topology-operation-input.network-request-input.aic-cloud-region`" />
-       
-       <outcome value='failure'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <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`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <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`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save><switch test='`$network-model.network-technology`'>
-<outcome value='AIC_SR_IOV'>
-<block atomic="true"><set>
-       <parameter name="tmp.l3-network.segmentation-id" value="1"/></set><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="segmentation-assignment" 
-               key="l3-network.network-id = $tmp.l3-network.network-id 
-                       AND segmentation-assignment.segmentation-id = $tmp.l3-network.segmentation-id" >
-<!-- Create segmentation-assignment object -->
-<parameter name="network-id" value="`$tmp.l3-network.network-id`" />
-<parameter name="segmentation-id" value="`$tmp.l3-network.segmentation-id`" />
-<outcome value='failure'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome><outcome value='not-found'>
-<block atomic='true'><set>
-       <parameter name="error-code" value="500"/>
-       <parameter name="tmp.error-message" value="`'An error occurred while saving segmentation-assignment for l3-network in AnAI where network-id = ' + $tmp.l3-network.network-id`"/></set><block atomic='true'><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
-       resource="l3-network" 
-       key="l3-network.network-id = $tmp.l3-network.network-id"></delete><return status='failure'>
-       <parameter name='error-code' value='500'/>
-       <parameter name='error-message' value="`'Error writing to l3-network - ' + $tmp.error-message`"/></return></block></block></outcome></save></block></outcome></switch><set>
-<parameter name='network-topology.network-topology-identifier-structure.' value='`$tmp.l3-network.`' />
-<parameter name='network-topology.tenant' value='`$network-topology-operation-input.network-request-input.tenant`' />
-<parameter name='network-topology.onap-model-information.' value='`$network-topology-operation-input.network-information.onap-model-information.`' />
-<parameter name='network-topology.network-parameters.' value='`$network-topology-operation-input.network-request-input.network-input-parameters.`' />
-<parameter name='network-topology.aic-cloud-region' value='`$network-topology-operation-input.network-request-input.aic-cloud-region`' /></set><switch test='`$service-data.networks.network_length`'>
-<outcome value=''>
-<set>
-<parameter name='nidx' value='0' />
-</set></outcome><outcome value='Other'>
-<set>
-<parameter name='nidx' value='`$service-data.networks.network_length`' />
-</set></outcome></switch><set>
-<parameter name="service-data.networks.network[$nidx].network-id" value='`$tmp.l3-network.network-id`' />
-<parameter name="service-data.networks.network[$nidx].network-data.network-topology." value='$network-topology.' />
-<parameter name="service-data.networks.network_length" value='`$nidx+1`' />
-
-</set><set>
-<parameter name='service-data.networks.network[$nidx].network-data.sdnc-request-header.' value='`$network-topology-operation-input.sdnc-request-header.`' />
-<parameter name='service-data.networks.network[$nidx].network-data.request-information.' value='`$network-topology-operation-input.request-information.`' />
-<parameter name='service-data.networks.network[$nidx].network-data.service-information.' value='`$network-topology-operation-input.service-information.`' />
-<parameter name='service-data.networks.network[$nidx].network-data.network-information.' value='`$network-topology-operation-input.network-information.`' />
-<parameter name='service-data.networks.network[$nidx].network-data.network-request-input.' value='`$network-topology-operation-input.network-request-input.`' />
-</set><set>
-<parameter name='networkId' value='`$tmp.l3-network.network-id`' />
-</set><set>
-<parameter name='network-object-path'
- value="`$tmp.l3-network.self-link`"/>
-</set><set>
-<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.order-status' value='PendingCreate' />
-<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`' />
-<parameter name='service-data.networks.network[$nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />
-</set><return status='success'>
-<parameter name="ack-final-indicator" value="Y" />
-<parameter name="error-code" value="200" />
-<parameter name="error-message" value="`$error-message`" />
-</return></block></method></service-logic>
+<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' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="tenant" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $network-topology-operation-input.network-request-input.aic-cloud-region AND\r
+                    tenant.tenant-id = $network-topology-operation-input.network-request-input.tenant"\r
+        pfx='aai.tenant' local-only='false' >\r
+                <outcome value='success'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Tenant not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Tenant not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+                <outcome value=''>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='generate-l3network-network-id' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.return.generate-l3network-network-id.uuid' value='`$network-topology-operation-input.network-information.network-id`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.l3-network.network-id' value='`$tmp.return.generate-l3network-network-id.uuid`' />\r
+                <parameter name='network-topology-operation-input.network-information.network-id' value='`$tmp.return.generate-l3network-network-id.uuid`' />\r
+            </set>\r
+            <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <switch test='`$network-topology-operation-input.network-request-input.network-name`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true">\r
+                                <switch test='`$network-model.ecomp-generated-naming`'>\r
+                                    <outcome value='Y'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$network-model.naming-policy`' />\r
+                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$tmp.l3-network.network-id`' />\r
+                                                <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                                <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                                                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$network-model.customization-uuid`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                            <set>\r
+                                                <parameter name='tmp.network-instance-name' value='`$naming-policy-generate-name-output.network-name`' />\r
+                                                <parameter name='tmp.l3-network.network-name' value='`$naming-policy-generate-name-output.network-name`' />\r
+                                            </set>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-automated' mode='sync' ></call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="Network name is required if onap naming is false" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name='tmp.network-instance-name' value="`$network-topology-operation-input.network-request-input.network-name`" />\r
+                                    <parameter name='tmp.l3-network.network-name' value="`$network-topology-operation-input.network-request-input.network-name`" />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-from-preload' mode='sync' ></call>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign-vlantagging-instancegroup' mode='sync' ></call>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_network-topology-operation-changeassign.xml
new file mode 100755 (executable)
index 0000000..7d0155a
--- /dev/null
@@ -0,0 +1,1172 @@
+<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-changeassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
+                <outcome value='true'>\r
+                    <block></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: changeassign only allowed for networks with from-preload set to true" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\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="`$network-topology-operation-input.network-request-information.network-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
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $network-topology-operation-input.network-request-information.network-id\r
+                       AND depth='all'" \r
+               local-only="false" \r
+               pfx="tmp.AnAI.l3network">\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + ' from AnAI'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'network-id: ' + $network-topology-operation-input.network-request-information.network-id + 'not found in AnAI'`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test="`$tmp.AnAI.l3network.network-name == $network-data.network-topology.network-topology-identifier-structure.network-name`">\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'The input network-name,' + network-topology-operation-input.network-request-information.network-name + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.AnAI.l3network.network-type == $network-data.network-topology.network-topology-identifier-structure.network-type`">\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'The input network-type,' + network-topology-operation-input.network-request-information.network-type + ', does not match what is returned from AnAI with network-id = ' + $network-topology-operation-input.network-request-information.network-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.AnAI.l3network.network-name == $preload-data.preload-network-topology-information.network-topology-identifier.network-name`">\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'No preload network found with network-name = ' + $tmp.AnAI.l3network.network-name + ' in SDNC'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.AnAI.l3network.network-type == $preload-data.preload-network-topology-information.network-topology-identifier.network-type`">\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'No preload network found with network-type = ' + $tmp.AnAI.l3network.network-type + ' in SDNC'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='x' value='0' />\r
+                <parameter name='tmp.error-message' value='' />\r
+                <parameter name='execute_failure' value='false' />\r
+                <parameter name='tmp.l3networkUpdate' value='0' />\r
+            </set>\r
+            <switch test="`$tmp.AnAI.l3network.subnets.subnet_length`">\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name="tmp.AnAI.l3network.subnets.subnet_length" value="0" />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index="k" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">\r
+                <block atomic='true'>\r
+                    <set>\r
+                        <parameter name='tmp.start-address-match' value='0' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.subnetUpdate' value='0' />\r
+                    </set>\r
+                    <block atomic='true'>\r
+                        <for index="n" start="0" end="`$preload-data.preload-network-topology-information.subnets_length`">\r
+                            <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].network-start-address == $preload-data.preload-network-topology-information.subnets[$n].start-address`">\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.start-address-match' value='1' />\r
+                                        </set>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].cidr-mask == $preload-data.preload-network-topology-information.subnets[$n].cidr-mask`">\r
+                                            <outcome value='false'>\r
+                                                <set>\r
+                                                    <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`">\r
+                                            <outcome value=''>\r
+                                                <block>\r
+                                                    <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getGatewayAddress">\r
+                                                        <parameter name="ipAddress" value="`$preload-data.preload-network-topology-information.subnets[$n].start-address`" />\r
+                                                        <parameter name="ipVersion" value="`$preload-data.preload-network-topology-information.subnets[$n].ip-version`" />\r
+                                                        <parameter name="subnet" value="`$preload-data.preload-network-topology-information.subnets[$n].cidr-mask`" />\r
+                                                        <parameter name="ctxVariable" value="tmp.return.generate.gateway-address" />\r
+                                                    </execute>\r
+                                                    <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $tmp.return.generate.gateway-address`">\r
+                                                        <outcome value='false'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name="tmp.gateway-address" value="`$tmp.return.generate.gateway-address`" />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].gateway-address == $preload-data.preload-network-topology-information.subnets[$n].gateway-address`">\r
+                                                    <outcome value='false'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.gateway-address" value="`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`" />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='true'>\r
+                                                        <set>\r
+                                                            <parameter name="tmp.gateway-address" value="`$preload-data.preload-network-topology-information.subnets[$n].gateway-address`" />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$preload-data.preload-network-topology-information.subnets[$n].dhcp-enabled`">\r
+                                            <outcome value='N'>\r
+                                                <set>\r
+                                                    <parameter name="tmp.dhcpEnabled.boolean" value="false" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Y'>\r
+                                                <set>\r
+                                                    <parameter name="tmp.dhcpEnabled.boolean" value="true" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$preload-data.preload-network-topology-information.subnets[$n].addr-from-start`">\r
+                                            <outcome value='N'>\r
+                                                <set>\r
+                                                    <parameter name="tmp.addrFromStart.boolean" value="false" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Y'>\r
+                                                <set>\r
+                                                    <parameter name="tmp.addrFromStart.boolean" value="true" />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].ip-assignment-direction == $tmp.addrFromStart.boolean`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-enabled == $tmp.dhcpEnabled.boolean`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-start == $preload-data.preload-network-topology-information.subnets[$n].dhcp-start-address`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].dhcp-end == $preload-data.preload-network-topology-information.subnets[$n].dhcp-end-address`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-name == $preload-data.preload-network-topology-information.subnets[$n].subnet-name`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-role == $preload-data.preload-network-topology-information.subnets[$n].subnet-role`">\r
+                                            <outcome value='false'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$tmp.subnetUpdate == 1`">\r
+                                            <outcome value='true'>\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id" >\r
+                                                    <!-- Update l3network.subnet -->\r
+                                                    <parameter name="gateway-address" value="`$tmp.gateway-address`"/>\r
+                                                    <parameter name="subnet-name" value="`$preload-data.preload-network-topology-information.subnets[$n].subnet-name`"/>\r
+                                                    <parameter name="cidr-mask" value="`$preload-data.preload-network-topology-information.subnets[$n].cidr-mask`"/>\r
+                                                    <parameter name="dhcp-start" value="`$preload-data.preload-network-topology-information.subnets[$n].dhcp-start-address`"/>\r
+                                                    <parameter name="dhcp-end" value="`$preload-data.preload-network-topology-information.subnets[$n].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="PendingUpdate" />\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\r
+                                                                <parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="error-code" value="500"/>\r
+                                                                <parameter name="tmp.error-message" value="`'An error occurred while updating subnet attributes in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                            </set>\r
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\r
+                                                                <parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="error-code" value="500"/>\r
+                                                                <parameter name="tmp.error-message" value="`'An error occurred while updating subnet attributes in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                            </set>\r
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                                <parameter name="tmp.subnetRollback[$x].type" value = "update"/>\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="x" value = "`$x + 1`"  />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.l3networkUpdate" value="1" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </update>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test="`$execute_failure`">\r
+                            <outcome value='false'>\r
+                                <switch test="`$tmp.start-address-match == 0`">\r
+                                    <outcome value='true'>\r
+                                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id" >\r
+                                            <parameter name="orchestration-status" value="PendingDelete" />\r
+                                            <outcome value='failure'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\r
+                                                        <parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while updating subnet status to PendingDelete in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                    </set>\r
+                                                    <return status='success'>\r
+                                                        <parameter name='execute_failure' value='true' />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='k' value='`$tmp.AnAI.l3network.subnets.subnet_length + 1`' />\r
+                                                        <parameter name='n' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.error-message" value="`'An error occurred while updating subnet status to PendingDelete in AnAI with subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                    </set>\r
+                                                    <return status='success'>\r
+                                                        <parameter name='execute_failure' value='true' />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='success'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].subnet-id`"/>\r
+                                                        <parameter name="tmp.subnetRollback[$x].orchestration-status" value= "`$tmp.AnAI.l3network.subnets.subnet[$k].orchestration-status`" />\r
+                                                        <parameter name="tmp.subnetRollback[$x].type" value = "delete"  />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="x" value = "`$x + 1`"  />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.l3networkUpdate" value="1" />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </update>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </block>\r
+            </for>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value='false'>\r
+                    <for index="i" start="0" end="`$preload-data.preload-network-topology-information.subnets_length`">\r
+                        <block atomic='true'>\r
+                            <set>\r
+                                <parameter name="tmp.start-address-match" value="0" />\r
+                            </set>\r
+                            <block atomic='true'>\r
+                                <for index="j" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">\r
+                                    <switch test="`$preload-data.preload-network-topology-information.subnets[$i].start-address == $tmp.AnAI.l3network.subnets.subnet[$j].network-start-address`">\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='tmp.start-address-match' value='1' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test="`$tmp.start-address-match == 0`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <switch test="`$preload-data.preload-network-topology-information.subnets[$i].dhcp-enabled`">\r
+                                                <outcome value='N'>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.dhcpEnabled.boolean" value="false" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Y'>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.dhcpEnabled.boolean" value="true" />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test="`$preload-data.preload-network-topology-information.subnets[$n].addr-from-start`">\r
+                                                <outcome value='N'>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.addrFromStart.boolean" value="false" />\r
+                                                    </set>\r
+                                                </outcome>\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
+                                            </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>\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
+                                                        </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.AnAI.l3network.network-id`" />\r
+                                            </set>\r
+                                            <call module="VNF-API" rpc="generate-subnets-subnet-id" mode="sync" >\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />\r
+                                                            <parameter name='i' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
+                                                        </set>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='execute_failure' value='true' />\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.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.return.generate-subnets-subnet-id.uuid" >\r
+                                                <!-- Create l3-network object -->\r
+                                                <parameter name="network-id" value="`$tmp.AnAI.l3network.network-id`" />\r
+                                                <parameter name="subnet-id" value="`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
+                                                <parameter name="gateway-address" value="`$tmp.gateway-address`" />\r
+                                                <parameter name="subnet-name" value="`$preload-data.preload-network-topology-information.subnets[$i].subnet-name`" />\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='j' value='`$tmp.AnAI.l3subnet_length + 1`' />\r
+                                                            <parameter name='i' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
+                                                        </set>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='execute_failure' value='true' />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='j' value='`$tmp.AnAI.l3subnet_length + 1`' />\r
+                                                            <parameter name='i' value='`$preload-data.preload-network-topology-information.subnets_length + 1`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.error-message" value="`'An error occurred while saving new subnet in AnAI with subnet-id = ' + $tmp.return.generate-subnets-subnet-id.uuid`"/>\r
+                                                        </set>\r
+                                                        <return status='success'>\r
+                                                            <parameter name='execute_failure' value='true' />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name="tmp.subnetRollback[$x].subnet-id" value= "`$tmp.return.generate-subnets-subnet-id.uuid`" />\r
+                                                            <parameter name="tmp.subnetRollback[$x].type" value = "create"  />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name="x" value = "`$x + 1`"  />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3networkUpdate' value='1' />\r
+                                                        </set>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.local.subnet-id" value="`$tmp.AnAI.l3network.subnets.subnet[$j].subnet-id`" />\r
+                                                            </set>\r
+                                                            <switch test='`$preload-data.preload-network-topology-information.subnets[$i].host-routes_length`'>\r
+                                                                <outcome value=''>\r
+                                                                    <set>\r
+                                                                        <parameter name='preload-data.preload-network-topology-information.subnets[$i].host-routes_length' value='0' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <for index="h" start="0" end="`$preload-data.preload-network-topology-information.subnets[$i].host-routes_length`">\r
+                                                                <block atomic='true'>\r
+                                                                    <call module="VNF-API" rpc="generate-host-routes-host-route-id" mode="sync" >\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
+                                                                                <return status='success'>\r
+                                                                                    <parameter name='execute_failure' value='true' />\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.AnAI.l3network.network-id  \r
+                       AND subnet.subnet-id = $tmp.local.subnet-id  \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
+                                                                                <return status='success'>\r
+                                                                                    <parameter name='execute_failure' value='true' />\r
+                                                                                </return>\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
+                                                                                <return status='success'>\r
+                                                                                    <parameter name='execute_failure' value='true' />\r
+                                                                                </return>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </block>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+               AND related-to = vpn-binding" >\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 deleting l3-network vpn-binding relationship from AnAI"/>\r
+                                    </set>\r
+                                    <return status='success'>\r
+                                        <parameter name='execute_failure' value='true' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </delete>\r
+                        <switch test="`$execute_failure`">\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\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="`$preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target != ''`" >\r
+                                                <outcome value='true'>\r
+                                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vpn-binding" \r
+               key="vpn-binding.global-route-target = $preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target" \r
+               pfx="tmp.AnAI.vpn-binding">\r
+                                                        <outcome value='not-found'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings n AnAI where global-route-target = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target`"/>\r
+                                                                </set>\r
+                                                                <return status='success'>\r
+                                                                    <parameter name='execute_failure' value='true' />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='failure'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.error-message" value="`'Failed to query vpn-bindings n AnAI where global-route-target = ' + $preload-data.preload-network-topology-information.vpn-bindings[$i].global-route-target`"/>\r
+                                                                </set>\r
+                                                                <return status='success'>\r
+                                                                    <parameter name='execute_failure' value='true' />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='success'>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.vpn-binding-id" value="`$tmp.AnAI.vpn-binding.vpn-id`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </get-resource>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test="`$execute_failure`">\r
+                                                <outcome value='false'>\r
+                                                    <switch test="`$tmp.vpn-binding-id != ''`">\r
+                                                        <outcome value='true'>\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >\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>\r
+                                                                        <set>\r
+                                                                            <parameter name="error-code" value="500"/>\r
+                                                                            <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="i" value = "`$preload-data.preload-network-topology-information.vpn-bindings_length + 1`"  />\r
+                                                                        </set>\r
+                                                                        <return status='success'>\r
+                                                                            <parameter name='execute_failure' value='true' />\r
+                                                                        </return>\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 l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.vpn-binding-id`"/>\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name="i" value = "`$preload-data.preload-network-topology-information.vpn-bindings_length + 1`"  />\r
+                                                                        </set>\r
+                                                                        <return status='success'>\r
+                                                                            <parameter name='execute_failure' value='true' />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='success'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vpn-binding.updated' value='1' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                AND related-to = network-policy" >\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 deleting l3-network network-policy relationship from AnAI in preparation to regenerate the network-policy relationship from PRELOAD."/>\r
+                                    </set>\r
+                                    <return status='success'>\r
+                                        <parameter name='execute_failure' value='true' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </delete>\r
+                        <switch test="`$execute_failure`">\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\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 != NULL`">\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
+               pfx="tmp.AnAI.network-policy" >\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\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
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\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
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'>\r
+                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.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>\r
+                                                                    <set>\r
+                                                                        <parameter name="error-code" value="500"/>\r
+                                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.network-policy.network-policy-id`"/>\r
+                                                                    </set>\r
+                                                                    <return status='success'>\r
+                                                                        <parameter name='execute_failure' value='true' />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='not-found'></outcome>\r
+                                                            <outcome value='success'>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.network-policy.updated' value='1' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                AND related-to = route-table-reference" >\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 deleting l3-network route-table-reference relationship from AnAI prior to regenerate the route-table-reference relationship from PRELOAD."/>\r
+                                    </set>\r
+                                    <return status='success'>\r
+                                        <parameter name='execute_failure' value='true' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </delete>\r
+                        <switch test="`$execute_failure`">\r
+                            <outcome value='false'>\r
+                                <block atomic='true'>\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 != NULL`">\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>\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
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\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
+                                                            <return status='success'>\r
+                                                                <parameter name='execute_failure' value='true' />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'>\r
+                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.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>\r
+                                                                    <set>\r
+                                                                        <parameter name="error-code" value="500"/>\r
+                                                                        <parameter name="tmp.error-message" value="`'An error occurred while saving l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.route-table-reference.route-table-reference-id`"/>\r
+                                                                    </set>\r
+                                                                    <return status='success'>\r
+                                                                        <parameter name='execute_failure' value='true' />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='not-found'></outcome>\r
+                                                            <outcome value='success'>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.route-table-reference.updated' value='1' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value='false'>\r
+                    <switch test="`$tmp.l3networkUpdate == 1`">\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.AnAI.l3network.network-id" >\r
+                                <parameter name="orchestration-status" value="PendingUpdate" />\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 updating l3-network.orchestration-status in AnAI"/>\r
+                                        </set>\r
+                                        <return status='success'>\r
+                                            <parameter name='execute_failure' value='true' />\r
+                                        </return>\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 updating l3-network.orchestration-status in AnAI"/>\r
+                                        </set>\r
+                                        <return status='success'>\r
+                                            <parameter name='execute_failure' value='true' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <set>\r
+                                        <parameter name='tmp.l3network.status.updated' value='1' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </update>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$execute_failure`">\r
+                <outcome value="true">\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='ROLLBACK_START' value='NETWORK_TOPOLOGY_CHANGEASSIGN' />\r
+                        </set>\r
+                        <for index="z" start="0" end="`$tmp.AnAI.l3network.relationship-list.relationship_length`">\r
+                            <switch test="`$tmp.AnAI.l3network.relationship-list.relationship[$z].related-to`">\r
+                                <outcome value='vpn-binding'>\r
+                                    <switch test="`$tmp.vpn-binding.updated == 1`">\r
+                                        <outcome value='true'>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.network-id" >\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.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" />\r
+                                                <outcome value='failure'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork vpn-binding relationship in AnAI where vpn-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                                <outcome value='network-policy'>\r
+                                    <switch test="`$tmp.network-policy.updated == 1`">\r
+                                        <outcome value='true'>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.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.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" />\r
+                                                <outcome value='failure'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork network-policy relationship in AnAI where network-policy-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                                <outcome value='route-table-reference'>\r
+                                    <switch test="`$tmp.route-table-reference.updated == 1`">\r
+                                        <outcome value='true'>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network:relationship-list" \r
+       key="l3-network.network-id = $tmp.AnAI.l3network.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.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value`" />\r
+                                                <outcome value='failure'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <set>\r
+                                                        <parameter name="error-code" value="500"/>\r
+                                                        <parameter name="tmp.rollback.error-message" value="`'An error occurred during rollback of l3-newtork route-table-reference relationship in AnAI where route-table-reference-id = ' + $tmp.AnAI.l3network.relationship-list.relationship[$z].relationship-data[0].relationship-value + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <for index="j" start="0" end="`$x`">\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name="tmp.rollback.match" value="0"/>\r
+                                </set>\r
+                                <for index="i" start="0" end="`$tmp.AnAI.l3network.subnets.subnet_length`">\r
+                                    <switch test="`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-id == $tmp.subnetRollback[$j].subnet-id`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <switch test="`$tmp.subnetRollback[$j].type`">\r
+                                                    <outcome value='delete'>\r
+                                                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id" >\r
+                                                            <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`" />\r
+                                                            <outcome value='not-found'>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </update>\r
+                                                    </outcome>\r
+                                                    <outcome value='update'>\r
+                                                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.AnAI.l3network.subnets.subnet[$j].subnet-id" >\r
+                                                            <parameter name="subnet-name" value="`$tmp.AnAI.l3network.subnets.subnet[$i].subnet-name`"/>\r
+                                                            <parameter name="gateway-address" value="`$tmp.AnAI.l3network.subnets.subnet[$i].gateway-address`"/>\r
+                                                            <parameter name="cidr-mask" value="`$tmp.AnAI.l3network.subnets.subnet[$i].cidr-mask`"/>\r
+                                                            <parameter name="dhcp-start" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-start`"/>\r
+                                                            <parameter name="dhcp-end" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-end`"/>\r
+                                                            <parameter name="dhcp-enabled" value="`$tmp.AnAI.l3network.subnets.subnet[$i].dhcp-enabled`"/>\r
+                                                            <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.subnets.subnet[$i].orchestration-status`" />\r
+                                                            <outcome value='failure'>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet attributes update in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                            <outcome value='not-found'>\r
+                                                                <set>\r
+                                                                    <parameter name="error-code" value="500"/>\r
+                                                                    <parameter name="tmp.rollback.error-message" value="`'failed to rollback the subnet attributes update in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </update>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name="tmp.rollback.match" value="1"/>\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test="`$tmp.rollback.match == 0`">\r
+                                    <outcome value='true'>\r
+                                        <switch test="`$tmp.subnetRollback[$j].type`">\r
+                                            <outcome value='create'>\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $tmp.AnAI.l3network.network-id \r
+                       AND subnet.subnet-id = $tmp.subnetRollback[$j].subnet-id" >\r
+                                                    <outcome value='failure'>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.rollback.error-message" value="`'failed to rollback to delete subnet from AnAI where subnet-id = ' + $tmp.subnetRollback[$j].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <set>\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="tmp.rollback.error-message" value="`'failed to rollback to delete subnet from AnAI where subnet-id = ' + $tmp.subnetRollback[$j].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </delete>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <switch test="`$tmp.l3network.status.updated == 1`">\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.AnAI.l3network.network-id" >\r
+                                    <parameter name="orchestration-status" value="`$tmp.AnAI.l3network.orchestration-status`" />\r
+                                    <outcome value='failure'>\r
+                                        <set>\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="tmp.rollback.error-message" value="`'failed to rollback l3network.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <set>\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="tmp.rollback.error-message" value="`'failed to rollback l3network.orchestration-status in AnAI where subnet-id = ' + $tmp.AnAI.l3network.subnets.subnet[$i].subnet-id + ' MANUAL ROLLBACK IS REQUIRED.'`"/>\r
+                                        </set>\r
+                                    </outcome>\r
+                                </update>\r
+                            </outcome>\r
+                        </switch>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500'/>\r
+                            <parameter name='error-message' value="`'Error updating l3-network in AnAI with network-id = ' + $tmp.AnAI.l3network.network-id + ' - ' + $tmp.error-message + ' - ' + $tmp.rollback.error-message`"/>\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="ack-final" value="Y"/>\r
+            </set>\r
+            <return status="success">\r
+                <parameter name="networkId" value="`$network-topology-operation-input.network-request-information.network-id`" />\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index dc91988..54c8a75 100644 (file)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+<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-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
-               key="l3-network.network-id = $network-topology-operation-input.network-information.network-id" \r
+               key="l3-network.network-id = $network-topology-operation-input.network-information.network-id\r
+               AND depth='all'" \r
                local-only="false" \r
                pfx="aai.l3-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="404" />\r
-       <parameter name="error-message" value="network-id not found in AAI" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" /></return></outcome></get-resource><switch test='`$aai.l3-network.subnets.subnet_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="no networks found" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
-<block atomic="true"><get-resource\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="network-id not found in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$aai.l3-network.subnets.subnet_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="no networks found" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\r
+                        <outcome value=''>\r
+                            <switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
+                                            <block atomic="true">\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="subnet" \r
+               key="l3-network.network-id = $aai.l3-network.network-id \r
+                       AND subnet.subnet-id = $aai.l3-network.subnets.subnet[$sidx].subnet-id" >\r
+                                                    <parameter name="orchestration-status" value="PendingDelete" />\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\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="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </update>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic="true">\r
+                                        <for index='sidx' start='0' end='`$aai.l3-network.subnets.subnet_length`' >\r
+                                            <block atomic="true">\r
+                                                <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_SUBNETS where entity_id = $aai.l3-network.subnets.subnet[$sidx].subnet-id ; "\r
         pfx='tmp.eipam-subnet-row'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Subnet not found in EIPAM_IP_SUBNETS - deactivate failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><set>\r
-       <parameter name="eipam-ip-block.entity-id" value="`$aai.l3-network.subnets.subnet[$sidx].subnet-id`"/>\r
-       <parameter name="eipam-ip-block.plans[0].plan-name" value="$tmp.eipam-subnet-row.plan-name"/>\r
-</set></block></outcome></get-resource><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNETS failed to find subnet matching aai subnet." />\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="Subnet not found in EIPAM_IP_SUBNETS - deactivate failed." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='success'>\r
+                                                        <block atomic='true'>\r
+                                                            <set>\r
+                                                                <parameter name="eipam-ip-block.entity-id" value="`$aai.l3-network.subnets.subnet[$sidx].subnet-id`"/>\r
+                                                                <parameter name="eipam-ip-block.plans[0].plan-name" value="$tmp.eipam-subnet-row.plan-name"/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </get-resource>\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="subnet" \r
                key="l3-network.network-id = $aai.l3-network.network-id \r
                        AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
-<parameter name="orchestration-status" value="PendingDelete" />\r
-               <outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
-       </return></outcome></update></block></for></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                    <parameter name="orchestration-status" value="PendingDelete" />\r
+                                                    <outcome value='failure'>\r
+                                                        <return status="failure">\r
+                                                            <parameter name="error-code" value="500"/>\r
+                                                            <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\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="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </update>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network collection activate failed" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
                key="l3-network.network-id = $aai.l3-network.network-id" >\r
-<parameter name="orchestration-status" value="PendingDelete" />\r
-               <outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network" />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network.  Network not found." />\r
-       </return></outcome></update><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
-</set><set>\r
-<parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\r
-</set><set>\r
-<parameter name='network-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="Failure updating orchestration-status in AAI for l3-network" />\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="Failure updating orchestration-status in AAI for l3-network.  Network not found." />\r
+                    </return>\r
+                </outcome>\r
+            </update>\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
+            </set>\r
+            <set>\r
+                <parameter name='networkId' value='`$network-topology-operation-input.network-information.network-id`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='network-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $network-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/networks/network/'\r
  + $networkId\r
  + '/network-data/network-topology/'` " />\r
\r
-</set><set>\r
-<parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='service-data.networks.network[$tmp.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[$tmp.nidx].network-data.network-level-oper-status.last-action' value='`$network-topology-operation-input.request-information.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+            </set>\r
+            <set>\r
+                <parameter name='service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='service-data.networks.network[$tmp.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[$tmp.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="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index b987c54..0ae9fa7 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='network-topology-operation-unassign' mode='sync'>\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+<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-unassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.networks.network[$nidx].network-data.network-information.from-preload`'>\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+               key="l3-network.network-id = $network-topology-operation-input.network-information.network-id" \r
+               local-only="false" \r
+               pfx="aai.l3-network">\r
+                            <outcome value='success'>\r
+                                <block atomic="true">\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-network" \r
+       key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
+                                        <outcome value='failure'>\r
+                                            <return status="failure">\r
+                                                <parameter name="error-code" value="500"/>\r
+                                                <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </delete>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='not-found'></outcome>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $network-topology-operation-input.network-request-information.network-id + 'from AnAI'" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <switch test='`$network-data.network-topology.network-topology-identifier-structure.network-instance-group-id`'>\r
+                        <outcome value=''>\r
+                            <block atomic="true">\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='SELECT * from NETWORK_MODEL WHERE customization_uuid = $service-data.networks.network[$nidx].network-data.network-information.onap-model-information.model-customization-uuid\r
   and service_uuid = $service-data.networks.network[$nidx].network-data.service-information.onap-model-information.model-uuid'\r
-  pfx='network-model'>\r
-\r
-</get-resource><set>\r
-       <parameter name="tmp.level1-key-value" value=""/>\r
-       <parameter name="tmp.level1inuse" value="false" />\r
-       <parameter name="pidx" value="0" />\r
-       <parameter name="pidx-len" value="0" />\r
-       \r
-</set><get-resource\r
+  pfx='network-model'></get-resource>\r
+                                <set>\r
+                                    <parameter name="tmp.level1-key-value" value=""/>\r
+                                    <parameter name="tmp.level1inuse" value="false" />\r
+                                    <parameter name="pidx" value="0" />\r
+                                    <parameter name="pidx-len" value="0" />\r
+                                </set>\r
+                                <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.network_id = $network-topology-operation-input.network-information.network-id and s.entity_id = k.entity_id ; "\r
         pfx='tmp.eipam-subnet-row[]'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >\r
-<block atomic="true"><switch test='`$tmp.eipam-subnet-row[$esidx].level`'>\r
-<outcome value='1'>\r
-<block atomic="true"><set>\r
-       <parameter name="tmp.level1-key-value[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].key-value`"/>\r
-\r
-       \r
-</set><set>\r
-       <parameter name="tmp.plan-name[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].plan-name`"/>\r
-\r
-       \r
-</set><set>\r
-       <parameter name="pidx" value="`$pidx + 1`"/>\r
-\r
-       \r
-</set><set>\r
-       <parameter name="pidx-len" value="`$pidx`"/>\r
-\r
-       \r
-</set></block></outcome><outcome value='Other'>\r
-<block atomic="true"></block></outcome></switch></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource><set>\r
-       <parameter name="eipam-ip-block.network-id" value="`$network-topology-operation-input.network-information.network-id`" />\r
-       <parameter name="eipam-ip-block.level" value='2' />\r
-       <parameter name="eipam-ip-block.entity-id" value='' /></set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateAllSubnets">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deallocating subnets in EIPAM." />\r
-       </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deleting level 2 plans in EIPAM." />\r
-       </return></outcome></execute><for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >\r
-<block atomic="true"><set>\r
-       <parameter name="tmp.level1-key-value" value="`$tmp.level1-key-value[$npidx]`" />\r
-       <parameter name="tmp.plan-name" value="`$tmp.plan-name[$npidx]`" />\r
-       \r
-</set><switch test='`$tmp.level1-key-value`'>\r
-<outcome value=''>\r
-<block atomic='true'></block></outcome><outcome value='Other'>\r
-<block atomic='true'><switch test='`$network-model`'>\r
-<outcome value=''></outcome><outcome value='Other'>\r
-<block atomic='true'><switch test="`$network-model.use-ipv4`"><outcome value='Y'><block atomic="true"><set>\r
-<parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />\r
-\r
-</set><get-resource\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block atomic='true'>\r
+                                            <for silentFailure='true' index='esidx' start='0' end='`$tmp.eipam-subnet-row_length`' >\r
+                                                <block atomic="true">\r
+                                                    <switch test='`$tmp.eipam-subnet-row[$esidx].level`'>\r
+                                                        <outcome value='1'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name="tmp.level1-key-value[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].key-value`"/>\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="tmp.plan-name[$pidx]" value="`$tmp.eipam-subnet-row[$esidx].plan-name`"/>\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="pidx" value="`$pidx + 1`"/>\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name="pidx-len" value="`$pidx`"/>\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true"></block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block atomic='true'></block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <set>\r
+                                    <parameter name="eipam-ip-block.network-id" value="`$network-topology-operation-input.network-information.network-id`" />\r
+                                    <parameter name="eipam-ip-block.level" value='2' />\r
+                                    <parameter name="eipam-ip-block.entity-id" value='' />\r
+                                </set>\r
+                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateAllSubnets">\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="An error occured while deallocating subnets in EIPAM." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByNetworkLevel">\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="tmp.eipam-error" value="true" />\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="An error occured while deleting level 2 plans in EIPAM." />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <for silentFailure='true' index='npidx' start='0' end='`$pidx-len`' >\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name="tmp.level1-key-value" value="`$tmp.level1-key-value[$npidx]`" />\r
+                                            <parameter name="tmp.plan-name" value="`$tmp.plan-name[$npidx]`" />\r
+                                        </set>\r
+                                        <switch test='`$tmp.level1-key-value`'>\r
+                                            <outcome value=''>\r
+                                                <block atomic='true'></block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic='true'>\r
+                                                    <switch test='`$network-model`'>\r
+                                                        <outcome value=''></outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic='true'>\r
+                                                                <switch test="`$network-model.use-ipv4`">\r
+                                                                    <outcome value='Y'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-name' value='`$network-model.eipam-v4-address-plan`' />\r
+                                                                            </set>\r
+                                                                            <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
         and k.key_value = $tmp.level1-key-value  ; "\r
         pfx='tmp.level2pool[]'>\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><set>\r
-       <parameter name="tmp.level1inuse" value="true" />\r
-       \r
-</set></block></outcome><outcome value="not-found"><block atomic='true'><get-resource\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='success'>\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name="tmp.level1inuse" value="true" />\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value="not-found">\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
         and k.key_value = $tmp.level1-key-value  ; "\r
         pfx='tmp.level1pool[]'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
-<block atomic='true'><set>\r
-<parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
-<parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
-<parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
-<parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
-<parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
-<parameter name="eipam-ip-block.level" value='1' />\r
-\r
-</set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
-       </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
-       </return></outcome></execute></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource></block></outcome></get-resource></block></outcome></switch><switch test="`$network-model.use-ipv6`"><outcome value='Y'><block atomic="true"><set>\r
-<parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />\r
-\r
-</set><get-resource\r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status="failure">\r
+                                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'>\r
+                                                                                                <block atomic='true'>\r
+                                                                                                    <for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
+                                                                                                        <block atomic='true'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
+                                                                                                                <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
+                                                                                                                <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
+                                                                                                                <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
+                                                                                                                <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
+                                                                                                                <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                                            </set>\r
+                                                                                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
+                                                                                                                <outcome value='failure'>\r
+                                                                                                                    <return status="failure">\r
+                                                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                                                        <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
+                                                                                                                    </return>\r
+                                                                                                                </outcome>\r
+                                                                                                            </execute>\r
+                                                                                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
+                                                                                                                <outcome value='failure'>\r
+                                                                                                                    <return status="failure">\r
+                                                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                                                        <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
+                                                                                                                    </return>\r
+                                                                                                                </outcome>\r
+                                                                                                            </execute>\r
+                                                                                                        </block>\r
+                                                                                                    </for>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value="not-found">\r
+                                                                                                <block atomic='true'></block>\r
+                                                                                            </outcome>\r
+                                                                                        </get-resource>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <switch test="`$network-model.use-ipv6`">\r
+                                                                    <outcome value='Y'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.plan-name' value='`$network-model.eipam-v6-address-plan`' />\r
+                                                                            </set>\r
+                                                                            <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
         and k.key_value = $tmp.level1-key-value  ; "\r
         pfx='tmp.level2pool[]'>\r
-\r
-\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><set>\r
-       <parameter name="tmp.level1inuse" value="true" />\r
-       \r
-</set></block></outcome><outcome value="not-found"><block atomic='true'><get-resource\r
+                                                                                <outcome value='failure'>\r
+                                                                                    <return status="failure">\r
+                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                        <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
+                                                                                    </return>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='success'>\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <set>\r
+                                                                                            <parameter name="tmp.level1inuse" value="true" />\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value="not-found">\r
+                                                                                    <block atomic='true'>\r
+                                                                                        <get-resource\r
         plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
         resource='SQL'\r
         key="SELECT * from EIPAM_IP_POOLS p, EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k \r
         and p.pool_id = s.pool_id and s.entity_id = k.entity_id \r
         and k.key_value = $tmp.level1-key-value  ; "\r
         pfx='tmp.level1pool[]'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-<block atomic='true'><for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
-<block atomic='true'><set>\r
-<parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
-<parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
-<parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
-<parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
-<parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
-<parameter name="eipam-ip-block.level" value='1' />\r
-\r
-</set><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
-       </return></outcome></execute><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name="tmp.eipam-error" value="true" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
-       </return></outcome></execute></block></for></block></outcome><outcome value="not-found"><block atomic='true'></block></outcome></get-resource></block></outcome></get-resource></block></outcome></switch></block></outcome></switch></block></outcome></switch></block></for><switch test='`$service-data.networks.network_length`'>\r
-<outcome value='1'>\r
-<block atomic="true"><set>\r
-       <parameter name="service-data.networks." value=""/>\r
-\r
-</set><set>\r
-       <parameter name="service-data.networks.network_length" value="0"/>\r
-\r
-       \r
-</set></block></outcome><outcome value='Other'>\r
-<block atomic="true"><set>\r
-       <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>\r
-       \r
-       \r
-</set><for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\r
-<block atomic="true"><set>\r
-       <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
-       \r
-       \r
-</set><set>\r
-       <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />\r
-       \r
-</set></block></for><set>\r
-       <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>\r
-\r
-       \r
-</set><set>\r
-       <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>\r
-\r
-</set></block></outcome></switch><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                                                                            <outcome value='failure'>\r
+                                                                                                <return status="failure">\r
+                                                                                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                    <parameter name="error-code" value="500"/>\r
+                                                                                                    <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
+                                                                                                </return>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='success'>\r
+                                                                                                <block atomic='true'>\r
+                                                                                                    <for silentFailure='true' index='lidx' start='0' end='`$tmp.level1pool_length`' >\r
+                                                                                                        <block atomic='true'>\r
+                                                                                                            <set>\r
+                                                                                                                <parameter name='eipam-ip-block.entity-id' value='`$tmp.level1pool[$lidx].entity-id`' />\r
+                                                                                                                <parameter name='eipam-ip-block.ip-address' value='`$tmp.level1pool[$lidx].ip-address`' />\r
+                                                                                                                <parameter name='eipam-ip-block.mask' value='`$tmp.level1pool[$lidx].prefix-length`' />\r
+                                                                                                                <parameter name="eipam-ip-block.network-id" value="`$tmp.level1pool[$lidx].network-id`" />\r
+                                                                                                                <parameter name="eipam-ip-block.pool-id" value="`$tmp.level1pool[$lidx].pool-id`" />\r
+                                                                                                                <parameter name="eipam-ip-block.level" value='1' />\r
+                                                                                                            </set>\r
+                                                                                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
+                                                                                                                <outcome value='failure'>\r
+                                                                                                                    <return status="failure">\r
+                                                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                                                        <parameter name="error-message" value="An error occured while deallocating subnet in EIPAM." />\r
+                                                                                                                    </return>\r
+                                                                                                                </outcome>\r
+                                                                                                            </execute>\r
+                                                                                                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                                                                                                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePoolByPoolId">\r
+                                                                                                                <outcome value='failure'>\r
+                                                                                                                    <return status="failure">\r
+                                                                                                                        <parameter name="tmp.eipam-error" value="true" />\r
+                                                                                                                        <parameter name="error-code" value="500"/>\r
+                                                                                                                        <parameter name="error-message" value="An error occured while deleting pool in EIPAM." />\r
+                                                                                                                    </return>\r
+                                                                                                                </outcome>\r
+                                                                                                            </execute>\r
+                                                                                                        </block>\r
+                                                                                                    </for>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value="not-found">\r
+                                                                                                <block atomic='true'></block>\r
+                                                                                            </outcome>\r
+                                                                                        </get-resource>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </get-resource>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                                <switch test='`$service-data.networks.network_length`'>\r
+                                    <outcome value='1'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="service-data.networks." value=""/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name="service-data.networks.network_length" value="0"/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>\r
+                                            </set>\r
+                                            <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
        resource="l3-network" \r
-       key="l3-network.network-id = $network-topology-operation-input.network-information.network-id"><outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
-       </return></outcome></delete><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+       key="l3-network.network-id = $network-topology-operation-input.network-information.network-id">\r
+                                    <outcome value='failure'>\r
+                                        <return status="failure">\r
+                                            <parameter name="error-code" value="500"/>\r
+                                            <parameter name="error-message" value="An error occured while deleting network from AAI" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </delete>\r
+                                <set>\r
+                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$network-topology-operation-input.network-information.network-id`' />\r
+                                    <parameter name='naming-policy-generate-name-input.naming-type' value='NETWORK' />\r
+                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <block atomic="true">\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network collection activate failed" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.networks.network_length`'>\r
+                <outcome value='1'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="service-data.networks." value=""/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.networks.network_length" value="0"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="tmp.new_length" value="`$service-data.networks.network_length - 1`"/>\r
+                        </set>\r
+                        <for silentFailure='true' index='snidx' start='`$tmp.nidx + 1`' end='`$service-data.networks.network_length`' >\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="tmp.newidx" value="`$snidx - 1`"/>\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name="service-data.networks.network[$tmp.newidx]." value="$service-data.networks.network[$snidx]." />\r
+                                </set>\r
+                            </block>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name="service-data.networks.network_length" value="`$service-data.networks.network_length - 1`"/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.networks.network[$tmp.new_length]." value=""/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index f7782fb..7623a91 100644 (file)
@@ -7,76 +7,57 @@
             <switch test='`$network-topology-operation-input.sdnc-request-header.svc-action`'>\r
                 <outcome value='assign'>\r
                     <block atomic="true">\r
-                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>\r
+                        <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
+                            <outcome value='Created'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='PendingDelete'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='PendingCreate'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for assign. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-assign' mode='sync' ></call>\r
+                            </outcome>\r
+                        </switch>\r
                     </block>\r
                 </outcome>\r
                 <outcome value='activate'>\r
-                    <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                        <outcome value='ActivateSOTNConnectivityInstance'>\r
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-activate' mode='sync' ></call>\r
-                        </outcome>\r
-                        <outcome value='ActivateDCINetworkInstance'>\r
-                            <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-activate' mode='sync' ></call>\r
-                        </outcome>\r
-                        <outcome value='other'>\r
-                            <block atomic="true">\r
-                                <switch test='`$service-data.networks.network_length`'>\r
-                                    <outcome value=''>\r
-                                        <return status='failure'>\r
-                                            <parameter name='ack-final' value='Y'/>\r
-                                            <parameter name="error-code" value="500" />\r
-                                            <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                        </return>\r
-                                    </outcome>\r
-                                    <outcome value='Other'>\r
-                                        <block atomic="true">\r
-                                            <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-                                                <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
-                                                    <outcome value='true'>\r
-                                                        <set>\r
-                                                            <parameter name='tmp.nidx' value='`$nidx`' />\r
-                                                            <parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
-                                                        </set>\r
-                                                    </outcome>\r
-                                                </switch>\r
-                                            </for>\r
-                                            <switch test="`$tmp.nidx`">\r
-                                                <outcome value=''>\r
-                                                    <return status='failure'>\r
-                                                        <parameter name='ack-final' value='Y'/>\r
-                                                        <parameter name="error-code" value="500" />\r
-                                                        <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                                    </return>\r
-                                                </outcome>\r
-                                            </switch>\r
-                                        </block>\r
-                                    </outcome>\r
-                                </switch>\r
-                                <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
-                                    <outcome value='PendingCreate'>\r
-                                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>\r
-                                    </outcome>\r
-                                    <outcome value='Other'>\r
-                                        <return status='failure'>\r
-                                            <parameter name='ack-final' value='Y'/>\r
-                                            <parameter name="error-code" value="500" />\r
-                                            <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
-                                        </return>\r
-                                    </outcome>\r
-                                </switch>\r
-                            </block>\r
-                        </outcome>\r
-                    </switch>\r
-                </outcome>\r
-                <outcome value='deactivate'>\r
                     <block atomic="true">\r
-                        <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                            <outcome value='DeactivateSOTNConnectivityInstance'>\r
-                                <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-deactivate' mode='sync' ></call>\r
+                        <switch test='`$service-data.networks.network_length`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
+                                </return>\r
                             </outcome>\r
                             <outcome value='Other'>\r
                                 <block atomic="true">\r
-                                    <switch test='`$service-data.networks.network_length`'>\r
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test="`$tmp.nidx`">\r
                                         <outcome value=''>\r
                                             <return status='failure'>\r
                                                 <parameter name='ack-final' value='Y'/>\r
                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
                                             </return>\r
                                         </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='nidx' value='`$tmp.nidx`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
+                            <outcome value=''>\r
+                                <return status='success'>\r
+                                    <parameter name='' value='' />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
+                                            </return>\r
+                                        </outcome>\r
                                         <outcome value='Other'>\r
                                             <block atomic="true">\r
-                                                <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
-                                                    <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
+                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
+                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">\r
                                                         <outcome value='true'>\r
-                                                            <set>\r
-                                                                <parameter name='tmp.nidx' value='`$nidx`' />\r
-                                                                <parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
-                                                            </set>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />\r
+                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
+                                                                </set>\r
+                                                            </block>\r
                                                         </outcome>\r
                                                     </switch>\r
                                                 </for>\r
-                                                <switch test="`$tmp.nidx`">\r
-                                                    <outcome value=''>\r
-                                                        <return status='failure'>\r
-                                                            <parameter name='ack-final' value='Y'/>\r
-                                                            <parameter name="error-code" value="500" />\r
-                                                            <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                                        </return>\r
-                                                    </outcome>\r
-                                                </switch>\r
                                             </block>\r
                                         </outcome>\r
                                     </switch>\r
-                                    <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
-                                        <outcome value='Created'>\r
-                                            <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                                                <outcome value='DeActivateDCINetworkInstance'>\r
-                                                    <call module='GENERIC-RESOURCE-API' rpc='dci-connects-network-topology-operation-deactivate' mode='sync' ></call>\r
-                                                </outcome>\r
-                                                <outcome value='Other'>\r
-                                                    <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>\r
-                                                </outcome>\r
-                                            </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`'>\r
+                            <outcome value='PendingCreate'>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-activate' mode='sync' ></call>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Network is not in appropriate state for activate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$service-data.networks.network_length`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test="`$tmp.nidx`">\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
+                                            </return>\r
                                         </outcome>\r
                                         <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='nidx' value='`$tmp.nidx`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-changeassign' mode='sync' ></call>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$service-data.networks.network_length`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <for index='nidx' start='0' end='`$service-data.networks.network_length`' >\r
+                                        <switch test="`$service-data.networks.network[$nidx].network-id == $network-topology-operation-input.network-information.network-id`">\r
+                                            <outcome value='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.nidx' value='`$nidx`' />\r
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test="`$tmp.nidx`">\r
+                                        <outcome value=''>\r
                                             <return status='failure'>\r
                                                 <parameter name='ack-final' value='Y'/>\r
                                                 <parameter name="error-code" value="500" />\r
-                                                <parameter name="error-message" value="`'Network is not in appropriate state for deactivate. Current state is ' + $service-data.networks.network[$tmp.nidx].network-data.network-level-oper-status.order-status`" />\r
+                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
                                             </return>\r
                                         </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='nidx' value='`$tmp.nidx`' />\r
+                                            </set>\r
+                                        </outcome>\r
                                     </switch>\r
                                 </block>\r
                             </outcome>\r
                         </switch>\r
+                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
+                            <outcome value=''>\r
+                                <return status='success'>\r
+                                    <parameter name='' value='' />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
+                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />\r
+                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-deactivate' mode='sync' ></call>\r
                     </block>\r
                 </outcome>\r
                 <outcome value='unassign'>\r
                                             <outcome value='true'>\r
                                                 <set>\r
                                                     <parameter name='tmp.nidx' value='`$nidx`' />\r
-                                                    <parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                    <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
                                                 </set>\r
                                             </outcome>\r
                                         </switch>\r
                                                 <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
                                             </return>\r
                                         </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='nidx' value='`$tmp.nidx`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
+                            <outcome value=''>\r
+                                <return status='success'>\r
+                                    <parameter name='' value='' />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-instance-group-id not found in service-data" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
+                                                    <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ngidx' value='`$ngidx`' />\r
+                                                                    <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
                                     </switch>\r
                                 </block>\r
                             </outcome>\r
                         <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
                     </return>\r
                 </outcome>\r
-                <outcome value='create'>\r
-                    <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                        <outcome value='CreateSOTNConnectivityInstance'>\r
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-create' mode='sync' ></call>\r
-                        </outcome>\r
-                        <outcome value='other'>\r
-                            <block atomic="true">\r
-                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-create' mode='sync' ></call>\r
-                            </block>\r
-                        </outcome>\r
-                    </switch>\r
-                </outcome>\r
-                <outcome value='delete'>\r
-                    <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                        <outcome value='DeleteSOTNConnectivityInstance'>\r
-                            <call module='GENERIC-RESOURCE-API' rpc='sotn-network-topology-operation-delete' mode='sync' ></call>\r
-                        </outcome>\r
-                        <outcome value='other'>\r
-                            <block atomic="true">\r
-                                <call module='GENERIC-RESOURCE-API' rpc='network-topology-operation-delete' mode='sync' ></call>\r
-                            </block>\r
-                        </outcome>\r
-                    </switch>\r
-                </outcome>\r
             </switch>\r
             <set>\r
                 <parameter name="ack-final" value="Y"/>\r
             </return>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
index 50b7186..c6d45de 100755 (executable)
@@ -1,31 +1,46 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='policy-manager-create-policy' mode='sync'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.createpolicy.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/createPolicy'`" />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name='convertResponse' value="false" />\r
-    <parameter name='customHttpHeaders'\r
-      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.pushpolicy.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/pushPolicy'`" />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='PUT' />\r
-    <parameter name='convertResponse' value="false" />\r
-    <parameter name='customHttpHeaders'\r
-      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
-<outcome value='success'>\r
-<block atomic="true">\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to push policy in Policy Manager' />\r
-</return></outcome></execute></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to create policy in Policy Manager' />\r
-</return></outcome></execute><return status='success'>\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='policy-manager-create-policy' mode='sync'>
+        <block atomic="true">
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.createpolicy.templatefile`" />
+                <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/createPolicy'`" />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name='convertResponse' value="false" />
+                <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.pushpolicy.templatefile`" />
+                            <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/pushPolicy'`" />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='PUT' />
+                            <parameter name='convertResponse' value="false" />
+                            <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                            <outcome value='success'>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value='Failed to push policy in Policy Manager' />
+                                </return>
+                            </outcome>
+                        </execute>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Failed to create policy in Policy Manager' />
+                    </return>
+                </outcome>
+            </execute>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 9b85933..e5bcb09 100755 (executable)
@@ -1,31 +1,46 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='policy-manager-delete-policy' mode='sync'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypdp.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/deletePolicy'`" />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='DELETE' />\r
-    <parameter name='convertResponse' value="false" />\r
-    <parameter name='customHttpHeaders'\r
-      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypap.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/deletePolicy'`" />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='DELETE' />\r
-    <parameter name='convertResponse' value="false" />\r
-    <parameter name='customHttpHeaders'\r
-      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
-<outcome value='success'>\r
-<block atomic="true">\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to delete policy from Policy Manager (PAP)' />\r
-</return></outcome></execute></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to delete policy from Policy Manager (PDP)' />\r
-</return></outcome></execute><return status='success'>\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='policy-manager-delete-policy' mode='sync'>
+        <block atomic="true">
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypdp.templatefile`" />
+                <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/deletePolicy'`" />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='DELETE' />
+                <parameter name='convertResponse' value="false" />
+                <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.deletepolicypap.templatefile`" />
+                            <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/deletePolicy'`" />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='DELETE' />
+                            <parameter name='convertResponse' value="false" />
+                            <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                            <outcome value='success'>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value='Failed to delete policy from Policy Manager (PAP)' />
+                                </return>
+                            </outcome>
+                        </execute>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Failed to delete policy from Policy Manager (PDP)' />
+                    </return>
+                </outcome>
+            </execute>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index c1b4ccd..a0d77fd 100755 (executable)
@@ -1,42 +1,89 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='policy-update-notify-operation' mode='sync'>\r
-<block atomic="true"><switch test='`$policy-update-notify-operation-input.update-type`'>\r
-<outcome value='Update'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><set>\r
-<parameter name='tmp.sql' value="`'insert into POLICY_UPDATE_NOTIFICATION (policy_name,version_id,update_type) values ( '\r
-+ ' $policy-update-notify-operation-input.policy-name , $policy-update-notify-operation-input.version-id , $policy-update-notify-operation-input.update-type )'`" />\r
-\r
-</set><save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key="`$tmp.sql`" pfx='pfx'>\r
-</save><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />\r
-    <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />\r
-    <parameter name='format' value='json' />\r
-    <parameter name='httpMethod' value='POST' />\r
-    <parameter name='responsePrefix' value="policy" />    \r
-    <parameter name='customHttpHeaders'\r
-      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />\r
-<outcome value='success'>\r
-<block atomic="true">\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to get policy from Policy Manager' />\r
-</return></outcome></execute><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='network-policy' />\r
-<parameter name='api-action' value='update' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='cloud-region-id' value='`$cloud-region-id`' />\r
-<parameter name='update-network-policy-json' value='`$policy.config`' /><outcome value='success'>\r
-<block atomic="true">\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-<parameter name='error-code' value='500' />\r
-<parameter name='error-message' value='Failed to get policy from Policy Manager' />\r
-</return></outcome></execute></block></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="success" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='policy-update-notify-operation' mode='sync'>
+        <block atomic="true">
+            <switch test='`$policy-update-notify-operation-input.update-type`'>
+                <outcome value='Update'>
+                    <block atomic="true">
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                            <parameter name='contextPrefix' value='prop' />
+                        </execute>
+                        <set>
+                            <parameter name='tmp.sql' value="`'insert into POLICY_UPDATE_NOTIFICATION (policy_name,version_id,update_type) values ( '
++ ' $policy-update-notify-operation-input.policy-name , $policy-update-notify-operation-input.version-id , $policy-update-notify-operation-input.update-type )'`" />
+                        </set>
+                        <save plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key="`$tmp.sql`" pfx='pfx'></save>
+                        <set>
+                            <parameter name='tmp.policy-name' value='`$policy-update-notify-operation-input.policy-name`' />
+                        </set>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />
+                            <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='POST' />
+                            <parameter name='responsePrefix' value="policy" />
+                            <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                            <outcome value='success'>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value='Failed to get policy from Policy Manager' />
+                                </return>
+                            </outcome>
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx' >
+                            <parameter name='source' value="policy.config" />
+                            <parameter name='outputPath' value="tmp.config-ctx" />
+                            <parameter name='isEscaped' value='false' />
+                            <outcome value='success'>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value='Failed to convert config variable from PolicyManager' />
+                                </return>
+                            </outcome>
+                        </execute>
+                        <set>
+                            <parameter name='policy-name' value='`$tmp.config-ctx.content.fq_name[2]`' />
+                        </set>
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >
+                            <parameter name="original_string" value="`$policy-name`" />
+                            <parameter name="regex" value="_"/>
+                            <parameter name="limit" value="3" />
+                            <parameter name="ctx_memory_result_key" value="policy-splits" />
+                        </execute>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                            <parameter name='api-name' value='network-policy' />
+                            <parameter name='api-action' value='update' />
+                            <parameter name='resp-prefix' value='contrailResp' />
+                            <parameter name='cloud-region-id' value='`$policy-splits[1]`' />
+                            <parameter name='update-network-policy-json' value='`$policy.config`' />
+                            <outcome value='success'>
+                                <block atomic="true"></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="`'Error updating Contrail: ' + $contrailResp.resp-message`" />
+                                </return>
+                            </outcome>
+                        </execute>
+                    </block>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="success" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-get-policy.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-get-policy.xml
new file mode 100644 (file)
index 0000000..a5e7438
--- /dev/null
@@ -0,0 +1,113 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-get-policy' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.policy-name' value='`$db.cap[0].policy-name`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.pm.getpolicy.templatefile`" />
+                <parameter name='restapiUrl' value="`$prop.policy-manager.url + '/pdp/api/getConfig'`" />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='POST' />
+                <parameter name='responsePrefix' value="policy" />
+                <parameter name='customHttpHeaders'
+      value="`'Authorization=Basic ' + $prop.policy-manager.authorization + ',ClientAuth=Basic ' + $prop.policy-manager.clientauth + ',Environment=' + $prop.policy-manager.environment `" />
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Failed to get policy from Policy Manager' />
+                    </return>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='jsonStringToCtx' >
+                <parameter name='source' value="policy.config" />
+                <parameter name='outputPath' value="tmp.config-ctx" />
+                <parameter name='isEscaped' value='false' />
+                <outcome value='success'>
+                    <block atomic="true"></block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Failed to convert config variable from PolicyManager' />
+                    </return>
+                </outcome>
+            </execute>
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="toLower">
+                <parameter name="source" value="`$tmp.tenant-context`" />
+                <parameter name="outputPath" value="tmp.lc-tenant-context" />
+            </execute>
+            <switch test='`$tmp.lc-tenant-context`'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.defaultContext`' />
+                    </set>
+                </outcome>
+                <outcome value='Other'>
+                    <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains" emitsOutcome='true'>
+                        <parameter name="source" value="`$tmp.lc-tenant-context`" />
+                        <parameter name="target" value="prod" />
+                        <outcome value='true'>
+                            <set>
+                                <parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.productionContext`' />
+                            </set>
+                        </outcome>
+                        <outcome value='Other'>
+                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains" emitsOutcome='true'>
+                                <parameter name="source" value="`$tmp.lc-tenant-context`" />
+                                <parameter name="target" value="test" />
+                                <outcome value='true'>
+                                    <set>
+                                        <parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.testContext`' />
+                                    </set>
+                                </outcome>
+                                <outcome value='Other'>
+                                    <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains" emitsOutcome='true'>
+                                        <parameter name="source" value="`$tmp.lc-tenant-context`" />
+                                        <parameter name="target" value="dev" />
+                                        <outcome value='true'>
+                                            <set>
+                                                <parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.developmentContext`' />
+                                            </set>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="contains" emitsOutcome='true'>
+                                                <parameter name="source" value="`$tmp.lc-tenant-context`" />
+                                                <parameter name="target" value="default" />
+                                                <outcome value='true'>
+                                                    <set>
+                                                        <parameter name='tmp.dest-p-interface' value='`$tmp.config-ctx.content.defaultContext`' />
+                                                    </set>
+                                                </outcome>
+                                                <outcome value='Other'>
+                                                    <return status='failure'>
+                                                        <parameter name='error-code' value='500' />
+                                                        <parameter name='error-message' value="`'Unexpected tenant-context value of ' + $tmp.tenant-context`" />
+                                                    </return>
+                                                </outcome>
+                                            </execute>
+                                        </outcome>
+                                    </execute>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                    </execute>
+                </outcome>
+            </switch>
+            <switch test='`$tmp.dest-p-interface`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Unable to find p-interface in policy ' + tmp.policy-name`" />
+                    </return>
+                </outcome>
+            </switch>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-rollback-capacity-db.xml
new file mode 100644 (file)
index 0000000..7b1ab18
--- /dev/null
@@ -0,0 +1,52 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-rollback-capacity-db' mode='sync'>
+        <block>
+            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <block atomic="true">
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select available_capacity
+    from VNICS_CAPACITY
+    where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id
+    and vnic_port_name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name'
+  pfx='db.vnics-capacity'>
+                        <outcome value='success'>
+                            <block>
+                                <set>
+                                    <parameter name='tmp.avail-capacity' value='`$db.vnics-capacity.available-capacity + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity`' />
+                                </set>
+                                <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+key="update VNICS_CAPACITY
+     set available_capacity = $tmp.avail-capacity
+     where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id
+     and vnic_port_name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name
+" ></update>
+                            </block>
+                        </outcome>
+                    </get-resource>
+                </block>
+            </for>
+            <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='delete from VNICS_CONFIGURATION_ID
+       where configuration_id = $tmp.configuration-id
+    and vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' ></delete>
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select configuration_id
+    from VNICS_CONFIGURATION_ID
+    where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id'
+  pfx='db.vnics-confid'>
+                <outcome value='not-found'>
+                    <block>
+                        <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='delete from VNICS_CAPACITY
+       where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' ></delete>
+                        <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='delete from VNICS_CAPACITY_GROUP
+       where vnics_group_id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id' ></delete>
+                    </block>
+                </outcome>
+            </get-resource>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-async.xml
new file mode 100644 (file)
index 0000000..0d95f40
--- /dev/null
@@ -0,0 +1,765 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-activate-async' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="pm-mdsal" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Failed to read port-mirror-configuration from MD-SAL" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Cannot find port-mirror-configuration in MD-SAL" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
+                <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
+            </set>
+            <set>
+                <parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />
+            </set>
+            <set>
+                <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
+            </set>
+            <switch test='`$tmp.configuration-sub-type`'>
+                <outcome value='vprobe'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='cto-api.default-domain' value='default-domain' />
+                            <parameter name='cto-api.default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                            <parameter name='cto-api.cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                            <parameter name='cto-api.contrail-route-allotted-resource-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />
+                            <parameter name='cto-api.src-contrail-network-fqdn'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn`' />
+                            <parameter name='cto-api.collector-contrail-network-fqdn'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                            <parameter name='cto-api.owning-entity'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />
+                        </set>
+                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-activate' mode='sync' >
+                            <outcome value='failure'>
+                                <block atomic="true">
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                        <parameter name="input.ack-final-indicator" value="Y" />
+                                        <parameter name="input.response-code" value="500" />
+                                        <parameter name="input.response-message" value="`$error-message`" />
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                    </configure>
+                                    <return status='failure'>
+                                        <parameter name='ack-final' value='Y'/>
+                                        <parameter name="error-code" value="500" />
+                                        <parameter name="error-message" value="`'$error-message'`" />
+                                    </return>
+                                </block>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+            </switch>
+            <for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <block atomic="true">
+                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>
+                        <outcome value='Other'>
+                            <set>
+                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />
+                            </set>
+                        </outcome>
+                        <outcome value=''>
+                            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>
+                                <outcome value='Other'>
+                                    <set>
+                                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />
+                                    </set>
+                                </outcome>
+                                <outcome value=''>
+                                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>
+                                        <outcome value='Other'>
+                                            <set>
+                                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />
+                                            </set>
+                                        </outcome>
+                                        <outcome value=''>
+                                            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>
+                                                <outcome value='Other'>
+                                                    <set>
+                                                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />
+                                                    </set>
+                                                </outcome>
+                                                <outcome value=''>
+                                                    <block atomic="true">
+                                                        <set>
+                                                            <parameter name="error-message" value="`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                                        </set>
+                                                        <block atomic="true">
+                                                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                                                <block atomic="true">
+                                                                    <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                                                        <outcome value='true'>
+                                                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                                                <parameter name='api-name' value='port-mirroring' />
+                                                                                <parameter name='api-action' value='disable' />
+                                                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                                                <parameter name='default-domain' value='default-domain' />
+                                                                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                                                            </execute>
+                                                                        </outcome>
+                                                                    </switch>
+                                                                    <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                                                        <outcome value='true'>
+                                                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                                                <parameter name="is-port-mirrored" value="false" />
+                                                                            </update>
+                                                                        </outcome>
+                                                                    </switch>
+                                                                </block>
+                                                            </for>
+                                                            <block atomic="true">
+                                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                                                    <parameter name="input.ack-final-indicator" value="Y" />
+                                                                    <parameter name="input.response-code" value="500" />
+                                                                    <parameter name="input.response-message" value="`$error-message`" />
+                                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                                                </configure>
+                                                                <return status='failure'>
+                                                                    <parameter name='ack-final' value='Y'/>
+                                                                    <parameter name="error-code" value="500" />
+                                                                    <parameter name="error-message" value="`'$error-message'`" />
+                                                                </return>
+                                                            </block>
+                                                        </block>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </outcome>
+                                    </switch>
+                                </outcome>
+                            </switch>
+                        </outcome>
+                    </switch>
+                    <switch test='`$tmp.configuration-sub-type`'>
+                        <outcome value='vprobe'>
+                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                <parameter name='api-name' value='port-mirroring' />
+                                <parameter name='api-action' value='enable' />
+                                <parameter name='resp-prefix' value='contrailResp' />
+                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                                <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                                <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                <parameter name='default-domain' value='default-domain' />
+                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                <parameter name='traffic-direction' value='both' />
+                                <parameter name='analyzer-ip-address'
+  value='`$tmp.analyzer.ip-address`' />
+                                <parameter name='udp-port' value='8099' />
+                                <parameter name='routing-instance'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                                <parameter name='local-preference' value='1' />
+                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                <outcome value='success'>
+                                    <set>
+                                        <parameter name='contrail-set[$src-idx]' value='true' />
+                                    </set>
+                                </outcome>
+                                <outcome value='failure'>
+                                    <block atomic="true">
+                                        <set>
+                                            <parameter name="error-message" value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                        </set>
+                                        <block atomic="true">
+                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                                <parameter name="input.ack-final-indicator" value="Y" />
+                                                <parameter name="input.response-code" value="500" />
+                                                <parameter name="input.response-message" value="`$error-message`" />
+                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                            </configure>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'$error-message'`" />
+                                            </return>
+                                        </block>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                        <outcome value='pprobe'>
+                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                <parameter name='api-name' value='port-mirroring' />
+                                <parameter name='api-action' value='enable' />
+                                <parameter name='resp-prefix' value='contrailResp' />
+                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                                <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                                <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                <parameter name='default-domain' value='default-domain' />
+                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                <parameter name='traffic-direction' value='both' />
+                                <parameter name='analyzer-ip-address'
+  value='`$tmp.analyzer.ip-address`' />
+                                <parameter name='vni' value='1000' />
+                                <parameter name='udp-port' value='8099' />
+                                <parameter name='routing-instance'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                                <parameter name='local-preference' value='1' />
+                                <parameter name='juniper-header' value='false' />
+                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                <outcome value='success'>
+                                    <set>
+                                        <parameter name='contrail-set[$src-idx]' value='true' />
+                                    </set>
+                                </outcome>
+                                <outcome value='failure'>
+                                    <block atomic="true">
+                                        <set>
+                                            <parameter name="error-message" value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                        </set>
+                                        <block atomic="true">
+                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                                <parameter name="input.ack-final-indicator" value="Y" />
+                                                <parameter name="input.response-code" value="500" />
+                                                <parameter name="input.response-message" value="`$error-message`" />
+                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                            </configure>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'$error-message'`" />
+                                            </return>
+                                        </block>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                    </switch>
+                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                        <parameter name="is-port-mirrored" value="true" />
+                        <outcome value='not-found'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="error-message" value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                </set>
+                                <block atomic="true">
+                                    <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                        <block atomic="true">
+                                            <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                                <outcome value='true'>
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                        <parameter name='api-name' value='port-mirroring' />
+                                                        <parameter name='api-action' value='disable' />
+                                                        <parameter name='resp-prefix' value='contrailResp' />
+                                                        <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                        <parameter name='default-domain' value='default-domain' />
+                                                        <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                        <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                        <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                                    </execute>
+                                                </outcome>
+                                            </switch>
+                                            <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                                <outcome value='true'>
+                                                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                        <parameter name="is-port-mirrored" value="false" />
+                                                    </update>
+                                                </outcome>
+                                            </switch>
+                                        </block>
+                                    </for>
+                                    <block atomic="true">
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                            <parameter name="input.ack-final-indicator" value="Y" />
+                                            <parameter name="input.response-code" value="500" />
+                                            <parameter name="input.response-message" value="`$error-message`" />
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                        </configure>
+                                        <return status='failure'>
+                                            <parameter name='ack-final' value='Y'/>
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="`'$error-message'`" />
+                                        </return>
+                                    </block>
+                                </block>
+                            </block>
+                        </outcome>
+                        <outcome value='failure'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="error-message" value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                </set>
+                                <block atomic="true">
+                                    <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                        <block atomic="true">
+                                            <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                                <outcome value='true'>
+                                                    <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                        <parameter name='api-name' value='port-mirroring' />
+                                                        <parameter name='api-action' value='disable' />
+                                                        <parameter name='resp-prefix' value='contrailResp' />
+                                                        <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                        <parameter name='default-domain' value='default-domain' />
+                                                        <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                        <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                        <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                                    </execute>
+                                                </outcome>
+                                            </switch>
+                                            <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                                <outcome value='true'>
+                                                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                        <parameter name="is-port-mirrored" value="false" />
+                                                    </update>
+                                                </outcome>
+                                            </switch>
+                                        </block>
+                                    </for>
+                                    <block atomic="true">
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                            <parameter name="input.ack-final-indicator" value="Y" />
+                                            <parameter name="input.response-code" value="500" />
+                                            <parameter name="input.response-message" value="`$error-message`" />
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                        </configure>
+                                        <return status='failure'>
+                                            <parameter name='ack-final' value='Y'/>
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="`'$error-message'`" />
+                                        </return>
+                                    </block>
+                                </block>
+                            </block>
+                        </outcome>
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='l-interface-set[$src-idx]' value='true' />
+                            </set>
+                        </outcome>
+                    </update>
+                </block>
+            </for>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="configuration"
+   key="configuration.configuration-id = $tmp.configuration-id"
+   force="true" pfx="tmp.AnAI-data">
+                <parameter name="operational-status" value="in-service-path" />
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Unable to find configuration object in AAI" />
+                        </set>
+                        <block atomic="true">
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                <block atomic="true">
+                                    <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                <parameter name='api-name' value='port-mirroring' />
+                                                <parameter name='api-action' value='disable' />
+                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                <parameter name='default-domain' value='default-domain' />
+                                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                            </execute>
+                                        </outcome>
+                                    </switch>
+                                    <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                <parameter name="is-port-mirrored" value="false" />
+                                            </update>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </for>
+                            <block atomic="true">
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                    <parameter name="input.ack-final-indicator" value="Y" />
+                                    <parameter name="input.response-code" value="500" />
+                                    <parameter name="input.response-message" value="`$error-message`" />
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                </configure>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'$error-message'`" />
+                                </return>
+                            </block>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Failure updating configuration object in AAI" />
+                        </set>
+                        <block atomic="true">
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                <block atomic="true">
+                                    <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                <parameter name='api-name' value='port-mirroring' />
+                                                <parameter name='api-action' value='disable' />
+                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                <parameter name='default-domain' value='default-domain' />
+                                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                            </execute>
+                                        </outcome>
+                                    </switch>
+                                    <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                <parameter name="is-port-mirrored" value="false" />
+                                            </update>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </for>
+                            <block atomic="true">
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                    <parameter name="input.ack-final-indicator" value="Y" />
+                                    <parameter name="input.response-code" value="500" />
+                                    <parameter name="input.response-message" value="`$error-message`" />
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                </configure>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'$error-message'`" />
+                                </return>
+                            </block>
+                        </block>
+                    </block>
+                </outcome>
+            </update>
+            <set>
+                <parameter name='pm.configuration-data.configuration-oper-status.order-status'
+  value='Active' />
+                <parameter name='pm.configuration-data.configuration-oper-status.last-action'
+  value='`$port-mirror-topology-operation-input.request-information.request-action`' />
+                <parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-pmc" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />
+                        </set>
+                        <block atomic="true">
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                <block atomic="true">
+                                    <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                <parameter name='api-name' value='port-mirroring' />
+                                                <parameter name='api-action' value='disable' />
+                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                <parameter name='default-domain' value='default-domain' />
+                                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                            </execute>
+                                        </outcome>
+                                    </switch>
+                                    <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                <parameter name="is-port-mirrored" value="false" />
+                                            </update>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </for>
+                            <block atomic="true">
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                    <parameter name="input.ack-final-indicator" value="Y" />
+                                    <parameter name="input.response-code" value="500" />
+                                    <parameter name="input.response-message" value="`$error-message`" />
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                </configure>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'$error-message'`" />
+                                </return>
+                            </block>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />
+                        </set>
+                        <block atomic="true">
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                                <block atomic="true">
+                                    <switch test="`$contrail-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                <parameter name='api-name' value='port-mirroring' />
+                                                <parameter name='api-action' value='disable' />
+                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                                                <parameter name='default-domain' value='default-domain' />
+                                                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                                                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                                                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                                            </execute>
+                                        </outcome>
+                                    </switch>
+                                    <switch test="`$l-interface-set[$src-idx] == 'true'`">
+                                        <outcome value='true'>
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                                                <parameter name="is-port-mirrored" value="false" />
+                                            </update>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </for>
+                            <block atomic="true">
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                    <parameter name="input.ack-final-indicator" value="Y" />
+                                    <parameter name="input.response-code" value="500" />
+                                    <parameter name="input.response-message" value="`$error-message`" />
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                </configure>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="`'$error-message'`" />
+                                </return>
+                            </block>
+                        </block>
+                    </block>
+                </outcome>
+            </execute>
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                <parameter name="input.ack-final-indicator" value="Y" />
+                <parameter name="input.response-code" value="200" />
+                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+            </configure>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-activate-sync.xml
new file mode 100644 (file)
index 0000000..d95950e
--- /dev/null
@@ -0,0 +1,57 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-activate-sync' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.pm.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-pmc" />
+                <outcome value='success'>
+                    <switch test='`$mdsal-pmc.port-mirror-configuration_length == 1`'>
+                        <outcome value='false'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`" />
+                            </return>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test="`$mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Created'`">
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Created'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+                <parameter name='ack-final' value='N' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-async.xml
new file mode 100755 (executable)
index 0000000..edb5557
--- /dev/null
@@ -0,0 +1,2253 @@
+<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='port-mirror-topology-operation-assign-async' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\r
+                <parameter name='tmp.src-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`' />\r
+                <parameter name='tmp.dest-vnf-id' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`' />\r
+                <parameter name='tmp.dest-pnf-name' value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`' />\r
+                <parameter name='tmp.service-instance-id' value='`$port-mirror-topology-operation-input.service-information.service-instance-id`' />\r
+                <parameter name='tmp.configuration-sub-type' value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />\r
+                <parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'\r
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='pm.configuration-data.configuration-operation-information.request-information.'\r
+  value='`$port-mirror-topology-operation-input.request-information.`' />\r
+                <parameter name='pm.configuration-data.configuration-operation-information.service-information.'\r
+  value='`$port-mirror-topology-operation-input.service-information.`' />\r
+                <parameter name='pm.configuration-data.configuration-operation-information.configuration-information.'\r
+  value='`$port-mirror-topology-operation-input.configuration-information.`' />\r
+                <parameter name='pm.configuration-data.configuration-operation-information.port-mirror-configuration-request-input.'\r
+  value='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='select role,nfc_naming_code,pps_capacity,network_role,policy_name\r
+    from PORT_MIRROR_CAPABILITY cap, PORT_MIRROR_CONFIGURATION conf, SERVICE_PROXY sp\r
+    where cap.port_mirror_capability_name=conf.port_mirror_capability_name\r
+     and cap.port_mirror_service_uuid=conf.port_mirror_service_uuid\r
+     and cap.service_proxy_name=conf.service_proxy_name\r
+     and cap.service_proxy_name=sp.service_proxy_name\r
+     and cap.port_mirror_service_uuid=sp.parent_service_uuid\r
+     and conf.customization_uuid = $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid\r
+     and conf.port_mirror_service_uuid = $service-data.service-information.onap-model-information.model-uuid\r
+    order by role'\r
+  pfx='db.cap[]'>\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Error reading PORT_MIRROR_CONFIGURATION table" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 reading PORT_MIRROR_CONFIGURATION table" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </get-resource>\r
+            <for index='cap-idx' start='0' end='`$db.cap_length`' >\r
+                <switch test='`$db.cap[$cap-idx].role`'>\r
+                    <outcome value='source'>\r
+                        <set>\r
+                            <parameter name='tmp.src-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\r
+                            <parameter name='tmp.src-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\r
+                            <parameter name='tmp.src-network-role' value='`$db.cap[$cap-idx].network-role`' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='collector'>\r
+                        <set>\r
+                            <parameter name='tmp.dest-pps' value='`$db.cap[$cap-idx].pps-capacity`' />\r
+                            <parameter name='tmp.dest-nfc-naming-code' value='`$db.cap[$cap-idx].nfc-naming-code`' />\r
+                            <parameter name='tmp.dest-network-role' value='`$db.cap[$cap-idx].network-role`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="replace">\r
+                <parameter name="source" value="`$tmp.src-nfc-naming-code`" />\r
+                <parameter name="target" value=" " />\r
+                <parameter name="replacement" value="%20" />\r
+                <parameter name="outputPath" value="tmp.encoded-src-nfc-naming-code" />\r
+            </execute>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="replace">\r
+                <parameter name="source" value="`$tmp.dest-nfc-naming-code`" />\r
+                <parameter name="target" value=" " />\r
+                <parameter name="replacement" value="%20" />\r
+                <parameter name="outputPath" value="tmp.encoded-dest-nfc-naming-code" />\r
+            </execute>\r
+            <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`'>\r
+                <outcome value=''>\r
+                    <switch test='`$tmp.configuration-sub-type`'>\r
+                        <outcome value='vprobe'>\r
+                            <set>\r
+                                <parameter name='tmp.src-vnfc-idx' value='0' />\r
+                                <parameter name='tmp.dest-vnfc-idx' value='1' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='pprobe'>\r
+                            <set>\r
+                                <parameter name='tmp.src-vnfc-idx' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='vnfc-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' >\r
+                            <block atomic="true">\r
+                                <switch test="`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.src-network-role`">\r
+                                    <outcome value='true'>\r
+                                        <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.src-nfc-naming-code`'>\r
+                                            <outcome value='true'>\r
+                                                <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="`'Source nfc-naming-code of ' + $tmp.src-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`" />\r
+                                                            </set>\r
+                                                            <block>\r
+                                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                    <parameter name="input.response-code" value="500" />\r
+                                                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                                </configure>\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
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test="`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].instance-group-role == $tmp.dest-network-role`">\r
+                                    <outcome value='true'>\r
+                                        <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].nfc-naming-code == $tmp.dest-nfc-naming-code`'>\r
+                                            <outcome value='true'>\r
+                                                <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$vnfc-idx].configuration-id == $tmp.configuration-id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="`'Dest nfc-naming-code of ' + $tmp.dest-nfc-naming-code + ' already exists in vnfc-instance-groups for this configuration-id'`" />\r
+                                                            </set>\r
+                                                            <block>\r
+                                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                    <parameter name="input.response-code" value="500" />\r
+                                                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                                </configure>\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
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <switch test='`$tmp.configuration-sub-type`'>\r
+                            <outcome value='vprobe'>\r
+                                <set>\r
+                                    <parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\r
+                                    <parameter name='tmp.dest-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`' />\r
+                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 2`'/>\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='pprobe'>\r
+                                <set>\r
+                                    <parameter name='tmp.src-vnfc-idx' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length`' />\r
+                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group_length' value='`$service-data.vnfc-instance-groups.vnfc-instance-group_length + 1`'/>\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.oe">\r
+                <parameter name="start[0]" value="`'nodes/service-instances/service-instance?service-instance-id=' + $tmp.service-instance-id `" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="/query/owning-entity-fromService-instance" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to AAI custom query: owning-entity-fromService-instance" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 owning entity returned from AAI: owning-entity-fromService-instance" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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='success'>\r
+                    <set>\r
+                        <parameter name='tmp.owning-entity' value='`$tmp.AnAI-data.oe.results[0].owning-entity.owning-entity-id`' />\r
+                    </set>\r
+                </outcome>\r
+            </save>\r
+            <switch test='`$tmp.owning-entity`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to retrieve owning-entity from AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <set>\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity' value='`$tmp.owning-entity`' />\r
+            </set>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource&amp;nodesOnly=true'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.vnf">\r
+                <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id `" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="query/cloud-region-fromVnf" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 cloud region returned from AAI: cloud-region-fromVnf" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 index='result-idx' start='0' end='`$tmp.AnAI-data.vnf.results_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.tenant' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-name`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.tenant-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-id`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.tenant-context' value='`$tmp.AnAI-data.vnf.results[$result-idx].tenant.tenant-context`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.cloud-owner' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-owner`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.cloud-region-id' value='`$tmp.AnAI-data.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test='`$tmp.tenant`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to retrieve source tenant from AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.tenant-id`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to retrieve source tenant-id from AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.cloud-region-id`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to retrieve tenant from AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.cloud-owner`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to retrieve tenant from AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <block atomic="true">\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource&amp;nodesOnly=true'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.dest-vnf">\r
+                            <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id `" />\r
+                            <parameter name="start_length" value="1" />\r
+                            <parameter name="query" value="query/cloud-region-fromVnf" />\r
+                            <outcome value='failure'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf, for destination vnf" />\r
+                                    </set>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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 cloud region returned from AAI: cloud-region-fromVnf, for destination vnf" />\r
+                                    </set>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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 index='result-idx' start='0' end='`$tmp.AnAI-data.dest-vnf.results_length`' >\r
+                            <switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <set>\r
+                                        <parameter name='tmp.dest-tenant' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-name`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <set>\r
+                                        <parameter name='tmp.dest-tenant-id' value='`$tmp.AnAI-data.dest-vnf.results[$result-idx].tenant.tenant-id`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$tmp.dest-tenant`'>\r
+                            <outcome value=''>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Failed call to retrieve destination tenant from AAI" />\r
+                                    </set>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                        </switch>\r
+                        <switch test='`$tmp.dest-tenant-id`'>\r
+                            <outcome value=''>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Failed call to retrieve destination tenant-id from AAI" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner'\r
+  value='`$tmp.cloud-owner`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id'\r
+  value='`$tmp.cloud-region-id`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant'\r
+  value='`$tmp.tenant`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id'\r
+  value='`$tmp.tenant-id`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant'\r
+  value='`$tmp.dest-tenant`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-tenant-id'\r
+  value='`$tmp.dest-tenant-id`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-context'\r
+  value='`$tmp.tenant-context`' />\r
+            </set>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='pprobe'>\r
+                    <block atomic="true">\r
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-get-policy' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                        <parameter name="input.response-code" value="500" />\r
+                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                    </configure>\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
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.src-network">\r
+                <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/'  + $tmp.cloud-region-id`" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole='  + $tmp.src-network-role`" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to AAI custom query: network-name-fromNetwork-role" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 network information returned from AAI: network-name-fromNetwork-role" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.dest-network">\r
+                        <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $tmp.cloud-owner + '/'  + $tmp.cloud-region-id`" />\r
+                        <parameter name="start_length" value="1" />\r
+                        <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole='  + $tmp.dest-network-role`" />\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="Failed call to AAI custom query: network-name-fromNetwork-role" />\r
+                                </set>\r
+                                <block>\r
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                        <parameter name="input.response-code" value="500" />\r
+                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                    </configure>\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 network information returned from AAI: network-name-fromNetwork-role" />\r
+                                </set>\r
+                                <block>\r
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                        <parameter name="input.response-code" value="500" />\r
+                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                    </configure>\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
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.src-li">\r
+                <parameter value="`'/network/generic-vnfs/generic-vnf/' + $tmp.src-vnf-id`" name="start[0]"/>\r
+                <parameter value="1" name="start_length"/>\r
+                <parameter value="`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-src-nfc-naming-code`" name="query"/>\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to AAI custom query vserver-fromVnf for source vnf" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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 interface data returned from AAI vserver-fromVnf for source vnf" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.AnAI-data.dest-li">\r
+                        <parameter value="`'/network/generic-vnfs/generic-vnf/' + $tmp.dest-vnf-id`" name="start[0]"/>\r
+                        <parameter value="1" name="start_length"/>\r
+                        <parameter value="`'/query/vserver-fromVnf?nfcNamingCode=' + $tmp.encoded-dest-nfc-naming-code`" name="query"/>\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="Failed call to AAI custom query vserver-fromVnf for dest vnf" />\r
+                                </set>\r
+                                <block>\r
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                        <parameter name="input.response-code" value="500" />\r
+                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                    </configure>\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 interface data returned from AAI vserver-fromVnf for dest vnf" />\r
+                                </set>\r
+                                <block>\r
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                        <parameter name="input.response-code" value="500" />\r
+                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                    </configure>\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
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\r
+  value='`$tmp.src-network-role`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\r
+  value='`$tmp.src-nfc-naming-code`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\r
+  value='port-mirror-source'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\r
+  value='`$tmp.configuration-id`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].instance-group-role'\r
+  value='`$tmp.dest-network-role`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].nfc-naming-code'\r
+  value='`$tmp.dest-nfc-naming-code`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].group-type'\r
+  value='port-mirror-dest'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].configuration-id'\r
+  value='`$tmp.configuration-id`'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='pprobe'>\r
+                    <set>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].instance-group-role'\r
+  value='`$tmp.src-network-role`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].nfc-naming-code'\r
+  value='`$tmp.src-nfc-naming-code`'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].group-type'\r
+  value='port-mirror-source'/>\r
+                        <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].configuration-id'\r
+  value='`$tmp.configuration-id`'/>\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <set>\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\r
+  value='`$tmp.src-nfc-naming-code`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\r
+  value='`$tmp.src-network-role`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\r
+  value='`$tmp.service-instance-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\r
+  value='`$tmp.configuration-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\r
+  value='`$tmp.src-vnf-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\r
+  value='`$tmp.src-pps`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.nfc-naming-code'\r
+  value='`$tmp.dest-nfc-naming-code`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.instance-group-role'\r
+  value='`$tmp.dest-network-role`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.service-instance-id'\r
+  value='`$tmp.service-instance-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnfc-instance-group-id.configuration-id'\r
+  value='`$tmp.configuration-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-vnf-id'\r
+  value='`$tmp.dest-vnf-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\r
+  value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='pprobe'>\r
+                    <set>\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.nfc-naming-code'\r
+  value='`$tmp.src-nfc-naming-code`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.instance-group-role'\r
+  value='`$tmp.src-network-role`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.service-instance-id'\r
+  value='`$tmp.service-instance-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnfc-instance-group-id.configuration-id'\r
+  value='`$tmp.configuration-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-vnf-id'\r
+  value='`$tmp.src-vnf-id`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-capacity'\r
+  value='`$tmp.src-pps`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-name'\r
+  value='`$tmp.dest-pnf-name`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-p-interface'\r
+  value='`$tmp.dest-p-interface`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-pnf-port-policy-name'\r
+  value='`$db.cap[0].policy-name`' />\r
+                        <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type'\r
+  value='pprobe' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index='src-nw-idx' start='0' end='`$tmp.AnAI-data.src-network.results_length`' >\r
+                <switch test='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`'>\r
+                    <outcome value=''>\r
+                        <block atomic="true"></block>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <switch test='`$tmp.src-network-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='tmp.src-network-name' value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.network-name`' />\r
+                                    <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn'\r
+  value='`$tmp.AnAI-data.src-network.results[$src-nw-idx].l3-network.contrail-network-fqdn`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="error-message" value="`'More than one l3-network returned from AAI for network-role ' + $tmp.src-network-role`" />\r
+                                    </set>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$tmp.src-network-name`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Cannot determine source network name from AAI data" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <block atomic="true">\r
+                        <for index='dest-nw-idx' start='0' end='`$tmp.AnAI-data.dest-network.results_length`' >\r
+                            <switch test='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`'>\r
+                                <outcome value=''>\r
+                                    <block atomic="true"></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <switch test='`$tmp.dest-network-name`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.dest-network-name' value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.network-name`' />\r
+                                                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn'\r
+  value='`$tmp.AnAI-data.dest-network.results[$dest-nw-idx].l3-network.contrail-network-fqdn`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name="error-message" value="`'More than one l3-network returned from AAI for network-role ' + $tmp.dest-network-role`" />\r
+                                                </set>\r
+                                                <block>\r
+                                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                        <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                        <parameter name="input.response-code" value="500" />\r
+                                                        <parameter name="input.response-message" value="`$error-message`" />\r
+                                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                    </configure>\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
+                                    </switch>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$tmp.dest-network-name`'>\r
+                            <outcome value=''>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name="error-message" value="Cannot determine dest network name from AAI data" />\r
+                                    </set>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-create-vnfcs' mode='sync' >\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                            <parameter name="input.response-code" value="500" />\r
+                            <parameter name="input.response-message" value="`$error-message`" />\r
+                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                        </configure>\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
+                </outcome>\r
+            </call>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-vprobe' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <block>\r
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                    <parameter name="input.response-code" value="500" />\r
+                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                </configure>\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
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+                <outcome value='pprobe'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-mapping-pprobe' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <block>\r
+                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                    <parameter name="input.response-code" value="500" />\r
+                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                </configure>\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
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="No usable source l-interfaces found in AAI data" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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='0'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="No usable source l-interfaces found in AAI data" />\r
+                        </set>\r
+                        <block>\r
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                <parameter name="input.response-code" value="500" />\r
+                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                            </configure>\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
+            </switch>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='cto-api.parent-service-instance-id' value='`$tmp.service-instance-id`' />\r
+                            <parameter name='cto-api.port-mirror-configuration-instance-id' value='`$tmp.configuration-id`' />\r
+                            <parameter name='cto-api.source-network-role' value='`$tmp.src-network-role`' />\r
+                            <parameter name='cto-api.collector-network-role' value='`$tmp.dest-network-role`' />\r
+                            <parameter name='cto-api.default-domain' value='default-domain' />\r
+                            <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                            <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                            <parameter name='cto-api.cloud-owner' value='`$tmp.cloud-owner`' />\r
+                            <parameter name='cto-api.service-type' value='`$port-mirror-topology-operation-input.service-information.subscription-service-type`' />\r
+                            <parameter name='cto-api.owning-entity' value='`$tmp.owning-entity`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-create' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <switch test='`$tmp.configuration-sub-type`'>\r
+                                        <outcome value='vprobe'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                        </call>\r
+                        <set>\r
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id'\r
+  value='`$cto-api.contrail-route-allotted-instance-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-name`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.configuration-name' value="`'PMC_' + $tmp.tenant + '_' + $tmp.cloud-region-id + '_' + $port-mirror-topology-operation-input.configuration-information.configuration-type + '_' + $tmp.configuration-id`" />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.configuration-name' value='`$port-mirror-topology-operation-input.configuration-information.configuration-name`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                    </set>\r
+                    <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                        <parameter name="source" value="`$tmp.link-name`" />\r
+                        <parameter name="outputPath" value="tmp.encoded-link-name" />\r
+                    </execute>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" >\r
+                        <parameter name="link-name" value="`$tmp.link-name`" />\r
+                        <parameter name="in-maint" value="false" />\r
+                        <parameter name="link-type" value="port-mirror-configuration" />\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="`'Failed to create logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                </set>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                    <set>\r
+                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                    </set>\r
+                                    <block>\r
+                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                            <outcome value='vprobe'>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <block>\r
+                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                <parameter name="input.response-code" value="500" />\r
+                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                            </configure>\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
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="`'Failed to create logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                </set>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                    <set>\r
+                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                    </set>\r
+                                    <block>\r
+                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                            <outcome value='vprobe'>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <block>\r
+                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                <parameter name="input.response-code" value="500" />\r
+                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                            </configure>\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
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                    <switch test='`$tmp.configuration-sub-type`'>\r
+                        <outcome value='vprobe'>\r
+                            <block atomic="true">\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />\r
+                                    <parameter name="outputPath" value="tmp.encoded-source-port-name" />\r
+                                </execute>\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    <parameter name="outputPath" value="tmp.encoded-dest-port-name" />\r
+                                </execute>\r
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="logical-link:relationship-list"\r
+   key="logical-link.link-name = $tmp.link-name"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                    <parameter name="relationship-list.relationship[0].related-to" value="l-interface" />\r
+                                    <parameter name="relationship-list.relationship[0].relationship-label" value="org.onap.relationships.inventory.Source" />\r
+                                    <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+        + $tmp.tenant-id + '/vservers/vserver/' \r
+        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\r
+        + '/l-interfaces/l-interface/'\r
+        + $tmp.encoded-source-port-name`" />\r
+                                    <parameter name="relationship-list.relationship[1].related-to" value="l-interface" />\r
+                                    <parameter name="relationship-list.relationship[1].relationship-label" value="org.onap.relationships.inventory.Destination" />\r
+                                    <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+        + $tmp.dest-tenant-id + '/vservers/vserver/' \r
+        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-vserver-id\r
+        + '/l-interfaces/l-interface/'\r
+        + $tmp.encoded-dest-port-name`" />\r
+                                    <outcome value='failure'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                            </set>\r
+                                            <block>\r
+                                                <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                                        </set>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                                    <set>\r
+                                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                                    </set>\r
+                                                    <block>\r
+                                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                                            <outcome value='vprobe'>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                        <block>\r
+                                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                <parameter name="input.response-code" value="500" />\r
+                                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                            </configure>\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
+                                                </block>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                            </set>\r
+                                            <block>\r
+                                                <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                                        </set>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                                    <set>\r
+                                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                                    </set>\r
+                                                    <block>\r
+                                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                                            <outcome value='vprobe'>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                        <block>\r
+                                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                <parameter name="input.response-code" value="500" />\r
+                                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                            </configure>\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
+                                                </block>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </save>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='pprobe'>\r
+                            <block atomic="true">\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />\r
+                                    <parameter name="outputPath" value="tmp.encoded-source-port-name" />\r
+                                </execute>\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value="`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    <parameter name="outputPath" value="tmp.encoded-dest-port-name" />\r
+                                </execute>\r
+                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="urlEncode">\r
+                                    <parameter name="source" value="`$tmp.dest-p-interface`" />\r
+                                    <parameter name="outputPath" value="tmp.encoded-dest-p-interface" />\r
+                                </execute>\r
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="logical-link:relationship-list"\r
+   key="logical-link.link-name = $tmp.link-name"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                    <parameter name="relationship-list.relationship[0].related-to" value="l-interface" />\r
+                                    <parameter name="relationship-list.relationship[0].relationship-label" value="org.onap.relationships.inventory.Source" />\r
+                                    <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/cloud-infrastructure/cloud-regions/cloud-region/'\r
+        + $tmp.cloud-owner + '/' + $tmp.cloud-region-id + '/tenants/tenant/'\r
+        + $tmp.tenant-id + '/vservers/vserver/' \r
+        + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id\r
+        + '/l-interfaces/l-interface/'\r
+        + $tmp.encoded-source-port-name`" />\r
+                                    <parameter name="relationship-list.relationship[1].related-to" value="l-interface" />\r
+                                    <parameter name="relationship-list.relationship[1].relationship-label" value="org.onap.relationships.inventory.Destination" />\r
+                                    <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/network/pnfs/pnf/'\r
+        + $tmp.dest-pnf-name + '/p-interfaces/p-interface/'\r
+        + $tmp.encoded-dest-p-interface + '/l-interfaces/l-interface/' \r
+        + $tmp.encoded-dest-port-name`" />\r
+                                    <outcome value='failure'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                            </set>\r
+                                            <block>\r
+                                                <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                                        </set>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                                    <set>\r
+                                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                                    </set>\r
+                                                    <block>\r
+                                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                                            <outcome value='vprobe'>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                        <block>\r
+                                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                <parameter name="input.response-code" value="500" />\r
+                                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                            </configure>\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
+                                                </block>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name="error-message" value="`'Failed creating relationships for logical link ' + $tmp.link-name\r
+  + ' in AAI'`" />\r
+                                            </set>\r
+                                            <block>\r
+                                                <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                                        </set>\r
+                                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                                    </block>\r
+                                                </for>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                                        <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                                        <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                                        <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                                        <parameter name='cto-api.rollback-flag' value='true' />\r
+                                                        <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                                    <set>\r
+                                                        <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                                    </set>\r
+                                                    <block>\r
+                                                        <switch test='`$tmp.configuration-sub-type`'>\r
+                                                            <outcome value='vprobe'>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                        <block>\r
+                                                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                                <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                                <parameter name="input.response-code" value="500" />\r
+                                                                <parameter name="input.response-message" value="`$error-message`" />\r
+                                                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                            </configure>\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
+                                                </block>\r
+                                            </block>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </save>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="configuration:relationship-list"\r
+   key="configuration.configuration-id = $tmp.configuration-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="logical-link" />\r
+                        <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/network/logical-links/logical-link/' + $tmp.encoded-link-name`" />\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+  + ' in AAI'`" />\r
+                                </set>\r
+                                <block>\r
+                                    <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                            </set>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                        </block>\r
+                                    </for>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                            <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                            <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                            <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                            <parameter name='cto-api.rollback-flag' value='true' />\r
+                                            <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                        <set>\r
+                                            <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                        </set>\r
+                                        <block>\r
+                                            <switch test='`$tmp.configuration-sub-type`'>\r
+                                                <outcome value='vprobe'>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <block>\r
+                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                    <parameter name="input.response-code" value="500" />\r
+                                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                </configure>\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
+                                    </block>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+  + ' in AAI'`" />\r
+                                </set>\r
+                                <block>\r
+                                    <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                            </set>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                        </block>\r
+                                    </for>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                            <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                            <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                            <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                            <parameter name='cto-api.rollback-flag' value='true' />\r
+                                            <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                        <set>\r
+                                            <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                        </set>\r
+                                        <block>\r
+                                            <switch test='`$tmp.configuration-sub-type`'>\r
+                                                <outcome value='vprobe'>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <block>\r
+                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                    <parameter name="input.response-code" value="500" />\r
+                                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                </configure>\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
+                                    </block>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                </block>\r
+            </for>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="configuration"\r
+   key="configuration.configuration-id = $tmp.configuration-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                <parameter name="configuration-name" value="`$tmp.configuration-name`" />\r
+                <parameter name="operational-status" value="out-of-service-path" />\r
+                <parameter name="configuration-selflink" value="`'/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/'\r
+  + $port-mirror-topology-operation-input.configuration-information.configuration-id + '/configuration-data/port-mirror-configuration-topology'`" />\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Unable to find configuration object in AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    </set>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                </block>\r
+                            </for>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                    <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                    <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                    <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                    <parameter name='cto-api.rollback-flag' value='true' />\r
+                                    <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                <set>\r
+                                    <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                </set>\r
+                                <block>\r
+                                    <switch test='`$tmp.configuration-sub-type`'>\r
+                                        <outcome value='vprobe'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                            </block>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failure updating configuration object in AAI" />\r
+                        </set>\r
+                        <block>\r
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    </set>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                </block>\r
+                            </for>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                    <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                    <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                    <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                    <parameter name='cto-api.rollback-flag' value='true' />\r
+                                    <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                <set>\r
+                                    <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                </set>\r
+                                <block>\r
+                                    <switch test='`$tmp.configuration-sub-type`'>\r
+                                        <outcome value='vprobe'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                            </block>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </update>\r
+            <switch test='`$tmp.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="configuration:relationship-list"\r
+   key="configuration.configuration-id = $tmp.configuration-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="relationship-list.relationship[0].related-to" value="allotted-resource" />\r
+                        <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/business/customers/customer/' + $service-data.service-information.global-customer-id\r
+      + '/service-subscriptions/service-subscription/' + $port-mirror-topology-operation-input.service-information.subscription-service-type\r
+      + '/service-instances/service-instance/' + $tmp.service-instance-id\r
+         + '/allotted-resources/allotted-resource/' + $cto-api.contrail-route-allotted-instance-id`" />\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="error-message" value="`'Failed creating logical-link relationship for configuration ' + $tmp.configuration-id\r
+  + ' in AAI'`" />\r
+                                </set>\r
+                                <block>\r
+                                    <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                            </set>\r
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                        </block>\r
+                                    </for>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                            <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                            <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                            <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                            <parameter name='cto-api.rollback-flag' value='true' />\r
+                                            <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                        <set>\r
+                                            <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                        </set>\r
+                                        <block>\r
+                                            <switch test='`$tmp.configuration-sub-type`'>\r
+                                                <outcome value='vprobe'>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <block>\r
+                                                <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                                    <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                                    <parameter name="input.ack-final-indicator" value="Y" />\r
+                                                    <parameter name="input.response-code" value="500" />\r
+                                                    <parameter name="input.response-message" value="`$error-message`" />\r
+                                                    <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                                    <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                                    <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                                </configure>\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
+                                    </block>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </save>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-id'\r
+  value='`$tmp.configuration-id`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-type'\r
+  value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-sub-type'\r
+  value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.parent-service-instance-id'\r
+  value='`$tmp.service-instance-id`' />\r
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.configuration-identifiers.configuration-name'\r
+  value='`$tmp.configuration-name`' />\r
+            </set>\r
+            <switch test='`$service-data.provided-configurations.provided-configuration_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='tmp.provided-conf-idx' value='0' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='tmp.provided-conf-idx' value='`$service-data.provided-configurations.provided-configuration_length`' />\r
+                        <parameter name='service-data.provided-configurations.provided-configuration_length' value='`$tmp.provided-conf-idx + 1`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-id'\r
+  value='`$tmp.configuration-id`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-type'\r
+  value='`$port-mirror-topology-operation-input.configuration-information.configuration-type`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-sub-type'\r
+  value='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`' />\r
+                <parameter name='service-data.provided-configurations.provided-configuration[$tmp.provided-conf-idx].configuration-topology-link'\r
+  value="`'restconf/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/' + $tmp.configuration-id + '/configuration-data/port-mirror-configuration-topology'`" />\r
+            </set>\r
+            <set>\r
+                <parameter name='pm.configuration-data.configuration-oper-status.order-status'\r
+  value='Created' />\r
+                <parameter name='pm.configuration-data.configuration-oper-status.last-action'\r
+  value='`$port-mirror-topology-operation-input.request-information.request-action`' />\r
+                <parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'\r
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.pmc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`" />\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-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='PUT' />\r
+                <parameter name="responsePrefix" value="mdsal-pmc" />\r
+                <outcome value='success'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />\r
+                        </set>\r
+                        <block>\r
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    </set>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                </block>\r
+                            </for>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                    <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                    <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                    <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                    <parameter name='cto-api.rollback-flag' value='true' />\r
+                                    <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                <set>\r
+                                    <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                </set>\r
+                                <block>\r
+                                    <switch test='`$tmp.configuration-sub-type`'>\r
+                                        <outcome value='vprobe'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                            </block>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />\r
+                        </set>\r
+                        <block>\r
+                            <for index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id\r
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name\r
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />\r
+                                    </set>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="logical-link" \r
+       key="logical-link.link-name = $tmp.link-name" ></delete>\r
+                                </block>\r
+                            </for>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='cto-api.default-domain' value='default-domain' />\r
+                                    <parameter name='cto-api.default-project' value='`$tmp.tenant`' />\r
+                                    <parameter name='cto-api.cloud-region-id' value='`$tmp.cloud-region-id`' />\r
+                                    <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />\r
+                                    <parameter name='cto-api.rollback-flag' value='true' />\r
+                                    <parameter name='tmp.saved-error-message' value='`$error-message`' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' ></call>\r
+                                <set>\r
+                                    <parameter name='error-message' value='`$tmp.saved-error-message`' />\r
+                                </set>\r
+                                <block>\r
+                                    <switch test='`$tmp.configuration-sub-type`'>\r
+                                        <outcome value='vprobe'>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' ></call>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <block>\r
+                                        <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                                            <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                                            <parameter name="input.ack-final-indicator" value="Y" />\r
+                                            <parameter name="input.response-code" value="500" />\r
+                                            <parameter name="input.response-message" value="`$error-message`" />\r
+                                            <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                                            <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                                            <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                                        </configure>\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
+                            </block>\r
+                        </block>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">\r
+                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />\r
+                <parameter name="input.ack-final-indicator" value="Y" />\r
+                <parameter name="input.response-code" value="200" />\r
+                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />\r
+                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />\r
+                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+            </configure>\r
+            <return status='success'>\r
+                <parameter name='error-code' value='200' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-assign-sync.xml
new file mode 100755 (executable)
index 0000000..2cdd98d
--- /dev/null
@@ -0,0 +1,124 @@
+<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='port-mirror-topology-operation-assign-sync' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='select role,nfc_naming_code,pps_capacity\r
+    from PORT_MIRROR_CAPABILITY cap, PORT_MIRROR_CONFIGURATION conf, SERVICE_PROXY sp\r
+    where cap.port_mirror_capability_name=conf.port_mirror_capability_name\r
+     and cap.port_mirror_service_uuid=conf.port_mirror_service_uuid\r
+     and cap.service_proxy_name=conf.service_proxy_name\r
+     and cap.service_proxy_name=sp.service_proxy_name\r
+     and cap.port_mirror_service_uuid=sp.parent_service_uuid\r
+     and conf.customization_uuid = $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid\r
+     and conf.port_mirror_service_uuid = $service-data.service-information.onap-model-information.model-uuid\r
+    order by role'\r
+  pfx='db.cap[]'>\r
+                <outcome value='failure'>\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 reading PORT_MIRROR_CONFIGURATION and PORT_MIRROR_CAPABILITY tables" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find PORT_MIRROR_CONFIGURATION entry for ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\r
+                <outcome value='vprobe'>\r
+                    <block atomic="true">\r
+                        <switch test='`$db.cap_length == 2`'>\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'PORT_MIRROR_CONFIGURATION does not contain exactly 2 entries for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$db.cap[0].role == 'collector'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No collector capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$db.cap[1].role == 'source'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No source capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='pprobe'>\r
+                    <block atomic="true">\r
+                        <switch test='`$db.cap_length == 1`'>\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'PORT_MIRROR_CONFIGURATION does not contain exactly 1 entry for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$db.cap[0].role == 'source'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No source capability_role found for UUID ' + $port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>\r
+                <parameter name="outputPath" value="tmp.pmc-url"/>\r
+                <parameter name="target" value="{configuration-id}"/>\r
+                <parameter name="replacement" value="`$tmp.pm.configuration-id`"/>\r
+            </execute>\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-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="mdsal-pmc" />\r
+                <outcome value='success'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Port mirror configuration ' + $tmp.pm.configuration-id + ' already exists'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\r
+                    <block></block>\r
+                </outcome>\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name='error-code' value='200' />\r
+                <parameter name='ack-final' value='N' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-async.xml
new file mode 100644 (file)
index 0000000..8b07ec1
--- /dev/null
@@ -0,0 +1,88 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-async' mode='sync'>
+        <block atomic="true">
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>
+                <outcome value='pprobe'>
+                    <set>
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />
+                    </set>
+                </outcome>
+                <outcome value='PPROBE'>
+                    <set>
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />
+                    </set>
+                </outcome>
+                <outcome value='vprobe'>
+                    <set>
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />
+                    </set>
+                </outcome>
+                <outcome value='VPROBE'>
+                    <set>
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />
+                    </set>
+                </outcome>
+                <outcome value=''>
+                    <set>
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-assign-async' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'></return>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="Cannot find assign async DG" />
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-activate-async' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'></return>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="Cannot find activate async DG" />
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-deactivate-async' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'></return>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="Cannot find deactivate async DG" />
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name='ack-final' value='Y' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-create-vnfcs.xml
new file mode 100644 (file)
index 0000000..0860c6b
--- /dev/null
@@ -0,0 +1,293 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-create-vnfcs' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.vnfc-objects-idx' value='0' />
+            </set>
+            <for silentFailure='true' index='src-li-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >
+                <switch test='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`'>
+                    <outcome value=''>
+                        <block atomic="true"></block>
+                    </outcome>
+                    <outcome value='Other'>
+                        <block atomic="true">
+                            <set>
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-key'
+  value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`' />
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-name'
+  value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`' />
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnf-id'
+  value='`$tmp.src-vnf-id`' />
+                            </set>
+                            <set>
+                                <parameter name='tmp.vserver-id' value='0' />
+                            </set>
+                            <for index='rel-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship_length`' >
+                                <switch test="`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].related-to == 'vserver'`">
+                                    <outcome value='true'>
+                                        <for index='reldata-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data_length`' >
+                                            <switch test="`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-key == 'vserver.vserver-id'`">
+                                                <outcome value='true'>
+                                                    <set>
+                                                        <parameter name='tmp.vserver-id' value='`$tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-value`' />
+                                                    </set>
+                                                </outcome>
+                                            </switch>
+                                        </for>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <switch test='`$tmp.vserver-id == 0`'>
+                                <outcome value='true'>
+                                    <block atomic="true">
+                                        <return status='failure'>
+                                            <parameter name='error-code' value='500' />
+                                            <parameter name='error-message' value="`'Unable to find vserver related to vnfc ' + $tmp.AnAI-data.src-li.results[$src-li-idx].vnfc.vnfc-name`" />
+                                        </return>
+                                    </block>
+                                </outcome>
+                            </switch>
+                            <for index='src-vs-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >
+                                <switch test='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-id == $tmp.vserver-id`'>
+                                    <outcome value='true'>
+                                        <block atomic="true">
+                                            <set>
+                                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-name'
+  value='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-name`' />
+                                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-id'
+  value='`$tmp.AnAI-data.src-li.results[$src-vs-idx].vserver.vserver-id`' />
+                                                <parameter name='tmp.vs-idx' value='`$src-vs-idx`' />
+                                            </set>
+                                        </block>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='tmp.interface-ids_length' value='0' />
+                            </set>
+                            <for silentFailure='true' index='src-vli-idx' start='0' end='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface_length`' >
+                                <switch test='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$src-vli-idx].network-name == $tmp.src-network-name`'>
+                                    <outcome value='true'>
+                                        <set>
+                                            <parameter name='tmp.interface-ids[$tmp.interface-ids_length].interface-id' value='`$tmp.AnAI-data.src-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$src-vli-idx].interface-id`' />
+                                            <parameter name='tmp.interface-ids_length' value='`$tmp.interface-ids_length + 1`' />
+                                        </set>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='tmp.vnic-idx' value='0' />
+                            </set>
+                            <for silentFailure='true' index='src-rs-idx' start='0' end='`$tmp.AnAI-data.src-li.results_length`' >
+                                <switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-name`'>
+                                    <outcome value=''>
+                                        <block></block>
+                                    </outcome>
+                                    <outcome value='Other'>
+                                        <for index='in-idx' start='0' end='`$tmp.interface-ids_length`' >
+                                            <switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-id == $tmp.interface-ids[$in-idx].interface-id`'>
+                                                <outcome value='true'>
+                                                    <block atomic="true">
+                                                        <set>
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-id'
+  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-id`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-name'
+  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.interface-name`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.vnic-capacity'
+  value='`$tmp.src-pps`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.used-capacity'
+  value='0' />
+                                                        </set>
+                                                        <switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>
+                                                            <outcome value=''>
+                                                                <block></block>
+                                                            </outcome>
+                                                            <outcome value='Other'>
+                                                                <set>
+                                                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv4-address'
+  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                        <switch test='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>
+                                                            <outcome value=''>
+                                                                <block></block>
+                                                            </outcome>
+                                                            <outcome value='Other'>
+                                                                <set>
+                                                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv6-address'
+  value='`$tmp.AnAI-data.src-li.results[$src-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                        <set>
+                                                            <parameter name='tmp.vnic-idx' value='`$tmp.vnic-idx + 1`' />
+                                                        </set>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </for>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic_length' value='`$tmp.vnic-idx`' />
+                            </set>
+                            <set>
+                                <parameter name='tmp.vnfc-objects-idx' value='`$tmp.vnfc-objects-idx + 1`' />
+                            </set>
+                        </block>
+                    </outcome>
+                </switch>
+            </for>
+            <set>
+                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length' value='`$tmp.vnfc-objects-idx`' />
+            </set>
+            <set>
+                <parameter name='tmp.vnfc-objects-idx' value='0' />
+            </set>
+            <for silentFailure='true' index='dest-li-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >
+                <switch test='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`'>
+                    <outcome value=''>
+                        <block atomic="true"></block>
+                    </outcome>
+                    <outcome value='Other'>
+                        <block atomic="true">
+                            <set>
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-key'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`' />
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnfc-name'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`' />
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnf-id'
+  value='`$tmp.dest-vnf-id`' />
+                            </set>
+                            <set>
+                                <parameter name='tmp.vserver-id' value='0' />
+                            </set>
+                            <for index='rel-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship_length`' >
+                                <switch test="`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].related-to == 'vserver'`">
+                                    <outcome value='true'>
+                                        <for index='reldata-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data_length`' >
+                                            <switch test="`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-key == 'vserver.vserver-id'`">
+                                                <outcome value='true'>
+                                                    <set>
+                                                        <parameter name='tmp.vserver-id' value='`$tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.relationship-list.relationship[$rel-idx].relationship-data[$reldata-idx].relationship-value`' />
+                                                    </set>
+                                                </outcome>
+                                            </switch>
+                                        </for>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <switch test='`$tmp.vserver-id == 0`'>
+                                <outcome value='true'>
+                                    <block atomic="true">
+                                        <return status='failure'>
+                                            <parameter name='error-code' value='500' />
+                                            <parameter name='error-message' value="`'Unable to find vserver related to vnfc ' + $tmp.AnAI-data.dest-li.results[$dest-li-idx].vnfc.vnfc-name`" />
+                                        </return>
+                                    </block>
+                                </outcome>
+                            </switch>
+                            <for index='dest-vs-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >
+                                <switch test='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-id == $tmp.vserver-id`'>
+                                    <outcome value='true'>
+                                        <block atomic="true">
+                                            <set>
+                                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-name'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-name`' />
+                                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vserver-id'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-vs-idx].vserver.vserver-id`' />
+                                                <parameter name='tmp.vs-idx' value='`$dest-vs-idx`' />
+                                            </set>
+                                        </block>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='tmp.interface-ids_length' value='0' />
+                            </set>
+                            <for silentFailure='true' index='dest-vli-idx' start='0' end='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface_length`' >
+                                <switch test='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$dest-vli-idx].network-name == $tmp.dest-network-name`'>
+                                    <outcome value='true'>
+                                        <set>
+                                            <parameter name='tmp.interface-ids[$tmp.interface-ids_length].interface-id' value='`$tmp.AnAI-data.dest-li.results[$tmp.vs-idx].vserver.l-interfaces.l-interface[$dest-vli-idx].interface-id`' />
+                                            <parameter name='tmp.interface-ids_length' value='`$tmp.interface-ids_length + 1`' />
+                                        </set>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='tmp.vnic-idx' value='0' />
+                            </set>
+                            <for silentFailure='true' index='dest-rs-idx' start='0' end='`$tmp.AnAI-data.dest-li.results_length`' >
+                                <switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-name`'>
+                                    <outcome value=''>
+                                        <block></block>
+                                    </outcome>
+                                    <outcome value='Other'>
+                                        <for index='in-idx' start='0' end='`$tmp.interface-ids_length`' >
+                                            <switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-id == $tmp.interface-ids[$in-idx].interface-id`'>
+                                                <outcome value='true'>
+                                                    <block atomic="true">
+                                                        <set>
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-id'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-id`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-port-name'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.interface-name`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.vnic-capacity'
+  value='`$tmp.dest-pps`' />
+                                                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].capacity.used-capacity'
+  value='0' />
+                                                        </set>
+                                                        <switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>
+                                                            <outcome value=''>
+                                                                <block></block>
+                                                            </outcome>
+                                                            <outcome value='Other'>
+                                                                <set>
+                                                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv4-address'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                        <switch test='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>
+                                                            <outcome value=''>
+                                                                <block></block>
+                                                            </outcome>
+                                                            <outcome value='Other'>
+                                                                <set>
+                                                                    <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic[$tmp.vnic-idx].vnic-ip-addresses.ip-addresses.ipv6-address'
+  value='`$tmp.AnAI-data.dest-li.results[$dest-rs-idx].l-interface.l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />
+                                                                </set>
+                                                            </outcome>
+                                                        </switch>
+                                                        <set>
+                                                            <parameter name='tmp.vnic-idx' value='`$tmp.vnic-idx + 1`' />
+                                                        </set>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </for>
+                                    </outcome>
+                                </switch>
+                            </for>
+                            <set>
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.vnfc-objects-idx].vnics.vnic_length' value='`$tmp.vnic-idx`' />
+                            </set>
+                            <set>
+                                <parameter name='tmp.vnfc-objects-idx' value='`$tmp.vnfc-objects-idx + 1`' />
+                            </set>
+                        </block>
+                    </outcome>
+                </switch>
+            </for>
+            <set>
+                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length' value='`$tmp.vnfc-objects-idx`' />
+            </set>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-async.xml
new file mode 100644 (file)
index 0000000..50c52fb
--- /dev/null
@@ -0,0 +1,373 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-deactivate-async' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="pm-mdsal" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Failed to read port-mirror-configuration from MD-SAL" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Cannot find port-mirror-configuration in MD-SAL" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
+                <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
+            </set>
+            <set>
+                <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
+            </set>
+            <set>
+                <parameter name='pm.configuration-data.configuration-operation-information.sdnc-request-header.'
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.`' />
+            </set>
+            <for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <block atomic="true">
+                    <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                        <parameter name='api-name' value='port-mirroring' />
+                        <parameter name='api-action' value='disable' />
+                        <parameter name='resp-prefix' value='contrailResp' />
+                        <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                        <parameter name='policy-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='default-domain' value='default-domain' />
+                        <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                        <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                        <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='contrail-set[$src-idx]' value='true' />
+                            </set>
+                        </outcome>
+                        <outcome value='failure'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="error-message" value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                </set>
+                                <block atomic="true">
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                        <parameter name="input.ack-final-indicator" value="Y" />
+                                        <parameter name="input.response-code" value="500" />
+                                        <parameter name="input.response-message" value="`$error-message`" />
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                    </configure>
+                                    <return status='failure'>
+                                        <parameter name='ack-final' value='Y'/>
+                                        <parameter name="error-code" value="500" />
+                                        <parameter name="error-message" value="`'$error-message'`" />
+                                    </return>
+                                </block>
+                            </block>
+                        </outcome>
+                    </execute>
+                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                        <parameter name="is-port-mirrored" value="false" />
+                        <outcome value='not-found'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="error-message" value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                </set>
+                                <block atomic="true">
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                        <parameter name="input.ack-final-indicator" value="Y" />
+                                        <parameter name="input.response-code" value="500" />
+                                        <parameter name="input.response-message" value="`$error-message`" />
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                    </configure>
+                                    <return status='failure'>
+                                        <parameter name='ack-final' value='Y'/>
+                                        <parameter name="error-code" value="500" />
+                                        <parameter name="error-message" value="`'$error-message'`" />
+                                    </return>
+                                </block>
+                            </block>
+                        </outcome>
+                        <outcome value='failure'>
+                            <block atomic="true">
+                                <set>
+                                    <parameter name="error-message" value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                </set>
+                                <block atomic="true">
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                        <parameter name="input.ack-final-indicator" value="Y" />
+                                        <parameter name="input.response-code" value="500" />
+                                        <parameter name="input.response-message" value="`$error-message`" />
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                    </configure>
+                                    <return status='failure'>
+                                        <parameter name='ack-final' value='Y'/>
+                                        <parameter name="error-code" value="500" />
+                                        <parameter name="error-message" value="`'$error-message'`" />
+                                    </return>
+                                </block>
+                            </block>
+                        </outcome>
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='l-interface-set[$src-idx]' value='true' />
+                            </set>
+                        </outcome>
+                    </update>
+                </block>
+            </for>
+            <switch test='`$tmp.configuration-sub-type`'>
+                <outcome value='vprobe'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='cto-api.default-domain' value='default-domain' />
+                            <parameter name='cto-api.default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                            <parameter name='cto-api.cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                            <parameter name='cto-api.contrail-route-allotted-resource-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />
+                            <parameter name='cto-api.src-contrail-network-fqdn'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-network-fqdn`' />
+                            <parameter name='cto-api.collector-contrail-network-fqdn'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                            <parameter name='cto-api.rollback-flag' value='false' />
+                            <parameter name='cto-api.owning-entity'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />
+                        </set>
+                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-deactivate' mode='sync' >
+                            <outcome value='failure'>
+                                <block atomic="true">
+                                    <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                        <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                        <parameter name="input.ack-final-indicator" value="Y" />
+                                        <parameter name="input.response-code" value="500" />
+                                        <parameter name="input.response-message" value="`$error-message`" />
+                                        <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                        <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                        <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                                    </configure>
+                                    <return status='failure'>
+                                        <parameter name='ack-final' value='Y'/>
+                                        <parameter name="error-code" value="500" />
+                                        <parameter name="error-message" value="`'$error-message'`" />
+                                    </return>
+                                </block>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+            </switch>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="configuration"
+   key="configuration.configuration-id = $tmp.configuration-id"
+   force="true" pfx="tmp.AnAI-data">
+                <parameter name="operational-status" value="out-of-service-path" />
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Unable to find configuration object in AAI" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Failure updating configuration object in AAI" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+            </update>
+            <set>
+                <parameter name='pm.configuration-data.configuration-oper-status.order-status'
+  value='Created' />
+                <parameter name='pm.configuration-data.configuration-oper-status.last-action'
+  value='`$port-mirror-topology-operation-input.request-information.request-action`' />
+                <parameter name='pm.configuration-data.configuration-oper-status.last-rpc-action'
+  value='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.portmirrorconfig.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-pmc" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+                <outcome value='not-found'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name="error-message" value="Error updating md-sal for port-mirror-configuration" />
+                        </set>
+                        <block atomic="true">
+                            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                                <parameter name="input.ack-final-indicator" value="Y" />
+                                <parameter name="input.response-code" value="500" />
+                                <parameter name="input.response-message" value="`$error-message`" />
+                                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+                            </configure>
+                            <return status='failure'>
+                                <parameter name='ack-final' value='Y'/>
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="`'$error-message'`" />
+                            </return>
+                        </block>
+                    </block>
+                </outcome>
+            </execute>
+            <configure activate="true" adaptor="com.att.sdnctl.sli.adaptor.mso.MSOAdaptor" key="__READ_FROM_PARAMETERS__">
+                <parameter name="notification-url" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`" />
+                <parameter name="input.ack-final-indicator" value="Y" />
+                <parameter name="input.response-code" value="200" />
+                <parameter name="input.svc-request-id" value="`$port-mirror-topology-operation-input.sdnc-request-header.svc-request-id`" />
+                <parameter name="input.service-information.service-type" value="`$port-mirror-topology-operation-input.service-information.subscription-service-type`" />
+                <parameter name="input.service-information.service-instance-id" value="`$port-mirror-topology-operation-input.service-information.service-instance-id`" />
+            </configure>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-deactivate-sync.xml
new file mode 100644 (file)
index 0000000..4a1fc27
--- /dev/null
@@ -0,0 +1,57 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-deactivate-sync' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.pm.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.pm.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-pmc" />
+                <outcome value='success'>
+                    <switch test='`$mdsal-pmc.port-mirror-configuration_length == 1`'>
+                        <outcome value='false'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`" />
+                            </return>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.pm.configuration-id`" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test="`$mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`">
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+                <parameter name='ack-final' value='N' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-disable.xml
new file mode 100644 (file)
index 0000000..0be852c
--- /dev/null
@@ -0,0 +1,184 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-disable' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="pm-mdsal" />
+                <outcome value='success'>
+                    <switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>
+                        <outcome value='false'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                            </return>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
+                <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
+            </set>
+            <switch test="`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`">
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <for index='idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$idx].source-port-id
+  == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>
+                    <outcome value='true'>
+                        <block atomic="true">
+                            <set>
+                                <parameter name='src-idx' value='`$idx`' />
+                            </set>
+                            <break/>
+                        </block>
+                    </outcome>
+                </switch>
+            </for>
+            <switch test='`$src-idx`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Unable to find source port ' + $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id + ' in MD-SAL'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />
+                    </set>
+                </outcome>
+                <outcome value=''>
+                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>
+                        <outcome value='Other'>
+                            <set>
+                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />
+                            </set>
+                        </outcome>
+                        <outcome value=''>
+                            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>
+                                <outcome value='Other'>
+                                    <set>
+                                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />
+                                    </set>
+                                </outcome>
+                                <outcome value=''>
+                                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>
+                                        <outcome value='Other'>
+                                            <set>
+                                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />
+                                            </set>
+                                        </outcome>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='error-code' value='500' />
+                                                <parameter name='error-message' value="`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </outcome>
+                            </switch>
+                        </outcome>
+                    </switch>
+                </outcome>
+            </switch>
+            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                <parameter name='api-name' value='port-mirroring' />
+                <parameter name='api-action' value='disable' />
+                <parameter name='resp-prefix' value='contrailResp' />
+                <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                <parameter name='default-domain' value='default-domain' />
+                <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                <parameter name='traffic-direction' value='both' />
+                <parameter name='analyzer-ip-address'
+  value='`$tmp.analyzer.ip-address`' />
+                <parameter name='udp-port' value='8099' />
+                <parameter name='routing-instance'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                <parameter name='local-preference' value='1' />
+                <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                <outcome value='success'>
+                    <set>
+                        <parameter name='contrail-set[$src-idx]' value='true' />
+                    </set>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                    </return>
+                </outcome>
+            </execute>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                <parameter name="is-port-mirrored" value="false" />
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                    </return>
+                </outcome>
+            </update>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+                <parameter name='ack-final' value='Y' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-enable.xml
new file mode 100644 (file)
index 0000000..b6d8c6d
--- /dev/null
@@ -0,0 +1,231 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-enable' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="pm-mdsal" />
+                <outcome value='success'>
+                    <switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>
+                        <outcome value='false'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                            </return>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
+                <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
+            </set>
+            <set>
+                <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
+            </set>
+            <switch test="`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Active'`">
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Active'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <for index='idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$idx].source-port-id
+  == $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>
+                    <outcome value='true'>
+                        <block atomic="true">
+                            <set>
+                                <parameter name='src-idx' value='`$idx`' />
+                            </set>
+                            <break/>
+                        </block>
+                    </outcome>
+                </switch>
+            </for>
+            <switch test='`$src-idx`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Unable to find source port ' + $port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id + ' in MD-SAL'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`'>
+                <outcome value='Other'>
+                    <set>
+                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv4-address`' />
+                    </set>
+                </outcome>
+                <outcome value=''>
+                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`'>
+                        <outcome value='Other'>
+                            <set>
+                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.ipv6-address`' />
+                            </set>
+                        </outcome>
+                        <outcome value=''>
+                            <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`'>
+                                <outcome value='Other'>
+                                    <set>
+                                        <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv4-address`' />
+                                    </set>
+                                </outcome>
+                                <outcome value=''>
+                                    <switch test='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`'>
+                                        <outcome value='Other'>
+                                            <set>
+                                                <parameter name='tmp.analyzer.ip-address'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-ip-addresses.ip-addresses.vipv6-address`' />
+                                            </set>
+                                        </outcome>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='error-code' value='500' />
+                                                <parameter name='error-message' value="`'No dest addresses stored for source port ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </outcome>
+                            </switch>
+                        </outcome>
+                    </switch>
+                </outcome>
+            </switch>
+            <switch test='`$tmp.configuration-sub-type`'>
+                <outcome value='vprobe'>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                        <parameter name='api-name' value='port-mirroring' />
+                        <parameter name='api-action' value='enable' />
+                        <parameter name='resp-prefix' value='contrailResp' />
+                        <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                        <parameter name='default-domain' value='default-domain' />
+                        <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                        <parameter name='traffic-direction' value='both' />
+                        <parameter name='analyzer-ip-address'
+  value='`$tmp.analyzer.ip-address`' />
+                        <parameter name='udp-port' value='8099' />
+                        <parameter name='routing-instance'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                        <parameter name='local-preference' value='1' />
+                        <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                        <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='contrail-set[$src-idx]' value='true' />
+                            </set>
+                        </outcome>
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                            </return>
+                        </outcome>
+                    </execute>
+                </outcome>
+                <outcome value='pprobe'>
+                    <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                        <parameter name='api-name' value='port-mirroring' />
+                        <parameter name='api-action' value='enable' />
+                        <parameter name='resp-prefix' value='contrailResp' />
+                        <parameter name='display-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-name'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`' />
+                        <parameter name='contrail-virtual-machine-interface-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-id`' />
+                        <parameter name='default-domain' value='default-domain' />
+                        <parameter name='default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                        <parameter name='traffic-direction' value='both' />
+                        <parameter name='analyzer-ip-address'
+  value='`$tmp.analyzer.ip-address`' />
+                        <parameter name='vni' value='1000' />
+                        <parameter name='udp-port' value='8099' />
+                        <parameter name='routing-instance'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.dest-network-fqdn`' />
+                        <parameter name='local-preference' value='1' />
+                        <parameter name='juniper-header' value='false' />
+                        <parameter name='cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                        <parameter name='cloud-owner'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner`' />
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='contrail-set[$src-idx]' value='true' />
+                            </set>
+                        </outcome>
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Failed to update policy in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                            </return>
+                        </outcome>
+                    </execute>
+                </outcome>
+            </switch>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="l-interface"
+   key="cloud-region.cloud-region-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id
+     AND cloud-region.cloud-owner = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-owner
+     AND tenant.tenant-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant-id
+     AND vserver.vserver-id = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-vserver-id
+     AND l-interface.interface-name = $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name"
+   force="true" pfx="tmp.AnAI-data">
+                <parameter name="is-port-mirrored" value="true" />
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Failed to update l-interface object in AAI for interface ' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name`" />
+                    </return>
+                </outcome>
+            </update>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+                <parameter name='ack-final' value='Y' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-pprobe.xml
new file mode 100644 (file)
index 0000000..aaead56
--- /dev/null
@@ -0,0 +1,108 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-mapping-pprobe' mode='sync'>
+        <block atomic="true">
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="l-interfaces" 
+               key="pnf.pnf-name = $tmp.dest-pnf-name AND 
+                    p-interface.interface-name = $tmp.dest-p-interface AND depth='all'"
+        pfx='aai.pnf.p-interface' local-only='false' >
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Destination L-Interfaces are not set for the Destination PNF" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error retrieving l-interfaces from AAI" />
+                    </return>
+                </outcome>
+            </get-resource>
+            <switch test='`$aai.pnf.p-interface.l-interface_length &gt; 0`'>
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Destination L-Interface is not set for the Destination PNF" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='tmp.found-one' value='false' />
+            </set>
+            <for index='idx' start='0' end='`$aai.pnf.p-interface.l-interface_length`' >
+                <switch test='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`'>
+                    <outcome value=''>
+                        <switch test='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`'>
+                            <outcome value=''>
+                                <block></block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='tmp.found-one' value='true' />
+                                    </set>
+                                    <break/>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </outcome>
+                    <outcome value='Other'>
+                        <block atomic="true">
+                            <set>
+                                <parameter name='tmp.found-one' value='true' />
+                            </set>
+                            <break/>
+                        </block>
+                    </outcome>
+                </switch>
+            </for>
+            <switch test='`$tmp.found-one`'>
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value='Destination Port IP Address is not set for the Destination PNF' />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='map-idx' value='0' />
+            </set>
+            <for silentFailure='true' index='vnfc-so-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length`' >
+                <for silentFailure='true' index='vnic-s-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic_length`' >
+                    <block atomic="true">
+                        <set>
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-name'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-name`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-vserver-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vserver-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-id'
+  value='`$aai.pnf.p-interface.l-interface[$idx].interface-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-name'
+  value='`$aai.pnf.p-interface.l-interface[$idx].interface-name`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv4-address'
+  value='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv4-address-list[0].l3-interface-ipv4-address`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv6-address'
+  value='`$aai.pnf.p-interface.l-interface[$idx].l3-interface-ipv6-address-list[0].l3-interface-ipv6-address`' />
+                        </set>
+                        <set>
+                            <parameter name='map-idx' value='`$map-idx + 1`' />
+                        </set>
+                    </block>
+                </for>
+            </for>
+            <set>
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length'
+  value='`$map-idx`' />
+            </set>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-mapping-vprobe.xml
new file mode 100644 (file)
index 0000000..5421853
--- /dev/null
@@ -0,0 +1,243 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-mapping-vprobe' mode='sync'>
+        <block atomic="true">
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select vnics_group_id
+    from VNICS_CAPACITY_GROUP
+    where service_instance_id = $tmp.service-instance-id
+    and nfc_naming_code = $tmp.dest-nfc-naming-code
+    and vnf_id = $tmp.dest-vnf-id'
+  pfx='db'>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+       key="insert into VNICS_CAPACITY_GROUP 
+         (service_instance_id, nfc_naming_code, vnf_id)
+         VALUES ( $tmp.service-instance-id , $tmp.dest-nfc-naming-code , $tmp.dest-vnf-id )"
+       pfx='pfx' >
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="Failure to insert record into VNICS_CAPACITY_GROUP table" />
+                            </return>
+                        </outcome>
+                        <outcome value='success'>
+                            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select vnics_group_id
+    from VNICS_CAPACITY_GROUP
+    where service_instance_id = $tmp.service-instance-id
+    and nfc_naming_code = $tmp.dest-nfc-naming-code
+    and vnf_id = $tmp.dest-vnf-id'
+  pfx='db'>
+                                <outcome value='failure'>
+                                    <return status='failure'>
+                                        <parameter name='error-code' value='500' />
+                                        <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
+                                    </return>
+                                </outcome>
+                            </get-resource>
+                        </outcome>
+                    </save>
+                </outcome>
+            </get-resource>
+            <set>
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.vnics-group-id'
+  value='`$db.vnics-group-id`' />
+            </set>
+            <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
+                <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select available_capacity, vnic_capacity
+    from VNICS_CAPACITY
+    where vnics_group_id = $db.vnics-group-id
+    and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'
+  pfx='db.vnics-capacity'>
+                        <outcome value='failure'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="Failure reading VNICS_CAPACITY_GROUP table" />
+                            </return>
+                        </outcome>
+                        <outcome value='not-found'>
+                            <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+       key="insert into VNICS_CAPACITY 
+         (vnics_group_id, vnic_port_name, available_capacity, vnic_capacity)
+         VALUES ( $db.vnics-group-id ,
+           $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name ,
+           $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity ,
+           $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity
+           )"
+       pfx='pfx' >
+                                <outcome value='failure'>
+                                    <return status='failure'>
+                                        <parameter name='error-code' value='500' />
+                                        <parameter name='error-message' value="Failure to insert record into VNICS_CAPACITY table" />
+                                    </return>
+                                </outcome>
+                            </save>
+                        </outcome>
+                        <outcome value='success'>
+                            <set>
+                                <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity'
+  value='`$db.vnics-capacity.available-capacity`' />
+                            </set>
+                        </outcome>
+                    </get-resource>
+                </for>
+            </for>
+            <set>
+                <parameter name='map-idx' value='0' />
+            </set>
+            <for silentFailure='true' index='vnfc-so-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object_length`' >
+                <for silentFailure='true' index='vnic-s-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic_length`' >
+                    <block atomic="true">
+                        <set>
+                            <parameter name='tmp.found-capacity' value='N' />
+                            <parameter name='tmp.save-rem-cap' value='0' />
+                        </set>
+                        <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
+                            <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='tmp.rem-cap' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.vnic-capacity
+  - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
+                                    </set>
+                                    <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].capacity.vnic-capacity
+  &lt;= $tmp.rem-cap`'>
+                                        <outcome value='true'>
+                                            <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`'>
+                                                <outcome value=''>
+                                                    <switch test='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`'>
+                                                        <outcome value=''>
+                                                            <block atomic="true"></block>
+                                                        </outcome>
+                                                        <outcome value='Other'>
+                                                            <switch test='`$tmp.rem-cap &gt; $tmp.save-rem-cap`'>
+                                                                <outcome value='true'>
+                                                                    <set>
+                                                                        <parameter name='tmp.found-capacity' value='Y' />
+                                                                        <parameter name='tmp.save-vnfc-do-idx' value='`$vnfc-do-idx`' />
+                                                                        <parameter name='tmp.save-vnic-d-idx' value='`$vnic-d-idx`' />
+                                                                        <parameter name='tmp.save-rem-cap' value='`$tmp.rem-cap`' />
+                                                                    </set>
+                                                                </outcome>
+                                                            </switch>
+                                                        </outcome>
+                                                    </switch>
+                                                </outcome>
+                                                <outcome value='Other'>
+                                                    <switch test='`$tmp.rem-cap &gt; $tmp.save-rem-cap`'>
+                                                        <outcome value='true'>
+                                                            <set>
+                                                                <parameter name='tmp.found-capacity' value='Y' />
+                                                                <parameter name='tmp.save-vnfc-do-idx' value='`$vnfc-do-idx`' />
+                                                                <parameter name='tmp.save-vnic-d-idx' value='`$vnic-d-idx`' />
+                                                                <parameter name='tmp.save-rem-cap' value='`$tmp.rem-cap`' />
+                                                            </set>
+                                                        </outcome>
+                                                    </switch>
+                                                </outcome>
+                                            </switch>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </for>
+                        </for>
+                        <switch test="`$tmp.found-capacity == 'N'`">
+                            <outcome value='true'>
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="`'No capacity for source interface '
+  + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <set>
+                            <parameter name='service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity'
+  value='`$tmp.src-pps + $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].capacity.used-capacity`' />
+                        </set>
+                        <set>
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-port-name'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vnics.vnic[$vnic-s-idx].vnic-port-name`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].source-vserver-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.src-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-so-idx].vserver-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-port-name'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-port-name`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-vserver-id'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vserver-id`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv4-address'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv4-address`' />
+                            <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$map-idx].dest-ip-addresses.ip-addresses.ipv6-address'
+  value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$tmp.save-vnfc-do-idx].vnics.vnic[$tmp.save-vnic-d-idx].vnic-ip-addresses.ip-addresses.ipv6-address`' />
+                        </set>
+                        <set>
+                            <parameter name='map-idx' value='`$map-idx + 1`' />
+                        </set>
+                    </block>
+                </for>
+            </for>
+            <set>
+                <parameter name='pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length'
+  value='`$map-idx`' />
+            </set>
+            <for silentFailure='true' index='vnfc-do-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object_length`' >
+                <for silentFailure='true' index='vnic-d-idx' start='0' end='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic_length`' >
+                    <block atomic="true">
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='select available_capacity
+    from VNICS_CAPACITY
+    where vnics_group_id = $db.vnics-group-id
+    and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name'
+  pfx='db.vnics-capacity'>
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Failure reading VNICS_CAPACITY table" />
+                                </return>
+                            </outcome>
+                        </get-resource>
+                        <set>
+                            <parameter name='tmp.original-avail-capacity' value='`$db.vnics-capacity.available-capacity`' />
+                            <parameter name='tmp.original-used-capacity' value='`$service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
+                            <parameter name='tmp.avail-capacity' value='`$db.vnics-capacity.available-capacity - $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].capacity.used-capacity`' />
+                        </set>
+                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+key="update VNICS_CAPACITY
+     set available_capacity = $tmp.avail-capacity
+     where vnics_group_id = $db.vnics-group-id
+     and vnic_port_name = $service-data.vnfc-instance-groups.vnfc-instance-group[$tmp.dest-vnfc-idx].vnfc-objects.vnfc-object[$vnfc-do-idx].vnics.vnic[$vnic-d-idx].vnic-port-name
+" >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="Failure updating VNICS_CAPACITY table" />
+                                </return>
+                            </outcome>
+                        </update>
+                    </block>
+                </for>
+            </for>
+            <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"
+       key="insert into VNICS_CONFIGURATION_ID
+       (configuration_id, vnics_group_id)
+       values ( $tmp.configuration-id , $db.vnics-group-id )"
+       pfx='pfx' ></save>
+            <return status='success'>
+                <parameter name='' value='' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-unassign.xml
new file mode 100644 (file)
index 0000000..673c513
--- /dev/null
@@ -0,0 +1,153 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation-unassign' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.configuration-id' value='`$port-mirror-topology-operation-input.configuration-information.configuration-id`' />
+                <parameter name='tmp.service-instance-id' value='`$port-mirror-topology-operation-input.service-information.service-instance-id`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.pm-configuration`"/>
+                <parameter name="outputPath" value="tmp.pmc-url"/>
+                <parameter name="target" value="{configuration-id}"/>
+                <parameter name="replacement" value="`$tmp.configuration-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="pm-mdsal" />
+                <outcome value='success'>
+                    <switch test='`$pm-mdsal.port-mirror-configuration_length == 1`'>
+                        <outcome value='false'>
+                            <return status='failure'>
+                                <parameter name='error-code' value='500' />
+                                <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                            </return>
+                        </outcome>
+                    </switch>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Cannot find port-mirror-configuration ' + $tmp.configuration-id`" />
+                    </return>
+                </outcome>
+            </execute>
+            <switch test="`$pm-mdsal.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status == 'Created'`">
+                <outcome value='false'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="`'Order status is ' + $mdsal-pmc.port-mirror-configuration[0].configuration-data.configuration-oper-status.order-status + ' but must be Created'`" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='pm.configuration-id' value='`$tmp.configuration-id`' />
+                <parameter name='pm.configuration-data.' value='`$pm-mdsal.port-mirror-configuration[0].configuration-data.`' />
+            </set>
+            <set>
+                <parameter name='tmp.configuration-sub-type' value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.probe-type`' />
+            </set>
+            <switch test='`$tmp.configuration-sub-type`'>
+                <outcome value='vprobe'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='cto-api.default-domain' value='default-domain' />
+                            <parameter name='cto-api.default-project'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.tenant`' />
+                            <parameter name='cto-api.cloud-region-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.cloud-region-id`' />
+                            <parameter name='cto-api.contrail-route-allotted-resource-id'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.route-allotted-resource-id`' />
+                            <parameter name='cto-api.rollback-flag' value='false' />
+                            <parameter name='cto-api.configuration-id' value='`$tmp.configuration-id`' />
+                            <parameter name='cto-api.owning-entity'
+  value='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.owning-entity`' />
+                        </set>
+                        <call module='GENERIC-RESOURCE-API' rpc='api-contrail-route-topology-operation-delete' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'></return>
+                            </outcome>
+                        </call>
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-rollback-capacity-db' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'></return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+            </switch>
+            <for silentFailure='true' index='src-idx' start='0' end='`$pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map_length`' >
+                <block atomic="true">
+                    <set>
+                        <parameter name='tmp.link-name' value="`'PMC_' + $tmp.configuration-id
+  + '_Source' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].source-port-name
+  + '_Dest' + $pm.configuration-data.port-mirror-configuration-topology.port-mirror-configuration-assignments.source-to-dest-maps.source-to-dest-map[$src-idx].dest-port-name`" />
+                    </set>
+                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="logical-link" 
+       key="logical-link.link-name = $tmp.link-name" >
+                        <outcome value='failure'>
+                            <block atomic="true">
+                                <return status='failure'>
+                                    <parameter name='error-code' value='500' />
+                                    <parameter name='error-message' value="`'Failed to delete logical-link in AAI: ' + $tmp.link-name`" />
+                                </return>
+                            </block>
+                        </outcome>
+                        <outcome value='not-found'>
+                            <block atomic="true"></block>
+                        </outcome>
+                    </delete>
+                </block>
+            </for>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"
+   resource="configuration"
+   key="configuration.configuration-id = $tmp.configuration-id"
+   force="true" pfx="tmp.AnAI-data">
+                <parameter name="operational-status" value="out-of-service-path" />
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="Unable to find configuration object in AAI" />
+                    </return>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="Failure updating configuration object in AAI" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.pmc-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='DELETE' />
+                <parameter name="responsePrefix" value="mdsal-pmc" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='error-code' value='500' />
+                        <parameter name='error-message' value="Failed to delete port-mirror-configuration object in MD-SAL" />
+                    </return>
+                </outcome>
+            </execute>
+            <return status='success'>
+                <parameter name='error-code' value='200' />
+                <parameter name='ack-final' value='Y' />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation-validation.xml
new file mode 100755 (executable)
index 0000000..5a8dad5
--- /dev/null
@@ -0,0 +1,237 @@
+<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='port-mirror-topology-operation-validation' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.service-information.subscription-service-type`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'No service exists for service instance ' + $port-mirror-topology-operation-input.service-information.service-instance-id`" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="No configuration-id supplied in input" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\r
+                <outcome value='pprobe'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='PPROBE'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='pprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='vprobe'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='VPROBE'>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='port-mirror-topology-operation-input.configuration-information.configuration-sub-type' value='vprobe' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="configuration-sub-type must be pprobe or vprobe" />\r
+                        <parameter name='ack-final' value='Y' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be CreatePortMirrorConfigurationInstance for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="configuration-type is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="configuration-information.onap-model-information.model-customization-uuid is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.vnf-information.vnf-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="source vnf-id is required for assign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.configuration-information.configuration-sub-type`'>\r
+                            <outcome value='vprobe'>\r
+                                <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.vnf-information.vnf-id`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="dest vnf-id is required for vprobe assign" />\r
+                                            <parameter name='ack-final' value='Y' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                            <outcome value='pprobe'>\r
+                                <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.dest-port.pnf-information.pnf-name`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="dest pnf-name is required for pprobe assign" />\r
+                                            <parameter name='ack-final' value='Y' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for activate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'CreatePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be CreatePortMirrorConfigurationInstance for activate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be DeletePortMirrorConfigurationInstance for unassign" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-notification-url`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="svc-notification-url is required for deactivate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'DeletePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be DeletePortMirrorConfigurationInstance for deactivate" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='enable'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be ChangePortMirrorConfigurationInstance for enable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="port-mirror-configuration-request-input.source-port.source-port-id is required for enable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='disable'>\r
+                    <block atomic="true">\r
+                        <switch test="`$port-mirror-topology-operation-input.request-information.request-action == 'ChangePortMirrorConfigurationInstance'`">\r
+                            <outcome value='false'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="request-action must be ChangePortMirrorConfigurationInstance for disable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$port-mirror-topology-operation-input.port-mirror-configuration-request-input.source-port.source-port-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="port-mirror-configuration-request-input.source-port.source-port-id is required for disable" />\r
+                                    <parameter name='ack-final' value='Y' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_port-mirror-topology-operation.xml
new file mode 100644 (file)
index 0000000..fb3cdb2
--- /dev/null
@@ -0,0 +1,90 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='port-mirror-topology-operation' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-validation' mode='sync' >
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y' />
+                    </return>
+                </outcome>
+            </call>
+            <switch test='`$port-mirror-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-assign-sync' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-activate-sync' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-unassign' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-deactivate-sync' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='enable'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-enable' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+                <outcome value='disable'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='port-mirror-topology-operation-disable' mode='sync' >
+                            <outcome value='failure'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y' />
+                                </return>
+                            </outcome>
+                        </call>
+                    </block>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='service-object-path' value="`'/config/GENERIC-RESOURCE-API:services/service/'
+  + $port-mirror-topology-operation-input.service-information.service-instance-id + '/service-data/service-topology'`" />
+                <parameter name='port-mirror-object-path' value="`'/config/GENERIC-RESOURCE-API:port-mirror-configurations/port-mirror-configuration/'
+  + $port-mirror-topology-operation-input.configuration-information.configuration-id + '/configuration-data/port-mirror-configuration-topology'`" />
+            </set>
+            <return status='success'></return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-network-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-network-topology-operation.xml
new file mode 100755 (executable)
index 0000000..2558152
--- /dev/null
@@ -0,0 +1,34 @@
+<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='preload-network-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$preload-data.preload-network-topology-information.network-topology-identifier-structure.network-name`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='preload-data.' value='' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='preload-data.preload-network-topology-information.'\r
+  value='`$preload-network-topology-operation-input.preload-network-topology-information.`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='preload-data.preload-oper-status.order-status' value='PendingAssignment' />\r
+                <parameter name='preload-data.preload-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_preload-vf-module-topology-operation.xml
new file mode 100755 (executable)
index 0000000..91fd4a7
--- /dev/null
@@ -0,0 +1,34 @@
+<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='preload-vf-module-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$preload-data.preload-vf-module-topology-information.vf-module-topology.vf-module-topology-identifier.vf-module-name`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='preload-data.' value='' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='preload-data.preload-vf-module-topology-information.'\r
+  value='`$preload-vf-module-topology-operation-input.preload-vf-module-topology-information.`' />\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
+                <parameter name="outputPath" value="tmp.current-time" />\r
+            </execute>\r
+            <set>\r
+                <parameter name='preload-data.preload-oper-status.order-status' value='PendingAssignment' />\r
+                <parameter name='preload-data.preload-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="success" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 9454f4f..0f27169 100755 (executable)
@@ -9,6 +9,7 @@
                         <parameter name='eipam-ip-block.entity-id' value='' />\r
                         <parameter name='eipam-ip-block.ip-prefix' value='' />\r
                         <parameter name='eipam-ip-block.mask' value='' />\r
+                        <parameter name='tmp.location8' value='' />\r
                         <parameter name='tmp.l3-network.level1.v4.entity-id' value='' />\r
                         <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='' />\r
                         <parameter name='tmp.l3-network.level1.v4.mask' value='' />\r
                         <parameter name='tmp.l3-network.level2.v6.pool.pre-existing' value='false' />\r
                         <parameter name='tmp.l3-network.level2.v6.subnet.pre-existing' value='false' />\r
                     </set>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                        <parameter name="string" value="`$aai.complex.physical-location-id`" />\r
+                        <parameter name="result" value="tmp.location8"/>\r
+                        <parameter name="begin-index" value="0" />\r
+                        <parameter name="end-index" value="8" />\r
+                    </execute>\r
                     <set>\r
                         <parameter name='tmp.region' value='`$aai.complex.region`' />\r
                         <parameter name='tmp.cloud-region-id' value="`$aai.cloud-region.cloud-region-id`" />\r
                         <parameter name='eipam-ip-block.plans_length' value='0' />\r
                         <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
                         <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
-                        <parameter name="tmp.level1-key-value" value="`$aai.complex.physical-location-id + ':' + $aai.cloud-region.cloud-region-id`" />\r
+                        <parameter name="tmp.level1-key-value" value="`$tmp.location8 + ':' + $aai.cloud-region.cloud-region-id`" />\r
                         <parameter name="tmp.level2-key-value" value="`$network-model.network-role + ':' + $tmp.l3-network.network-id`" />\r
                         <parameter name="tmp.ipv4-cidr-mask" value="`$network-model.ipv4-cidr-mask`" />\r
                         <parameter name="tmp.ipv6-cidr-mask" value="`$network-model.ipv6-cidr-mask`" />\r
                     </set>\r
+                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                    <set>\r
+                        <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
+                        <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
+                    </set>\r
                     <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
                         <outcome value=''>\r
-                            <block>\r
-                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
-                                <set>\r
-                                    <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
-                                    <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
-                                </set>\r
-                            </block>\r
+                            <block></block>\r
                         </outcome>\r
                         <outcome value='Other'>\r
                             <block>\r
                                                     <parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
                                                 </set>\r
                                             </outcome>\r
-                                            <outcome value='Other'>\r
-                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
-                                                <set>\r
-                                                    <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
-                                                </set>\r
-                                            </outcome>\r
                                         </execute>\r
                                         <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
                                             <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
                                                     <parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
                                                 </set>\r
                                             </outcome>\r
-                                            <outcome value='Other'>\r
-                                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
-                                                <set>\r
-                                                    <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
-                                                </set>\r
-                                            </outcome>\r
                                         </execute>\r
                                     </block>\r
                                 </for>\r
             </outcome>\r
         </switch>\r
     </method>\r
-</service-logic>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-generic-eipam-pools.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_process-generic-eipam-pools.xml
new file mode 100755 (executable)
index 0000000..d713d23
--- /dev/null
@@ -0,0 +1,661 @@
+<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
+    <!--This DG relys on generate-FQPN to determine the key_names & key_values for all levels for the specified plan-name.-->\r
+    <method rpc="process-generic-eipam-pools" mode="sync">\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name="tmp.eipam-error" value="false" />\r
+                <parameter name="tmp.create-v4-pool-flag" value="N" />\r
+                <parameter name="tmp.create-v6-pool-flag" value="N" />\r
+                <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                <parameter name="eipam-pool.v4.pre-existing" value="false"/>\r
+                <parameter name="eipam-pool.v6.pre-existing" value="false"/>\r
+                <!-- <parameter name="tmp.network-id" value="`$tmp.l3-network.network-id`" /> -->\r
+                <parameter name="tmp.network-id" value="`$network-topology-operation-input.network-information.network-id`" />\r
+            </set>\r
+            <switch test='`$tmp.service-type`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="tmp.service-type" value="`$service-data.service-information.subscription-service-type`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$tmp.network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="tmp.network-instance-group-id" value="`$network-topology-operation-input.network-request-input.network-instance-group-id`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.network-name`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.network-name" value="`$network-topology-identifier-structure.network-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.zone`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.zone" value="`$aai.cloud-region.cloud-zone`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.network-collection`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name="generate-FQPN-input.network-collection" value="`$aai-network-collection.collection-name`" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.aic-cloud-region`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\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 retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.location-clli8`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\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 retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generate-FQPN-input.complex-region`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                            <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                            <parameter name='contextPrefix' value='prop' />\r
+                        </execute>\r
+                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $aai.cloud-region.cloud-region-id AND\r
+                    depth = '0'"\r
+        pfx='aai.cloud-region' >\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="404" />\r
+                                    <parameter name="error-message" value="`'aic-cloud-region, '+ $generate-fqpn-input.aic-cloud-region + ' not found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test='`$aai.cloud-region.relationship-list.relationship_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="cloud-region missing relationships in AAI" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <for index='ridx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                            <for silentFailure='false' index='rdidx' start='0' end="`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                <switch test='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                    <outcome value='complex.physical-location-id'>\r
+                                        <block atomic='true'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.aic-clli' value='`$aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                    <parameter name='result' value='tmp.truncated.clli8' />\r
+                                                    <parameter name='string' value='`$tmp.aic-clli`' />\r
+                                                    <parameter name='begin-index' value='0' />\r
+                                                    <parameter name='end-index' value='8' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='generate-FQPN-input.location-clli8' value='`$tmp.truncated.clli8`' />\r
+                                                </set>\r
+                                            </block>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="complex" \r
+               key="complex.physical-location-id = $aai.cloud-region.relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value"\r
+    pfx='aai.complex' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Complex not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\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 retrieving complex from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='generate-FQPN-input.complex-region' value='`$aai.complex.region`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.aic-cloud-region' \r
+       value='`$aai.cloud-region.cloud-region-id`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv4`">\r
+                <outcome value='N'></outcome>\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v4-address-plan`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="v4FQPN-output." value="generate-FQPN-output."/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+            </switch>\r
+            <switch test="`$network-model.use-ipv6`">\r
+                <outcome value='N'></outcome>\r
+                <outcome value='Y'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='generate-FQPN-input.plan-name' value='`$network-model.eipam-v6-address-plan`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-FQPN' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'An error occured while generating FQPN: '+ $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+                        <set>\r
+                            <parameter name="v6FQPN-output." value="generate-FQPN-output."/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=""></outcome>\r
+            </switch>\r
+            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->\r
+            <set>\r
+                <parameter name="eipam-ip-block.subnet-size-override-v4" value="`$network-model.ipv4-cidr-mask`" />\r
+                <parameter name="eipam-ip-block.subnet-size-override-v6" value="`$network-model.ipv6-cidr-mask`" />\r
+            </set>\r
+            <switch test="`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`">\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index='pidx' start='0' end='`$network-topology-operation-input.network-request-input.network-input-parameters.param_length`' >\r
+                            <block atomic="true">\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                    <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
+                                    <parameter name="target" value="network_assignments_ipv4_subnet_default_assignment_cidr_mask"/>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='eipam-ip-block.subnet-size-override-v4' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </execute>\r
+                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                    <parameter name="source" value="`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].name`" />\r
+                                    <parameter name="target" value="network_assignments_ipv6_subnet_default_assignment_cidr_mask"/>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='eipam-ip-block.subnet-size-override-v6' value='`$network-topology-operation-input.network-request-input.network-input-parameters.param[$pidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index="l-idx" start="1" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length + 1`">\r
+                <block atomic='true'>\r
+                    <set>\r
+                        <parameter name='eipam-ip-block.entity-id' value='' />\r
+                        <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                        <parameter name='eipam-ip-block.mask' value='' />\r
+                        <parameter name="eipam-ip-block.level" value='`$l-idx`' />\r
+                        <parameter name='eipam-pool.v4.pre-existing' value='false' />\r
+                        <parameter name='eipam-pool.v6.pre-existing' value='false' />\r
+                    </set>\r
+                    <!--tmp.level should be set to 1-->\r
+                    <call module='GENERIC-RESOURCE-API' rpc='eipam-create-generic-pool' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.process-generic-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="Error creating pool for level"/>\r
+                                    <parameter name="field5" value="`$l-idx`"/>\r
+                                </record>\r
+                                <return status="failure">\r
+                                    <parameter name="tmp.eipam-error" value="true" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="An error occured while creating pool" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block atomic="true">\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.process-generic-eipam-pools:REQID"/>\r
+                                    <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="`$l-idx`"/>\r
+                                    <parameter name="field5" value="`$eipam-pool.v4.pre-existing`"/>\r
+                                    <parameter name="field6" value="eipam-pool.v4.pre-existing"/>\r
+                                    <parameter name="field7" value="`$eipam-pool.v6.pre-existing`"/>\r
+                                    <parameter name="field8" value="tmp.create-v4-pool-flag" />\r
+                                    <parameter name="field9" value="`$tmp.create-v4-pool-flag`" />\r
+                                    <parameter name="field10" value="tmp.create-v6-pool-flag" />\r
+                                    <parameter name="field11" value="`$tmp.create-v6-pool-flag`" />\r
+                                    <parameter name="field12" value="Successful" />\r
+                                </record>\r
+                            </block>\r
+                        </outcome>\r
+                    </call>\r
+                    <switch test="`$tmp.allocate-subnet-flag`">\r
+                        <outcome value=""></outcome>\r
+                        <outcome value='N'>\r
+                            <block atomic='true'>\r
+                                <switch test="`$network-model.use-ipv4`">\r
+                                    <outcome value='N'></outcome>\r
+                                    <outcome value='Y'>\r
+                                        <block atomic='true'>\r
+                                            <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v4-address-plan and s.entity_id = k.entity_id and k.level = $l-idx and k.key_value = $key-value ; "\r
+        pfx='tmp.eipam-subnet-row'>\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level:" />\r
+                                                            <parameter name="field5" value="`$l-idx`" />\r
+                                                            <parameter name="field6" value="Existing eipam-ip-block.mask for level:" />\r
+                                                            <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                            <parameter name="field8" value="ipv4"/>\r
+                                                            <parameter name="field9" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level1.v4.subnet.pre-existing' value='true' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v4.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value="not-found">\r
+                                                    <block atomic='true'>\r
+                                                        <set>\r
+                                                            <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                            <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                            <parameter name='eipam-ip-block.mask' value='' />\r
+                                                            <parameter name="eipam-ip-block.allocate-version" value='ipv4' />\r
+                                                            <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\r
+                                                            <outcome value='success'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='eipam-ip-block.v4.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\r
+                                                                    </set>\r
+                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                        <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                                        <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                        <parameter name="field4" value="eipam-ip-block.ip-prefix"/>\r
+                                                                        <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                                        <parameter name="field6" value="eipam-ip-block.mask"/>\r
+                                                                        <parameter name="field7" value="`$eipam-ip-block.v4.allocateSubnetResponse.Mask`"/>\r
+                                                                        <parameter name="field8" value="ipv4"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <block atomic="true">\r
+                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                        <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                                        <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                        <parameter name="field4" value="Failed to allocate ipv4 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                                        <parameter name="field5" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=""></outcome>\r
+                                </switch>\r
+                                <switch test="`$network-model.use-ipv6`">\r
+                                    <outcome value='N'></outcome>\r
+                                    <outcome value='Y'>\r
+                                        <block atomic='true'>\r
+                                            <get-resource\r
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
+        resource='SQL'\r
+        key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $network-model.eipam-v6-address-plan and s.entity_id = k.entity_id and k.level = $l-idx and k.key_value = $key-value ; "\r
+        pfx='tmp.eipam-subnet-row'>\r
+                                                <outcome value='success'>\r
+                                                    <block atomic="true">\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Existing eipam-ip-block.ip-prefix for level:" />\r
+                                                            <parameter name="field5" value="`$l-idx`" />\r
+                                                            <parameter name="field6" value="Existing eipam-ip-block.mask for level:" />\r
+                                                            <parameter name="field7" value="`$tmp.eipam-subnet-row.prefix-length`"/>\r
+                                                            <parameter name="field8" value="ipv6"/>\r
+                                                            <parameter name="field9" value="`$tmp.eipam-subnet-row.ip-address`"/>\r
+                                                        </record>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.l3-network.level1.v6.subnet.pre-existing' value='true' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.entity-id' value='`$tmp.eipam-row.entity-id`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.ip-prefix' value='`$tmp.eipam-row.ip-address`' />\r
+                                                            <parameter name='tmp.l3-network.level1.v6.mask' value='`$tmp.eipam-row.prefix-length`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value="not-found">\r
+                                                    <block atomic='true'>\r
+                                                        <set>\r
+                                                            <parameter name='eipam-ip-block.entity-id' value='' />\r
+                                                            <parameter name='eipam-ip-block.ip-prefix' value='' />\r
+                                                            <parameter name='eipam-ip-block.mask' value='' />\r
+                                                            <parameter name="eipam-ip-block.allocate-version" value='ipv6' />\r
+                                                            <parameter name='eipam-ip-block.plans_length' value='0' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='eipam-allocate-generic-subnet' mode='sync' >\r
+                                                            <outcome value='success'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='eipam-ip-block.v6.allocateSubnetResponse.' value='eipam-ip-block.allocateSubnetResponse.' />\r
+                                                                    </set>\r
+                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                        <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                                        <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                        <parameter name="field4" value="eipam-ip-block.ip-prefix"/>\r
+                                                                        <parameter name="field5" value="`$eipam-ip-block.ip-prefix`"/>\r
+                                                                        <parameter name="field6" value="eipam-ip-block.mask"/>\r
+                                                                        <parameter name="field7" value="`$eipam-ip-block.v6.allocateSubnetResponse.Mask`"/>\r
+                                                                        <parameter name="field8" value="ipv6"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <block atomic="true">\r
+                                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                        <parameter name="logger" value="message-log"/>\r
+                                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                        <parameter name="field2" value="GENERIC-RESOURCE-API.process-eipam-pools:REQID"/>\r
+                                                                        <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                        <parameter name="field4" value="Failed to allocate ipv6 subnet - failure from eipam-allocate-network-role-subnet"/>\r
+                                                                        <parameter name="field9" value="`$l-idx`" />\r
+                                                                    </record>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value=""></outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='Y'></outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <return status='success'>\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_query-aai-l3-network-by-network-role.xml
new file mode 100644 (file)
index 0000000..64e5765
--- /dev/null
@@ -0,0 +1,199 @@
+<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='query-aai-l3-network-by-network-role' mode='sync'>\r
+        <block atomic='true'>\r
+            <switch test='`$query-aai-l3-network-by-network-role-input.aic-cloud-region`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="query-aai-l3-network-by-network-role-input.aic-cloud-region is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$query-aai-l3-network-by-network-role-input.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="query-aai-l3-network-by-network-role-input.service-instance-id is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$query-aai-l3-network-by-network-role-input.network-role`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="query-aai-l3-network-by-network-role-input.network-role is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='query-aai-l3-network-by-network-role-output.' value='' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.aai.l3-networks.' value='' />\r
+            </set>\r
+            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="l3-networks" \r
+               key="l3-network.network-role = $query-aai-l3-network-by-network-role-input.network-role" \r
+       pfx='tmp.aai.l3-networks' >\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No active l3-network found in AAI with cloud_region_id '\r
+          + $vnf-topology-operation-input.vnf-request-information.aic-cloud-region + ' and network_role '\r
+          + $query-aai-l3-network-by-network-role-input.network-role`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='failure'>\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 retrieving l3-network from AAI with network-role = ' + $query-aai-l3-network-by-network-role-input.network-role`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <switch test='`$tmp.aai.l3-networks.l3-network_length`'>\r
+                <outcome value='1'>\r
+                    <set>\r
+                        <parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \r
+       value='`$tmp.aai.l3-networks.l3-network[0].`' />\r
+                        <!--\r
+<parameter name='query-aai-l3-network-by-network-role-output.network-id' \r
+       value='`$tmp.aai.l3-networks.l3-network[0].network-id`' /><parameter name='query-aai-l3-network-by-network-role-output.network-name' \r
+       value='`$tmp.aai.l3-networks.l3-network[0].network-name`' />\r
+-->\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='tmp.l3-network-found' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='cloud.matched.l3-networks_length' value='0' />\r
+                        </set>\r
+                        <for index='network-index' start='0' end='`$tmp.aai.l3-networks.l3-network_length`' >\r
+                            <block>\r
+                                <switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`'>\r
+                                    <outcome value=''>\r
+                                        <set>\r
+                                            <parameter name ='tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length' value = '0' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <for index='ridx' start='0' end='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`' >\r
+                                    <switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].related-to`'>\r
+                                        <outcome value='cloud-region'>\r
+                                            <for silentFailure='false' index='rdidx' start='0' end="`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                                <switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                                    <outcome value='cloud-region.cloud-region-id'>\r
+                                                        <switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $query-aai-l3-network-by-network-role-input.aic-cloud-region`'>\r
+                                                            <outcome value='true'>\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='cloud.matched.l3-networks[$cloud.matched.l3-networks_length].' \r
+       value='$tmp.aai.l3-networks.l3-network[$network-index].' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='cloud.matched.l3-networks_length' value='`$cloud.matched.l3-networks_length + 1`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </block>\r
+                        </for>\r
+                        <switch test='`$cloud.matched.l3-networks_length`'>\r
+                            <outcome value='0'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No l3-network with network-role=' + $query-aai-l3-network-by-network-role-input.network-role + ' and cloud-region=' + $query-aai-l3-network-by-network-role-input.aic-cloud-region + ' found in AAI'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='1'>\r
+                                <set>\r
+                                    <parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \r
+       value='`$cloud.matched.l3-networks[0].`' />\r
+                                    <!--               \r
+       <parameter name='query-aai-l3-network-by-network-role-output.network-id' \r
+               value='`$cloud.matched.l3-networks[0].network-id`' /><parameter name='query-aai-l3-network-by-network-role-output.network-name' \r
+               value='`$cloud.matched.l3-networks[0].network-name`' />\r
+-->\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic='true'>\r
+                                    <block>\r
+                                        <for index='cidx' start='0' end='`$cloud.matched.l3-networks_length`' >\r
+                                            <block>\r
+                                                <switch test='`$tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length`'>\r
+                                                    <outcome value=''>\r
+                                                        <set>\r
+                                                            <parameter name ='tmp.aai.l3-networks.l3-network[$network-index].relationship-list.relationship_length' value = '0' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <for index='ridx' start='0' end='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship_length`' >\r
+                                                    <switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].related-to`'>\r
+                                                        <outcome value='service-instance'>\r
+                                                            <for silentFailure='false' index='rdidx' start='0' end="`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data_length`" >\r
+                                                                <switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-key`'>\r
+                                                                    <outcome value='service-instance.service-instance-id'>\r
+                                                                        <switch test='`$cloud.matched.l3-networks[$cidx].relationship-list.relationship[$ridx].relationship-data[$rdidx].relationship-value == $query-aai-l3-network-by-network-role-input.service-instance-id`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block atomic='true'>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='query-aai-l3-network-by-network-role-output.l3-network.' \r
+       value='`$cloud.matched.l3-networks[$cidx].`' />\r
+                                                                                        <!--\r
+<parameter name='query-aai-l3-network-by-network-role-output.network-id' \r
+       value='`$cloud.matched.l3-networks[$cidx].network-id`' /><parameter name='query-aai-l3-network-by-network-role-output.network-name' \r
+       value='`$cloud.matched.l3-networks[$cidx].network-name`' />\r
+-->\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.l3-network-found' value='1' />\r
+                                                                                    </set>\r
+                                                                                    <return status='failure'></return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </for>\r
+                                        <return status='success'></return>\r
+                                    </block>\r
+                                    <switch test='`$tmp.l3-network-found`'>\r
+                                        <outcome value='0'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'No l3-network with network-role=' + $query-aai-l3-network-by-network-role-input.network-role + ' and cloud-region=' + $query-aai-l3-network-by-network-role-input.aic-cloud-region + ' and service-instance-id=' + $query-aai-l3-network-by-network-role-input.service-instance-id + ' found in AAI'`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-eipam-ip-assignment.xml
new file mode 100644 (file)
index 0000000..6a4ca1b
--- /dev/null
@@ -0,0 +1,46 @@
+<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='rollback-eipam-ip-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from EIPAM_IP_ASSIGNMENTS \r
+  WHERE info = $vnf-topology-operation-input.vnf-request-information.vnf-id'>\r
+                <outcome value='not-found'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='tmp.status' \r
+       value="`'PENDING_DELETE_' + $vnf-topology-operation-input.vnf-request-information.vnf-id`" />\r
+                            <parameter name='service-data.service-information.service-type' \r
+       value='NOT_APPLICABLE' />\r
+                        </set>\r
+                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+       key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status \r
+               WHERE info = $vnf-topology-operation-input.vnf-request-information.vnf-id" >\r
+                            <outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table on rollback." />\r
+                                </return>\r
+                            </outcome>\r
+                        </update>\r
+                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                            <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                            <outcome value='failure'>\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 in EIPAM unassign IP address on rollback." />\r
+                                </return>\r
+                            </outcome>\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-generated-names.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_rollback-generated-names.xml
new file mode 100644 (file)
index 0000000..d36c406
--- /dev/null
@@ -0,0 +1,336 @@
+<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='rollback-generated-names' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$rollback-generated-names-input.context-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="rollback-generated-names-input.context-id can not be null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$rollback-generated-names-input.naming-type`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="rollback-generated-names-input.naming-type can not be null" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='VM_INSTANCE'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VM_NAME_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vm_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='VNFC_INSTANCE'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' value='NAMING_POLICY_VNFC_NAME_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnfc_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='CLIENT_KEY'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' value='vnf_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='NETWORK_INSTANCE'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' \r
+       value='NETWORK_INSTANCE_NAME_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+       value='network_instance_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='SERVICE_INSTANCE'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' \r
+       value='SERVICE_INSTANCE_NAME_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+       value='service_instance_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='VNF_INSTANCE'>\r
+                    <set>\r
+                        <parameter name='rollback-generated-names.index-table-name' value='VNF_NAME_INDEX' />\r
+                        <parameter name='rollback-generated-names.index-table.name-prefix-column' \r
+       value='vnf_name_prefix' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unknown rollbck-generated-name-input.naming-type: ' + $rollback-generated-names-input.naming-type`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='db.grn.' value='' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT distinct prefix from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \r
+               AND context_id = $rollback-generated-names-input.context-id'\r
+  pfx='db.grn.distinct-prefix[]'>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500'/>\r
+                        <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table to retrieve distinct prefix"/>\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db.grn.distinct-prefix_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\r
+            <for index='prefix-index' start='0' end='`$db.grn.distinct-prefix_length`' >\r
+                <block atomic='true'>\r
+                    <set>\r
+                        <parameter name='db.grn.subset.' value='' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.rb.' value='' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.rb.grn.prefix' value='`$db.grn.distinct-prefix[$prefix-index].prefix`' />\r
+                    </set>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type   \r
+               AND context_id = $rollback-generated-names-input.context-id \r
+               AND prefix = $tmp.rb.grn.prefix order by name_index'\r
+  pfx='db.grn.subset[]'>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\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="`'No entry found in GENERIC_RESOURCE_NAME where context_id = ' + $rollback-generated-names-input.context-id + ' and type = ' + $rollback-generated-names-input.naming-type + ' and prefix = ' + $db.grn.distinct-prefix[$prefix-index].prefix`"/>\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='tmp.rb.sql' \r
+       value="`'SELECT * from ' + $rollback-generated-names.index-table-name \r
+               + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+               + ' = $tmp.rb.grn.prefix'`" />\r
+                        </set>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.rb.sql`" pfx='db.grn.index-table'>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' value="`'Error reading the '\r
+       + $rollback-generated-names.index-table-name \r
+       + ' table with ' + $rollback-generated-names.name-prefix-column\r
+       + ' = ' + $tmp.rb.grn.prefix \r
+       + '. MANUAL clean up is required!'`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-message' value="`'No entries found in ' \r
+       + $rollback-generated-names.index-table-name \r
+       + ' with ' \r
+       + $rollback-generated-names.name-prefix-column \r
+       + ' = ' \r
+       + $tmp.rb.grn.prefix `" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                    <set>\r
+                        <parameter name='tmp.rb.grn.max-index' \r
+       value='`$db.grn.subset[$db.grn.subset_length - 1].name-index`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.rb.delta-index' \r
+       value='`$db.grn.index-table.index-number - $tmp.rb.grn.max-index`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.rb.net-index' \r
+       value='`$db.grn.index-table.index-number - $db.grn.subset_length`' />\r
+                    </set>\r
+                    <switch test="`$tmp.rb.delta-index == 0`">\r
+                        <outcome value='true'>\r
+                            <switch test="`$tmp.rb.net-index == 0`">\r
+                                <outcome value='true'>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.rb.sql' \r
+       value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
+               + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+               + ' = $tmp.rb.grn.prefix'`" />\r
+                                            <!--\r
++ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
+-->\r
+                                        </set>\r
+                                        <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.rb.sql`">\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-message' value="`'Error deleting '\r
+       + $rollback-generated-names.index-table-name \r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix \r
+       + ' AND index_number = ' + $db.index-table.index-number\r
+       + '. MANUAL clean up is required!'`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                        </update>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='false'>\r
+                                    <block atomic='true'>\r
+                                        <set>\r
+                                            <parameter name='tmp.rb.sql' \r
+       value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
+               + ' set index_number = ' + $tmp.rb.net-index\r
+               + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+               + ' = $tmp.rb.grn.prefix'`" />\r
+                                        </set>\r
+                                        <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.rb.sql`">\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-message' value="`'Error updating  '\r
+       + $rollback-generated-names.index-table-name + '.index_number = ' \r
+       + $tmp.rb.net-index\r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix\r
+       + '. MANUAL clean up is required!'`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-message' value="`'Error updating  '\r
+       + $rollback-generated-names.index-table-name + '.index_number = ' \r
+       + $tmp.rb.net-index\r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix\r
+       + '. MANUAL clean up is required!'`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </update>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <block></block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='DELETE from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type  \r
+               AND context_id = $rollback-generated-names-input.context-id \r
+               AND prefix = $tmp.rb.grn.prefix'>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-message' value="`'Error deleting GENERIC_RESOURCE_NAME WHERE type = '\r
+       + $rollback-generated-names-input.naming-type  \r
+       + ' AND context_id = ' + $rollback-generated-names-input.context-id \r
+       + ' AND prefix = '+ $tmp.rb.grn.prefix\r
+       + '. MANUAL clean up is required!'`" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block></block>\r
+                        </outcome>\r
+                    </delete>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from GENERIC_RESOURCE_NAME WHERE type = $rollback-generated-names-input.naming-type    \r
+               AND prefix = $tmp.rb.grn.prefix order by name_index'\r
+  pfx='db.grn.prefix[]'>\r
+                        <outcome value='failure'>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='500'/>\r
+                                <parameter name='error-message' value="Encountered error reading GENERIC_RESOURCE_NAME table"/>\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='tmp.rb.sql' \r
+       value="`'DELETE from ' + $rollback-generated-names.index-table-name \r
+               + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+               + ' = $tmp.rb.grn.prefix'`" />\r
+                                    <!--\r
++ ' = $tmp.rb.grn.prefix AND index_number = $db.grn.index-table.index-number'`" />\r
+-->\r
+                                </set>\r
+                                <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.rb.sql`">\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-message' value="`'Error deleting '\r
+       + $rollback-generated-names.index-table-name \r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix \r
+       + ' AND index_number = ' + $db.index-table.index-number`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <block></block>\r
+                                    </outcome>\r
+                                </update>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <block>\r
+                                <set>\r
+                                    <parameter name='tmp.rb.grn.last-max-index' \r
+       value='`$db.grn.prefix[$db.grn.prefix_length - 1].name-index`' />\r
+                                </set>\r
+                                <switch test="`$tmp.rb.net-index > $tmp.rb.grn.last-max-index`">\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='tmp.rb.sql' \r
+       value="`'UPDATE ' + $rollback-generated-names.index-table-name \r
+               + ' set index_number = ' + $tmp.rb.grn.last-max-index\r
+               + ' WHERE ' + $rollback-generated-names.index-table.name-prefix-column \r
+               + ' = $tmp.rb.grn.prefix'`" />\r
+                                            </set>\r
+                                            <update plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="`$tmp.rb.sql`">\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-message' value="`'Error updating  '\r
+       + $rollback-generated-names.index-table-name + '.index_number = ' \r
+       + $tmp.rb.grn.last-max-index\r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-message' value="`'Error updating  '\r
+       + $rollback-generated-names.index-table-name + '.index_number = ' \r
+       + $tmp.rb.grn.last-max-index\r
+       + ' WHERE ' + $rollback-generated-names.name-prefix-column \r
+       + ' = ' + $tmp.rb.grn.prefix`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </update>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 82f6efa..f49173a 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-activate' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="in-service-path" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-activate' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />
+                <parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />
+                <parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Active' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="in-service-path" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index b6a2fd5..cb8450b 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.vnf-provided-allottedresource`" />\r
-    <parameter name="outputPath" value="tmp.vnf-p-ar-url" />\r
-    <parameter name="target" value="{service-instance-id}" />\r
-    <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`" />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.vnf-p-ar-url`" />\r
-    <parameter name="outputPath" value="tmp.vnf-p-ar-url" />\r
-    <parameter name="target" value="{vnf-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.sz-vnf-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" \r
-    value="`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
-</return></outcome><outcome value='PendingDelete'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" \r
-    value="`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " /></set><set>\r
-<parameter name='sz-ar-identifiers.consuming-service-instance-id' value="`$security-zone-topology-operation-input.service-information.service-instance-id` " />\r
-<parameter name='sz-ar-identifiers.parent-service-instance-id' value="`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />\r
-<parameter name='sz-ar-identifiers.allotted-resource-type' value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
-<parameter name='sz-ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-\r
-</set><set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.' \r
-value="`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.`" />\r
-\r
-\r
-</set><switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-invariant-uuid' \r
-value="`$ar-model.invariant-uuid`" />\r
-\r
-\r
-</set></outcome></switch><switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-uuid' \r
-value="`$ar-model.uuid`" />\r
-\r
-\r
-</set></outcome></switch><switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-version' \r
-value="`$ar-model.version`" />\r
-\r
-\r
-</set></outcome></switch><switch test='`$ar-model.ecomp-generated-naming`'>\r
-<outcome value='Y'>\r
-<block atomic="true">\r
-<switch test='`$ar-model.naming-policy`'>\r
-<outcome value='oam_security_zone_name'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.ar-name`"/>\r
-    <parameter name="outputPath" value="tmp.ar-name"/>\r
-    <parameter name="target" value="$TenantOAMNetworkRole"/>\r
-    <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`"/>\r
-\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.ar-name`"/>\r
-    <parameter name="outputPath" value="tmp.ar-name"/>\r
-    <parameter name="target" value="$LandingNetworkRole"/>\r
-    <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`"/>\r
-\r
-</execute><set>\r
-<parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\r
-</set></block></outcome><outcome value='Other'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.ar-name`"/>\r
-    <parameter name="outputPath" value="tmp.ar-name"/>\r
-    <parameter name="target" value="$TenantOAMNetworkRole"/>\r
-    <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`"/>\r
-\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$tmp.ar-name`"/>\r
-    <parameter name="outputPath" value="tmp.ar-name"/>\r
-    <parameter name="target" value="$LandingNetworkRole"/>\r
-    <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`"/>\r
-\r
-</execute><set>\r
-<parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\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 in allotted-resource-model data.  Ecomp-generated-naming should be true" />\r
-\r
-</return></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.allotted-resource-identifiers.' \r
-value="`$sz-ar-identifiers.`" />\r
-\r
-\r
-</set><set>\r
-<parameter name='sz-ar-assignments.vlan-tag' value="`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag` " />\r
-<parameter name='sz-ar-assignments.trusted-network-role' value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role` " />\r
-<parameter name='sz-ar-assignments.untrusted-network-role' value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role` " />\r
-<parameter name='sz-ar-assignments.security-zone-service-instance-id' value="`$tmp.ar.parent-service-instance-id` " />\r
-\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-panorama-name' mode='sync' >\r
-</call><set>\r
-<parameter name='sz-ar-assignments.security-zone-name-untrusted' value="`$tmp.untrust-sz` " />\r
-<parameter name='sz-ar-assignments.security-zone-name-trusted' value="`$tmp.trust-sz` " />\r
-\r
-\r
-</set><set>\r
-<parameter name='sz-ar.allotted-resource-data.security-zone-topology.security-zone-assignments.' \r
-value="`$sz-ar-assignments.`" />\r
-\r
-\r
-</set><switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='tmp.cidx' value="`0`" />\r
-<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />\r
-\r
-\r
-</set></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\r
-<switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">\r
-\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.cidx' value='`$cidx`' />\r
-<parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />\r
-<parameter name='tmp.found-cidx' value='true' /></set><break/></block></outcome></switch></for><switch test='`$tmp.found-cidx`'>\r
-<outcome value='false'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\r
-</set></block></outcome></switch></block></outcome></switch><set>\r
-<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` " />\r
-<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />\r
-<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="description" value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`" />\r
-       <parameter name="selflink" value="`$tmp.ar.self-link`" />\r
-       <parameter name="model-invariant-id" value="`$ar-model.invariant-uuid`" />\r
-       <parameter name="model-version-id" value="`$ar-model.uuid`" />\r
-       <parameter name="operational-status" value="null" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-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='DELETE' />\r
-    <parameter name="responsePrefix" value="parent" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<block>\r
-</block></outcome><outcome value='not-found'>\r
-<block>\r
-</block></outcome></execute></block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-assign' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.vnf-provided-allottedresource`" />
+                <parameter name="outputPath" value="tmp.vnf-p-ar-url" />
+                <parameter name="target" value="{service-instance-id}" />
+                <parameter name="replacement" value="`$tmp.ar.parent-service-instance-id`" />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$tmp.vnf-p-ar-url`" />
+                <parameter name="outputPath" value="tmp.vnf-p-ar-url" />
+                <parameter name="target" value="{vnf-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.sz-vnf-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='PendingDelete'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" 
+    value="`'Existing security-zone-allotted-resource with order status of ' + $sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status + '.'`" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />
+                <parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />
+                <parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " />
+            </set>
+            <set>
+                <parameter name='sz-ar-identifiers.consuming-service-instance-id' value="`$security-zone-topology-operation-input.service-information.service-instance-id` " />
+                <parameter name='sz-ar-identifiers.parent-service-instance-id' value="`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id` " />
+                <parameter name='sz-ar-identifiers.allotted-resource-type' value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
+                <parameter name='sz-ar-identifiers.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+            </set>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.' 
+value="`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.`" />
+            </set>
+            <switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-invariant-uuid' 
+value="`$ar-model.invariant-uuid`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-uuid' 
+value="`$ar-model.uuid`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-version'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='sz-ar.allotted-resource-data.security-zone-topology.onap-model-information.model-version' 
+value="`$ar-model.version`" />
+                    </set>
+                </outcome>
+            </switch>
+            <switch test='`$ar-model.ecomp-generated-naming`'>
+                <outcome value='Y'>
+                    <block atomic="true">
+                        <switch test='`$ar-model.naming-policy`'>
+                            <outcome value='oam_security_zone_name'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantOAMNetworkRole"/>
+                                        <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$LandingNetworkRole"/>
+                                        <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`"/>
+                                    </execute>
+                                    <set>
+                                        <parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='tmp.ar-name' value='$TenantOAMNetworkRole_$LandingNetworkRole_SZ' />
+                                    </set>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$TenantOAMNetworkRole"/>
+                                        <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`"/>
+                                    </execute>
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                                        <parameter name="source" value="`$tmp.ar-name`"/>
+                                        <parameter name="outputPath" value="tmp.ar-name"/>
+                                        <parameter name="target" value="$LandingNetworkRole"/>
+                                        <parameter name="replacement" value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`"/>
+                                    </execute>
+                                    <set>
+                                        <parameter name='sz-ar-identifiers.allotted-resource-name' value='`$tmp.ar-name`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error in allotted-resource-model data.  Ecomp-generated-naming should be true" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.security-zone-topology.allotted-resource-identifiers.' 
+value="`$sz-ar-identifiers.`" />
+            </set>
+            <set>
+                <parameter name='sz-ar-assignments.vlan-tag' value="`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag` " />
+                <parameter name='sz-ar-assignments.trusted-network-role' value="`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role` " />
+                <parameter name='sz-ar-assignments.untrusted-network-role' value="`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role` " />
+                <parameter name='sz-ar-assignments.security-zone-service-instance-id' value="`$tmp.ar.parent-service-instance-id` " />
+            </set>
+            <call module='GENERIC-RESOURCE-API' rpc='generate-panorama-name' mode='sync' ></call>
+            <set>
+                <parameter name='sz-ar-assignments.security-zone-name-untrusted' value="`$tmp.untrust-sz` " />
+                <parameter name='sz-ar-assignments.security-zone-name-trusted' value="`$tmp.trust-sz` " />
+            </set>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.security-zone-topology.security-zone-assignments.' 
+value="`$sz-ar-assignments.`" />
+            </set>
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>
+                <outcome value=''>
+                    <set>
+                        <parameter name='tmp.cidx' value="`0`" />
+                        <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value="1" />
+                    </set>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true">
+                        <for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >
+                            <switch test="`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`">
+                                <outcome value='true'>
+                                    <block atomic="true">
+                                        <set>
+                                            <parameter name='tmp.cidx' value='`$cidx`' />
+                                            <parameter name='ctx.consumed-ar.' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].`' />
+                                            <parameter name='tmp.found-cidx' value='true' />
+                                        </set>
+                                        <break/>
+                                    </block>
+                                </outcome>
+                            </switch>
+                        </for>
+                        <switch test='`$tmp.found-cidx`'>
+                            <outcome value='false'>
+                                <block atomic="true">
+                                    <set>
+                                        <parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value="`$tmp.ar.self-link` " />
+                <parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingCreate' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="description" value="`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`" />
+                <parameter name="selflink" value="`$tmp.ar.self-link`" />
+                <parameter name="model-invariant-id" value="`$ar-model.invariant-uuid`" />
+                <parameter name="model-version-id" value="`$ar-model.uuid`" />
+                <parameter name="operational-status" value="null" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block>
+                        <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                            <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`" />
+                            <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />
+                            <parameter name='restapiUser' value='`$prop.controller.user`' />
+                            <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                            <parameter name='format' value='json' />
+                            <parameter name='httpMethod' value='DELETE' />
+                            <parameter name="responsePrefix" value="parent" />
+                            <outcome value='success'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='failure'>
+                                <block></block>
+                            </outcome>
+                            <outcome value='not-found'>
+                                <block></block>
+                            </outcome>
+                        </execute>
+                    </block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index a0f09c9..a234d0d 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-create' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='PendingCreate'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-create' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='PendingCreate'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />
+                <parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />
+                <parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 8fc45ac..14ecf29 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="allotted-resource" \r
-               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND\r
-                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND\r
-                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND\r
-                       allotted-resource.id = $tmp.ar.allotted-resource-id"\r
-        pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="operational-status" value="out-of-service-path" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome></update><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-deactivate' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />
+                <parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />
+                <parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+               resource="allotted-resource" 
+               key="customer.global-customer-id = $service-data.service-information.global-customer-id AND
+                       service-subscription.service-type = $service-data.service-information.subscription-service-type AND
+                       service-instance.service-instance-id = $service-data.service-information.service-instance-id AND
+                       allotted-resource.id = $tmp.ar.allotted-resource-id"
+        pfx='pfx' local-only='false' force='false'>
+                <parameter name="operational-status" value="out-of-service-path" />
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="AAI failed" />
+                    </return>
+                </outcome>
+            </update>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 4b78a62..acad449 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-delete' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><set>\r
-<parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />\r
-<parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />\r
-<parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " /></set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\r
-    <parameter name="outputPath" value="tmp.current-time" />\r
-\r
-</execute><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\r
-</set><set>\r
-<parameter name='sz-ar-assignments.' value="" />\r
-\r
-\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='PUT' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-delete' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-id' value="`$tmp.ar.allotted-resource-id` " />
+                <parameter name='sz-ar.allotted-resource-status.action' value="`$security-zone-topology-operation-input.request-information.request-action` " />
+                <parameter name='sz-ar.allotted-resource-status.rpc-name' value="security-zone-topology-operation" />
+                <parameter name='sz-ar.allotted-resource-status.rpc-action' value="`$security-zone-topology-operation-input.sdnc-request-header.svc-action` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value="`$security-zone-topology-operation-input.request-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value="`$security-zone-topology-operation-input.sdnc-request-header.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value="`$security-zone-topology-operation-input.service-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value="`$security-zone-topology-operation-input.allotted-resource-information.` " />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-operation-information.security-zone-request-input.' value="`$security-zone-topology-operation-input.security-zone-request-input.` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >
+                <parameter name="outputPath" value="tmp.current-time" />
+            </execute>
+            <set>
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='PendingDelete' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$security-zone-topology-operation-input.request-information.request-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`' />
+                <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />
+            </set>
+            <set>
+                <parameter name='sz-ar-assignments.' value="" />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.sz.templatefile`" />
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='PUT' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 872ddbd..0f11b39 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation-unassign' mode='sync'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\r
-<parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />\r
-<parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />\r
-\r
-\r
-</set><set>\r
-<parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'\r
- + $tmp.ar.allotted-resource-id\r
- + '/allotted-resource-data/security-zone-topology/'` " />\r
-\r
-</set><execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
-    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
-    <parameter name='contextPrefix' value='prop' />\r
-</execute><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
-    <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>\r
-    <parameter name="outputPath" value="tmp.ar-url"/>\r
-    <parameter name="target" value="{allotted-resource-id}"/>\r
-    <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>\r
-</execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block atomic="true">\r
-<set>\r
-<parameter name='bk-sz-ar' value='$mdsal-ar.' />\r
-</set><switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>\r
-<outcome value='1'>\r
-<block atomic='true'>\r
-<set>\r
-<parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />\r
-</set><switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<block>\r
-</block></outcome></switch><set>\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />\r
-<parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />\r
-\r
-</set></block></outcome></switch></block></outcome><outcome value='Other'>\r
-<block atomic="true">\r
-</block></outcome></execute><execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
-    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-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='DELETE' />\r
-    <parameter name="responsePrefix" value="mdsal-ar" />\r
-\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome><outcome value='not-found'>\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 updating md-sal for security-zone-allotted-resource" />\r
-</return></outcome></execute><set>\r
-<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\r
-<parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $security-zone-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation-unassign' mode='sync'>
+        <block atomic="true">
+            <set>
+                <parameter name='tmp.ar.allotted-resource-id' value='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`' />
+                <parameter name='tmp.ar.parent-service-instance-id' value='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`' />
+                <parameter name='tmp.ar.sz-vnf-id' value='`$security-zone-topology-operation-input.allotted-resource-data.security-zone-topology.security-zone-assignments.security-zone-vnf-id`' />
+            </set>
+            <set>
+                <parameter name='tmp.ar.self-link' value="`'restconf/config/GENERIC-RESOURCE-API:security-zone-allotted-resources/security-zone-allotted-resource/'
+ + $tmp.ar.allotted-resource-id
+ + '/allotted-resource-data/security-zone-topology/'` " />
+            </set>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >
+                <parameter name="source" value="`$prop.restapi.sz-allottedresource`"/>
+                <parameter name="outputPath" value="tmp.ar-url"/>
+                <parameter name="target" value="{allotted-resource-id}"/>
+                <parameter name="replacement" value="`$tmp.ar.allotted-resource-id`"/>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='GET' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block atomic="true">
+                        <set>
+                            <parameter name='bk-sz-ar' value='$mdsal-ar.' />
+                        </set>
+                        <switch test='`$mdsal-ar.security-zone-allotted-resource_length`'>
+                            <outcome value='1'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sz-ar.' value='$mdsal-ar.security-zone-allotted-resource[0].' />
+                                    </set>
+                                    <switch test='`$sz-ar.allotted-resource-data.allotted-resource-oper-status.order-status`'>
+                                        <outcome value='Created'>
+                                            <block></block>
+                                        </outcome>
+                                        <outcome value='Other'>
+                                            <block></block>
+                                        </outcome>
+                                    </switch>
+                                    <set>
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.request-information.request-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$sz-ar.allotted-resource-status.rpc-action`' />
+                                        <parameter name='sz-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$sz-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.svc-request-id`' />
+                                    </set>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <block atomic="true"></block>
+                </outcome>
+            </execute>
+            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />
+                <parameter name='restapiUser' value='`$prop.controller.user`' />
+                <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                <parameter name='format' value='json' />
+                <parameter name='httpMethod' value='DELETE' />
+                <parameter name="responsePrefix" value="mdsal-ar" />
+                <outcome value='success'>
+                    <block></block>
+                </outcome>
+                <outcome value='failure'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+                <outcome value='not-found'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Error updating md-sal for security-zone-allotted-resource" />
+                    </return>
+                </outcome>
+            </execute>
+            <set>
+                <parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />
+                <parameter name='security-zone-object-path' value="`$tmp.ar.self-link`"/>
+                <parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'
+ + $security-zone-topology-operation-input.service-information.service-instance-id
+ + '/service-data/service-topology/'`"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 41f84c5..5cb18ae 100755 (executable)
@@ -1,26 +1,56 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='security-zone-topology-operation' mode='sync'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='validate-security-zone-input' mode='sync' >\r
-</call><switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-assign' mode='sync' >\r
-</call></block></outcome><outcome value='create'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-create' mode='sync' >\r
-</call></block></outcome><outcome value='activate'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-activate' mode='sync' >\r
-</call></block></outcome><outcome value='deactivate'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-deactivate' mode='sync' >\r
-</call></block></outcome><outcome value='delete'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-delete' mode='sync' >\r
-</call></block></outcome><outcome value='unassign'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-unassign' mode='sync' >\r
-</call></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><set>\r
-<parameter name="ack-final" value="Y"/></set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='security-zone-topology-operation' mode='sync'>
+        <block atomic="true">
+            <call module='GENERIC-RESOURCE-API' rpc='validate-security-zone-input' mode='sync' ></call>
+            <switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-assign' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='create'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-create' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-activate' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-deactivate' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='delete'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-delete' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <call module='GENERIC-RESOURCE-API' rpc='security-zone-topology-operation-unassign' mode='sync' ></call>
+                    </block>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <set>
+                <parameter name="ack-final" value="Y"/>
+            </set>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-aai-vfmodule-put.xml
new file mode 100644 (file)
index 0000000..0ca7cde
--- /dev/null
@@ -0,0 +1,171 @@
+<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='self-serve-aai-vfmodule-put' mode='sync'>\r
+        <block atomic='true'>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='vnf-index is required' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index="k" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                            <block>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\r
+                                    <outcome value='vnf-id'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='ipv4-loopback0-address'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='ipv4-loopback0-address' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='as-number'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='as-number' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='vlan-id-outer'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='vlan-id-outer' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].value`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                        <for index="j" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`" >\r
+                            <block>\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].name`'>\r
+                                    <outcome value='vf-module-id'>\r
+                                        <set>\r
+                                            <parameter name='vf-module-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='vf-module-name'>\r
+                                        <set>\r
+                                            <parameter name='vf-module-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='volume-group-id'>\r
+                                        <set>\r
+                                            <parameter name='volume-group-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='volume-group-name'>\r
+                                        <set>\r
+                                            <parameter name='volume-group-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='cloud-region'>\r
+                                        <set>\r
+                                            <parameter name='cloud-region' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$j].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <block>\r
+                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="generic-vnf"\r
+               key="generic-vnf.vnf-id = $vnf-id "\r
+       pfx="tmp.AnAI-data.vnf" >\r
+                    <parameter name="ipv4-loopback0-address" value='`$ipv4-loopback0-address`' />\r
+                    <parameter name="ipv4-oam-address" value='`$ipv4-oam-address`' />\r
+                    <parameter name="as-number" value='`$as-number`' />\r
+                    <parameter name="vlan-id-outer" value='`$vlan-id-outer`' />\r
+                    <outcome value='failure'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log" />\r
+                            <parameter name="level" value="error" />\r
+                            <parameter name="field1" value="Error for PUT in AAI for generic-vnf." />\r
+                            <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                            <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                        </record>\r
+                    </outcome>\r
+                    <outcome value='not-found'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log" />\r
+                            <parameter name="level" value="error" />\r
+                            <parameter name="field1" value="Error for PUT in AAI for generic-vnf." />\r
+                            <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                            <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                        </record>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="vf-module"\r
+               key="vf-module.vf-module-id = $vf-module-id "\r
+       pfx="tmp.AnAI-data.vfmodule" >\r
+                            <parameter name="vf-module-name" value='`$vf-module-name`' />\r
+                            <outcome value='failure'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log" />\r
+                                    <parameter name="level" value="error" />\r
+                                    <parameter name="field1" value="Error for PUT in AAI for vf-module" />\r
+                                    <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                    <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                </record>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log" />\r
+                                    <parameter name="level" value="error" />\r
+                                    <parameter name="field1" value="Error for PUT in AAI for vf-module" />\r
+                                    <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                    <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                </record>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="volume-group"\r
+               key="volume-group-id = $volume-group-id and \r
+                               cloud-region.cloud-owner = $prop.cloud-region.cloud-owner and\r
+                               cloud-region.cloud-region-id = $cloud-region "\r
+               pfx="tmp.AnAI-data.vnf" >\r
+                                    <parameter name="volume-group-name" value='`$volume-group-name`' />\r
+                                    <outcome value='failure'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log" />\r
+                                            <parameter name="level" value="error" />\r
+                                            <parameter name="field1" value="Error Saving in AAI" />\r
+                                            <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                            <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                        </record>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log" />\r
+                                            <parameter name="level" value="error" />\r
+                                            <parameter name="field1" value="Error Saving in AAI" />\r
+                                            <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                            <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                        </record>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <return status='success'></return>\r
+                                    </outcome>\r
+                                </update>\r
+                            </outcome>\r
+                        </update>\r
+                    </outcome>\r
+                </update>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-alts-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-alts-assignment.xml
new file mode 100644 (file)
index 0000000..c26b666
--- /dev/null
@@ -0,0 +1,653 @@
+<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='self-serve-alts-assignment' mode='sync'>\r
+        <block>\r
+            <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' ></call>\r
+            <switch test='`$ss.capability-name`'>\r
+                <outcome value='alts-license-assign'>\r
+                    <switch test='`$ss.capability-action`'>\r
+                        <outcome value='assign'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$vnf-index`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value='vnf-index is required' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block>\r
+                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name`'>\r
+                                                        <outcome value='alts-license-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='alts-entitlement-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <for index="k" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\r
+                                                        <outcome value='license-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <switch test='`$ss.capability-name`'>\r
+                                                <outcome value='alts-license-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$license-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='alts-entitlement-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$entitlement-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <for index="j" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].name`'>\r
+                                                        <outcome value='vnf-id'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='vnf_name'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='license-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.license-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.entitlement-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.altsTools.AltsTools" method="acquireLicense" >\r
+                                    <parameter name="error-prefix" value="alts.error" />\r
+                                    <parameter name="prefix" value="alts.resp" />\r
+                                    <parameter name="assignment-group" value="`$alts.license-assignment-group-uuid`" />\r
+                                    <parameter name="hostname" value="`$alts.vnf-name`" />\r
+                                    <parameter name="vnf-id" value="`$alts.vnf-id`" />\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$license-key-index].value' value='`$alts.resp.license-key`' />\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='SUCCESS' />\r
+                                            </set>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="license"\r
+               key="generic-vnf.vnf-id = $alts.vnf-id \r
+                       AND license.group-uuid = $alts.license-assignment-group-uuid\r
+                       AND license.resource-uuid = $alts.resp.license-key"\r
+       pfx="tmp.AnAI.license" >\r
+                                                <parameter name="group-uuid" value='`$alts.license-assignment-group-uuid`' />\r
+                                                <parameter name="resource-uuid" value='`$alts.resp.license-key`' />\r
+                                                <outcome value='failure'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error Saving in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error Saving in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="failure">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="unsupported-method">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='unassign'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$vnf-index`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value='vnf-index is required' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block>\r
+                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name`'>\r
+                                                        <outcome value='alts-license-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='alts-entitlement-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <for index="k" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\r
+                                                        <outcome value='license-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <switch test='`$ss.capability-name`'>\r
+                                                <outcome value='alts-license-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$license-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='alts-entitlement-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$entitlement-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <for index="j" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].name`'>\r
+                                                        <outcome value='vnf-id'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='vnf_name'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='license-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.license-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.entitlement-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.altsTools.AltsTools" method="releaseLicense" >\r
+                                    <parameter name="asset-uuid" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$license-key-index].value`" />\r
+                                    <parameter name="error-prefix" value="alts.error" />\r
+                                    <parameter name="prefix" value="alts.resp" />\r
+                                    <parameter name="assignment-group" value="`$alts.license-assignment-group-uuid`" />\r
+                                    <parameter name="hostname" value="`$alts.vnf-name`" />\r
+                                    <parameter name="vnf-id" value="`$alts.vnf-id`" />\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='DELETED' />\r
+                                            </set>\r
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+resource="license"\r
+key="generic-vnf.vnf-id = $alts.vnf-id "\r
+force="true"\r
+local-only="false"\r
+pfx="tmp.AnAI-data.vnf" >\r
+                                                <parameter name="group-uuid" value='' />\r
+                                                <parameter name="resource-uuid" value='' />\r
+                                                <outcome value='failure'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error updating in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error updating in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </update>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="failure">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="unsupported-method">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='alts-entitlement-assign'>\r
+                    <switch test='`$ss.capability-action`'>\r
+                        <outcome value='assign'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$vnf-index`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value='vnf-index is required' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block>\r
+                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name`'>\r
+                                                        <outcome value='alts-license-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='alts-entitlement-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <for index="k" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\r
+                                                        <outcome value='license-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <switch test='`$ss.capability-name`'>\r
+                                                <outcome value='alts-license-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$license-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='alts-entitlement-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$entitlement-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <for index="j" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].name`'>\r
+                                                        <outcome value='vnf-id'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='vnf_name'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='license-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.license-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.entitlement-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.altsTools.AltsTools" method="acquireEntitlement" >\r
+                                    <parameter name="error-prefix" value="alts.error" />\r
+                                    <parameter name="prefix" value="alts.resp" />\r
+                                    <parameter name="assignment-group" value="`$alts.entitlement-assignment-group-uuid`" />\r
+                                    <parameter name="hostname" value="`$alts.vnf-name`" />\r
+                                    <parameter name="vnf-id" value="`$alts.vnf-id`" />\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$entitlement-key-index].value' value='`$alts.resp.license-key`' />\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='SUCCESS' />\r
+                                            </set>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="entitlement"\r
+               key="generic-vnf.vnf-id = $alts.vnf-id  \r
+                       AND entitlement.group-uuid = $alts.entitlement-assignment-group-uuid \r
+                       AND entitlement.resource-uuid = $alts.resp.license-key "\r
+       pfx="tmp.AnAI.entitlement" >\r
+                                                <parameter name="group-uuid" value='`$alts.entitlement-assignment-group-uuid`' />\r
+                                                <parameter name="resource-uuid" value='`$alts.resp.license-key`' />\r
+                                                <outcome value='failure'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error Saving in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error Saving in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="failure">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="unsupported-method">\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status`' value='FAILED' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='unassign'>\r
+                            <block atomic='true'>\r
+                                <switch test='`$vnf-index`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value='vnf-index is required' />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block>\r
+                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name`'>\r
+                                                        <outcome value='alts-license-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='alts-entitlement-assign'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-param-index' value='`$i`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <for index="k" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$k].name`'>\r
+                                                        <outcome value='license-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='license-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-key'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='entitlement-key-index' value='`$k`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                            <switch test='`$ss.capability-name`'>\r
+                                                <outcome value='alts-license-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$license-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='alts-entitlement-assign'>\r
+                                                    <set>\r
+                                                        <parameter name='param-index' value='`$entitlement-param-index`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <for index="j" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key_length`" >\r
+                                                <block>\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].name`'>\r
+                                                        <outcome value='vnf-id'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='vnf_name'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='license-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.license-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='entitlement-assignment-group-uuid'>\r
+                                                            <set>\r
+                                                                <parameter name='alts.entitlement-assignment-group-uuid' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.resource-key[$j].value`' />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <execute plugin="com.att.sdnctl.sli.plugin.altsTools.AltsTools" method="releaseEntitlement" >\r
+                                    <parameter name="asset-uuid" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$entitlement-key-index].value`" />\r
+                                    <parameter name="error-prefix" value="alts.error" />\r
+                                    <parameter name="prefix" value="alts.resp" />\r
+                                    <parameter name="assignment-group" value="`$alts.entitlement-assignment-group-uuid`" />\r
+                                    <parameter name="hostname" value="`$alts.vnf-name`" />\r
+                                    <parameter name="vnf-id" value="`$alts.vnf-id`" />\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$param-index].resource-resolution-data.status' value='DELETED' />\r
+                                            </set>\r
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+resource="license"\r
+key="generic-vnf.vnf-id = $alts.vnf-id "\r
+force="true"\r
+local-only="false"\r
+pfx="tmp.AnAI-data.vnf" >\r
+                                                <parameter name="group-uuid" value='' />\r
+                                                <parameter name="resource-uuid" value='' />\r
+                                                <outcome value='failure'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error updating in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="error" />\r
+                                                        <parameter name="field1" value="Error updating in AAI" />\r
+                                                        <parameter name="field2" value="`$tmp.AnAI-data.vnf.error-code`" />\r
+                                                        <parameter name="field3" value="`$tmp.AnAI-data.vnf.error-message`" />\r
+                                                    </record>\r
+                                                </outcome>\r
+                                            </update>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="failure">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="not-found">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value="unsupported-method">\r
+                                        <block>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='`$alts.error.error-code`' />\r
+                                                <parameter name='error-message' value='`$alts.error.error-message`' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </execute>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-capability-param-resolution.xml
new file mode 100644 (file)
index 0000000..cf3447f
--- /dev/null
@@ -0,0 +1,192 @@
+<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='self-serve-capability-param-resolution' mode='sync'>\r
+        <block atomic='true'>\r
+            <switch test="`$ss.capability-type`">\r
+                <outcome value='vnf'>\r
+                    <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                        <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                        <parameter name="target" value="$"/>\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`"/>\r
+                                                </record>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                    <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                    <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' />\r
+                                                    <parameter name='regex' value='\$\{' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>\r
+                                                    <parameter name="tmp.resolved.var.value" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`'/>\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                    <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                    <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                    <parameter name='regex' value='\}' />\r
+                                                </execute>\r
+                                                <switch test='`$s2_length`'>\r
+                                                    <outcome value='1'>\r
+                                                        <set>\r
+                                                            <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='2'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.s2.s2" value='`$s2[1]`'/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <for index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].name == $tmp.s2.s1`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cn].value`'/>\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
+                                                    <parameter name='source' value='`$tmp.s1`' />\r
+                                                    <parameter name='target' value='`$tmp.resolved.var.value`' />\r
+                                                    <parameter name='outputPath' value='tmp.result' />\r
+                                                </execute>\r
+                                                <switch test='`$tmp.s2.s2`'>\r
+                                                    <outcome value=''></outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
+                                                            <parameter name='source' value='`$tmp.result`' />\r
+                                                            <parameter name='target' value='`$tmp.s2.s2`' />\r
+                                                            <parameter name='outputPath' value='tmp.result' />\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                    <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                                    <parameter name="target" value="$"/>\r
+                                                    <outcome value='true'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value= "`'Not able to resolve Capability ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + ':' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+                <outcome value='vf-module'>\r
+                    <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                        <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                        <parameter name="target" value="$"/>\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="`'SS: param[].value with leading $: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`"/>\r
+                                                </record>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                    <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                    <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' />\r
+                                                    <parameter name='regex' value='\$\{' />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name="tmp.s1" value='`$resource-resolution-split[0]`'/>\r
+                                                    <parameter name="tmp.resolved.var.value" value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`'/>\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                    <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                    <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                    <parameter name='regex' value='\}' />\r
+                                                </execute>\r
+                                                <switch test='`$s2_length`'>\r
+                                                    <outcome value='1'>\r
+                                                        <set>\r
+                                                            <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='2'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.s2.s1" value='`$s2[0]`'/>\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.s2.s2" value='`$s2[1]`'/>\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <for index='cn' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].name == $tmp.s2.s1`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.resolved.var.value' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cn].value`'/>\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
+                                                    <parameter name='source' value='`$tmp.s1`' />\r
+                                                    <parameter name='target' value='`$tmp.resolved.var.value`' />\r
+                                                    <parameter name='outputPath' value='tmp.result' />\r
+                                                </execute>\r
+                                                <switch test='`$tmp.s2.s2`'>\r
+                                                    <outcome value=''></outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='concat'>\r
+                                                            <parameter name='source' value='`$tmp.result`' />\r
+                                                            <parameter name='target' value='`$tmp.s2.s2`' />\r
+                                                            <parameter name='outputPath' value='tmp.result' />\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`' value='`$tmp.result`'/>\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                    <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                                    <parameter name="target" value="$"/>\r
+                                                    <outcome value='true'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value= "`'Not able to resolve Capability ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + ':' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-create-vpe-pool.xml
new file mode 100755 (executable)
index 0000000..800ded3
--- /dev/null
@@ -0,0 +1,486 @@
+<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='self-serve-create-vpe-pool' mode='sync'>\r
+        <block atomic='true'>\r
+            <switch test="`$ss.capability-name`">\r
+                <outcome value='Other'></outcome>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-create-vpe-pool: ss.capability-name is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-name is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='null'></outcome>\r
+                <outcome value='create-vpe-pool'>\r
+                    <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-create-vpe-pool: ss.capability-name is create-vpe-pool"/>\r
+                    </record>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$ss.capability-action`">\r
+                <outcome value='Other'></outcome>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-create-vpe-pool: ss.capability-action is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-action is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='null'></outcome>\r
+                <outcome value='ASSIGN'>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-create-vpe-pool: ss.capability-action is ASSIGN"/>\r
+                    </record>\r
+                </outcome>\r
+                <outcome value='UNASSIGN'>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-create-vpe-pool: ss.capability-action is UNASSIGN"/>\r
+                    </record>\r
+                </outcome>\r
+            </switch>\r
+            <block atomic='true'>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="self-serve-create-vpe-pool: call self-service-capability-param-resolution DG"/>\r
+                </record>\r
+                <set>\r
+                    <!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->\r
+                </set>\r
+                <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-create-vpe-pool: Failure calling self-service-capability-param-resolution"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='402' />\r
+                                <parameter name='error-message' value='Failure calling self-service-capability-param-resolution' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'></outcome>\r
+                </call>\r
+            </block>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.vf-module-parameters-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\r
+                </set>\r
+                <for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-create-vpe-pool: vf-module-param-index"/>\r
+                        <parameter name="field3" value='`$vf-module-param-index`'/>\r
+                    </record>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vfModuleParamsCapabilityName' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.capability-name`'  />\r
+                        </set>\r
+                        <switch test="`$ss.capability-name == $vfModuleParamsCapabilityName`">\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-create-vpe-pool: Found ss.capability-name MATCH"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='tmp.resource-resolution-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.`'  />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </block>\r
+            <switch test="`$tmp.resource-resolution-data.status == 'PENDING'`">\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-create-vpe-pool: reseouce-resolution-data.status is not PENDING"/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='reseouce-resolution-data.status is not PENDING' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\r
+                </set>\r
+                <for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-create-vpe-pool: key-index"/>\r
+                        <parameter name="field3" value='`$key-index`'/>\r
+                    </record>\r
+                    <block>\r
+                        <switch test="`$tmp.resource-resolution-data.resource-key[$key-index].name == 'vpe_name'`">\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-create-vpe-pool: Found resource-resolution-data.name = vpe_name"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='tmp.vpe_name' value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'  />\r
+                                    </set>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: resolved vpe_name: "/>\r
+                                        <parameter name="field3" value='`$tmp.vpe_name`'/>\r
+                                    </record>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+                <switch test="`$tmp.vpe_name`">\r
+                    <outcome value='null'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: hostname is not set"/>\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                            </set>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='403' />\r
+                                <parameter name='error-message' value='vpe_name is not valid' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: hostname is not set"/>\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                            </set>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='403' />\r
+                                <parameter name='error-message' value='vpe_name is not valid' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+            <block atomic='true'>\r
+                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="select * FROM VPE_POOL WHERE vpe_name= $tmp.vpe_name" pfx='tmp.vpe_pool_data'>\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: Unable to access VPE_POOL"/>\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                            </set>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='405' />\r
+                                <parameter name='error-message' value='Unable to access VPE_POOL' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </get-resource>\r
+                <switch test="`$tmp.vpe_pool_data.vpe-name`">\r
+                    <outcome value=''>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: data not found in VPE_POOL for vpe_name: "/>\r
+                            <parameter name="field3" value='`$tmp.vpe_name`'/>\r
+                        </record>\r
+                    </outcome>\r
+                    <outcome value='null'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: data not found in VPE_POOL for vpe_name: "/>\r
+                            <parameter name="field3" value='`$tmp.vpe_name`'/>\r
+                        </record>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: data already found in VPE_POOL for vpe_name: "/>\r
+                                <parameter name="field3" value='`$tmp.vpe_name`'/>\r
+                            </record>\r
+                            <switch test="`$ss.capability-action == 'ASSIGN'`">\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="self-serve-mac-address-assign: Unable to create vpe-pool, data already exists in VPE_POOL for vpe_name"/>\r
+                                        </record>\r
+                                        <set>\r
+                                            <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                        </set>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='405' />\r
+                                            <parameter name='error-message' value='Unable to create vpe-pool, data already exists in VPE_POOL for vpe_name' />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value='ASSIGN'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\r
+                            <!-- String to build VPE_POOL table SQL insert statement -->\r
+                            <parameter name='tmp.resource-insert-columns' value='' />\r
+                            <parameter name='tmp.resource-insert-values' value='' />\r
+                            <!-- These are the resources to insert into VPE_POOL -->\r
+                            <parameter name='tmp.resource-names-length' value='19' />\r
+                            <parameter name='tmp.resource-names[0]' value='vpe_name' />\r
+                            <parameter name='tmp.resource-names[1]' value='ipv4_oam_address' />\r
+                            <parameter name='tmp.resource-names[2]' value='loopback0' />\r
+                            <parameter name='tmp.resource-names[3]' value='provisioning_status' />\r
+                            <parameter name='tmp.resource-names[4]' value='aic_site_id' />\r
+                            <parameter name='tmp.resource-names[5]' value='avaiablity_zone' />\r
+                            <parameter name='tmp.resource-names[6]' value='vlan_id_outer' />\r
+                            <parameter name='tmp.resource-names[7]' value='vendor' />\r
+                            <parameter name='tmp.resource-names[8]' value='physical_intf_name' />\r
+                            <parameter name='tmp.resource-names[9]' value='phyiscal_intf_speed' />\r
+                            <parameter name='tmp.resource-names[10]' value='phyiscal_intf_units' />\r
+                            <parameter name='tmp.resource-names[11]' value='vpe_uuid' />\r
+                            <parameter name='tmp.resource-names[12]' value='vpe_id' />\r
+                            <parameter name='tmp.resource-names[13]' value='image_filename' />\r
+                            <parameter name='tmp.resource-names[14]' value='as_number' />\r
+                            <parameter name='tmp.resource-names[15]' value='loopback5000' />\r
+                            <parameter name='tmp.resource-names[16]' value='loopback10' />\r
+                            <parameter name='tmp.resource-names[17]' value='aic_version' />\r
+                            <parameter name='tmp.resource-names[18]' value='vpe_capacity' />\r
+                        </set>\r
+                        <for index='names-index' start='0' end='`$tmp.resource-names-length`' >\r
+                            <for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="self-serve-create-vpe-pool: key-index, resource-key.name, resource-names"/>\r
+                                    <parameter name="field3" value='`$key-index`'/>\r
+                                    <parameter name="field4" value='`$tmp.resource-resolution-data.resource-key[$key-index].name`'/>\r
+                                    <parameter name="field5" value='`$tmp.resource-names[$names-index]`'/>\r
+                                </record>\r
+                                <switch test="`$tmp.resource-resolution-data.resource-key[$key-index].name == $tmp.resource-names[$names-index]`">\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="self-serve-create-vpe-pool: resource-name MATCH: "/>\r
+                                                <parameter name="field3" value='`$tmp.resource-names[$names-index]`'/>\r
+                                                <parameter name="field4" value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'/>\r
+                                            </record>\r
+                                            <switch test="`$tmp.insert-columns`">\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.insert-columns' value="`$tmp.resource-resolution-data.resource-key[$key-index].name`"  />\r
+                                                        <parameter name='tmp.insert-values' value="$tmp.resource-resolution-data.resource-key[$key-index].value`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.insert-columns' value="`$tmp.insert-columns + ', ' + $tmp.resource-resolution-data.resource-key[$key-index].name`"  />\r
+                                                        <parameter name='tmp.insert-values' value="`$tmp.insert-values + ', ' + $tmp.resource-resolution-data.resource-key[$key-index].value`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name="`'tmp.forInsert.' + $tmp.resource-resolution-data.resource-key[$key-index].name`" value="`$tmp.resource-resolution-data.resource-key[$key-index].value`"  />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </for>\r
+                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" \r
+resource="SQL" \r
+key="INSERT INTO VPE_POOL ( vpe_name, ipv4_oam_address, loopback0_ipv4_address, provisioning_status, aic_site_id, availability_zone, vlan_id_outer, vendor, physical_intf_name, physical_intf_speed, physical_intf_units, vpe_uuid, vpe_id, image_filename, as_number, loopback5000, loopback10, aic_version, vpe_capacity ) \r
+VALUES ( $tmp.forInsert.vpe_name , $tmp.forInsert.ipv4_oam_address , $tmp.forInsert.loopback0_ipv4_address , $tmp.forInsert.provisioning_status , $tmp.forInsert.aic_site_id , $tmp.forInsert.availability_zone , $tmp.forInsert.vlan_id_outer , $tmp.forInsert.vendor , $tmp.forInsert.physical_intf_name , $tmp.forInsert.physical_intf_speed , $tmp.forInsert.physical_intf_units , $tmp.forInsert.vpe_uuid , $tmp.forInsert.vpe_id , $tmp.forInsert.image_filename , $tmp.forInsert.as_number , $tmp.forInsert.loopback5000 , $tmp.forInsert.loopback10 , $tmp.forInsert.aic_version , $tmp.forInsert.vpe_capacity )" \r
+force='true' pfx='save_val'>\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Unable to create VPE Pool in VPE_POOL"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='406' />\r
+                                        <parameter name='error-message' value='Unable to create VPE Pool in VPE_POOL' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </save>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='UNASSIGN'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="select * FROM VPE_POOL WHERE vpe_name= $tmp.vpe_name" pfx='tmp.pool'>\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: vpe_name not found in VPE_POOL on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='vpe_name not found in VPE_POOL on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test="`$tmp.pool.vpe-name`">\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: vpe_name not found in VPE_POOL on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='vpe_name not found in VPE_POOL on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: vpe_name not found in VPE_POOL on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='vpe_name not found in VPE_POOL on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='null'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: vpe_name not found in VPE_POOL on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='vpe_name not found in VPE_POOL on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key='DELETE from VPE_POOL WHERE vpe_name = $tmp.vpe_name'>\r
+                                    <outcome value='failure'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="self-serve-mac-address-assign: Failure deleting from VPE_POOL on UNASSIGN operation"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                            </set>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='405' />\r
+                                                <parameter name='error-message' value='Failure deleting from VPE_POOL on UNASSIGN operation' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\r
+                                                <set>\r
+                                                    <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`" value="DELETED"  />\r
+                                                </set>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </delete>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/self-serve-create-vpe-pool.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`" value='SUCCESS'  />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-create-pool.xml
new file mode 100644 (file)
index 0000000..15648b4
--- /dev/null
@@ -0,0 +1,157 @@
+<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='self-serve-eipam-create-pool' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='vnf-index' value='0' />\r
+                <parameter name='vf-module-index' value='0' />\r
+                <parameter name='ss.capability-name' value='self-serve-eipam-create-pool' />\r
+                <parameter name='ss.capability-action' value='assign' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources' \r
+       value='true' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param_length' value = '1' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].name' value = 'ipv4-wan-address-pool' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].value' value = '${ipv4-wan-address-pool}' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.capability-name' value = 'eipam-create-pool' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].name' value = 'group-flag' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[0].value' value = 'Y' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].name' value = 'plan-name' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[1].value' value = 'GMIS_V4_VPE_WAN' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].name' value = 'service-instance-id' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[2].value' value = '12345' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].name' value = 'region' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[3].value' value = 'mtn6' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].name' value = 'address-family' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[4].value' value = 'ipv4' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].name' value = 'equipment' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[5].value' value = 'VPE' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].name' value = 'mask' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[6].value' value = '32' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].name' value = 'allocateSubnetFlag' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[7].value' value = 'N' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].name' value = 'service-instance-id' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key[8].value' value = '111222' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.resource-key_length' value = '9' />\r
+                <parameter name='service-data.vnfs.vnf[0].vnf-data.vf-modules.vf-module[0].vf-module-data.vf-module-topology.vf-module-parameters.param[0].resource-resolution-data.status' value = 'PENDING' />\r
+            </set>\r
+            <switch test='`$ss.capability-name`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-name is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-action is null" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="`'Invalid capability-action: '+ ss.capability-action + 'only assign is supported'`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <block>\r
+                            <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                                <set>\r
+                                    <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                                </set>\r
+                                <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                                    <outcome value='true'>\r
+                                        <break/>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>\r
+                            </record>\r
+                            <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`">\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
+                                    <outcome value='group-flag'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='allocateSubnetFlag'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.allocateSubnetFlag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='plan-name'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='service-instance-id'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.service-instance-id' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='address-family'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='mask'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.mask' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </block>\r
+                        <set>\r
+                            <parameter name='aai.cloud-region.cloud-region-id' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.skip-first-level' value='Y' />\r
+                            <parameter name='tmp.allocate-subnet-flag' value='`$tmp.ss.allocateSubnetFlag`' />\r
+                            <parameter name='eipam-ip-block.group-flag' value='`$tmp.ss.group-flag`' />\r
+                        </set>\r
+                        <switch test='`$tmp.ss.address-family`'>\r
+                            <outcome value='ipv4'>\r
+                                <set>\r
+                                    <parameter name='network-model.eipam-v4-address-plan' value='tmp.ss.plan-name' />\r
+                                    <parameter name='network-model.use-ipv4' value='Y' />\r
+                                    <parameter name='network-model.ipv4-ip-version' value='tmp.ss.address-family' />\r
+                                    <parameter name='network-model.ipv4-cidr-mask' value='tmp.ss.mask' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='ipv6'>\r
+                                <set>\r
+                                    <parameter name='network-model.eipam-v6-address-plan' value='tmp.ss.plan-name' />\r
+                                    <parameter name='network-model.use-ipv6' value='Y' />\r
+                                    <parameter name='network-model.ipv6-ip-version' value='tmp.ss.address-family' />\r
+                                    <parameter name='network-model.ipv6-cidr-mask' value='tmp.ss.mask' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='process-generic-eipam-pools' mode='sync' >\r
+                            <outcome value='failure'>\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 from process-generic-eipam-pools, ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-eipam-ip-assignment.xml
new file mode 100644 (file)
index 0000000..7b81307
--- /dev/null
@@ -0,0 +1,269 @@
+<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='self-serve-eipam-ip-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$ss.capability-name`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-name is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-action is null" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-service-capability-param-resolution' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <block>\r
+                            <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                                <set>\r
+                                    <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                                </set>\r
+                                <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                                    <outcome value='true'>\r
+                                        <break/>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>\r
+                            </record>\r
+                            <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`">\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
+                                    <outcome value='group-flag'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='plan-name'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='address-family'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='client-key'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.client-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </block>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-generate-FQPN' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status="failure">\r
+                                    <parameter name="ack-final" value="Y" />\r
+                                    <parameter name="error-code" value="500"/>\r
+                                    <parameter name="error-message" value="`'Not all assignments are resolved' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <set>\r
+                            <parameter name='eipam-ip-block.plans[0].requests[0].'\r
+    value='self-serve-generate-FQPN-output.' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='eipam-ip-block.group-flag'\r
+    value='`$tmp.ss.group-flag`' />\r
+                            <parameter name='eipam-ip-block.plans[0].plan-name'\r
+    value='`$tmp.ss.plan-name`' />\r
+                            <parameter name='eipam-ip-block.plans[0].address-family'\r
+    value="`$tmp.ss.address-family`" />\r
+                            <parameter name='eipam-ip-block.plans[0].requests[0].client-key'\r
+       value="`$tmp.ss.client-key`" />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\r
+                        </set>\r
+                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">\r
+                            <outcome value='failure'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
+                                    </set>\r
+                                    <return status="failure">\r
+                                        <parameter name="ack-final" value="Y" />\r
+                                        <parameter name="error-code" value="500"/>\r
+                                        <parameter name="error-message" value="`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </execute>\r
+                        <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\r
+                                <outcome value='vmxvre_oam_ip_0'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
+       value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='vmxvre_oam_ip_prefix_0'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
+       value='`$eipam-ip-block.plans[0].requests[0].ip-prefix-length`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='vmxvre_oam_gateway'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
+       value='`$eipam-ip-block.plans[0].requests[0].ReservedAssignments[0].ReservedAssignment[3].ReservedKeyIPAddress`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <block atomic="true">\r
+                        <block>\r
+                            <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                                <set>\r
+                                    <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                                </set>\r
+                                <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                                    <outcome value='true'>\r
+                                        <break/>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="`'SS: pidx: ' + $pidx`"/>\r
+                            </record>\r
+                            <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key_length`">\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`'>\r
+                                    <outcome value='group-flag'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.group-flag' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='plan-name'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.plan-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='address-family'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.address-family' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='client-key'>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.client-key' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </block>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+       key='SELECT * from EIPAM_IP_ASSIGNMENTS \r
+               WHERE service_instance_id = $tmp.ss.service-instance-id\r
+               AND client_key = $tmp.ss.client-key'>\r
+                            <outcome value='not-found'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.status' value="PENDING_DELETE" />\r
+                                    </set>\r
+                                    <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+       key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status \r
+               WHERE service_instance_id = $tmp.ss.service-instance-id \r
+               AND client_key = $tmp.ss.client-key" >\r
+                                        <outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table to unassign ip with client_key=' + $tmp.ss.client-key + ' and service_instance_id=' + $tmp.ss.service-instance-id`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </update>\r
+                                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                        <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                        <outcome value='failure'>\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 in EIPAMPlugin.unassignIPAddress with client-key='+ $tmp.ss.client-key`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </execute>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name`'>\r
+                                <outcome value='vmxvre_oam_ip_0'>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='DELETED' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='vmxvre_oam_ip_prefix_0'>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='DELETED' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='vmxvre_oam_gateway'>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='DELETED' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss.eipam.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-FQPN.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-FQPN.xml
new file mode 100644 (file)
index 0000000..989163f
--- /dev/null
@@ -0,0 +1,129 @@
+<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='self-serve-generate-FQPN' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='eipam-ip-block.plan-name' value='`$tmp.ss.plan-name`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='self-serve-generate-FQPN-output.' value='' />\r
+            </set>\r
+            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="getPlanTopology">\r
+                <outcome value='failure'>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="`'An error occured while getting Keyname and Keyvalue for address plan, '+ $eipam-ip-block.planName + ', from EIPAM'`" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <switch test='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="eipam-ip-block.getPlanTopologyResponse.TopologyDetails is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index="resp-index" start="0" end="`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`">\r
+                <switch test='`$eipam-ip-block.plan-name == $eipam-ip-block.getPlanTopologyResponse.PlanName`'>\r
+                    <outcome value='false'>\r
+                        <return status="failure">\r
+                            <parameter name="ack-final" value="Y" />\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="error-message" value="`'eipam response plan-name ['+ $eipam-ip-block.getPlanTopologyResponse.PlanName + ' is not the same as input '+$eipam-ip-block.planName`" />\r
+                        </return>\r
+                    </outcome>\r
+                </switch>\r
+                <set>\r
+                    <parameter name='pool-index'\r
+   value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].Level - 1`' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='tmp.getPlanTopologyResponse.key-name' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyName`' />\r
+                </set>\r
+                <set>\r
+                    <parameter name='tmp.getPlanTopologyResponse.key-value-format' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails[$resp-index].KeyValueFormat`' />\r
+                </set>\r
+                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                    <parameter name="original_string" value="`$tmp.getPlanTopologyResponse.key-value-format`" />\r
+                    <parameter name="regex" value=":" />\r
+                    <parameter name="ctx_memory_result_key" value="tmp.split.key-value-format" />\r
+                </execute>\r
+                <set>\r
+                    <parameter name='tmp.final.key-value' value="" />\r
+                </set>\r
+                <for index="split-index" start="0" end="`$tmp.split.key-value-format_length`">\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                        <parameter name="source" value="`$tmp.split.key-value-format[$split-index]`" />\r
+                        <parameter name="target" value="${"/>\r
+                        <parameter name="replacement" value=""/>\r
+                        <parameter name="outputPath" value="tmp.split-value"/>\r
+                    </execute>\r
+                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                        <parameter name="source" value="`$tmp.split-value`" />\r
+                        <parameter name="target" value="}"/>\r
+                        <parameter name="replacement" value=""/>\r
+                        <parameter name="outputPath" value="tmp.ss.split-value"/>\r
+                    </execute>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="`'SS: tmp.ss.split-value: ' + $tmp.ss.split-value`"/>\r
+                    </record>\r
+                    <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                        <set>\r
+                            <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                        </set>\r
+                        <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$ss.param-index].resource-resolution-data.resource-key_length`">\r
+                                    <set>\r
+                                        <parameter name='tmp.ss.resource-key.name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].name`' />\r
+                                    </set>\r
+                                    <switch test='`$tmp.ss.split-value == $tmp.ss.resource-key.name`'>\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='tmp.ss.partial.key-value' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                    <switch test='`$split-index == 0`'>\r
+                        <outcome value='true'>\r
+                            <set>\r
+                                <parameter name='tmp.ss.final.key-value' value="`$tmp.ss.partial.key-value`" />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <set>\r
+                                <parameter name='tmp.ss.final.key-value' \r
+       value="`$tmp.ss.final.key-value + ':' + $tmp.ss.partial.key-value`" />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+                <set>\r
+                    <parameter name='self-serve-generate-FQPN-output.pools[$pool-index].key-name'\r
+   value='`$tmp.getPlanTopologyResponse.key-name`' />\r
+                    <parameter name='self-serve-generate-FQPN-output.pools[$pool-index].key-value'\r
+       value='`$tmp.ss.final.key-value`' />\r
+                </set>\r
+            </for>\r
+            <set>\r
+                <parameter name='self-serve-generate-FQPN-output.pools_length' \r
+       value='`$eipam-ip-block.getPlanTopologyResponse.TopologyDetails_length`' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-name.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-generate-name.xml
new file mode 100644 (file)
index 0000000..b5538fb
--- /dev/null
@@ -0,0 +1,453 @@
+<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='self-serve-generate-name' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.naming-data-payload' value='{&quot;elements&quot;:[' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\r
+                <outcome value='failure'>\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 from capability-param-resolution" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\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 from capability-param-resolution" />\r
+                    </return>\r
+                </outcome>\r
+            </call>\r
+            <switch test="`$ss.capability-type == 'vnf'`">\r
+                <outcome value='true'>\r
+                    <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <switch test="`$ss.capability-action == 'unassign'`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '{'`" />\r
+                                                </set>\r
+                                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name == 'external-key'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.naming-data-payload" value="`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`"/>\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '},'`" />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + ']}'`" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',}' />\r
+                                                    <parameter name='replacement' value='}' />\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',]' />\r
+                                                    <parameter name='replacement' value=']' />\r
+                                                </execute>\r
+                                                <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.UnAssignNameNode' method='process'>\r
+                                                    <parameter name='payload' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name="prifix" value="nameGenResponse" />\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Unassign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Unassign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                                                    <parameter name="source" value="nameGenResponse.response-payload" />\r
+                                                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                                                    <parameter name="isEscaped" value="false" />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='DELETED' />\r
+                                                </set>\r
+                                                <for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\r
+                                                    <for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                                        <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' />\r
+                                                                        <parameter name='regex' value='\$\{' />\r
+                                                                    </execute>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                                        <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                                        <parameter name='regex' value='\}' />\r
+                                                                    </execute>\r
+                                                                    <switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' value="`$jsonContextPrefix.elements[$n].resource-value`" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </for>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test="`$ss.capability-action == 'assign'`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '{'`" />\r
+                                                </set>\r
+                                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                                    <set>\r
+                                                        <parameter name="tmp.naming-data-payload" value="`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`"/>\r
+                                                    </set>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '},'`" />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + ']}'`" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',}' />\r
+                                                    <parameter name='replacement' value='}' />\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',]' />\r
+                                                    <parameter name='replacement' value=']' />\r
+                                                </execute>\r
+                                                <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>\r
+                                                    <parameter name='payload' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name="prifix" value="nameGenResponse" />\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Assign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Assign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                                                    <parameter name="source" value="nameGenResponse.response-payload" />\r
+                                                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                                                    <parameter name="isEscaped" value="false" />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].resource-resolution-data.status`' value='SUCCESS' />\r
+                                                </set>\r
+                                                <for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\r
+                                                    <for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                                        <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' />\r
+                                                                        <parameter name='regex' value='\$\{' />\r
+                                                                    </execute>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                                        <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                                        <parameter name='regex' value='\}' />\r
+                                                                    </execute>\r
+                                                                    <switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$l].value`' value="`$jsonContextPrefix.elements[$n].resource-value`" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </for>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$ss.capability-type == 'vf-module'`">\r
+                <outcome value='true'>\r
+                    <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <switch test="`$ss.capability-action == 'unassign'`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '{'`" />\r
+                                                </set>\r
+                                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                                    <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name == 'external-key'`">\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name="tmp.naming-data-payload" value="`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`"/>\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '},'`" />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + ']}'`" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',}' />\r
+                                                    <parameter name='replacement' value='}' />\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',]' />\r
+                                                    <parameter name='replacement' value=']' />\r
+                                                </execute>\r
+                                                <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.UnAssignNameNode' method='process'>\r
+                                                    <parameter name='payload' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name="prifix" value="nameGenResponse" />\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Unassign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Unassign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                                                    <parameter name="source" value="nameGenResponse.response-payload" />\r
+                                                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                                                    <parameter name="isEscaped" value="false" />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='DELETED' />\r
+                                                </set>\r
+                                                <for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\r
+                                                    <for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                                        <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' />\r
+                                                                        <parameter name='regex' value='\$\{' />\r
+                                                                    </execute>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                                        <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                                        <parameter name='regex' value='\}' />\r
+                                                                    </execute>\r
+                                                                    <switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' value="`$jsonContextPrefix.elements[$n].resource-value`" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </for>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test="`$ss.capability-action == 'assign'`">\r
+                                        <outcome value='true'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '{'`" />\r
+                                                </set>\r
+                                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`' >\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log" />\r
+                                                        <parameter name="level" value="info" />\r
+                                                        <parameter name="field1" value="`'AJJJ13' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name`" />\r
+                                                        <parameter name="field2" value="`'AJJJ14' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value`" />\r
+                                                    </record>\r
+                                                    <set>\r
+                                                        <parameter name="tmp.naming-data-payload" value="`$tmp.naming-data-payload + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].name + '&quot;:' + '&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$j].value + '&quot;,'`"/>\r
+                                                    </set>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + '},'`" />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.naming-data-payload' value="`$tmp.naming-data-payload + ']}'`" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',}' />\r
+                                                    <parameter name='replacement' value='}' />\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace'>\r
+                                                    <parameter name='outputPath' value='tmp.naming-data-payload' />\r
+                                                    <parameter name='source' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name='target' value=',]' />\r
+                                                    <parameter name='replacement' value=']' />\r
+                                                </execute>\r
+                                                <execute plugin='org.openecomp.sdnc.prov.namegeneration.node.AssignNameNode' method='process'>\r
+                                                    <parameter name='payload' value='`$tmp.naming-data-payload`' />\r
+                                                    <parameter name="prifix" value="nameGenResponse" />\r
+                                                    <outcome value='failure'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Assign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='FAILED' />\r
+                                                            </set>\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 from NameGenerationNode Assign" />\r
+                                                            </return>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                                                    <parameter name="source" value="nameGenResponse.response-payload" />\r
+                                                    <parameter name="outputPath" value="jsonContextPrefix" />\r
+                                                    <parameter name="isEscaped" value="false" />\r
+                                                </execute>\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.status`' value='SUCCESS' />\r
+                                                </set>\r
+                                                <for index='n' start='0' end='`$jsonContextPrefix.elements_length`' >\r
+                                                    <for index='l' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='resource-resolution-split' />\r
+                                                                        <parameter name='original_string' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' />\r
+                                                                        <parameter name='regex' value='\$\{' />\r
+                                                                    </execute>\r
+                                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                        <parameter name='ctx_memory_result_key' value='s2' />\r
+                                                                        <parameter name='original_string' value='`$resource-resolution-split[1]`' />\r
+                                                                        <parameter name='regex' value='\}' />\r
+                                                                    </execute>\r
+                                                                    <switch test='`$s2[0] == $jsonContextPrefix.elements[$n].resource-name`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <set>\r
+                                                                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$l].value`' value="`$jsonContextPrefix.elements[$n].resource-value`" />\r
+                                                                            </set>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </for>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mac-address-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-mac-address-assign.xml
new file mode 100755 (executable)
index 0000000..0d56b23
--- /dev/null
@@ -0,0 +1,615 @@
+<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='self-serve-mac-address-assign' mode='sync'>\r
+        <block atomic='true'>\r
+            <switch test="`$ss.capability-name`">\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-name is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-name is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-name is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-name is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='null'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-name is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-name is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='mac-address-assign'>\r
+                    <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-name is mac-address-assign"/>\r
+                    </record>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$ss.capability-action`">\r
+                <outcome value='Other'></outcome>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-action is not set"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='ss.capability-action is not set' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='null'></outcome>\r
+                <outcome value='ASSIGN'>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-action is ASSIGN"/>\r
+                    </record>\r
+                </outcome>\r
+                <outcome value='UNASSIGN'>\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-mac-address-assign: ss.capability-action is UNASSIGN"/>\r
+                    </record>\r
+                </outcome>\r
+            </switch>\r
+            <block atomic='true'>\r
+                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                    <parameter name="logger" value="message-log"/>\r
+                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                    <parameter name="field2" value="self-serve-mac-address-assign: call self-service-capability-param-resolution DG"/>\r
+                </record>\r
+                <set>\r
+                    <!--<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />-->\r
+                </set>\r
+                <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' >\r
+                    <outcome value='failure'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: Failure calling self-service-capability-param-resolution"/>\r
+                            </record>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='402' />\r
+                                <parameter name='error-message' value='Failure calling self-service-capability-param-resolution' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='success'></outcome>\r
+                </call>\r
+            </block>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.vf-module-parameters-length' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\r
+                </set>\r
+                <for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-mac-address-assign: vf-module-param-index"/>\r
+                        <parameter name="field3" value='`$vf-module-param-index`'/>\r
+                    </record>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vfModuleParamsCapabilityName' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.capability-name`'  />\r
+                        </set>\r
+                        <switch test="`$ss.capability-name == $vfModuleParamsCapabilityName`">\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Found ss.capability-name MATCH"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='tmp.resource-resolution-data.' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.`'  />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </block>\r
+            <switch test="`$tmp.resource-resolution-data.status == 'PENDING'`">\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                            <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                        </record>\r
+                        <set>\r
+                            <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                        </set>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='401' />\r
+                            <parameter name='error-message' value='reseouce-resolution-data.status is not PENDING' />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <block atomic='true'>\r
+                <set>\r
+                    <parameter name='tmp.resource-key-length' value='`$tmp.resource-resolution-data.resource-key_length`' />\r
+                </set>\r
+                <for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\r
+                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                        <parameter name="logger" value="message-log"/>\r
+                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                        <parameter name="field2" value="self-serve-mac-address-assign: key-index"/>\r
+                        <parameter name="field3" value='`$key-index`'/>\r
+                    </record>\r
+                    <block>\r
+                        <switch test="`$tmp.resource-resolution-data.resource-key[$key-index].name == 'vnf-name'`">\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Found resource-resolution-data.name = vnf-name"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='tmp.hostname' value='`$tmp.resource-resolution-data.resource-key[$key-index].value`'  />\r
+                                    </set>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: resolved hostname: "/>\r
+                                        <parameter name="field3" value='`$tmp.hostname`'/>\r
+                                    </record>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'></outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+                <switch test="`$tmp.hostname`">\r
+                    <outcome value='null'>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: hostname is not set"/>\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                            </set>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='403' />\r
+                                <parameter name='error-message' value='hostname is not set' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value=''>\r
+                        <block>\r
+                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                <parameter name="logger" value="message-log"/>\r
+                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                <parameter name="field2" value="self-serve-mac-address-assign: hostname is not set"/>\r
+                            </record>\r
+                            <set>\r
+                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                            </set>\r
+                            <return status='failure'>\r
+                                <parameter name='error-code' value='403' />\r
+                                <parameter name='error-message' value='hostname is not set' />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value='ASSIGN'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="select * FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE HOSTNAME= $tmp.hostname" pfx='tmp.map'>\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Unable to access VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='Unable to access VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test="`$tmp.map.hostname`">\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="SELECT MIN(pool.id) as pool_id, pool.mac_address FROM VPE_MAC_ADDRESS_POOL pool WHERE NOT EXISTS(SELECT ID FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map where pool.ID = map.ID)" pfx='tmp.availid'>\r
+                                        <!--\r
+tmp.availid.mac_address is the mac_address we need to have finally.\r
+-->\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" \r
+resource="SQL" \r
+key="INSERT INTO VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING ( id , hostname , assigned_user, assigned_date ) VALUES ( $tmp.availid.pool-id , $tmp.hostname , 'SDNC' , NOW())" \r
+force='true' pfx='save_val'>\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <set>\r
+                                        <parameter name="tmp.mac-address.mac-address" value="`$tmp.availid.mac-address`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="SELECT MIN(pool.id) as pool_id, pool.mac_address FROM VPE_MAC_ADDRESS_POOL pool WHERE NOT EXISTS(SELECT ID FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map where pool.ID = map.ID)" pfx='tmp.availid'>\r
+                                        <!--\r
+tmp.availid.mac_address is the mac_address we need to have finally.\r
+-->\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" \r
+resource="SQL" \r
+key="INSERT INTO VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING ( id , hostname , assigned_user, assigned_date ) VALUES ( $tmp.availid.pool-id , $tmp.hostname , 'SDNC' , NOW())" \r
+force='true' pfx='save_val'>\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <set>\r
+                                        <parameter name="tmp.mac-address.mac-address" value="`$tmp.availid.mac-address`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='null'>\r
+                                <block>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="SELECT MIN(pool.id) as pool_id, pool.mac_address FROM VPE_MAC_ADDRESS_POOL pool WHERE NOT EXISTS(SELECT ID FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map where pool.ID = map.ID)" pfx='tmp.availid'>\r
+                                        <!--\r
+tmp.availid.mac_address is the mac_address we need to have finally.\r
+-->\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" \r
+resource="SQL" \r
+key="INSERT INTO VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING ( id , hostname , assigned_user, assigned_date ) VALUES ( $tmp.availid.pool-id , $tmp.hostname , 'SDNC' , NOW())" \r
+force='true' pfx='save_val'>\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                                </record>\r
+                                                <set>\r
+                                                    <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                                </set>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='406' />\r
+                                                    <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </save>\r
+                                    <set>\r
+                                        <parameter name="tmp.mac-address.mac-address" value="`$tmp.availid.mac-address`" />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="SELECT pool.mac_address FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING map, VPE_MAC_ADDRESS_POOL pool WHERE pool.ID = map.ID AND map.HOSTNAME = $tmp.hostname" pfx="tmp.mac-address">\r
+                                    <outcome value='failure'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="self-serve-mac-address-assign: reseouce-resolution-data.status is not PENDING"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                            </set>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='406' />\r
+                                                <parameter name='error-message' value='Failed to insert into VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$tmp.mac-address.mac-address`">\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: tmp.mac_address not set"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='tmp.mac_address not set' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='null'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: tmp.mac_address not set"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='tmp.mac_address not set' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block>\r
+                                    <for index='vf-module-param-index' start='0' end='`$tmp.vf-module-parameters-length`' >\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                            <parameter name="field2" value="self-serve-mac-address-assign: vf-module-param-index"/>\r
+                                            <parameter name="field3" value='`$vf-module-param-index`'/>\r
+                                        </record>\r
+                                        <block>\r
+                                            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].name`">\r
+                                                <outcome value='vmxvpfe_sriov41_0_port_mac'>\r
+                                                    <set>\r
+                                                        <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].value`" value="`$tmp.mac-address.mac-address`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='vmxvpfe_sriov41_1_port_mac'>\r
+                                                    <set>\r
+                                                        <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].value`" value="`$tmp.mac-address.mac-address`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='vmxvpfe_sriov41_3_port_mac'>\r
+                                                    <set>\r
+                                                        <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].value`" value="`$tmp.mac-address.mac-address`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='vmxvpfe_sriov41_4_port_mac'>\r
+                                                    <set>\r
+                                                        <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].value`" value="`$tmp.mac-address.mac-address`"  />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`" value='SUCCESS'  />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='UNASSIGN'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key="select * FROM VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE HOSTNAME= $tmp.hostname" pfx='tmp.map'>\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <switch test="`$tmp.map.hostname`">\r
+                            <outcome value='failure'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value=''>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='null'>\r
+                                <block>\r
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                        <parameter name="logger" value="message-log"/>\r
+                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                        <parameter name="field2" value="self-serve-mac-address-assign: Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation"/>\r
+                                    </record>\r
+                                    <set>\r
+                                        <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                    </set>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='405' />\r
+                                        <parameter name='error-message' value='Hostname not found in VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL' \r
+key='DELETE from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING WHERE hostname = $tmp.hostname'>\r
+                                    <outcome value='failure'>\r
+                                        <block>\r
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                <parameter name="logger" value="message-log"/>\r
+                                                <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                <parameter name="field2" value="self-serve-mac-address-assign: Failure deleting from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation"/>\r
+                                            </record>\r
+                                            <set>\r
+                                                <parameter name='$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-param-index].resource-resolution-data.status' value='FAILED'  />\r
+                                            </set>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='405' />\r
+                                                <parameter name='error-message' value='Failure deleting from VPE_MAC_ADDRESS_TO_HOSTNAME_MAPPING on UNASSIGN operation' />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <block>\r
+                                            <for index='key-index' start='0' end='`$tmp.resource-resolution-data.resource-key_length`' >\r
+                                                <set>\r
+                                                    <parameter name="`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`" value="DELETED"  />\r
+                                                </set>\r
+                                            </for>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </delete>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/self-serv-mac-address-assign.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$vf-module-parameters-index].resource-resolution-data.status`" value='SUCCESS'  />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-unresolved-composite-data.xml
new file mode 100644 (file)
index 0000000..58bb677
--- /dev/null
@@ -0,0 +1,440 @@
+<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='self-serve-unresolved-composite-data' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$ss.capability-name`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-name is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$ss.capability-action`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-action is null" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$ss.capability-type`'>\r
+                <outcome value=''>\r
+                    <return status="failure">\r
+                        <parameter name="ack-final" value="Y" />\r
+                        <parameter name="error-code" value="500"/>\r
+                        <parameter name="error-message" value="ss.capability-type is null" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='vnf'>\r
+                    <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
+                        <set>\r
+                            <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
+                        </set>\r
+                        <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.ss.composite' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value`' />\r
+                                    </set>\r
+                                    <switch test="`$tmp.ss.composite == ''`">\r
+                                        <outcome value='false'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.final.resolved-value' value="" />\r
+                                                    <parameter name='tmp.ss.final.resolved-value.end' value="" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite`" />\r
+                                                    <parameter name="target" value="["/>\r
+                                                    <outcome value='true'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.ss.final.resolved-value' value="[" />\r
+                                                            <parameter name='tmp.ss.final.resolved-value.end' value="]" />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite`" />\r
+                                                    <parameter name="target" value="["/>\r
+                                                    <parameter name="replacement" value=""/>\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-0"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite-0`" />\r
+                                                    <parameter name="target" value="]"/>\r
+                                                    <parameter name="replacement" value=""/>\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-1"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite-1`" />\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-2"/>\r
+                                                </execute>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="`'SS: tmp.ss.composite-2: ' + $tmp.ss.composite-2`"/>\r
+                                                </record>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                    <parameter name="original_string" value="`$tmp.ss.composite-2`" />\r
+                                                    <parameter name="regex" value=","/>\r
+                                                    <parameter name="ctx_memory_result_key" value="splits" />\r
+                                                </execute>\r
+                                                <for index="split-index" start="0" end="`$splits_length`">\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                        <parameter name="source" value="`$splits[$split-index]`" />\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim`" />\r
+                                                        <parameter name="target" value="${"/>\r
+                                                        <parameter name="replacement" value=""/>\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim-0"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim-0`" />\r
+                                                        <parameter name="target" value="}"/>\r
+                                                        <parameter name="replacement" value=""/>\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim-1"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim-1`" />\r
+                                                        <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
+                                                    </execute>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="`'SS: tmp.ss.partial.composite-value: ' + $tmp.ss.partial.composite-value`"/>\r
+                                                    </record>\r
+                                                    <switch test='`$ss.capability-type`'>\r
+                                                        <outcome value='vnf'>\r
+                                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ss.param-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`' />\r
+                                                                </set>\r
+                                                                <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.ss.partial.resolved-value' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\r
+                                                                            </set>\r
+                                                                            <break/>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </outcome>\r
+                                                        <outcome value='vf-module'>\r
+                                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ss.param-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`' />\r
+                                                                </set>\r
+                                                                <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.ss.partial.resolved-value' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
+                                                                            </set>\r
+                                                                            <break/>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test='`$split-index == 0`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.ss.final.resolved-value' \r
+       value="`$tmp.ss.final.resolved-value + $tmp.ss.partial.resolved-value`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='false'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.ss.final.resolved-value' \r
+       value="`$tmp.ss.final.resolved-value + ',' + $tmp.ss.partial.resolved-value`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.final.resolved-value' \r
+       value='`$tmp.ss.final.resolved-value + $tmp.ss.final.resolved-value.end`' />\r
+                                                </set>\r
+                                                <switch test='`$ss.capability-type`'>\r
+                                                    <outcome value='vnf'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block atomic='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
+                                                                    </set>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' \r
+       value='`$tmp.ss.final.resolved-value`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                    <outcome value='vf-module'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block atomic='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
+                                                                    </set>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
+       value='`$tmp.ss.final.resolved-value`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+                <outcome value='vf-module'>\r
+                    <for index="pidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                        <set>\r
+                            <parameter name='tmp.ss.param.capability-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                        </set>\r
+                        <switch test='`$tmp.ss.param.capability-name == $ss.capability-name`'>\r
+                            <outcome value='true'>\r
+                                <block atomic='true'>\r
+                                    <set>\r
+                                        <parameter name='tmp.ss.composite' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value`' />\r
+                                    </set>\r
+                                    <switch test="`$tmp.ss.composite == ''`">\r
+                                        <outcome value='false'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.final.resolved-value' value="" />\r
+                                                    <parameter name='tmp.ss.final.resolved-value.end' value="" />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='startsWith' emitsOutcome='true' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite`" />\r
+                                                    <parameter name="target" value="["/>\r
+                                                    <outcome value='true'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.ss.final.resolved-value' value="[" />\r
+                                                            <parameter name='tmp.ss.final.resolved-value.end' value="]" />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite`" />\r
+                                                    <parameter name="target" value="["/>\r
+                                                    <parameter name="replacement" value=""/>\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-0"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite-0`" />\r
+                                                    <parameter name="target" value="]"/>\r
+                                                    <parameter name="replacement" value=""/>\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-1"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                    <parameter name="source" value="`$tmp.ss.composite-1`" />\r
+                                                    <parameter name="outputPath" value="tmp.ss.composite-2"/>\r
+                                                </execute>\r
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                    <parameter name="logger" value="message-log"/>\r
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                    <parameter name="field2" value="`'SS: tmp.ss.composite-2: ' + $tmp.ss.composite-2`"/>\r
+                                                </record>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split' >\r
+                                                    <parameter name="original_string" value="`$tmp.ss.composite-2`" />\r
+                                                    <parameter name="regex" value=","/>\r
+                                                    <parameter name="ctx_memory_result_key" value="splits" />\r
+                                                </execute>\r
+                                                <for index="split-index" start="0" end="`$splits_length`">\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                        <parameter name="source" value="`$splits[$split-index]`" />\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim`" />\r
+                                                        <parameter name="target" value="${"/>\r
+                                                        <parameter name="replacement" value=""/>\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim-0"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim-0`" />\r
+                                                        <parameter name="target" value="}"/>\r
+                                                        <parameter name="replacement" value=""/>\r
+                                                        <parameter name="outputPath" value="tmp.ss.trim-1"/>\r
+                                                    </execute>\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='trim' >\r
+                                                        <parameter name="source" value="`$tmp.ss.trim-1`" />\r
+                                                        <parameter name="outputPath" value="tmp.ss.partial.composite-value"/>\r
+                                                    </execute>\r
+                                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <parameter name="logger" value="message-log"/>\r
+                                                        <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                        <parameter name="field2" value="`'SS: tmp.ss.partial.composite-value: ' + $tmp.ss.partial.composite-value`"/>\r
+                                                    </record>\r
+                                                    <switch test='`$ss.capability-type`'>\r
+                                                        <outcome value='vnf'>\r
+                                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ss.param-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`' />\r
+                                                                </set>\r
+                                                                <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.ss.partial.resolved-value' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\r
+                                                                            </set>\r
+                                                                            <break/>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </outcome>\r
+                                                        <outcome value='vf-module'>\r
+                                                            <for index="i" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.ss.param-name' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`' />\r
+                                                                </set>\r
+                                                                <switch test='`$tmp.ss.partial.composite-value == $tmp.ss.param-name`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.ss.partial.resolved-value' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
+                                                                            </set>\r
+                                                                            <break/>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test='`$split-index == 0`'>\r
+                                                        <outcome value='true'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.ss.final.resolved-value' \r
+       value="`$tmp.ss.final.resolved-value + $tmp.ss.partial.resolved-value`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                        <outcome value='false'>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.ss.final.resolved-value' \r
+       value="`$tmp.ss.final.resolved-value + ',' + $tmp.ss.partial.resolved-value`" />\r
+                                                            </set>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.final.resolved-value' \r
+       value='`$tmp.ss.final.resolved-value + $tmp.ss.final.resolved-value.end`' />\r
+                                                </set>\r
+                                                <switch test='`$ss.capability-type`'>\r
+                                                    <outcome value='vnf'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block atomic='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
+                                                                    </set>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].value' \r
+       value='`$tmp.ss.final.resolved-value`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                    <outcome value='vf-module'>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='contains'  emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$tmp.ss.final.resolved-value`" />\r
+                                                            <parameter name="target" value="$"/>\r
+                                                            <outcome value='true'>\r
+                                                                <block atomic='true'>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' value='FAILED' />\r
+                                                                    </set>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='error-code' value='500' />\r
+                                                                        <parameter name='error-message' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].name + ' was not resolved by ' + $ss.capability + ' with value = '+ $tmp.ss.final.resolved-value`" />\r
+                                                                    </return>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                            <outcome value='false'>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].value' \r
+       value='`$tmp.ss.final.resolved-value`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status' \r
+       value='SUCCESS' />\r
+                                                                </set>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-composite.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-assign.xml
new file mode 100644 (file)
index 0000000..6abe827
--- /dev/null
@@ -0,0 +1,551 @@
+<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='self-serve-vf-module-assign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='is-new-vfmodule' value='true' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-module-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vf-module-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                            <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='is-new-vfmodule' value='false' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vf-module-index' value='`$idx`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$is-new-vfmodule`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' \r
+       value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$is-new-vfmodule`'>\r
+                <outcome value='true'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
+   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id' \r
+    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-name' \r
+    value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-type' \r
+    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.tenant' \r
+    value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-cloud-region' \r
+    value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
+    value='`$vf-module-topology-operation-input.vf-module-request-input.aic-clli`' />\r
+                        </set>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$db.vf-module-model.invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-uuid'\r
+  value='`$db.vf-module-model.uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-version'\r
+  value='`$db.vf-module-model.version`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-version'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-name'\r
+  value='`$db.vf-module-model.name`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-name'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.onap-model-information.model-customization-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+   value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+   value='$vf-module-topology-operation-input.request-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+   value='$vf-module-topology-operation-input.service-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+   value='$vf-module-topology-operation-input.vnf-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+   value='$vf-module-topology-operation-input.vf-module-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.' \r
+    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+  value='PendingCreate' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.sdnc-generated-cloud-resources' \r
+       value='true' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='vf-module' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order[1]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='eipam-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='eipam-create-pool"' />\r
+                <parameter name='ss.capability.execution-order[6]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[7]' value='create-vpe-pool' />\r
+                <parameter name='ss.capability.execution-order[8]' value='unresolved-composite-data' />\r
+                <parameter name='ss.capability.execution-order_length' value='9' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.'\r
+  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vfmodule-ra-assignment' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'Failed to get RA assignments: ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='assign' />\r
+                </set>\r
+                <switch test='`$ss.capability-name`'>\r
+                    <outcome value='alts-entitlement-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='alts-license-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\r
+                                <outcome value='SUCCESS'>\r
+                                    <set>\r
+                                        <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='PENDING'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vf-module-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                    <parameter name='vf.vf-module-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vf-module-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.request-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.tenant'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vfmodule-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vf-module-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vfmodule" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                                <outcome value='FAILED'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vf-module-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                    <parameter name='vf.vf-module-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vf-module-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.request-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.tenant'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vfmodule-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vf-module-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vfmodule" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test="`$self-serve-generate-name == 'ASSIGNED'`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <switch test="`$self-serve-unresolved-composite-data == 'ASSIGNED' or $self-serve-unresolved-composite-data == ''`">\r
+                        <outcome value='false'>\r
+                            <block atomic='true'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`"/>\r
+                                </record>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name='tmp.ss.nfc-naming-code' value='' />\r
+                                    <parameter name='tmp.ss.nfc-function' value='' />\r
+                                    <parameter name='tmp.ss.vnfc-name' value='' />\r
+                                </set>\r
+                                <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].name`'>\r
+                                        <outcome value='vnfc-name'>\r
+                                            <!--\r
+<outcome value='vmxvre_name_0'>\r
+-->\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
+                                                </set>\r
+                                                <break/>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test="`$tmp.ss.vnfc-name != ''`">\r
+                                    <outcome value='true'>\r
+                                        <block atomic='true'>\r
+                                            <for index="kidx" start="0" end="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key_length`">\r
+                                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].name`'>\r
+                                                    <outcome value='nfc-naming-code'>\r
+                                                        <!--\r
+<outcome value='NFC_NAMING_CODE'>\r
+-->\r
+                                                        <set>\r
+                                                            <parameter name='tmp.ss.nfc-naming-code' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='nfc-function'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.ss.nfc-function' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].resource-resolution-data.resource-key[$kidx].value`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test="`$tmp.ss.nfc-naming-code != '' and $tmp.ss.nfc-function != ''`">\r
+                                                <outcome value='true'>\r
+                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vnfc" \r
+               key="vnfc.vnfc-name = $tmp.ss.vnfc-name" >\r
+                                                        <parameter name="nfc-function" value="`$tmp.ss.nfc-function`" />\r
+                                                        <parameter name="nfc-naming-code" value="`$tmp.ss.nfc-naming-code`" />\r
+                                                        <parameter name="orchestration-status" value="pending-create" />\r
+                                                        <outcome value='failure'>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='error-code' value='500' />\r
+                                                                <parameter name='error-message' value="Failed to save vnfc object in AAI" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </save>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'vnfc object not updated because param.value of vnfc-name is null; '+ $error-message`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='self-serve-aai-vfmodule-put' mode='sync' >\r
+                                                <outcome value='failure'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value="`'generic-vnf and vf-module not updated; '+ $error-message`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </call>\r
+                                        </block>\r
+                                    </outcome>\r
+                                    <outcome value='false'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="`'SS: vnfc-name: ' + $tmp.ss.vnfc-name`"/>\r
+                                        </record>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-vf-assign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vf-module-unassign.xml
new file mode 100644 (file)
index 0000000..5cece27
--- /dev/null
@@ -0,0 +1,224 @@
+<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='self-serve-vf-module-unassign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[1]' value='eipam-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order_length' value='6' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='vf-module' />\r
+            </set>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='unassign' />\r
+                </set>\r
+                <switch test='`$ss.capability-name`'>\r
+                    <outcome value='alts-entitlement-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='alts-license-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`'>\r
+                                <outcome value='SUCCESS'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vf-module-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
+                                                    <parameter name='vf.vf-module-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vf-module-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-input-parameters.`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.request-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.request-version`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.vf-module-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.vf-module-name`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.tenant'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.tenant`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-cloud-region'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-cloud-region`' />\r
+                                                    <parameter name='vf.vf-module-data.vf-module-request-input.aic-clli'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.aic-clli`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vfmodule-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vfmodule-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vfmodule-url"/>\r
+                                                    <parameter name="target" value="{vf-module-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vfmodule.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vfmodule-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vfmodule" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vf-module assignments during unassign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                                <outcome value='DELETED'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\r
+                                        </set>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`"/>\r
+                                            <parameter name="field2" value="`'SS: ss.capability-name: ' + $ss.capability-name`"/>\r
+                                        </record>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic='true'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`"/>\r
+                                            <parameter name="field2" value="`'SS: ss.capability-name: ' + $ss.capability-name`"/>\r
+                                        </record>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="`'Failed to unassign self-serve vf-module assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pidx].resource-resolution-data.status`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test="`$self-serve-generate-name == 'UNASSIGNED'`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`"/>\r
+                            <parameter name="field2" value="`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <block atomic='true'>\r
+                        <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`'>\r
+                                <outcome value='vnfc-name'>\r
+                                    <!--\r
+<outcome value='vmxvre_name_0'>\r
+-->\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.ss.vnfc-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$i].value`' />\r
+                                        </set>\r
+                                        <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vnfc" \r
+               key="vnfc.vnfc-name = $tmp.ss.vnfc-name" >\r
+                                            <outcome value='failure'>\r
+                                                <set>\r
+                                                    <parameter name='error-message' value='Failed to delete vnfc object in AnAI' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                        </delete>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-vf-unassign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vfmodule-ra-assignment.xml
new file mode 100644 (file)
index 0000000..1d8f6fc
--- /dev/null
@@ -0,0 +1,213 @@
+<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='self-serve-vfmodule-ra-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate.vnf-se-serv-uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="generateUUID is failed" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="request-id" value="`$tmp.return.generate.vnf-se-serv-uuid`"/>\r
+                <parameter name="resource-type" value="`$vf-module-topology-operation-input.vf-module-information.vf-module-type`" />\r
+                <parameter name="resource-id" value="`$vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
+                <parameter name="action-name" value="resource-assignment-action"/>\r
+                <parameter name="responsePrefix" value="sriovAssign" />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='highnum' value='0' />\r
+                        <parameter name='prehighnum' value='0'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='highnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\r
+                        <parameter name='prehighnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index='i' start='0' end='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                <switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name`'>\r
+                    <outcome value='sdnc_model_name'>\r
+                        <set>\r
+                            <parameter name='tmp.sdnc-model-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='sdnc_model_version'>\r
+                        <set>\r
+                            <parameter name='tmp.sdnc-model-version' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='vf_module_label'>\r
+                        <set>\r
+                            <parameter name='tmp.vf-module-label' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value`' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name="tmp.config-name-value-other-payload" value="`$tmp.config-name-value-other-payload + '&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].name + '&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$i].value + '&quot;,'`"/>\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test="`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.vf-module-label == ''`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
+  pfx='db1.vf-model'>\r
+                            <outcome value='failure'>\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 reading VF_MODEL table" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\r
+                                    <parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT vf_module_label from VF_MODULE_MODEL WHERE vf_customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
+  pfx='db1.vf-module-model'>\r
+                            <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-label' value='`$db1.vf-module-model.vf-module-label`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="tmp.config-name-value-payload4" value="`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $vf-module-topology-operation-input.service-information.service-instance-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload5" value="`$tmp.config-name-value-payload4 + '&quot;vnf-id&quot;:&quot;' + $vf-module-topology-operation-input.vnf-information.vnf-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload6" value="`$tmp.config-name-value-payload5 + '&quot;vf-module-model-customization-uuid&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload7" value="`$tmp.config-name-value-payload6 + '&quot;vnf-model-customization-uuid&quot;:&quot;' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload8" value="`$tmp.config-name-value-payload7 + '&quot;vf-module-id&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload9" value="`$tmp.config-name-value-payload8 + '&quot;aic-cloud-region&quot;:&quot;' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region + '&quot;'`"/>\r
+                <parameter name="tmp.config-name-value-payload91" value="`'{' + $tmp.config-name-value-payload9 + '}'`" />\r
+            </set>\r
+            <execute plugin='org.openecomp.sdnc.config.assignment.service.ConfigAssignmentNode' method='process'>\r
+                <parameter name="request-id" value='`$request-id`' />\r
+                <parameter name="resource-id" value='`$resource-id`' />\r
+                <parameter name="resource-type" value='`$resource-type`' />\r
+                <parameter name="action-name" value='`$action-name`' />\r
+                <parameter name="template-names" value="`'[&quot;' + $tmp.vf-module-label + '&quot;]'`" />\r
+                <parameter name="service-template-name" value='`$tmp.sdnc-model-name`' />\r
+                <parameter name="service-template-version" value='`$tmp.sdnc-model-version`' />\r
+                <parameter name='input-data' value='`$tmp.config-name-value-payload91`' />\r
+                <parameter name="prifix" value="sriovAssign" />\r
+                <outcome value='failure'>\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 from ConfigAssignmentNode" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\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 from ConfigAssignmentNode" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                <parameter name="source" value="`'sriovAssign.mashed-data.' + $tmp.vf-module-label`" />\r
+                <parameter name="outputPath" value="jsonContextPrefix" />\r
+                <parameter name="isEscaped" value="false" />\r
+            </execute>\r
+            <for index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.mso.param.found' value='false' />\r
+                    </set>\r
+                    <switch test='`$prehighnum &gt; 0`'>\r
+                        <outcome value='true'>\r
+                            <for index='cnt' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                            <parameter name='tmp.mso.param.found' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.mso.param.found`'>\r
+                        <outcome value='false'>\r
+                            <set>\r
+                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\r
+                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                <parameter name='highnum' value='`$highnum + 1`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='num' value='0' />\r
+                    </set>\r
+                    <for index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >\r
+                        <block atomic='true'>\r
+                            <for index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\r
+                                    </set>\r
+                                    <switch test="`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`">\r
+                                        <outcome value='true'></outcome>\r
+                                        <outcome value='false'>\r
+                                            <for index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >\r
+                                                <block atomic='true'>\r
+                                                    <set>\r
+                                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\r
+                                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\r
+                                                        <parameter name='num' value='`$num + 1`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' value='`$highnum + 1`'/>\r
+                                        <parameter name='highnum' value='`$highnum + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vlan-tag-assign.xml
new file mode 100755 (executable)
index 0000000..db5066d
--- /dev/null
@@ -0,0 +1,262 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='self-serve-vlan-tag-assign' mode='sync'>
+        <block atomic='true'>
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />
+                <parameter name='contextPrefix' value='prop' />
+                <outcome value='success'>
+                    <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                        <parameter name="logger" value="message-log"/>
+                        <parameter name="field1" value="__TIMESTAMP__"/>
+                        <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                        <parameter name="field3" value="self-serve-vlan-tag-assign: read properties file." />
+                    </record>
+                </outcome>
+                <outcome value='failure'>
+                    <block>
+                        <record  plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                            <parameter name="logger" value="message-log"/>
+                            <parameter name="field1" value="__TIMESTAMP__"/>
+                            <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                            <parameter name="field3" value="self-serve-vlan-tag-assign: failed to read properties file." />
+                            <parameter name="field4" value="generic-resource-api-dg.properties"/>
+                        </record>
+                        <return status='failure'>
+                            <parameter name='error-code' value='500' />
+                            <parameter name='error-message' value='self-serve-vlan-tag-assign: could not read generic-resource-api properties' />
+                        </return>
+                    </block>
+                </outcome>
+            </execute>
+            <call module='GENERIC-RESOURCE-API' rpc='self-serve-capability-param-resolution' mode='sync' ></call>
+            <for index='capIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >
+                <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module.param[$capIdx].resource-resolution-data.capability-name == $ss.capability-name`">
+                    <outcome value='true'>
+                        <switch test="`$ss.capability-action`">
+                            <outcome value='assign'>
+                                <block atomic='true'>
+                                    <set>
+                                        <parameter name='sscap.res-target-type' value='`$prop.restapi.ss.capreserve.targettype`' />
+                                    </set>
+                                    <for index='rkIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key_length`' >
+                                        <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].name`">
+                                            <outcome value='vlan-recipe'>
+                                                <set>
+                                                    <parameter name='sscap.res-service-model' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='vnf-name'>
+                                                <set>
+                                                    <parameter name='sscap.res-entity-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='nf-role'>
+                                                <set>
+                                                    <parameter name='sscap.res-entity-type' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='aic-site-id'>
+                                                <set>
+                                                    <parameter name='sscap.res-target-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='vlan-tag-type'>
+                                                <set>
+                                                    <parameter name='sscap.res-endpoint-position' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                        <parameter name="logger" value="message-log"/>
+                                        <parameter name="field1" value="__TIMESTAMP__"/>
+                                        <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                        <parameter name="field3" value="self-serve-vlan-tag-assign: reserve params"/>
+                                        <parameter name="field4" value='`$sscap.res-service-model`'/>
+                                        <parameter name="field5" value='`$sscap.res-entity-type`'/>
+                                        <parameter name="field6" value='`$sscap.res-entity-id`'/>
+                                        <parameter name="field7" value='`$sscap.res-target-type.`' />
+                                        <parameter name="field8" value='`$sscap.res-target-id`'/>
+                                        <parameter name="field9" value='`$sscap.res.endpoint-position`' />
+                                    </record>
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.capreserve.templatefile`" />
+                                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                        <parameter name='format' value='json' />
+                                        <parameter name='httpMethod' value='post' />
+                                        <parameter name='responsePrefix' value='tmp.sscapres-response' />
+                                        <outcome value='failure'>
+                                            <block>
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                    <parameter name="logger" value="message-log"/>
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>
+                                                    <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                    <parameter name="field3" value="self-serve-vlan-tag-assign: restapi reserve execution failed"/>
+                                                </record>
+                                                <set>
+                                                    <parameter name='sscap.reserve.response-code' value='500' />
+                                                    <parameter name='sscap.reserve.response-message' value='Self Serve Capacity Api restapi reserve execution failed' />
+                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />
+                                                </set>
+                                                <return status='failure'>
+                                                    <parameter name='error-code' value='500' />
+                                                    <parameter name='error-message' value='self-serve-vlan-tag-assign: reserve failed' />
+                                                </return>
+                                            </block>
+                                        </outcome>
+                                        <outcome value='success'>
+                                            <switch test="`$tmp.sscapres-response.response-code`">
+                                                <outcome value='200'>
+                                                    <block>
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                            <parameter name="logger" value="message-log"/>
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                            <parameter name="field3" value="self-serve-vlan-tag-assign: reserve successful"/>
+                                                            <parameter name="field4" value='`$tmp.sscapres-response.response-code`'/>
+                                                            <parameter name="field5" value='`$tmp.sscapres-response.response-message`'/>
+                                                            <parameter name="field6" value='`$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].allocated`' />
+                                                            <parameter name="field7" value='`$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].end-point-position`' />
+                                                        </record>
+                                                        <set>
+                                                            <parameter name='pmIdx' value='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param_length' />
+                                                        </set>
+                                                        <set>
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='SUCCESS' />
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pmIdx].value' value='$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].allocated' />
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$pmIdx].name' value='$tmp.sscapres-response.output.reservation-entity-list[0].reservation-target-list[0].resource-list[0].end-point-position' />
+                                                        </set>
+                                                    </block>
+                                                </outcome>
+                                                <outcome value='Other'>
+                                                    <block>
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                            <parameter name="logger" value="message-log"/>
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                            <parameter name="field3" value="self-serve-vlan-tag-assign: reserve failed"/>
+                                                            <parameter name="field4" value='`$tmp.sscapres-response.response-code`'/>
+                                                            <parameter name="field5" value='`$tmp.sscapres-response.response-message`'/>
+                                                        </record>
+                                                        <set>
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />
+                                                        </set>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </outcome>
+                                    </execute>
+                                </block>
+                            </outcome>
+                            <outcome value='unassign'>
+                                <block atomic='true'>
+                                    <for index='rkIdx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key_length`' >
+                                        <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].name`">
+                                            <outcome value='vnf-name'>
+                                                <set>
+                                                    <parameter name='sscap.rel-entity-id' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='nf-role'>
+                                                <set>
+                                                    <parameter name='sscap.rel-entity-type' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                            <outcome value='vlan-tag-type'>
+                                                <set>
+                                                    <parameter name='sscap.rel-endpoint-position' value='`service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.resource-key[$rkIdx].value`' />
+                                                </set>
+                                            </outcome>
+                                        </switch>
+                                    </for>
+                                    <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                        <parameter name="logger" value="message-log"/>
+                                        <parameter name="field1" value="__TIMESTAMP__"/>
+                                        <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                        <parameter name="field3" value="self-serve-vlan-tag-assign: release params"/>
+                                        <parameter name="field4" value='`$sscap.res-entity-type`'/>
+                                        <parameter name="field5" value='`$sscap.res-entity-id`'/>
+                                        <parameter name="field6" value='`$sscap.res.endpoint-position`' />
+                                    </record>
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >
+                                        <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.caprelease.templatefile`" />
+                                        <parameter name='restapiUrl' value='`$prop.controller.url`' />
+                                        <parameter name='restapiUser' value='`$prop.controller.user`' />
+                                        <parameter name='restapiPassword' value='`$prop.controller.pwd`' />
+                                        <parameter name='format' value='json' />
+                                        <parameter name='httpMethod' value='post' />
+                                        <parameter name='responsePrefix' value='tmp.sscaprel-response' />
+                                        <outcome value='failure'>
+                                            <block>
+                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                    <parameter name="logger" value="message-log"/>
+                                                    <parameter name="field1" value="__TIMESTAMP__"/>
+                                                    <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                    <parameter name="field3" value="self-serve-vlan-tag-assign: restapi release execution failed"/>
+                                                </record>
+                                                <set>
+                                                    <parameter name='sscap.release.response-code' value='500' />
+                                                    <parameter name='sscap.release.response-message' value='Self Serve Capacity Api restapi release execution failed' />
+                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />
+                                                </set>
+                                                <return status='failure'>
+                                                    <parameter name='error-code' value='500' />
+                                                    <parameter name='error-message' value='self-serve-vlan-tag-assign: release failed' />
+                                                </return>
+                                            </block>
+                                        </outcome>
+                                        <outcome value='success'>
+                                            <switch test="`$tmp.sscaprel-response.response-code`">
+                                                <outcome value='200'>
+                                                    <block>
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                            <parameter name="logger" value="message-log"/>
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                            <parameter name="field3" value="self-serve-vlan-tag-assign: release successful"/>
+                                                            <parameter name="field4" value='`$tmp.sscaprel-response.response-code`'/>
+                                                            <parameter name="field5" value='`$tmp.sscaprel-response.response-message`'/>
+                                                        </record>
+                                                        <set>
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='DELETED' />
+                                                        </set>
+                                                    </block>
+                                                </outcome>
+                                                <outcome value='Other'>
+                                                    <block>
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                            <parameter name="logger" value="message-log"/>
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API"/>
+                                                            <parameter name="field3" value="self-serve-vlan-tag-assign: release failed"/>
+                                                            <parameter name="field4" value='`$tmp.sscaprel-response.response-code`'/>
+                                                            <parameter name="field5" value='`$tmp.sscaprel-response.response-message`'/>
+                                                        </record>
+                                                        <set>
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-mofule[$vf-module-index].vf-module-data.vf-module-topology.vf-module-parameters.param[$capIdx].resource-resolution-data.status' value='FAILED' />
+                                                        </set>
+                                                        <return status='failure'>
+                                                            <parameter name='error-code' value='500' />
+                                                            <parameter name='error-message' value='self-serve-vlan-tag-assign: release failed' />
+                                                        </return>
+                                                    </block>
+                                                </outcome>
+                                            </switch>
+                                        </outcome>
+                                    </execute>
+                                </block>
+                            </outcome>
+                        </switch>
+                    </outcome>
+                </switch>
+            </for>
+            <return status='success'>
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-assign.xml
new file mode 100644 (file)
index 0000000..efc55ab
--- /dev/null
@@ -0,0 +1,490 @@
+<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='self-serve-vnf-assign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='is-new-vnf' value='true' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='0' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf_length' value='1' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block>\r
+                        <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                            <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
+                                <outcome value='true'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='is-new-vnf' value='false' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='vnf-index' value='`$idx`' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$is-new-vnf`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf_length' value='`$service-data.vnfs.vnf_length + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$is-new-vnf`'>\r
+                <outcome value='true'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
+ value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
+ value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
+ value='`$db.vf-model.nf-type`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
+ value='`$db.vf-model.nf-role`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
+ value='`$db.vf-model.nf-function`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
+ value='`$db.vf-model.nf-code`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
+ value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
+ value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
+   value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                        </set>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$db.vf-model.invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+  value='`$db.vf-model.uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+  value='`$db.vf-model.version`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+  value='`$db.vf-model.name`' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' \r
+       value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' \r
+       value='$vnf-topology-operation-input.request-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' \r
+       value='$vnf-topology-operation-input.service-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' \r
+       value='$vnf-topology-operation-input.vnf-information.' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' \r
+       value='$vnf-topology-operation-input.vnf-request-input.' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order[1]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='eipam-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='eipam-create-pool"' />\r
+                <parameter name='ss.capability.execution-order[6]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[7]' value='create-vpe-pool' />\r
+                <parameter name='ss.capability.execution-order[8]' value='unresolved-composite-data' />\r
+                <parameter name='ss.capability.execution-order_length' value='9' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources' value='true' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='vnf' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
+  value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-ra-assignment' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'Failed to get RA assignments: ' + $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order[]\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='assign' />\r
+                </set>\r
+                <switch test='`$ss.capability-name`'>\r
+                    <outcome value='alts-entitlement-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='alts-license-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
+                                <outcome value='SUCCESS'>\r
+                                    <set>\r
+                                        <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='PENDING'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vnf-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                                    <parameter name='vf.vnf-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vnf-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\r
+                                                    <parameter name='vf.vnf-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.request-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.request-version`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-name`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.tenant'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.tenant`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.aic-cloud-region'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-cloud-region`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.aic-clli'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-clli`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vnf-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vnf-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vnf" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                                <outcome value='FAILED'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vnf-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                                    <parameter name='vf.vnf-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vnf-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\r
+                                                    <parameter name='vf.vnf-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.request-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.request-version`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-name`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.tenant'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.tenant`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.aic-cloud-region'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-cloud-region`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.aic-clli'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.aic-clli`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vnf-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vnf-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vnf" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Failed to persist self-serve vnf assignments during assign in MD-SAL" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Encountered error from capability: '+ $ss.capability-dg + ', with error: '+ $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='ASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <switch test="`$self-serve-generate-name == 'ASSIGNED'`">\r
+                <outcome value='false'>\r
+                    <block atomic='true'>\r
+                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                            <parameter name="logger" value="message-log"/>\r
+                            <parameter name="field1" value="`'SS: self-serve-generate-name status: ' + $self-serve-generate-name`"/>\r
+                        </record>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value="`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <switch test="`$self-serve-unresolved-composite-data == 'ASSIGNED' or $self-serve-unresolved-composite-data == ''`">\r
+                        <outcome value='false'>\r
+                            <block atomic='true'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="`'SS: self-serve-unresolved-composite-data: ' + $self-serve-unresolved-composite-data`"/>\r
+                                </record>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'AAI Put is being skipped because NOT all capability components have SUCCESS status; '+ $error-message`" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <for index='i' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].name`'>\r
+                                        <outcome value='vnf_name'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ss.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$i].value`' />\r
+                                                </set>\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+       resource="generic-vnf"\r
+               key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id "\r
+       pfx="tmp.aai.update.vnf" >\r
+                                                    <parameter name="vnf-name" value='`$tmp.ss.vnf-name`' />\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='error-code' value='500' />\r
+                                                            <parameter name='error-message' value="`'Failed to update generic-vnf.vnf-name in AnAI with vnf-name=' + $tmp.ss.vnf-name`" />\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 update generic-vnf.vnf-name because generic-vnf with vnf-name=' + $tmp.ss.vnf-name + ' is not found in AAI'`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </update>\r
+                                                <break/>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test='`$tmp.ss.vnf-name`'>\r
+                                    <outcome value=''>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="`'generic-vnf not updated because vnf-name param.value is null; '+ $error-message`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-ra-assignment.xml
new file mode 100644 (file)
index 0000000..ac31f90
--- /dev/null
@@ -0,0 +1,199 @@
+<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='self-serve-vnf-ra-assignment' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="generateUUID" >\r
+                <parameter name="ctx-destination" value="tmp.return.generate.vnf-se-serv-uuid" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="generateUUID is failed" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <set>\r
+                <parameter name="request-id" value="`$tmp.return.generate.vnf-se-serv-uuid`"/>\r
+                <parameter name="resource-type" value="`$vnf-topology-operation-input.vnf-information.vnf-type`" />\r
+                <parameter name="resource-id" value="`$vnf-topology-operation-input.vnf-information.vnf-id`" />\r
+                <parameter name="action-name" value="resource-assignment-action"/>\r
+                <parameter name="responsePrefix" value="sriovAssign" />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`'>\r
+                <outcome value=''>\r
+                    <set>\r
+                        <parameter name='highnum' value='0' />\r
+                        <parameter name='prehighnum' value='0'/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <set>\r
+                        <parameter name='highnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' />\r
+                        <parameter name='prehighnum' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <for index='i' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].name`'>\r
+                        <outcome value='sdnc_model_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_model_version'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-version' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_artifact_name'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value`' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name="tmp.config-name-value-other-payload" value="`$tmp.config-name-value-other-payload + '&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].name + '&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$i].value + '&quot;,'`"/>\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <switch test="`$tmp.sdnc-model-name == '' or $tmp.sdnc-model-version == '' or $tmp.sdnc-artifact-name == ''`">\r
+                <outcome value='true'>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
+  pfx='db1.vf-model'>\r
+                        <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\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 reading VF_MODULE_MODEL table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <set>\r
+                                <parameter name='tmp.sdnc-model-name' value='`$db1.vf-model.sdnc-model-name`' />\r
+                                <parameter name='tmp.sdnc-model-version' value='`$db1.vf-model.sdnc-model-version`' />\r
+                                <parameter name='tmp.sdnc-artifact-name' value='`$db1.vf-model.sdnc-artifact-name`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name="tmp.config-name-value-payload4" value="`$tmp.config-name-value-other-payload + '&quot;service-instance-id&quot;:&quot;' + $vnf-topology-operation-input.service-information.service-instance-id   + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload5" value="`$tmp.config-name-value-payload4 + '&quot;vnf-model-customization-uuid&quot;:&quot;' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload6" value="`$tmp.config-name-value-payload5 + '&quot;vnf-id&quot;:&quot;' + $vnf-topology-operation-input.vnf-information.vnf-id + '&quot;,'`"/>\r
+                <parameter name="tmp.config-name-value-payload7" value="`$tmp.config-name-value-payload6 + '&quot;aic-cloud-region&quot;:&quot;' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + '&quot;'`"/>\r
+                <parameter name="tmp.json-payload" value="`'{' + $tmp.config-name-value-payload7 + '}'`" />\r
+            </set>\r
+            <execute plugin='org.openecomp.sdnc.config.assignment.service.ConfigAssignmentNode' method='process'>\r
+                <parameter name="request-id" value='`$request-id`' />\r
+                <parameter name="resource-id" value='`$resource-id`' />\r
+                <parameter name="resource-type" value='`$resource-type`' />\r
+                <parameter name="action-name" value='`$action-name`' />\r
+                <parameter name="template-names" value="`'[&quot;' + $tmp.sdnc-artifact-name + '&quot;]'`" />\r
+                <parameter name="service-template-name" value='`$tmp.sdnc-model-name`' />\r
+                <parameter name="service-template-version" value='`$tmp.sdnc-model-version`' />\r
+                <parameter name='input-data' value='`$tmp.json-payload`' />\r
+                <parameter name="prifix" value="sriovAssign" />\r
+                <outcome value='failure'>\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 from ConfigAssignmentNode" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\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 from ConfigAssignmentNode" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils" method="jsonStringToCtx">\r
+                <parameter name="source" value="`'sriovAssign.mashed-data.' + $tmp.sdnc-artifact-name`" />\r
+                <parameter name="outputPath" value="jsonContextPrefix" />\r
+                <parameter name="isEscaped" value="false" />\r
+            </execute>\r
+            <for index='i' start='0' end='`$jsonContextPrefix.resource-accumulator-resolved-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='tmp.mso.param.found' value='false' />\r
+                    </set>\r
+                    <switch test='`$prehighnum &gt; 0`'>\r
+                        <outcome value='true'>\r
+                            <for index='cnt' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cnt].name == $jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'>\r
+                                    <outcome value='true'>\r
+                                        <set>\r
+                                            <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$cnt].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                            <parameter name='tmp.mso.param.found' value='true' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test='`$tmp.mso.param.found`'>\r
+                        <outcome value='false'>\r
+                            <set>\r
+                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-name`'/>\r
+                                <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.resource-accumulator-resolved-data[$i].param-value`'/>\r
+                                <parameter name='highnum' value='`$highnum + 1`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for index='i' start='0' end='`$jsonContextPrefix.capability-data_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='num' value='0' />\r
+                    </set>\r
+                    <for index='j' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <for index='l' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping_length`' >\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-name`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].output-key-mapping[$l].resource-value`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.capability-name`' value='`$jsonContextPrefix.capability-data[$i].capability-name`'/>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.status`' value='PENDING'/>\r
+                                    </set>\r
+                                    <switch test="`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length == ''`">\r
+                                        <outcome value='true'></outcome>\r
+                                        <outcome value='false'>\r
+                                            <for index='k' start='0' end='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload_length`' >\r
+                                                <set>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].name`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-name`'/>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key[$num].value`' value='`$jsonContextPrefix.capability-data[$i].key-mapping[$j].payload[$k].param-value`'/>\r
+                                                    <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$highnum].resource-resolution-data.resource-key_length`' value='`$num + 1`'/>\r
+                                                    <parameter name='num' value='`$num + 1`' />\r
+                                                </set>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='`service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' value='`$highnum + 1`'/>\r
+                                        <parameter name='highnum' value='`$highnum + 1`' />\r
+                                    </set>\r
+                                </block>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-unassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_self-serve-vnf-unassign.xml
new file mode 100644 (file)
index 0000000..968a459
--- /dev/null
@@ -0,0 +1,153 @@
+<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='self-serve-vnf-unassign' mode='sync'>\r
+        <block atomic='true'>\r
+            <set>\r
+                <parameter name='ss.capability.execution-order[0]' value='mac-address-assign' />\r
+                <parameter name='ss.capability.execution-order[1]' value='eipam-ip-assign' />\r
+                <parameter name='ss.capability.execution-order[2]' value='vlan-tag-assign' />\r
+                <parameter name='ss.capability.execution-order[3]' value='alts-license-assign' />\r
+                <parameter name='ss.capability.execution-order[4]' value='alts-entitlement-assign' />\r
+                <parameter name='ss.capability.execution-order[5]' value='generate-name' />\r
+                <parameter name='ss.capability.execution-order_length' value='6' />\r
+            </set>\r
+            <set>\r
+                <parameter name='ss.capability-type' value='vnf' />\r
+            </set>\r
+            <for index='cidx' start='0' end='`$ss.capability.execution-order_length`' >\r
+                <set>\r
+                    <parameter name='ss.capability-name' value='`$ss.capability.execution-order[$cidx]`' />\r
+                    <!--\r
+ss.capability.execution-order[]\r
+-->\r
+                </set>\r
+                <set>\r
+                    <parameter name='ss.capability-action' value='unassign' />\r
+                </set>\r
+                <switch test='`$ss.capability-name`'>\r
+                    <outcome value='alts-entitlement-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='alts-license-assign'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value='self-serve-alts-assignment' />\r
+                        </set>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <set>\r
+                            <parameter name='ss.capability-dg' value="`'self-serve-' + $ss.capability.execution-order[$cidx]`" />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for index='pidx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                    <set>\r
+                        <parameter name='tmp.param.capability-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.capability-name`' />\r
+                    </set>\r
+                    <switch test='`$ss.capability-name == $tmp.param.capability-name`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`'>\r
+                                <outcome value='SUCCESS'>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='`$ss.capability-dg`' mode='sync' >\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='`$ss.capability-dg`' value='UNASSIGNED' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <block atomic='true'>\r
+                                                <set>\r
+                                                    <parameter name='vf.vnf-id'\r
+    value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                                    <parameter name='vf.vnf-data.sdnc-request-header.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.`' />\r
+                                                    <parameter name='vf.vnf-data.request-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.`' />\r
+                                                    <parameter name='vf.vnf-data.service-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-information.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-request-input.vnf-input-parameters.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.vnf-input-parameters.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-topology.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.`' />\r
+                                                    <parameter name='vf.vnf-data.vnf-level-oper-status.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.`' />\r
+                                                </set>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$prop.restapi.ss-vnf-assignments`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{service-instance-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.service-instance-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\r
+                                                    <parameter name="source" value="`$tmp.ss-vnf-url`"/>\r
+                                                    <parameter name="outputPath" value="tmp.ss-vnf-url"/>\r
+                                                    <parameter name="target" value="{vnf-id}"/>\r
+                                                    <parameter name="replacement" value="`$service-data.vnfs.vnf[$vnf-index].vnf-id`"/>\r
+                                                </execute>\r
+                                                <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                    <parameter name='templateFileName' value="`$prop.restapi.templateDir + '/' + $prop.restapi.ss.vnf.templatefile`" />\r
+                                                    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ss-vnf-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='PUT' />\r
+                                                    <parameter name="responsePrefix" value="mdsal-ss-vnf" />\r
+                                                    <outcome value='success'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='failure'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='not-found'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name="error-message" value="Error persisting self-serve vnf assignments in MD-SAL during unassign" />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </execute>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='error-code' value='500' />\r
+                                                    <parameter name='error-message' value="`'Failed to unassign self-serve vnf assignments for ' + $ss.capability-dg + ' with error: ' + $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </outcome>\r
+                                <outcome value='DELETED'>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block atomic='true'>\r
+                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                            <parameter name="logger" value="message-log"/>\r
+                                            <parameter name="field1" value="`'SS: resource-resolution-data.status: ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`"/>\r
+                                            <parameter name="field2" value="`'SS: ss.capability-name: ' + $ss.capability-name`"/>\r
+                                        </record>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value="`'Failed to unassign self-serve vnf assignments because the status for ' + $ss.capability-name + ' is '  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.param[$pidx].resource-resolution-data.status`"/>\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/ss-vnf-assign.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index ec37555..dda220a 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='service-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><switch test='`$service-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateServiceInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateServiceInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.service-level-oper-status.order-status`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='Created'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="The requested service already exists" />\r
-</return></outcome><outcome value='PendingDelete'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="The requested service is pending deletion" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+<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='service-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateServiceInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateServiceInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.onap-model-information.model-uuid'\r
   pfx='db.service-model'>\r
-\r
-<outcome value='failure'>\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 reading SERVICE_MODEL table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`" />\r
-</return></outcome></get-resource><switch test='`$service-topology-operation-input.service-request-input.service-instance-name`'>\r
-<outcome value=''><block atomic="true"><switch test='`$db.service-model.ecomp-naming`'>\r
-<outcome value='Y'><block>\r
-</block></outcome><outcome value='N'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="No service-instance-name was received but ecomp-naming is not Y" />\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="No service-instance-name was received but ecomp-naming is not Y" />\r
-</return></outcome></switch><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='SERVICE_INSTANCE_NAME_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='service_instance_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\r
-<parameter name='generate-unique-name-input.prefix' value="`$db.service-model.service-instance-name-prefix + '_'`" />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.service-instance-name' value='`$generate-unique-name-output.generated-name`' />\r
-</set></outcome></call></block></outcome><outcome value='Other'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\r
-<parameter name='generate-unique-name-input.supplied-name' value='`$service-topology-operation-input.service-request-input.service-instance-name`' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.service-instance-name' value="`$service-topology-operation-input.service-request-input.service-instance-name`" />\r
-</set></outcome></call></block></outcome></switch><set>\r
-<parameter name='service-object-path'\r
+                <outcome value='failure'>\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 reading SERVICE_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='tmp.service-instance-name' value='' />\r
+            </set>\r
+            <switch test='`$service-topology-operation-input.service-request-input.service-instance-name`'>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <switch test='`$db.service-model.ecomp-naming`'>\r
+                            <outcome value='Y'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='N'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="No service-instance-name was received but ecomp-naming is not Y" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="No service-instance-name was received but ecomp-naming is not Y" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$db.service-model.naming-policy`'>\r
+                            <outcome value=''>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='generate-unique-name-input.action' value='ASSIGN' />\r
+                                        <parameter name='generate-unique-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
+                                        <parameter name='generate-unique-name-input.index-table-name' value='SERVICE_INSTANCE_NAME_INDEX' />\r
+                                        <parameter name='generate-unique-name-input.index-table-prefix-column' value='service_instance_name_prefix' />\r
+                                        <parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\r
+                                        <parameter name='generate-unique-name-input.prefix' value="`$db.service-model.service-instance-name-prefix + '_'`" />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='tmp.service-instance-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='generated-via-policy' value='true' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.service-model.naming-policy`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.service-model.service-uuid`' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="Unable to generate service name" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='tmp.service-instance-name' value='`$naming-policy-generate-name-output.service-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='generate-unique-name-input.name-table-type' value='SERVICE_INSTANCE' />\r
+                            <parameter name='generate-unique-name-input.supplied-name' value='`$service-topology-operation-input.service-request-input.service-instance-name`' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='success'>\r
+                                <set>\r
+                                    <parameter name='tmp.service-instance-name' value="`$service-topology-operation-input.service-request-input.service-instance-name`" />\r
+                                </set>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-object-path'\r
  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $service-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/service-topology/'`"/>\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="service-instance" \r
                key="customer.global-customer-id = $service-topology-operation-input.service-information.global-customer-id AND\r
                        service-subscription.service-type = $service-topology-operation-input.service-information.subscription-service-type AND\r
                        service-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id"\r
         pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="service-instance-name" value="`$tmp.service-instance-name`" />\r
-       <parameter name="selflink" value="`$service-object-path`" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="The service instance does not exist in AAI" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.service-topology.service-topology-identifier.service-instance-id'\r
+                <parameter name="service-instance-name" value="`$tmp.service-instance-name`" />\r
+                <parameter name="selflink" value="`$service-object-path`" />\r
+                <outcome value='failure'>\r
+                    <block>\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                        </block>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="Failure calling AAI to update the service instance" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block>\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                        </block>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="The service instance does not exist in AAI" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.service-topology.service-topology-identifier.service-instance-id'\r
   value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
-<parameter name='service-data.service-topology.service-topology-identifier.service-type'\r
+                <parameter name='service-data.service-topology.service-topology-identifier.service-type'\r
   value='`$service-topology-operation-input.service-information.subscription-service-type`' />\r
-<parameter name='service-data.service-topology.service-topology-identifier.service-instance-name'\r
+                <parameter name='service-data.service-topology.service-topology-identifier.service-instance-name'\r
   value='`$tmp.service-instance-name`' />\r
-<parameter name='service-data.service-topology.service-topology-identifier.global-customer-id'\r
+                <parameter name='service-data.service-topology.service-topology-identifier.global-customer-id'\r
   value='`$service-topology-operation-input.service-information.global-customer-id`' />\r
-</set><set>\r
-<parameter name='service-data.service-topology.onap-model-information.'\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.service-topology.onap-model-information.'\r
   value='`$service-topology-operation-input.service-information.onap-model-information.`' />\r
-</set><switch test='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`' >\r
-<set>\r
-<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-name'\r
+            </set>\r
+            <switch test='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-topology-operation-input.service-request-input.service-input-parameters.param_length`' >\r
+                        <set>\r
+                            <parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-name'\r
   value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].name`' />\r
-<parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-value'\r
+                            <parameter name='service-data.service-topology.service-parameters[$idx].service-parameter-value'\r
   value='`$service-topology-operation-input.service-request-input.service-input-parameters.param[$idx].value`' />\r
-</set></for></outcome></switch><set>\r
-<parameter name='service-data.service-level-oper-status.order-status' value='Created' />\r
-<parameter name='service-data.service-level-oper-status.last-rpc-action' value='assign' />\r
-<parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\r
-</set></block></method></service-logic>
+                        </set>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='service-data.service-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.service-level-oper-status.last-rpc-action' value='assign' />\r
+                <parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_service-topology-operation-changeassign.xml
new file mode 100755 (executable)
index 0000000..c018b1a
--- /dev/null
@@ -0,0 +1,63 @@
+<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='service-topology-operation-changeassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateServiceInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'changeassign' then request-action must be 'CreateServiceInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $service-topology-operation-input.service-information.onap-model-information.model-uuid'\r
+  pfx='db.service-model'>\r
+                <outcome value='failure'>\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 reading SERVICE_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for service UUID ' + $service-topology-operation-input.service-information.onap-model-information.model-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='service-data.service-topology.onap-model-information.'\r
+  value='`$service-topology-operation-input.service-information.onap-model-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.service-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.service-level-oper-status.last-rpc-action' value='changeassign' />\r
+                <parameter name='service-data.service-level-oper-status.last-action' value='CreateServiceInstance' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $service-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index ca82647..89cc3eb 100755 (executable)
@@ -1,42 +1,67 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='service-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteServiceInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteServiceInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot deactivate this service because there are provided allotted resources" />\r
-</return></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+<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='service-topology-operation-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteServiceInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteServiceInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot deactivate this service because there are provided allotted resources" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="service-instance" \r
                key="customer.global-customer-id = $service-data.service-topology.service-topology-identifier.global-customer-id AND\r
                        service-subscription.service-type = $service-data.service-topology.service-topology-identifier.service-type AND\r
                        service-instance.service-instance-id = $service-topology-operation-input.service-information.service-instance-id"\r
         pfx='pfx' local-only='false' force='false'>\r
-       <parameter name="orchestration-status" value="PendingDelete" />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="AAI failed" />\r
-</return></outcome><outcome value='not-found'>\r
-<block>\r
-</block></outcome></update><set>\r
-<parameter name='service-data.service-level-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='service-data.service-level-oper-status.last-rpc-action' value='deactivate' />\r
-<parameter name='service-data.service-level-oper-status.last-action' value='DeleteServiceInstance' />\r
-</set></block></method></service-logic>
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="AAI failed" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block></block>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.service-level-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='service-data.service-level-oper-status.last-rpc-action' value='deactivate' />\r
+                <parameter name='service-data.service-level-oper-status.last-action' value='DeleteServiceInstance' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 88ae84b..5270874 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='service-topology-operation-delete' mode='sync'>\r
-<block atomic="true"><switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteServiceInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'delete' then request-action must be 'DeleteServiceInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.service-level-oper-status.order-status`'>\r
-<outcome value='PendingDelete'>\r
-<block atomic="true"></block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Order status is ' + $service-data.service-level-oper-status.order-status\r
-       + ' but must be PendingDelete'`" />\r
-</return></outcome></switch><switch test='`$service-data.networks.network_length`'>\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot delete the service because there are networks defined" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot delete the service because there are VNFs defined" />\r
-</return></outcome></switch><switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot deactivate this service because there are provided allotted resources" />\r
-</return></outcome></switch><switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot deactivate this service because there are consumed allotted resources" />\r
-</return></outcome></switch><set>\r
-<parameter name='service-data.' value='' />\r
-<parameter name='service-status.' value='' />\r
-</set></block></method></service-logic>
+<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='service-topology-operation-delete' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.service-topology.service-topology-identifier.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="`'Service ' + $service-topology-operation-input.service-information.service-instance-id + ' is not found'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteServiceInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'delete' then request-action must be 'DeleteServiceInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.networks.network_length`'>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot delete the service because there are networks defined" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot delete the service because there are VNFs defined" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.provided-allotted-resources.provided-allotted-resource_length`'>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot deactivate this service because there are provided allotted resources" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot deactivate this service because there are consumed allotted resources" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='naming-policy-generate-name-input.naming-type' value='SERVICE' />\r
+                <parameter name='naming-policy-generate-name-input.context-id' value='`$service-topology-operation-input.service-information.service-instance-id`' />\r
+                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$service-data.service-topology.onap-model-information.model-uuid`' />\r
+                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.' value='' />\r
+                <parameter name='service-status.' value='' />\r
+            </set>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 3367270..1cf7718 100755 (executable)
@@ -1,24 +1,41 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='service-topology-operation' mode='sync'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='validate-service-input' mode='sync' >\r
-</call><set>\r
-<parameter name='service-data.sdnc-request-header.' value='`$service-topology-operation-input.sdnc-request-header.`' />\r
-<parameter name='service-data.request-information.' value='`$service-topology-operation-input.request-information.`' />\r
-<parameter name='service-data.service-information.' value='`$service-topology-operation-input.service-information.`' />\r
-<parameter name='service-data.service-request-input.' value='`$service-topology-operation-input.service-request-input.`' />\r
-</set><switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-assign' mode='sync' >\r
-</call></outcome><outcome value='deactivate'>\r
-<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-deactivate' mode='sync' >\r
-</call></outcome><outcome value='delete'>\r
-<call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-delete' mode='sync' >\r
-</call></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$service-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
-</return></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<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='service-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-service-input' mode='sync' ></call>\r
+            <set>\r
+                <parameter name='service-data.sdnc-request-header.' value='`$service-topology-operation-input.sdnc-request-header.`' />\r
+                <parameter name='service-data.request-information.' value='`$service-topology-operation-input.request-information.`' />\r
+                <parameter name='service-data.service-information.' value='`$service-topology-operation-input.service-information.`' />\r
+                <parameter name='service-data.service-request-input.' value='`$service-topology-operation-input.service-request-input.`' />\r
+            </set>\r
+            <switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-deactivate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='delete'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-delete' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='service-topology-operation-changeassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$service-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-api-contrail-route-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-api-contrail-route-input.xml
new file mode 100644 (file)
index 0000000..bf041b1
--- /dev/null
@@ -0,0 +1,319 @@
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='validate-api-contrail-route-input' mode='sync'>
+        <block atomic="true">
+            <switch test='`$ctotmp.action`'>
+                <outcome value='create'>
+                    <block atomic="true">
+                        <switch test='`$cto-api.parent-service-instance-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.parent-service-instance-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.port-mirror-configuration-instance-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.port-mirror-configuration-instance-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.source-network-role`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.source-network-role is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.collector-network-role`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.collector-network-role is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.default-domain`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-domain is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.default-project`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-project is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.cloud-region-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.cloud-region-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.cloud-owner`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.cloud-owner is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.service-type`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.service-type is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.owning-entity`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.owning-entity is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <switch test='`$cto-api.default-domain`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-domain is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.default-project`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-project is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.cloud-region-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.cloud-region-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.contrail-route-allotted-resource-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.src-contrail-network-fqdn`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.collector-contrail-network-fqdn`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.collector-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.owning-entity`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.owning-entity is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <switch test='`$cto-api.default-domain`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-domain is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.default-project`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-project is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.cloud-region-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.cloud-region-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.contrail-route-allotted-resource-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.src-contrail-network-fqdn`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.collector-contrail-network-fqdn`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.collector-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.rollback-flag`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.rollback-flag is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.owning-entity`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.owning-entity is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='delete'>
+                    <block atomic="true">
+                        <switch test='`$cto-api.default-domain`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-domain is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.default-project`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.default-project is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.cloud-region-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.cloud-region-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.contrail-route-allotted-resource-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation:cto-api.src-contrail-network-fqdn is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.rollback-flag`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.rollback-flag is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.configuration-id`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.configuration-id is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                        <switch test='`$cto-api.owning-entity`'>
+                            <outcome value=''>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="API-contrail-route-topology-operation-create:cto-api.owning-entity is a required input" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 7ab4bb9..421335d 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='validate-contrail-route-input' mode='sync'>\r
-<block atomic="true"><switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateContrailRouteInstance'><block>\r
-</block></outcome><outcome value='DeleteContrailRouteInstance'><block>\r
-</block></outcome><outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required input" />\r
-</return></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Invalid request-information.request-action " />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.service-information.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-type is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="contrail-route-information.onap-model-information.model-customization-uuid is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="contrail-topology-operation-input.contrail-route-request-input.dest-network.network-role is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id is a required input" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\r
-  pfx='ar-model'>\r
-\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No allotted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No allotted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=assign" />\r
-</return></outcome></switch></block></outcome><outcome value='create'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateNetworkInstance for svc-action=create" />\r
-</return></outcome></switch></block></outcome><outcome value='activate'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=activate" />\r
-</return></outcome></switch></block></outcome><outcome value='deactivate'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=deactivate" />\r
-</return></outcome></switch></block></outcome><outcome value='delete'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=delete" />\r
-</return></outcome></switch></block></outcome><outcome value='unassign'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteContrailRouteInstance'><block atomic="true"><switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=unassign" />\r
-</return></outcome></switch></block></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='validate-contrail-route-input' mode='sync'>
+        <block atomic="true">
+            <switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-request-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                <outcome value='CreateContrailRouteInstance'>
+                    <block></block>
+                </outcome>
+                <outcome value='DeleteContrailRouteInstance'>
+                    <block></block>
+                </outcome>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="request-information.request-action is a required input" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Invalid request-information.request-action " />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$contrail-route-topology-operation-input.service-information.service-instance-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$contrail-route-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-type`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-type is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="contrail-route-information.onap-model-information.model-customization-uuid is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.source-network.network-role is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.dest-network.network-role`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="contrail-topology-operation-input.contrail-route-request-input.dest-network.network-role is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="contrail-route-topology-operation-input.contrail-route-request-input.contrail-applied-service-info.service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'
+  pfx='ar-model'>
+                                        <outcome value='not-found'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'No alloted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='failure'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'No alloted resource model found for model customization UUID ' + $contrail-route-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />
+                                            </return>
+                                        </outcome>
+                                    </get-resource>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=assign" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='create'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateNetworkInstance for svc-action=create" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateContrailRouteInstance for svc-action=activate" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=deactivate" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='delete'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=delete" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <switch test='`$contrail-route-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteContrailRouteInstance'>
+                                <block atomic="true">
+                                    <switch test='`$contrail-route-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteContrailRouteInstance for svc-action=unassign" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-generic-configuration-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-generic-configuration-input.xml
new file mode 100755 (executable)
index 0000000..cc1bc1a
--- /dev/null
@@ -0,0 +1,108 @@
+<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='validate-generic-configuration-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-data.service-information.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value="`'Service instance ' + $generic-configuration-topology-operation-input.service-information.service-instance-id + ' does not exist'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$generic-configuration-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='CreateGenericConfigurationInstance'>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be CreateGenericConfigurationInstance'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='CreateGenericConfigurationInstance'>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be CreateGenericConfigurationInstance'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeleteGenericConfigurationInstance'>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be DeleteGenericConfigurationInstance'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <switch test='`$generic-configuration-topology-operation-input.request-information.request-action`'>\r
+                        <outcome value='DeleteGenericConfigurationInstance'>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'If svc-action is ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action + ' then request-action must be DeleteGenericConfigurationInstance'`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unsupported svc-action ' + $generic-configuration-topology-operation-input.sdnc-request-header.svc-action`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-getpathsegment-input.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_validate-getpathsegment-input.xml
new file mode 100755 (executable)
index 0000000..3489544
--- /dev/null
@@ -0,0 +1,107 @@
+<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='validate-getpathsegment-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$getpathsegment-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.onap-model-information.model-uuid is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.onap-model-information.model-invariant-uuid is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$getpathsegment-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='create'>\r
+                    <block atomic="true">\r
+                        <switch test='`$getpathsegment-topology-operation-input.request-information.request-action`'>\r
+                            <outcome value='CreateForwardingPathInstance'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.subscription-service-type is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE service_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid'\r
+  pfx='db.service-model'>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="System error reading SERVICE_MODEL table" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No service model found for service UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from SERVICE_MODEL WHERE invariant_uuid = $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid'\r
+  pfx='db.service-model'>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="System error reading SERVICE_MODEL table" />\r
+                                </return>\r
+                            </outcome>\r
+                            <outcome value='not-found'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No service model found for invariant UUID ' + $getpathsegment-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index db1a73b..3b30094 100644 (file)
                             <outcome value='CreateNetworkInstance'>\r
                                 <block atomic="true">\r
                                     <switch test='`$network-topology-operation-input.network-information.network-id`'>\r
-                                        <outcome value=''></outcome>\r
+                                        <outcome value=''>\r
+                                            <return status='success'>\r
+                                                <parameter name='' value='' />\r
+                                            </return>\r
+                                        </outcome>\r
                                         <outcome value='Other'>\r
                                             <block>\r
                                                 <switch test='`$service-data.networks.network_length`'>\r
                                                     <outcome value=''>\r
-                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                        <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
                                                             <parameter name="logger" value="message-log"/>\r
                                                             <parameter name="field1" value="__TIMESTAMP__"/>\r
                                                             <parameter name="field2" value="GENERIC-RESOURCE-API.validate-network-input"/>\r
                                                                         <block atomic="true">\r
                                                                             <set>\r
                                                                                 <parameter name='tmp.nidx' value='`$nidx`' />\r
-                                                                                <parameter name='ctx.network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                                                <parameter name='network-data.' value='`$service-data.networks.network[$nidx].`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-information.network-instance-group-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='success'>\r
+                                                <parameter name='' value='' />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <switch test='`$service-data.network-instance-groups.network-instance-group_length`'>\r
+                                                    <outcome value=''>\r
+                                                        <record plugin="com.att.sdnctl.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.validate-network-input"/>\r
+                                                            <parameter name="field3" value="`$network-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Network instance group id proveded but no network instance group exists that matches"/>\r
+                                                            <parameter name="field5" value="`$network-topology-operation-input.network-information.network-instance-group-id`"/>\r
+                                                        </record>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block atomic="true">\r
+                                                            <for index='ngidx' start='0' end='`$service-data.network-instance-groups.network-instance-_length`' >\r
+                                                                <switch test="`$service-data.network-instance-groups.network-instance-group[$nidx].network-instance-group-id == $network-topology-operation-input.network-information.network-instance-group-id`">\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='tmp.ngidx' value='`$ngidx`' />\r
+                                                                                <parameter name='ctx.network-instance-group-data.' value='`$service-data.network-instance-groups.network-instance-group[$ngidx].`' />\r
                                                                             </set>\r
                                                                         </block>\r
                                                                     </outcome>\r
                                                                 </switch>\r
                                                             </for>\r
-                                                            <switch test="`$tmp.nidx`">\r
-                                                                <outcome value=''>\r
-                                                                    <return status='failure'>\r
-                                                                        <parameter name='ack-final' value='Y'/>\r
-                                                                        <parameter name="error-code" value="500" />\r
-                                                                        <parameter name="error-message" value="network-topology-operation-input.network-request-input.network-id not found in service-data" />\r
-                                                                    </return>\r
-                                                                </outcome>\r
-                                                            </switch>\r
                                                         </block>\r
                                                     </outcome>\r
                                                 </switch>\r
                 <outcome value='activate'>\r
                     <block atomic="true">\r
                         <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                            <outcome value='ActivateSOTNConnectivityInstance'>\r
-                                <block atomic="true"></block>\r
-                            </outcome>\r
-                            <outcome value='ActivateDCINetworkInstance'>\r
-                                <block atomic="true"></block>\r
-                            </outcome>\r
                             <outcome value='CreateNetworkInstance'>\r
                                 <block atomic="true">\r
                                     <switch test='`$network-topology-operation-input.network-information.network-id`'>\r
                         </switch>\r
                     </block>\r
                 </outcome>\r
-                <outcome value='deactivate'>\r
+                <outcome value='changeassign'>\r
                     <block atomic="true">\r
                         <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
-                            <outcome value='DeactivateSOTNConnectivityInstance'>\r
-                                <block atomic="true"></block>\r
+                            <outcome value='CreateNetworkInstance'>\r
+                                <block atomic="true">\r
+                                    <switch test='`$network-topology-operation-input.network-information.network-id`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="service-information.network-information.network-id is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-information.from-preload`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-information.from-preload is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-information.onap-model-information.model-invariant-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-information.onap-model-information.model-invariant-uuid is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-information.onap-model-information.model-customization-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-information.onap-model-information.model-customization-uuid is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-information.onap-model-information.model-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-information.onap-model-information.model-uuid is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-request-input.tenant`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="network-request-input.tenant is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$network-topology-operation-input.network-request-input.aic-cloud-region`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="service-information.network-request-information.aic-cloud-region is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
                             </outcome>\r
-                            <outcome value='DeActivateDCINetworkInstance'>\r
-                                <block atomic="true"></block>\r
+                            <outcome value='Other'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="request-information.request-action is required to be CreateNetworkInstance for svc-action=changeassign" />\r
+                                </return>\r
                             </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <block atomic="true">\r
+                        <switch test='`$network-topology-operation-input.request-information.request-action`'>\r
                             <outcome value='DeleteNetworkInstance'>\r
                                 <block atomic="true">\r
                                     <switch test='`$network-topology-operation-input.network-information.network-id`'>\r
             </return>\r
         </block>\r
     </method>\r
-</service-logic>\r
+</service-logic>
\ No newline at end of file
index 659a793..0aaa7ba 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='validate-security-zone-input' mode='sync'>\r
-<block atomic="true"><switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateSecurityZoneInstance'><block>\r
-</block></outcome><outcome value='DeleteSecurityZoneInstance'><block>\r
-</block></outcome><outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required input" />\r
-</return></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Invalid request-information.request-action " />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.service-information.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-type is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="security-zone-information.onap-model-information.model-customization-uuid is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="security-zone-topology-operation-input.security-zone-request-input.vlan-tag is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="security-zone-topology-operation-input.security-zone-request-input.trusted-network-role is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="security-zone-operation-input.security-zone-request-input.untrusted-network-role is a required input" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'\r
-  pfx='ar-model'>\r
-\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No allotted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No allotted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=assign" />\r
-</return></outcome></switch></block></outcome><outcome value='create'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=create" />\r
-</return></outcome></switch></block></outcome><outcome value='activate'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=activate" />\r
-</return></outcome></switch></block></outcome><outcome value='deactivate'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=deactivate" />\r
-</return></outcome></switch></block></outcome><outcome value='delete'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch><switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=delete" />\r
-</return></outcome></switch></block></outcome><outcome value='unassign'><block atomic="true"><switch test='`$security-zone-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteSecurityZoneInstance'><block atomic="true"><switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />\r
-</return></outcome></switch></block></outcome><outcome value='Other'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=unassign" />\r
-</return></outcome></switch></block></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
+    <method rpc='validate-security-zone-input' mode='sync'>
+        <block atomic="true">
+            <switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-request-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                <outcome value='CreateSecurityZoneInstance'>
+                    <block></block>
+                </outcome>
+                <outcome value='DeleteSecurityZoneInstance'>
+                    <block></block>
+                </outcome>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="request-information.request-action is a required input" />
+                    </return>
+                </outcome>
+                <outcome value='Other'>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="Invalid request-information.request-action " />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$security-zone-topology-operation-input.service-information.service-instance-id`'>
+                <outcome value=''>
+                    <return status='failure'>
+                        <parameter name='ack-final' value='Y'/>
+                        <parameter name="error-code" value="500" />
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />
+                    </return>
+                </outcome>
+            </switch>
+            <switch test='`$security-zone-topology-operation-input.sdnc-request-header.svc-action`'>
+                <outcome value='assign'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-type`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-type is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="security-zone-information.onap-model-information.model-customization-uuid is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.security-zone-request-input.vlan-tag`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="security-zone-topology-operation-input.security-zone-request-input.vlan-tag is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.security-zone-request-input.trusted-network-role`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="security-zone-topology-operation-input.security-zone-request-input.trusted-network-role is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.security-zone-request-input.untrusted-network-role`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="security-zone-operation-input.security-zone-request-input.untrusted-network-role is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'
+  key='SELECT * from ALLOTTED_RESOURCE_MODEL WHERE customization_uuid = $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid'
+  pfx='ar-model'>
+                                        <outcome value='not-found'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'No alloted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />
+                                            </return>
+                                        </outcome>
+                                        <outcome value='failure'>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'No alloted resource model found for model customization UUID ' + $security-zone-topology-operation-input.allotted-resource-information.onap-model-information.model-customization-uuid`" />
+                                            </return>
+                                        </outcome>
+                                    </get-resource>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=assign" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='create'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=create" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='activate'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='CreateSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be CreateSecurityZoneInstance for svc-action=activate" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='deactivate'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=deactivate" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='delete'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.parent-service-instance-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.parent-service-instance-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=delete" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+                <outcome value='unassign'>
+                    <block atomic="true">
+                        <switch test='`$security-zone-topology-operation-input.request-information.request-action`'>
+                            <outcome value='DeleteSecurityZoneInstance'>
+                                <block atomic="true">
+                                    <switch test='`$security-zone-topology-operation-input.allotted-resource-information.allotted-resource-id`'>
+                                        <outcome value=''>
+                                            <return status='failure'>
+                                                <parameter name='ack-final' value='Y'/>
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="allotted-resource-information.allotted-resource-id is a required input" />
+                                            </return>
+                                        </outcome>
+                                    </switch>
+                                </block>
+                            </outcome>
+                            <outcome value='Other'>
+                                <return status='failure'>
+                                    <parameter name='ack-final' value='Y'/>
+                                    <parameter name="error-code" value="500" />
+                                    <parameter name="error-message" value="request-information.request-action is a required to be DeleteSecurityZoneInstance for svc-action=unassign" />
+                                </return>
+                            </outcome>
+                        </switch>
+                    </block>
+                </outcome>
+            </switch>
+            <return status='success'>
+                <parameter name="ack-final-indicator" value="Y" />
+                <parameter name="error-code" value="200" />
+                <parameter name="error-message" value="`$error-message`" />
+            </return>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index 6b94ecb..ca1c3a4 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='validate-service-input' mode='sync'>\r
-<block atomic="true"><switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.request-information.request-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<block atomic="true"><switch test='`$service-topology-operation-input.service-information.service-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.service-id is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.service-information.subscription-service-type`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.subscription-service-type is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.service-information.global-customer-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.global-customer-id is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.onap-model-information.model-invariant-uuid is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.onap-model-information.model-uuid is a required input" />\r
-</return></outcome></switch><switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.onap-model-information.model-name is a required input" />\r
-</return></outcome></switch></block></outcome></switch></block></method></service-logic>
+<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='validate-service-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$service-topology-operation-input.service-information.subscription-service-type`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.subscription-service-type is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.global-customer-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.global-customer-id is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-invariant-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-name is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-invariant-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-invariant-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$service-topology-operation-input.service-information.onap-model-information.model-name`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="service-information.onap-model-information.model-name is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index e28fa14..fd660a9 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='validate-vf-module-input' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="request-information.request-action is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.service-information.service-instance-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vnf-information.vnf-id is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vf-module-information.vf-module-id is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vf-module-information.vf-module-request-input.vf-module-name is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vf-module-information.onap-model-information.model-customization-uuid is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-request-input.tenant`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vf-module-information.vf-module-request-input.tenant is a required input" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="vf-module-request-input.aic-cloud-region is a required input" />\r
-</return></outcome></switch></block></outcome></switch></block></method></service-logic>
+<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='validate-vf-module-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.service-information.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-information.vnf-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vf-module-information.vf-module-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vf-module-information.onap-model-information.model-customization-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-request-input.tenant`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vf-module-information.vf-module-request-input.tenant is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vf-module-request-input.aic-cloud-region is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`'>\r
+                        <outcome value=''>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="vf-module-information.onap-model-information.model-customization-uuid is a required input" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 744ab37..12d891d 100644 (file)
@@ -1,77 +1,99 @@
-<service-logic
-    xmlns='http://www.onap.org/sdnc/svclogic'
-    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
-    <method rpc='validate-vnf-input' mode='sync'>
-        <block atomic="true">
-            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-request-id`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="request-information.request-action is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$vnf-topology-operation-input.service-information.service-instance-id`'>
-                <outcome value=''>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />
-                    </return>
-                </outcome>
-            </switch>
-            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value='assign'>
-                    <block atomic="true">
-                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>
-                            <outcome value=''>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="vnf-information.onap-model-information.model-customization-uuid is a required input" />
-                                </return>
-                            </outcome>
-                        </switch>
-                        <switch test='`$vnf-topology-operation-input.vnf-request-input.tenant`'>
-                            <outcome value=''>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="vnf-information.vnf-request-input.tenant is a required input" />
-                                </return>
-                            </outcome>
-                        </switch>
-                        <switch test='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>
-                            <outcome value=''>
-                                <return status='failure'>
-                                    <parameter name='ack-final' value='Y'/>
-                                    <parameter name="error-code" value="500" />
-                                    <parameter name="error-message" value="vnf-request-input.aic-cloud-region is a required input" />
-                                </return>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-            </switch>
-        </block>
-    </method>
-</service-logic>
+<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='validate-vnf-input' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-request-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="sdnc-request-header.svc-request-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="request-information.request-action is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.service-information.service-instance-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="service-information.service-instance-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="vnf-information.vnf-id is a required input" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-information.onap-model-information.model-customization-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-request-input.tenant`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-information.vnf-request-input.tenant is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-request-input.aic-cloud-region is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <block atomic="true">\r
+                        <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="vnf-information.onap-model-information.model-customization-uuid is a required input" />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-assign-rollback.xml
new file mode 100755 (executable)
index 0000000..edbbcca
--- /dev/null
@@ -0,0 +1,188 @@
+<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='vf-module-topology-assign-rollback' mode='sync'>\r
+        <block>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='1'>\r
+                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+                                        </set>\r
+                                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+                                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                            <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                        </execute>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+                                <outcome value='true'>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+                                                </set>\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                                    <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                                </execute>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value=''>\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+                                <outcome value='true'>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.status' value="`'PENDING_DELETE_' + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`" />\r
+                                                </set>\r
+                                                <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id" ></update>\r
+                                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                                    <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                                </execute>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload`'>\r
+                <outcome value='false'>\r
+                    <block>\r
+                        <set>\r
+                            <parameter name='tmp.status' value="`'PENDING_DELETE_' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
+                        </set>\r
+                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $vf-module-topology-operation-input.vf-module-information.vf-module-id" ></update>\r
+                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                            <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                        </execute>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='true'>\r
+                    <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                        </set>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <block>\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
+                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].created_flag`'>\r
+                            <outcome value='true'>\r
+                                <delete 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" ></delete>\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
+                        <block>\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag`'>\r
+                                <outcome value='true'>\r
+                                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vf-module:relationship-list"\r
+    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+      AND related-to = l3-network\r
+      AND l3-network.network-id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id" ></delete>\r
+                                </outcome>\r
+                            </switch>\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>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag`'>\r
+                                        <outcome value='true'>\r
+                                            <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+   resource="vip-ipv4-address-list" \r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" ></delete>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag`'>\r
+                                        <outcome value='true'>\r
+                                            <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
+                                                <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+   resource="vip-ipv6-address-list" \r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" ></delete>\r
+                                            </for>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-id\r
+  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+                            <outcome value='true'>\r
+                                <for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\r
+                                    <set>\r
+                                        <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\r
+  value='' />\r
+                                        <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\r
+  value='unassigned' />\r
+                                    </set>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index b937307..d7f4ddd 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vf-module-topology-operation-activate' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVfModuleInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'activate' then request-action must be 'CreateVfModuleInstance'" />\r
-</return></outcome></switch><set>\r
-<parameter name='vnf-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for></outcome></switch><switch test='`$vnf-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='vf-module-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vf-module-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for></outcome></switch><switch test='`$vf-module-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\r
-<outcome value='PendingCreate'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status + ' instead of PendingCreate'`" />\r
-</return></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+<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='vf-module-topology-operation-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVfModuleInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'activate' then request-action must be 'CreateVfModuleInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vf-module-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vf-module-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-activate' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="vf-module"\r
    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<parameter name="orchestration-status" value="Active" />\r
-<outcome value='failure'>\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 updating vf-module in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\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
-</return></outcome></update><update resource='SQL' force='true' plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
+                <parameter name="orchestration-status" value="Active" />\r
+                <outcome value='failure'>\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 updating vf-module in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\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
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <for silentFailure='true' index='vm-type-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vnfc"\r
+   key="vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="orchestration-status" value="Active" />\r
+                        <parameter name="prov-status" value="NVTPROV" />\r
+                        <outcome value='failure'>\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 updating vnfc in AAI" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'No vnfc found in AAI for vnfc name ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </update>\r
+                </for>\r
+            </for>\r
+            <update resource='SQL' force='true' plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
   key='UPDATE EIPAM_IP_ASSIGNMENTS SET status = "ACTIVE" WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'>\r
-<outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+                <outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
    value='$vf-module-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
    value='$vf-module-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
    value='$vf-module-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
    value='$vf-module-topology-operation-input.vf-module-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
   value='Created' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-vfmoduleactivate.log' />\r
+            </execute>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-no-preload.xml
new file mode 100755 (executable)
index 0000000..fd1ca63
--- /dev/null
@@ -0,0 +1,1302 @@
+<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='vf-module-topology-operation-assign-no-preload' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload' value='false' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-module-to-vfc-mapping[]'>\r
+                <outcome value='failure'>\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 reading VF_MODULE_TO_VFC_MAPPING table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\r
+  value='`$db.vf-module-to-vfc-mapping_length`' />\r
+            </set>\r
+            <for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\r
+                <block atomic="true">\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
+  pfx='db.vfc-model'>\r
+                        <outcome value='failure'>\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 reading VFC_MODEL table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">\r
+                        <outcome value='false'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                    <switch test="$db.vfc-model.naming-policy">\r
+                        <outcome value=''>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'naming_policy is null for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </switch>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\r
+   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\r
+   value='`$db.vfc-model.nfc-naming-code`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\r
+   value='`$db.vfc-model.vm-type-tag`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\r
+   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
+                        <!-- Context variables used when creating vnfc object in AAI -->\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid'\r
+   value='`$db.vfc-model.invariant-uuid`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function'\r
+   value='`$db.vfc-model.nfc-function`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid'\r
+   value='`$db.vfc-model.uuid`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\r
+  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length'\r
+  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
+                    </set>\r
+                    <for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vfc-model.customization-uuid`' />\r
+                                <parameter name='naming-policy-generate-name-input.vnf-name' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
+                                <outcome value='failure'>\r
+                                    <block atomic="true">\r
+                                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                            <block>\r
+                                                <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\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
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </for>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Unable to generate VM name: ' + $error-message`" />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]'\r
+  value='`$naming-policy-generate-name-output.vm-name`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </call>\r
+                            <set>\r
+                                <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\r
+                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vf-module-customization-uuid`' />\r
+                                <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                                <parameter name='naming-policy-generate-name-input.vnf-name' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\r
+                                <parameter name='naming-policy-generate-name-input.vm-name' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`' />\r
+                            </set>\r
+                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
+                                <outcome value='failure'>\r
+                                    <block atomic="true">\r
+                                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                            <block>\r
+                                                <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\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
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </for>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Unable to generate VNFC name: ' + $error-message`" />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='success'>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\r
+  value='`$naming-policy-generate-name-output.vnfc-name`' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </call>\r
+                        </block>\r
+                    </for>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
+  pfx='db.vfc-to-network-role-mapping[]'>\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                    <block>\r
+                                        <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\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
+                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </block>\r
+                                </for>\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 reading VFC_TO_NETWORK_ROLE_MAPPING table" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <set>\r
+                                <parameter name='db.vfc-to-network-role-mapping_length' value='0' />\r
+                            </set>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='network-index' value='-1' />\r
+                            </set>\r
+                            <for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\r
+                                <switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='network-index' value='`$idx`' />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <switch test='`$network-index`'>\r
+                                <outcome value='-1'>\r
+                                    <block atomic="true">\r
+                                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                            <block>\r
+                                                <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\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
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </for>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`" />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <!--This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing-->\r
+                            <set>\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\r
+  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
+                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\r
+                            </set>\r
+                            <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
+                                <outcome value=''>\r
+                                    <set>\r
+                                        <parameter name='network-information-index' value='-1' />\r
+                                    </set>\r
+                                </outcome>\r
+                                <outcome value='4'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='network-information-index' value='0' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
+   value='ipv4' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
+                                <outcome value=''>\r
+                                    <block></block>\r
+                                </outcome>\r
+                                <outcome value='6'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='network-information-index' value='`$network-information-index + 1`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
+   value='ipv6' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
+   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </block>\r
+                    </for>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='`$db.vfc-to-network-role-mapping_length`' />\r
+                    </set>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='auto-ip-assignment-input.aic-cloud-region'\r
+  value='`$tmp.vf-module-topology.aic-cloud-region`' />\r
+                <parameter name='auto-ip-assignment-input.vf-module.model-customization-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                <parameter name='auto-ip-assignment-input.vf-module-id'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                <parameter name='auto-ip-assignment-input.service-instance-id'\r
+  value='`$service-data.service-information.service-instance-id`' />\r
+                <parameter name='auto-ip-assignment-input.service-type'\r
+  value='`$service-data.service-information.service-type`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' />\r
+            </set>\r
+            <for index='vm-type-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <block>\r
+                    <set>\r
+                        <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-type'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type`' />\r
+                        <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' />\r
+                    </set>\r
+                    <for index='vm-name-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                        <block>\r
+                            <set>\r
+                                <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vm-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-name-index]`' />\r
+                                <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vnfc-names_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' />\r
+                            </set>\r
+                            <for index='vnfc-name-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                                <set>\r
+                                    <parameter name='tmp.vnf-topology.vnf-assignments.vnf-vms[$vm-type-index].vm-names[$vm-name-index].vnfc-names[$vnfc-name-index].vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-name`' />\r
+                                </set>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='auto-ip-assignment-input.vnf-topology.vnf-assignments.' \r
+  value='tmp.vnf-topology.vnf-assignments.' />\r
+            </set>\r
+            <call module='GENERIC-RESOURCE-API' rpc='auto-ip-assignment' mode='sync' >\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                            <block>\r
+                                <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\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
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                        <outcome value=''>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                </set>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                            </block>\r
+                        </for>\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="`'Failure in call to auto-ip-assignment: ' + $error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </call>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-no-preload.log' />\r
+            </execute>\r
+            <for silentFailure='true' index='plan-index' start='0' end='`$eipam-ip-block.plans_length`' >\r
+                <for silentFailure='true' index='req-index' start='0' end='`$eipam-ip-block.plans[$plan-index].requests_length`' >\r
+                    <block atomic="true">\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                            <parameter name='ctx_memory_result_key' value='ck-split' />\r
+                            <parameter name='original_string' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].client-key`' />\r
+                            <parameter name='regex' value='\|' />\r
+                        </execute>\r
+                        <set>\r
+                            <parameter name='tmp.vm-type' value='`$ck-split[0]`' />\r
+                            <parameter name='tmp.vnfc-name' value='`$ck-split[1]`' />\r
+                            <parameter name='tmp.network-role' value='`$ck-split[2]`' />\r
+                            <parameter name='tmp.subnet-role' value='`$ck-split[3]`' />\r
+                            <parameter name='tmp.address-family' value='`$ck-split[5]`' />\r
+                            <parameter name='tmp.ip-type' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].ip-type`' />\r
+                            <parameter name='tmp.client-key' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].client-key`' />\r
+                            <parameter name='tmp.ip-prefix' value='`$eipam-ip-block.plans[$plan-index].requests[$req-index].ip-prefix`' />\r
+                        </set>\r
+                        <switch test='`$tmp.subnet-role`'>\r
+                            <outcome value=''>\r
+                                <set>\r
+                                    <parameter name='tmp.subnet-role' value='NONE' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$tmp.address-family`'>\r
+                            <outcome value='4'>\r
+                                <set>\r
+                                    <parameter name='tmp.address-family' value='ipv4' />\r
+                                </set>\r
+                            </outcome>\r
+                            <outcome value='6'>\r
+                                <set>\r
+                                    <parameter name='tmp.address-family' value='ipv6' />\r
+                                </set>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name='found-vm-type' value='false' />\r
+                        </set>\r
+                        <for index='vm-type-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type\r
+  == $tmp.vm-type`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='found-vm-type' value='true' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$found-vm-type`'>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <block>\r
+                                        <block>\r
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ></update>\r
+                                        </block>\r
+                                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                            <block>\r
+                                                <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\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
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                    <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                </set>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </for>\r
+                                    </block>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`'EIPAM returned vm-type ' + $tmp.vm-type + ' but could not find that under vf-module-assignments'`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$tmp.ip-type`'>\r
+                            <outcome value='FIXED'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='found-vnfc-name' value='false' />\r
+                                    </set>\r
+                                    <for silentFailure='true' index='vnfc-name-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-name\r
+  == $tmp.vnfc-name`'>\r
+                                            <outcome value='true'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='found-vnfc-name' value='true' />\r
+                                                    </set>\r
+                                                    <break/>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test='`$found-vnfc-name`'>\r
+                                        <outcome value='false'>\r
+                                            <block atomic="true">\r
+                                                <block>\r
+                                                    <block>\r
+                                                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ></update>\r
+                                                    </block>\r
+                                                    <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                                        <block>\r
+                                                            <for silentFailure='true' index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length`' >\r
+                                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`'>\r
+                                                                    <outcome value=''>\r
+                                                                        <block></block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='Other'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VM' />\r
+                                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\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
+                                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                                    <outcome value=''>\r
+                                                                        <block></block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='Other'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                            </set>\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="`'EIPAM returned VNFC name ' + $tmp.vnfc-name + ' but could not find that under vf-module-assignments for vm-type ' + $tmp.vm-type`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`'>\r
+                                        <outcome value=''>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-subnet-role'\r
+  value='`$tmp.subnet-role`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-address-family'\r
+  value='`$tmp.address-family`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\r
+  value='FIXED' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='0'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-subnet-role'\r
+  value='`$tmp.subnet-role`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments_length' value='1' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-address-family'\r
+  value='`$tmp.address-family`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[0].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\r
+  value='FIXED' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='found-network-role' value='false' />\r
+                                                </set>\r
+                                                <for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`' >\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role\r
+  == $tmp.network-role`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='found-network-role' value='true' />\r
+                                                                </set>\r
+                                                                <break/>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <switch test='`$found-network-role`'>\r
+                                                    <outcome value='false'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='network-role-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data_length'\r
+  value='`$network-role-index + 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length' value='1' />\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-subnet-role'\r
+  value='`$tmp.subnet-role`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments_length' value='1' />\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-address-family'\r
+  value='`$tmp.address-family`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[0].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\r
+  value='FIXED' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='found-subnet-role' value='false' />\r
+                                                            </set>\r
+                                                            <for index='subnet-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' >\r
+                                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role\r
+  == $tmp.subnet-role`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='found-subnet-role' value='true' />\r
+                                                                            </set>\r
+                                                                            <break/>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                            <switch test='`$found-subnet-role`'>\r
+                                                                <outcome value='false'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='subnet-role-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role'\r
+  value='`$tmp.subnet-role`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet_length'\r
+  value='`$subnet-role-index + 1`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length' value='1' />\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-address-family'\r
+  value='`$tmp.address-family`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip_length' value='1' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[0].vnfc-subnet-ip[0].ip-type'\r
+  value='FIXED' />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='found-address-family' value='false' />\r
+                                                                        </set>\r
+                                                                        <for index='address-family-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' >\r
+                                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-subnet-role\r
+  == $tmp.address-family`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <set>\r
+                                                                                            <parameter name='found-address-family' value='true' />\r
+                                                                                        </set>\r
+                                                                                        <break/>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </for>\r
+                                                                        <switch test='`$found-address-family`'>\r
+                                                                            <outcome value='false'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='address-family-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length`' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family'\r
+  value='`$tmp.address-family`' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments_length'\r
+  value='`$address-family-index + 1`' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length' value='1' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[0].ip-type'\r
+  value='FIXED' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='ip-address-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-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
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].vnfc-ip-address'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].vnfc-client-key'\r
+  value='`$tmp.client-key`' />\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-index].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-address-index].ip-type'\r
+  value='FIXED' />\r
+                                                                                    </set>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-name-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
+  value='`$ip-address-length + 1`' />\r
+                                                                                    </set>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='VIP'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='tmp.network-role' value='`$ck-split[1]`' />\r
+                                        <parameter name='tmp.subnet-role' value='`$ck-split[2]`' />\r
+                                        <parameter name='tmp.address-family' value='`$ck-split[4]`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.vm-network-index' value='-1' />\r
+                                    </set>\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`'>\r
+                                        <outcome value=''>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vm-network-index' value='0' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='1' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='0'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vm-network-index' value='0' />\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='1' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <for silentFailure='true' index='vm-network-index' start='0'\r
+  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[$vm-network-index].network-role\r
+  == $tmp.network-role`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.vm-network-index' value='`$vm-network-index`' />\r
+                                                                </set>\r
+                                                                <break/>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <switch test='`$tmp.vm-network-index`'>\r
+                                                    <outcome value='-1'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vm-network-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='`$tmp.vm-network-index + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$tmp.address-family`'>\r
+                                        <outcome value='4'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length`' />\r
+                                                </set>\r
+                                                <switch test='`$tmp.length`'>\r
+                                                    <outcome value=''>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length'\r
+  value='1' />\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4[0]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length'\r
+  value='1' />\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4[0]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$tmp.length]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v4_length'\r
+  value='`$tmp.length + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='6'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='tmp.length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length`' />\r
+                                                </set>\r
+                                                <switch test='`$tmp.length`'>\r
+                                                    <outcome value=''>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length'\r
+  value='1' />\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6[0]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='0'>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length'\r
+  value='1' />\r
+                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6[0]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                        </set>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6[$tmp.length]'\r
+  value='`$tmp.ip-prefix`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].floating-ips.floating-ip-v6_length'\r
+  value='`$tmp.length + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-no-preload2.log' />\r
+            </execute>\r
+            <for silentFailure='true' index='vm-type-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for silentFailure='true' index='vnfc-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                    <for silentFailure='true' index='vnfc-network-index' start='0'\r
+  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>\r
+                            <set>\r
+                                <parameter name='tmp.network-role'\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[$vnfc-network-index].vnfc-network-role`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='tmp.vm-network-index' value='-1' />\r
+                            </set>\r
+                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`'>\r
+                                <outcome value=''>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vm-network-index' value='0' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='1' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='0'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vm-network-index' value='0' />\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='1' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[0].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='Other'>\r
+                                    <block>\r
+                                        <for silentFailure='true' index='vm-network-index' start='0'\r
+  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[$vm-network-index].network-role\r
+  == $tmp.network-role`'>\r
+                                                <outcome value='true'>\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='tmp.vm-network-index' value='`$vm-network-index`' />\r
+                                                        </set>\r
+                                                        <break/>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                        <switch test='`$tmp.vm-network-index`'>\r
+                                            <outcome value='-1'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vm-network-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-role'\r
+  value='`$tmp.network-role`' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
+  value='`$tmp.vm-network-index + 1`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <for index='vnfc-subnet-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet_length`' >\r
+                                <for index='address-family-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments_length`' >\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.ip-version'\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[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-address-family`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.nii-index' value='-1' />\r
+                                        </set>\r
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`'>\r
+                                            <outcome value=''>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.nii-index' value='0' />\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[0].ip-version'\r
+  value='`$tmp.ip-version`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='0'>\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.nii-index' value='0' />\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                    </set>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[0].ip-version'\r
+  value='`$tmp.ip-version`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block>\r
+                                                    <for silentFailure='true' index='nii-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`' >\r
+                                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$nii-index].ip-version\r
+  == $tmp.ip-version`'>\r
+                                                            <outcome value='true'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.nii-index' value='`$nii-index`' />\r
+                                                                    </set>\r
+                                                                    <break/>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </for>\r
+                                                    <switch test='`$tmp.nii-index`'>\r
+                                                        <outcome value='-1'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.nii-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length`' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].ip-version'\r
+  value='`$tmp.ip-version`' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item_length'\r
+  value='`$tmp.nii-index + 1`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length`'>\r
+                                            <outcome value=''>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ip-index' value='0' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='0'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ip-index' value='0' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <set>\r
+                                                    <parameter name='tmp.ip-index'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length`' />\r
+                                                </set>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <for silentFailure='true' index='ip-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' >\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='target-index' value='`$ip-index + $tmp.ip-index`' />\r
+                                                </set>\r
+                                                <set>\r
+                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip[$target-index]'\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[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip[$ip-index].vnfc-ip-address`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </for>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].network-ips.network-ip_length'\r
+  value='`$tmp.ip-index + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$tmp.vm-network-index].network-information-items.network-information-item[$tmp.nii-index].ip-count'\r
+  value='`$tmp.ip-index + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vnfc-network-index].vnfc-subnet[$vnfc-subnet-index].vnfc-ip-assignments[$address-family-index].vnfc-subnet-ip_length`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </for>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-no-preload3.log' />\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-assign-preload.xml
new file mode 100755 (executable)
index 0000000..879f000
--- /dev/null
@@ -0,0 +1,559 @@
+<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='vf-module-topology-operation-assign-preload' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.from-preload' value='true' />\r
+            </set>\r
+            <set>\r
+                <parameter name='tmp.vf-module-topology.'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vf-module-topology.`' />\r
+            </set>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-module-to-vfc-mapping[]'>\r
+                <outcome value='failure'>\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 reading VF_MODULE_TO_VFC_MAPPING table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <set>\r
+                        <parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\r
+                    </set>\r
+                </outcome>\r
+            </get-resource>\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
+                    <set>\r
+                        <parameter name='db-vm-type-index' value='-1' />\r
+                    </set>\r
+                    <for index='tmp-idx' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\r
+                        <switch test='`$db.vf-module-to-vfc-mapping[$tmp-idx].vm-type\r
+  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='db-vm-type-index' value='`$tmp-idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                    <switch test='`$db-vm-type-index`'>\r
+                        <outcome value='-1'>\r
+                            <block atomic="true">\r
+                                <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                            <outcome value=''>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </for>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Preload data contains vm-type ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type + ' but VF_MODULE_TO_VFC_MAPPING table does not have this vm-type'`" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
+  pfx='db.vfc-model'>\r
+                        <outcome value='failure'>\r
+                            <block atomic="true">\r
+                                <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                            <outcome value=''>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </for>\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 reading VFC_MODEL table" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic="true">\r
+                                <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                            <outcome value=''>\r
+                                                <block></block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </for>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
+                                </return>\r
+                            </block>\r
+                        </outcome>\r
+                    </get-resource>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\r
+  value='`$db.vfc-model.nfc-naming-code`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-function'\r
+  value='`$db.vfc-model.nfc-function`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].invariant-uuid'\r
+  value='`$db.vfc-model.invariant-uuid`' />\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].uuid'\r
+  value='`$db.vfc-model.uuid`' />\r
+                    </set>\r
+                    <set>\r
+                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' />\r
+                    </set>\r
+                    <switch test='`$db.vfc-model.naming-policy`'>\r
+                        <outcome value=''>\r
+                            <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-type-index]`' />\r
+                                </set>\r
+                            </for>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vfc-model.naming-policy`' />\r
+                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.query-parameter' value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vf-module-customization-uuid`' />\r
+                                        <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                                        <parameter name='naming-policy-generate-name-input.vnf-name' value='`$vf-module-topology-operation-input.vnf-information.vnf-id`' />\r
+                                        <parameter name='naming-policy-generate-name-input.vm-name' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]`' />\r
+                                    </set>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <block atomic="true">\r
+                                                <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                            <outcome value=''>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                    </set>\r
+                                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </for>\r
+                                                </for>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="`'Unable to generate VNFC name: ' + $error-message`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-index].vnfc-name'\r
+  value='`$naming-policy-generate-name-output.vnfc-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </call>\r
+                                </block>\r
+                            </for>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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>\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_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' />\r
+                        </set>\r
+                        <for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                            <block>\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[$vm-network-index].vnfc-network-role'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
+                                </set>\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[$vm-network-index].vnfc-subnet[0].vnfc-subnet-role'\r
+  value='NA' />\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[$vm-network-index].vnfc-subnet_length'\r
+  value='1' />\r
+                                </set>\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item_length`' />\r
+                                </set>\r
+                                <for silentFailure='true' index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item_length`' >\r
+                                    <block>\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-address-family'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-dhcp'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`' />\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ip-count'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\r
+                                        </set>\r
+                                        <for silentFailure='true' index='ip-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip_length`' >\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ips[$ip-index].vnfc-ip-address'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]`' />\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[$vm-network-index].vnfc-subnet[0].vnfc-ip-assignments[$ip-version-index].vnfc-subnet-ips[$ip-index].ip-type'\r
+  value='FIXED' />\r
+                                            </set>\r
+                                        </for>\r
+                                    </block>\r
+                                </for>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-preload-x.log' />\r
+            </execute>\r
+            <for silentFailure='true' index='vnf-network-index' start='0'\r
+  end='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                <block atomic="true">\r
+                    <set>\r
+                        <parameter name='found-network-name' value='false' />\r
+                    </set>\r
+                    <for silentFailure='true' index='ex-vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                        <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-name`'>\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='found-network-name' value='true' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                    <switch test='`$found-network-name`'>\r
+                        <outcome value='true'>\r
+                            <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-role`'>\r
+                                <outcome value='false'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-network-index'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-role'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-name`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].network-id`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].neutron-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].neutron-id`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
+  value='`$cur-vnf-network-index + 1`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='cur-subnet-index' value='0' />\r
+                                        </set>\r
+                                        <switch test="`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[0].sdnc-subnet-id`">\r
+                                            <outcome value=''>\r
+                                                <block atomic="true">\r
+                                                    <for index='ex-subnet-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                        <set>\r
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id`' />\r
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`' />\r
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`' />\r
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`' />\r
+                                                        </set>\r
+                                                    </for>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data_length'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='Other'>\r
+                                                <block atomic="true">\r
+                                                    <for index='subnet-index' start='0'\r
+  end='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='tmp.found-match' value='false' />\r
+                                                            </set>\r
+                                                            <for index='ex-subnet-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].ip-version\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='match' value='true' />\r
+                                                                            </set>\r
+                                                                            <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-id`'>\r
+                                                                                <outcome value=''>\r
+                                                                                    <block></block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='Other'>\r
+                                                                                    <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-id\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`'>\r
+                                                                                        <outcome value='false'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='match' value='false' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-name`'>\r
+                                                                                <outcome value=''>\r
+                                                                                    <block></block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='Other'>\r
+                                                                                    <switch test='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$subnet-index].subnet-name\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`'>\r
+                                                                                        <outcome value='false'>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='match' value='false' />\r
+                                                                                            </set>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <switch test='`$match`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <set>\r
+                                                                                            <parameter name='tmp.found-match' value='true' />\r
+                                                                                        </set>\r
+                                                                                        <break/>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                            <switch test='`$tmp.found-match`'>\r
+                                                                <outcome value='false'>\r
+                                                                    <block atomic="true">\r
+                                                                        <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <block></block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <block atomic="true">\r
+                                                                                            <set>\r
+                                                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                                                            </set>\r
+                                                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                        </for>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                                            <parameter name='filename' value='/var/tmp/bgb-preloadxxx.log' />\r
+                                                                        </execute>\r
+                                                                        <return status='failure'>\r
+                                                                            <parameter name='ack-final' value='Y'/>\r
+                                                                            <parameter name="error-code" value="500" />\r
+                                                                            <parameter name="error-message" value="`'Could not find subnet match for network-name '\r
+      + $mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <set>\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].sdnc-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].sdnc-subnet-id`' />\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-id`' />\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].ip-version'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].ip-version`' />\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data[$cur-subnet-index].subnet-name'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$ex-vnf-network-index].subnets-data.subnet-data[$ex-subnet-index].subnet-name`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='cur-subnet-index' value='`$cur-subnet-index + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].subnets-data.subnet-data_length'\r
+  value='`$cur-subnet-index`' />\r
+                                                    </set>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </outcome>\r
+                        <outcome value='false'>\r
+                            <block atomic="true">\r
+                                <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`'>\r
+                                    <outcome value=''>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-network-index' value='0' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='0'>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-network-index' value='0' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <set>\r
+                                            <parameter name='cur-vnf-network-index'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-role'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-name'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-name`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].network-id'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$cur-vnf-network-index].neutron-id'\r
+  value='`$mdsal-preload.preload-list[0].preload-data.preload-vf-module-topology-information.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].neutron-id`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
+  value='`$cur-vnf-network-index + 1`' />\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/bgb-preload.log' />\r
+            </execute>\r
+            <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for index='vm-network-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
+                        <set>\r
+                            <parameter name='found-network' value='false' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.network-role'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
+                        </set>\r
+                        <for index='vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-role\r
+  == $tmp.network-role`'>\r
+                                <outcome value='true'>\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='found-network' value='true' />\r
+                                        </set>\r
+                                        <break/>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                        </for>\r
+                        <switch test='`$found-network`'>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\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
+                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNFC' />\r
+                                                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                        </set>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </for>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'Unable to find network-id for network with network-role ' + $tmp.network-role`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 143c39a..c68737e 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vf-module-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVfModuleInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+<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='vf-module-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVfModuleInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVfModuleInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
   pfx='db.vf-module-model'>\r
-\r
-<outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='vnf-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for></outcome></switch><switch test='`$vnf-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VNF order status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status + ' but should be Created'`" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='vf-module-index' value='0' />\r
-</set></outcome><outcome value='Other'>\r
-<block>\r
-<set>\r
-<parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
+                <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <block atomic="true">\r
+                <set>\r
+                    <parameter name='tmp.exist.sdnc-model-name' value='false' />\r
+                    <parameter name='tmp.exist.vf_module_label' value='false' />\r
+                </set>\r
+                <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`">\r
+                    <outcome value=''>\r
+                        <set>\r
+                            <parameter name='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length' value='0' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for silentFailure='true' index='p' start='0' end='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param_length`' >\r
+                    <switch test="`$vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.param[$p].name`">\r
+                        <outcome value='sdnc_model_name'>\r
+                            <set>\r
+                                <parameter name='tmp.exist.sdnc-model-name' value='true' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='vf_module_label'>\r
+                            <set>\r
+                                <parameter name='tmp.exist.vf_module_label' value='true' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+            </block>\r
+            <switch test="`$tmp.exist.sdnc-model-name == 'true' and $tmp.exist.vf_module_label == 'true'`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-assign' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='ack-final' value='Y'/>\r
+                                    <parameter name="error-code" value="500" />\r
+                                    <parameter name="error-message" value="`'Failed to create self-serve assignment for vf-module with vf-module-id=' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                        <set>\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+  value='PendingCreate' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+                        </set>\r
+                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                            <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
+                        </execute>\r
+                        <return status='success'>\r
+                            <parameter name="ack-final-indicator" value="Y" />\r
+                            <parameter name="error-code" value="200" />\r
+                            <parameter name="error-message" value="`$error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='false'>\r
+                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT sdnc_model_name from VF_MODEL \r
+       WHERE customization_uuid = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.onap-model-information.model-customization-uuid \r
+       AND sdnc_model_name is not null'\r
+  pfx='db.vf-model-name'>\r
+                        <outcome value='failure'>\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 reading VF_MODEL table" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='success'>\r
+                            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT vf_module_label from VF_MODULE_MODEL \r
+       WHERE vf_customization_uuid = $vf-module-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid\r
+       AND vf_module_label is not null '\r
+  pfx='db.vf-module-label'>\r
+                                <outcome value='success'>\r
+                                    <block atomic="true">\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vf-module-assign' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="`'Failed to create self-serve assignment for vf-module with vf-module-id=' + $vf-module-topology-operation-input.vf-module-information.vf-module-id`" />\r
+                                                </return>\r
+                                            </outcome>\r
+                                        </call>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+  value='PendingCreate' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+                                        </set>\r
+                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                            <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
+                                        </execute>\r
+                                        <return status='success'>\r
+                                            <parameter name="ack-final-indicator" value="Y" />\r
+                                            <parameter name="error-code" value="200" />\r
+                                            <parameter name="error-message" value="`$error-message`" />\r
+                                        </return>\r
+                                    </block>\r
+                                </outcome>\r
+                                <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                                    </return>\r
+                                </outcome>\r
+                                <outcome value='not-found'>\r
+                                    <block atomic="true">\r
+                                        <block atomic="true">\r
+                                            <switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="vf-module-information.vf-module-request-input.vf-module-name is a required input" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='vf-module-index' value='0' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                                                        </set>\r
+                                                        <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                            <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='ack-final' value='Y'/>\r
+                                                                        <parameter name="error-code" value="500" />\r
+                                                                        <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
        + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
-</return></outcome></switch></for></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
    value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
-<parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
-<parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
+                                                <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
+                                                <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
+                                                <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
+                                            </set>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="cloud-region" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
                     cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
         pfx='aai.cloud-region' local-only='false' >\r
-\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cloud region not found in AAI" />\r
-</return></outcome><outcome value='failure'>\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 retrieving cloud region from AAI" />\r
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
-<outcome value='complex'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
-   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
-   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
-   <parameter name='regex' value='/' />\r
-</execute><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="Cloud region not found in AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                                                <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
+                                                    <outcome value='complex'>\r
+                                                        <block atomic="true">\r
+                                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                                <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
+                                                                <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
+                                                                <parameter name='regex' value='/' />\r
+                                                            </execute>\r
+                                                            <set>\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
    value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
-</set><break></break></block></outcome></switch></for><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
-</return></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+                                                            </set>\r
+                                                            <break/>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
+                                                <outcome value=''>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
   value='`$db.vf-module-model.invariant-uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
   value='`$db.vf-module-model.uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
   value='`$db.vf-module-model.version`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
-</set></outcome></switch><switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
-<outcome value=''><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
   value='`$db.vf-module-model.name`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
-</set></outcome></switch><set>\r
-<parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
   value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
   value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
-</set><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VF_MODULE_TO_VFC_MAPPING WHERE vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
-  pfx='db.vf-module-to-vfc-mapping[]'>\r
-\r
-<outcome value='failure'>\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 reading VF_MODULE_TO_VFC_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vf-module-to-vfc-mapping_length' value='0' />\r
-</set></outcome></get-resource><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm_length'\r
-  value='`$db.vf-module-to-vfc-mapping_length`' />\r
-</set><for index='vm-type-index' start='0' end='`$db.vf-module-to-vfc-mapping_length`' >\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VFC_MODEL WHERE customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
-  pfx='db.vfc-model'>\r
-\r
-<outcome value='failure'>\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 reading VFC_MODEL table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No entries found in VFC_MODEL table for customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
-</return></outcome></get-resource><switch test="$db.vfc-model.ecomp-generated-naming == 'Y'">\r
-<outcome value='false'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'ECOMP generated naming is not Y for VFC customization UUID ' + $db.vf-module-to-vfc-mapping[$db-vm-index].vfc_customization_uuid`" />\r
-</return></outcome></switch><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type'\r
-   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-type`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code'\r
-   value='`$db.vfc-model.nfc-naming-code`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type-tag'\r
-   value='`$db.vfc-model.vm-type-tag`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count'\r
-   value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name_length'\r
-  value='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' />\r
-</set><for index='vm-index' start='0' end='`$db.vf-module-to-vfc-mapping[$vm-type-index].vm-count`' >\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='VM_NAME_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vm_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='VM_INSTANCE' />\r
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $db.vfc-model.nfc-naming-code`" />\r
-<parameter name='generate-unique-name-input.index-length' value='3' />\r
-\r
-<!--\r
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-name + $db.vfc-model.nfc-naming-code`" />\r
--->\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' value='`$generate-unique-name-output.generated-name`' />\r
-</set></outcome></call></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from VFC_TO_NETWORK_ROLE_MAPPING WHERE vfc_customization_uuid = $db.vf-module-to-vfc-mapping[$vm-type-index].vfc-customization-uuid'\r
-  pfx='db.vfc-to-network-role-mapping[]'>\r
-\r
-<outcome value='failure'>\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 reading VFC_TO_NETWORK_ROLE_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vfc-to-network-role-mapping_length' value='0' />\r
-</set></outcome></get-resource><for index='network-role-index' start='0' end='`$db.vfc-to-network-role-mapping_length`' >\r
-<block atomic="true"><set>\r
-<parameter name='network-index' value='-1' />\r
-</set><for silentFailure='true' index='idx' start='0' end='`$service-data.networks.network_length`' >\r
-<switch test='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-role == $db.vfc-to-network-role-mapping[$network-role-index].network-role`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='network-index' value='`$idx`' />\r
-</set><break></break></block></outcome></switch></for><switch test='`$network-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No network found in MD-SAL with network-role ' + $db.vfc-to-network-role-mapping[$network-role-index].network-role`" />\r
-</return></outcome></switch><!--This isn't a node in MD-SAL, but we need to save this for later when we are doing EIPAM processing--><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id'\r
-  value='`$service-data.networks.network[$idx].network-data.network-topology.network-topology-identifier-structure.network-id`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-role-tag'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].network-role-tag`' />\r
-</set><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-ip-version`'>\r
-<outcome value=''><set>\r
-<parameter name='network-information-index' value='-1' />\r
-\r
-</set></outcome><outcome value='4'>\r
-<block atomic="true"><set>\r
-<parameter name='network-information-index' value='0' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
-   value='4' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-use-dhcp`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv4-count`' />\r
-</set></block></outcome></switch><switch test='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-ip-version`'>\r
-<outcome value=''><block>\r
-</block></outcome><outcome value='6'>\r
-<block atomic="true"><set>\r
-<parameter name='network-information-index' value='`$network-information-index + 1`' />\r
-</set><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-version'\r
-   value='6' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].use-dhcp'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-use-dhcp`' />\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$network-information-index].ip-count'\r
-   value='`$db.vfc-to-network-role-mapping[$network-role-index].ipv6-count`' />\r
-</set></block></outcome></switch><switch test='`$network-information-index`'>\r
-<outcome value='-1'><block>\r
-</block></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length'\r
-   value='`$network-information-index + 1`' />\r
-</set></outcome></switch></block></for><set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length'\r
-  value='`$db.vfc-to-network-role-mapping_length`' />\r
-</set></block></for><set>\r
-<parameter name='plans-index' value='0' />\r
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<block atomic="true"><for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<block atomic="true"><for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
-<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
-<outcome value='N'>\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNETS WHERE network_id = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\r
-    AND address_family = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version'\r
-  pfx='db.eipam-ip-subnets[]'>\r
-\r
-<outcome value='failure'>\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 reading EIPAM_IP_SUBNETS table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No entries found in EIPAM_IP_SUBNETS table for network ID '\r
-        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id\r
-        + ' and address family ' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='max-level' value='-1' />\r
-</set><for index='subnets-index' start='0' end='`$db.eipam-ip-subnets_length`' >\r
-<block atomic="true"><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $db.eipam-ip-subnets[$subnets-index].entity-id'\r
-  pfx='db.eipam-ip-subnet-keys[]'>\r
-\r
-<outcome value='failure'>\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 reading EIPAM_IP_SUBNET_KEYS table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\r
-        + $db.eipam-ip-subnets[$subnets-index].entity-id`" /></return></outcome></get-resource><for index='keys-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
-<block atomic="true"><switch test='`$db.eipam-ip-subnet-keys[$keys-index].level &gt; $max-level`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='max-level' value='`$db.eipam-ip-subnet-keys[$keys-index].level`' />\r
-<parameter name='selected-entity-id' value='`$db.eipam-ip-subnet-keys[$keys-index].entity-id`' />\r
-<parameter name='selected-plan-name' value='`$db.eipam-ip-subnets[$subnets-index].plan-name`' />\r
-</set></outcome></switch></block></for><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
-  key='SELECT * from EIPAM_IP_SUBNET_KEYS WHERE entity_id = $selected-entity-id order by level'\r
-  pfx='db.eipam-ip-subnet-keys[]'>\r
-\r
-<outcome value='failure'>\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 reading EIPAM_IP_SUBNET_KEYS table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No entries found in EIPAM_IP_SUBNET_KEYS table for entity ID '\r
-        + $selected-entity-id`" /></return></outcome></get-resource><for index='request-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' >\r
-<block atomic="true"><for index='level-index' start='0' end='`$db.eipam-ip-subnet-keys_length`' >\r
-<set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-name'\r
-   value='`$db.eipam-ip-subnet-keys[$level-index].key-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools[$level-index].key-value'\r
-   value='`$db.eipam-ip-subnet-keys[$level-index].key-value`' />\r
-</set></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].pools_length'\r
-   value='`$db.eipam-ip-subnet-keys_length`' />\r
-</set><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='EIPAM_CLIENT_KEY_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='CLIENT_KEY' />\r
-<parameter name='generate-unique-name-input.prefix' value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id + ':' + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version + ':'`" />\r
-<parameter name='generate-unique-name-input.index-length' value='' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome></call><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].client-key'\r
-   value='`$generate-unique-name-output.generated-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].info'\r
-   value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests[$request-index].mask'\r
-   value='32' />\r
-</set></block></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].requests_length'\r
-   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-count`' />\r
-</set></block></for><set>\r
-<parameter name='eipam-ip-block.plans[$plans-index].plan-name' value='`$selected-plan-name`' />\r
-<parameter name='eipam-ip-block.plans[$plans-index].address-family'\r
-   value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].ip-version`' />\r
-</set><set>\r
-<parameter name='plans-index' value='`$plans-index + 1`' />\r
-</set></block></outcome></switch></for></block></for></block></for><set>\r
-<parameter name='eipam-ip-block.plans_length' value='`$plans-index`' />\r
-</set><!--EIPAM plug-in needs this attribute set with this name--><set>\r
-<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
-</set><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress"><outcome value='failure'><return status="failure">\r
-       <parameter name="ack-final" value="Y" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while obtaining new address blocks from EIPAM." />\r
-</return></outcome></execute></outcome></switch><set>\r
-<parameter name='plans-index' value='0' />\r
-</set><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<for index='ip-version-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item_length`' >\r
-<switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].use-dhcp`'>\r
-<outcome value='N'>\r
-<block atomic="true"><for index='ip-index' start='0' end='`$eipam-ip-block.plans[$plans-index].requests_length`' >\r
-<set>\r
-<parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-information-items.network-information-item[$ip-version-index].network-ips.network-ip[$ip-index]'\r
-  value='`$eipam-ip-block.plans[$plans-index].requests[$ip-index].ip-prefix`' />\r
-</set></for><set>\r
-<parameter name='plans-index' value='`$plans-index + 1`' />\r
-</set></block></outcome></switch></for></for></for><set>\r
-<parameter name='vf-module-object-path'\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                                <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" />\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="mdsal-preload" />\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <switch test='`$mdsal-preload.response-code`'>\r
+                                                            <outcome value='404'>\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-no-preload' mode='sync' >\r
+                                                                    <outcome value='failure'>\r
+                                                                        <return status='failure'></return>\r
+                                                                    </outcome>\r
+                                                                </call>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\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 retrieving preload-information" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='success'>\r
+                                                    <block>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-preload' mode='sync' >\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'></return>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </execute>\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
+                                                        <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>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.network-role' 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-network-role`' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='found-network-role' value='false' />\r
+                                                                </set>\r
+                                                                <for index='vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                                                    <switch test='`$tmp.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
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='found-network-role' value='true' />\r
+                                                                                </set>\r
+                                                                                <break/>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </for>\r
+                                                                <switch test='`$found-network-role`'>\r
+                                                                    <outcome value='false'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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"\r
+      value="`'Cannot find VNF network role ' + $tmp.network-role`" />\r
+                                                                            </return>\r
+                                                                        </block>\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].vnfc-networks.vnfc-network-data[$network-role-index].network-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
+                                                                </set>\r
+                                                                <for index='subnet-role-index' start='0'\r
+  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 index='address-family-index' start='0'\r
+  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
+                                                                                <parameter name='tmp.subnet-role'\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-subnet-role`' />\r
+                                                                            </set>\r
+                                                                            <set>\r
+                                                                                <parameter name='found-subnet' value='false' />\r
+                                                                            </set>\r
+                                                                            <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                                <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <switch test='`$tmp.subnet-role\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].subnet-role`'>\r
+                                                                                            <outcome value='true'>\r
+                                                                                                <block>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='found-subnet' value='true' />\r
+                                                                                                    </set>\r
+                                                                                                    <break/>\r
+                                                                                                </block>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <switch test='`$found-subnet`'>\r
+                                                                                <outcome value='false'>\r
+                                                                                    <block atomic="true">\r
+                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for subnet role '\r
+      + $tmp.subnet-role`" />\r
+                                                                                        </return>\r
+                                                                                    </block>\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].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                    </for>\r
+                                                    <for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                                                        <block>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
+                                                            </set>\r
+                                                            <for index='vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                                                <switch test='`$tmp.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
+                                                                        <break/>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length &gt; 0`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.address-family' value='ipv4' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-address-family' value='false' />\r
+                                                                        </set>\r
+                                                                        <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                            <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <block>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='found-address-family' value='true' />\r
+                                                                                        </set>\r
+                                                                                        <break/>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </for>\r
+                                                                        <switch test='`$found-address-family`'>\r
+                                                                            <outcome value='false'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for network role '\r
+      + $tmp.network-role`" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length &gt; 0`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.address-family' value='ipv6' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-address-family' value='false' />\r
+                                                                        </set>\r
+                                                                        <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                            <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <block>\r
+                                                                                        <set>\r
+                                                                                            <parameter name='found-address-family' value='true' />\r
+                                                                                        </set>\r
+                                                                                        <break/>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </for>\r
+                                                                        <switch test='`$found-address-family`'>\r
+                                                                            <outcome value='false'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for network role '\r
+      + $tmp.network-role`" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                        </set>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </for>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                <parameter name='filename' value='/var/tmp/bgb-vfmoduleb.log' />\r
+                                            </execute>\r
+                                            <set>\r
+                                                <parameter name='vf-module-object-path'\r
  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $service-data.service-topology.service-topology-identifier.service-instance-id\r
  + '/service-data/vnfs/vnf/'\r
  + '/vnf-data/vf-modules/vf-module/'\r
  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
  + '/vf-module-data/vf-module-topology/'`"/>\r
-\r
-\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                            </set>\r
+                                            <switch test='`$from-preload`'>\r
+                                                <outcome value='false'>\r
+                                                    <set>\r
+                                                        <parameter name='automated-assignment' value='true' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='true'>\r
+                                                    <set>\r
+                                                        <parameter name='automated-assignment' value='false' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="vf-module"\r
    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<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
-<outcome value='failure'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ><outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table on rollback" />\r
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-<outcome value='failure'>\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 in EIPAM unassign IP address on rollback" />\r
-</return></outcome></execute></block></outcome></switch><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error updating vf-module in AAI" />\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ><outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table on rollback" />\r
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-<outcome value='failure'>\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 in EIPAM unassign IP address on rollback" />\r
-</return></outcome></execute></block></outcome></switch><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\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
-</return></block></outcome></update><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='network-role-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
-<save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                <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
+                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vf-module in AAI" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <block atomic="true">\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'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
+                                                        </return>\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
+                                                            <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.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`" />\r
+                                                                <parameter name="nfc-function" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].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="orchestration-status" value="`PendingCreate`" />\r
+                                                                <parameter name="prov-status" value="`PREPROV`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vnfc to AAI" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vnfc to AAI" />\r
+                                                                        </return>\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].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
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vnfc relationships in AAI" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vnfc relationships" />\r
+                                                                        </return>\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
+                                                                <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 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
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 creating l3-interface-ipv4-address-list object in AAI" />\r
+                                                                                                        </return>\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 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
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating l3-interface-ipv4-address-list relationships in AAI" />\r
+                                                                                                        </return>\r
+                                                                                                    </block>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='not-found'>\r
+                                                                                                    <block atomic="true">\r
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating l3-interface-ipv4-address-list relationships" />\r
+                                                                                                        </return>\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 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
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 creating l3-interface-ipv6-address-list object in AAI" />\r
+                                                                                                        </return>\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 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
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating l3-interface-ipv6-address-list relationships in AAI" />\r
+                                                                                                        </return>\r
+                                                                                                    </block>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='not-found'>\r
+                                                                                                    <block atomic="true">\r
+                                                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating l3-interface-ipv6-address-list relationships" />\r
+                                                                                                        </return>\r
+                                                                                                    </block>\r
+                                                                                                </outcome>\r
+                                                                                            </save>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </for>\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
    resource="vf-module:relationship-list"\r
    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-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].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
-<outcome value='failure'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ><outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table on rollback" />\r
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-<outcome value='failure'>\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 in EIPAM unassign IP address on rollback" />\r
-</return></outcome></execute></block></outcome></switch><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Error updating vf-module relationships in AAI" />\r
-</return></block></outcome><outcome value='not-found'>\r
-<block atomic="true"><switch test='`$plans-index &gt; 0`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ><outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table on rollback" />\r
-</return></outcome></update><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-<outcome value='failure'>\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 in EIPAM unassign IP address on rollback" />\r
-</return></outcome></execute></block></outcome></switch><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\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
-</return></block></outcome></save></for></for><for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
-<block atomic="true"><delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\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].network-id`" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vf-module relationships in AAI" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'No l3-network found in AAI for network ID '\r
+      + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag' value='true' />\r
+                                                            </set>\r
+                                                            <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
+                                                                <block atomic="true">\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vip-ipv4-address-list" \r
+       key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" >\r
+                                                                        <parameter name="vip-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]`" />\r
+                                                                        <parameter name="vip-ipv4-prefix-length" value="32" />\r
+                                                                        <parameter name="is-floating" value="false" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <block atomic="true">\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vip-ipv4-address-list in AAI" />\r
+                                                                                </return>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <block atomic="true">\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error saving vip-ipv4-address-list" />\r
+                                                                                </return>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag' value='true' />\r
+                                                                    </set>\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
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vip-ipv4-address-list:relationship-list"\r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                            <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\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[$vm-network-index].network-id\r
+        + '/subnets/subnet/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id`" />\r
+                                                                            <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
+                                                                            <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/network/vnfcs/vnfc/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vip-ipv4-address-list relationships in AAI" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vip-ipv4-address-list relationships" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </save>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
+                                                                <block atomic="true">\r
+                                                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vip-ipv6-address-list" \r
+       key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" >\r
+                                                                        <parameter name="vip-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]`" />\r
+                                                                        <parameter name="vip-ipv6-prefix-length" value="128" />\r
+                                                                        <parameter name="is-floating" value="false" />\r
+                                                                        <outcome value='failure'>\r
+                                                                            <block atomic="true">\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vip-ipv6-address-list in AAI" />\r
+                                                                                </return>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                        <outcome value='not-found'>\r
+                                                                            <block atomic="true">\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error saving vip-ipv6-address-list" />\r
+                                                                                </return>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </save>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag' value='true' />\r
+                                                                    </set>\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
+                                                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vip-ipv6-address-list:relationship-list"\r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                            <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\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[$vm-network-index].network-id\r
+        + '/subnets/subnet/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id`" />\r
+                                                                            <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
+                                                                            <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/network/vnfcs/vnfc/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                                                                            <outcome value='failure'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vip-ipv6-address-list relationships in AAI" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='not-found'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vip-ipv6-address-list relationships" />\r
+                                                                                    </return>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </save>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </for>\r
+                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-assign' mode='sync' >\r
+                                                <outcome value='failure'>\r
+                                                    <block atomic="true">\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                            <parameter name='filename' value='/var/tmp/bgb-vlantaggingfailure.log' />\r
+                                                        </execute>\r
+                                                        <return status='failure'></return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </call>\r
+                                            <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                                <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                                                    <block atomic="true">\r
+                                                        <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
      AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
-     AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' ><outcome value='failure'>\r
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
-<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
-</record></outcome></delete><save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , 'CloudOwner')" ><outcome value='failure'>\r
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
-<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
-</record></outcome></save></block></for></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='$tmp.vf-module-topology.' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+     AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\r
+                                                            <outcome value='failure'>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                                                    <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                    <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                                                </record>\r
+                                                            </outcome>\r
+                                                        </delete>\r
+                                                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , $prop.cloud-region.cloud-owner )" >\r
+                                                            <outcome value='failure'>\r
+                                                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                                    <parameter name="logger" value="message-log"/>\r
+                                                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                                    <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                                                    <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                                    <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                                                </record>\r
+                                                            </outcome>\r
+                                                        </save>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='tmp.vf-module-topology.' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
    value='$vf-module-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
    value='$vf-module-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
    value='$vf-module-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
    value='$vf-module-topology-operation-input.vf-module-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
-\r
-</set><call module='GENERIC-RESOURCE-API' rpc='gw-vfmodule-update' mode='sync' >\r
-</call><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
   value='PendingCreate' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
   value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
   value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
-</set><set>\r
-<parameter name='service-object-path'\r
+                                            </set>\r
+                                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                <parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\r
+                                            </execute>\r
+                                            <return status='success'>\r
+                                                <parameter name="ack-final-indicator" value="Y" />\r
+                                                <parameter name="error-code" value="200" />\r
+                                                <parameter name="error-message" value="`$error-message`" />\r
+                                            </return>\r
+                                        </block>\r
+                                    </block>\r
+                                </outcome>\r
+                            </get-resource>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <block atomic="true">\r
+                                <block atomic="true">\r
+                                    <switch test='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="vf-module-information.vf-module-request-input.vf-module-name is a required input" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='vf-module-index' value='0' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='vf-module-index' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' />\r
+                                                </set>\r
+                                                <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                                                    <switch test='`$vf-module-topology-operation-input.vf-module-information.vf-module-id == $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id`'>\r
+                                                        <outcome value='true'>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'VF module id ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id\r
+       + ' already exists, and status is ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-data.vf-module-level-oper-status.order-status`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length' value='`$vf-module-index + 1`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id'\r
+   value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-id' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-name' value='`$vf-module-topology-operation-input.vf-module-request-input.vf-module-name`' />\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-topology-identifier.vf-module-type' value='`$vf-module-topology-operation-input.vf-module-information.vf-module-type`' />\r
+                                        <parameter name='tmp.vf-module-topology.tenant' value='`$vf-module-topology-operation-input.vf-module-request-input.tenant`' />\r
+                                        <parameter name='tmp.vf-module-topology.aic-cloud-region' value='`$vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`' />\r
+                                    </set>\r
+                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="cloud-region" \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
+                    cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region"\r
+        pfx='aai.cloud-region' local-only='false' >\r
+                                        <outcome value='not-found'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="Cloud region not found in AAI" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\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 retrieving cloud region from AAI" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                                        <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
+                                            <outcome value='complex'>\r
+                                                <block atomic="true">\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                        <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
+                                                        <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
+                                                        <parameter name='regex' value='/' />\r
+                                                    </execute>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli'\r
+   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
+                                                    </set>\r
+                                                    <break/>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.aic-clli`'>\r
+                                        <outcome value=''>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$db.vf-module-model.invariant-uuid`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-invariant-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-invariant-uuid`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+  value='`$db.vf-module-model.uuid`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-uuid`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+  value='`$db.vf-module-model.version`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-version'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-version`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+  value='`$db.vf-module-model.name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vf-module-topology.onap-model-information.model-name'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-name`' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.onap-model-information.model-customization-uuid'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-parameters.'\r
+  value='vf-module-topology-operation-input.vf-module-request-input.vf-module-input-parameters.' />\r
+                                    </set>\r
+                                    <execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\r
+                                        <parameter name='restapiUrl' value="`$prop.controller.url + $prop.restapi.preloadinformation + $vf-module-topology-operation-input.vf-module-request-input.vf-module-name + '/vf-module'`" />\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="mdsal-preload" />\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <switch test='`$mdsal-preload.response-code`'>\r
+                                                    <outcome value='404'>\r
+                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-no-preload' mode='sync' >\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'></return>\r
+                                                            </outcome>\r
+                                                        </call>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\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 retrieving preload-information" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <block>\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign-preload' mode='sync' >\r
+                                                    <outcome value='failure'>\r
+                                                        <return status='failure'></return>\r
+                                                    </outcome>\r
+                                                </call>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </execute>\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
+                                                <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>\r
+                                                        <set>\r
+                                                            <parameter name='tmp.network-role' 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-network-role`' />\r
+                                                        </set>\r
+                                                        <set>\r
+                                                            <parameter name='found-network-role' value='false' />\r
+                                                        </set>\r
+                                                        <for index='vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                                            <switch test='`$tmp.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
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='found-network-role' value='true' />\r
+                                                                        </set>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                        <switch test='`$found-network-role`'>\r
+                                                            <outcome value='false'>\r
+                                                                <block atomic="true">\r
+                                                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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"\r
+      value="`'Cannot find VNF network role ' + $tmp.network-role`" />\r
+                                                                    </return>\r
+                                                                </block>\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].vnfc-networks.vnfc-network-data[$network-role-index].network-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].network-id`' />\r
+                                                        </set>\r
+                                                        <for index='subnet-role-index' start='0'\r
+  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 index='address-family-index' start='0'\r
+  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
+                                                                        <parameter name='tmp.subnet-role'\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-subnet-role`' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='found-subnet' value='false' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                        <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <switch test='`$tmp.subnet-role\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].subnet-role`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='found-subnet' value='true' />\r
+                                                                                            </set>\r
+                                                                                            <break/>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </for>\r
+                                                                    <switch test='`$found-subnet`'>\r
+                                                                        <outcome value='false'>\r
+                                                                            <block atomic="true">\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for subnet role '\r
+      + $tmp.subnet-role`" />\r
+                                                                                </return>\r
+                                                                            </block>\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].vnfc-networks.vnfc-network-data[$network-role-index].vnfc-subnet[$subnet-role-index].vnfc-ip-assignments[$address-family-index].subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </for>\r
+                                            <for silentFailure='true' index='vm-network-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network_length`' >\r
+                                                <block>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.network-role' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].network-role`' />\r
+                                                    </set>\r
+                                                    <for index='vnf-network-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                                        <switch test='`$tmp.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
+                                                                <break/>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </for>\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length &gt; 0`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.address-family' value='ipv4' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='found-address-family' value='false' />\r
+                                                                </set>\r
+                                                                <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                    <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='found-address-family' value='true' />\r
+                                                                                </set>\r
+                                                                                <break/>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </for>\r
+                                                                <switch test='`$found-address-family`'>\r
+                                                                    <outcome value='false'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for network role '\r
+      + $tmp.network-role`" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length &gt; 0`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.address-family' value='ipv6' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='found-address-family' value='false' />\r
+                                                                </set>\r
+                                                                <for silentFailure='true' index='vnf-address-family-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data_length`' >\r
+                                                                    <switch test='`$tmp.address-family\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].ip-version`'>\r
+                                                                        <outcome value='true'>\r
+                                                                            <block>\r
+                                                                                <set>\r
+                                                                                    <parameter name='found-address-family' value='true' />\r
+                                                                                </set>\r
+                                                                                <break/>\r
+                                                                            </block>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                </for>\r
+                                                                <switch test='`$found-address-family`'>\r
+                                                                    <outcome value='false'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'Cannot find VNF address family '\r
+      + $tmp.address-family\r
+      + ' for network role '\r
+      + $tmp.network-role`" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <set>\r
+                                                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-network-index].subnets-data.subnet-data[$vnf-address-family-index].sdnc-subnet-id`' />\r
+                                                                </set>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </for>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/bgb-vfmoduleb.log' />\r
+                                    </execute>\r
+                                    <set>\r
+                                        <parameter name='vf-module-object-path'\r
  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $service-data.service-topology.service-topology-identifier.service-instance-id\r
  + '/service-data/vnfs/vnf/'\r
@@ -579,13 +1547,530 @@ key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id
  + '/vnf-data/vf-modules/vf-module/'\r
  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
  + '/vf-module-data/vf-module-topology/'`"/>\r
-<!--\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $service-data.service-topology.service-topology-identifier.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
- -->\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+                                    </set>\r
+                                    <switch test='`$from-preload`'>\r
+                                        <outcome value='false'>\r
+                                            <set>\r
+                                                <parameter name='automated-assignment' value='true' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='true'>\r
+                                            <set>\r
+                                                <parameter name='automated-assignment' value='false' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vf-module"\r
+   key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                        <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
+                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vf-module in AAI" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <block atomic="true">\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'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
+                                                </return>\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
+                                                    <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.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].nfc-naming-code`" />\r
+                                                        <parameter name="nfc-function" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].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="orchestration-status" value="`PendingCreate`" />\r
+                                                        <parameter name="prov-status" value="`PREPROV`" />\r
+                                                        <outcome value='failure'>\r
+                                                            <block atomic="true">\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vnfc to AAI" />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <block atomic="true">\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vnfc to AAI" />\r
+                                                                </return>\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].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
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vnfc relationships in AAI" />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <block atomic="true">\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vnfc relationships" />\r
+                                                                </return>\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
+                                                        <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 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
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 creating l3-interface-ipv4-address-list object in AAI" />\r
+                                                                                                </return>\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 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
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating l3-interface-ipv4-address-list relationships in AAI" />\r
+                                                                                                </return>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='not-found'>\r
+                                                                                            <block atomic="true">\r
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating l3-interface-ipv4-address-list relationships" />\r
+                                                                                                </return>\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 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
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 creating l3-interface-ipv6-address-list object in AAI" />\r
+                                                                                                </return>\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 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
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating l3-interface-ipv6-address-list relationships in AAI" />\r
+                                                                                                </return>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                        <outcome value='not-found'>\r
+                                                                                            <block atomic="true">\r
+                                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating l3-interface-ipv6-address-list relationships" />\r
+                                                                                                </return>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </save>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                        </for>\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
+   resource="vf-module:relationship-list"\r
+   key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
+      AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-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].network-id`" />\r
+                                                        <outcome value='failure'>\r
+                                                            <block atomic="true">\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vf-module relationships in AAI" />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                        <outcome value='not-found'>\r
+                                                            <block atomic="true">\r
+                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="`'No l3-network found in AAI for network ID '\r
+      + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].network-id`" />\r
+                                                                </return>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </save>\r
+                                                    <set>\r
+                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$network-role-index].created-flag' value='true' />\r
+                                                    </set>\r
+                                                    <for silentFailure='true' index='ipv4-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4_length`' >\r
+                                                        <block atomic="true">\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vip-ipv4-address-list" \r
+       key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]" >\r
+                                                                <parameter name="vip-ipv4-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]`" />\r
+                                                                <parameter name="vip-ipv4-prefix-length" value="32" />\r
+                                                                <parameter name="is-floating" value="false" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vip-ipv4-address-list in AAI" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error saving vip-ipv4-address-list" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv4-flag' value='true' />\r
+                                                            </set>\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
+                                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vip-ipv4-address-list:relationship-list"\r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv4-address-list.vip-ipv4-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v4[$ipv4-index]"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                    <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\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[$vm-network-index].network-id\r
+        + '/subnets/subnet/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv4-subnet-id`" />\r
+                                                                    <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
+                                                                    <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/network/vnfcs/vnfc/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                                                                    <outcome value='failure'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vip-ipv4-address-list relationships in AAI" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='not-found'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vip-ipv4-address-list relationships" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </save>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                    <for silentFailure='true' index='ipv6-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6_length`' >\r
+                                                        <block atomic="true">\r
+                                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+       resource="vip-ipv6-address-list" \r
+       key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]" >\r
+                                                                <parameter name="vip-ipv6-address" value="`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]`" />\r
+                                                                <parameter name="vip-ipv6-prefix-length" value="128" />\r
+                                                                <parameter name="is-floating" value="false" />\r
+                                                                <outcome value='failure'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 saving vip-ipv6-address-list in AAI" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                                <outcome value='not-found'>\r
+                                                                    <block atomic="true">\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error saving vip-ipv6-address-list" />\r
+                                                                        </return>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </save>\r
+                                                            <set>\r
+                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.created-ipv6-flag' value='true' />\r
+                                                            </set>\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
+                                                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vip-ipv6-address-list:relationship-list"\r
+   key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner\r
+         AND cloud-region.cloud-region-id = $vf-module-topology-operation-input.vf-module-request-input.aic-cloud-region\r
+         AND vip-ipv6-address-list.vip-ipv6-address = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.floating-ip-v6[$ipv6-index]"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                                    <parameter name="relationship-list.relationship[0].related-to" value="subnet" />\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[$vm-network-index].network-id\r
+        + '/subnets/subnet/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-networks.vm-network[$vm-network-index].floating-ips.ipv6-subnet-id`" />\r
+                                                                    <parameter name="relationship-list.relationship[1].related-to" value="vnfc" />\r
+                                                                    <parameter name="relationship-list.relationship[1].related-link"\r
+      value="`'/aai/v$/network/vnfcs/vnfc/'\r
+        + $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                                                                    <outcome value='failure'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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 updating vip-ipv6-address-list relationships in AAI" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='not-found'>\r
+                                                                        <block atomic="true">\r
+                                                                            <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' 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="Not-found error updating vip-ipv6-address-list relationships" />\r
+                                                                            </return>\r
+                                                                        </block>\r
+                                                                    </outcome>\r
+                                                                </save>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </for>\r
+                                                </block>\r
+                                            </for>\r
+                                        </block>\r
+                                    </for>\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-assign' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <block atomic="true">\r
+                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-assign-rollback' mode='sync' ></call>\r
+                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                    <parameter name='filename' value='/var/tmp/bgb-vlantaggingfailure.log' />\r
+                                                </execute>\r
+                                                <return status='failure'></return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </call>\r
+                                    <for silentFailure='true' index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                        <for index='vm-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                                            <block atomic="true">\r
+                                                <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
+     AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
+     AND vm_name = $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\r
+                                                    <outcome value='failure'>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                                            <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                                        </record>\r
+                                                    </outcome>\r
+                                                </delete>\r
+                                                <save plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="INSERT INTO VIPR_CONFIGURATION (vnf_id, vnf_name, ecomp_service_instance_id, vm_name, cloud_region_id, cloud_owner) VALUES ( $service-data.vnfs.vnf[$vnf-index].vnf-id , $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name , $service-data.service-information.service-instance-id , $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index] , $tmp.vf-module-topology.aic-cloud-region , $prop.cloud-region.cloud-owner )" >\r
+                                                    <outcome value='failure'>\r
+                                                        <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                                            <parameter name="logger" value="message-log"/>\r
+                                                            <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                                            <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                                            <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                                            <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                                        </record>\r
+                                                    </outcome>\r
+                                                </save>\r
+                                            </block>\r
+                                        </for>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.' value='tmp.vf-module-topology.' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+   value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+   value='$vf-module-topology-operation-input.request-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+   value='$vf-module-topology-operation-input.service-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+   value='$vf-module-topology-operation-input.vnf-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+   value='$vf-module-topology-operation-input.vf-module-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
+   value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+  value='PendingCreate' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+                                    </set>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/bgb-vfmodule.log' />\r
+                                    </execute>\r
+                                    <return status='success'>\r
+                                        <parameter name="ack-final-indicator" value="Y" />\r
+                                        <parameter name="error-code" value="200" />\r
+                                        <parameter name="error-message" value="`$error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </block>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </outcome>\r
+            </switch>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-operation-changeassign.xml
new file mode 100755 (executable)
index 0000000..5a0d61e
--- /dev/null
@@ -0,0 +1,125 @@
+<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='vf-module-topology-operation-changeassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVfModuleInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'changeassign' then request-action must be 'CreateVfModuleInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vf-module-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vf-module-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODULE_MODEL WHERE customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-module-model'>\r
+                <outcome value='failure'>\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 reading VF_MODULE_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for VF module customization UUID ' + $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.onap-model-information.'\r
+   value='$vf-module-topology-operation-input.vf-module-information.onap-model-information.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+  value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
+  value='`$vf-module-topology-operation-input.sdnc-request-header.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 260f622..788f0a9 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vf-module-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteVfModuleInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'" />\r
-</return></outcome></switch><set>\r
-<parameter name='vnf-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set><break/></block></outcome></switch></for></outcome></switch><switch test='`$vnf-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='vf-module-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vf-module-index' value='`$idx`' />\r
-</set><break/></block></outcome></switch></for></outcome></switch><switch test='`$vf-module-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-topology.vf-module-assignments.vf-module-status' value='PendingDelete' />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+<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='vf-module-topology-operation-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteVfModuleInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vf-module-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vf-module-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-deactivate' mode='sync' >\r
+                        <outcome value='failure'>\r
+                            <return status='failure'></return>\r
+                        </outcome>\r
+                    </call>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='vm-type-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vnfc"\r
+   key="vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                        <parameter name="orchestration-status" value="PendingDelete" />\r
+                        <outcome value='failure'>\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 updating vnfc in AAI" />\r
+                            </return>\r
+                        </outcome>\r
+                        <outcome value='not-found'>\r
+                            <return status='failure'>\r
+                                <parameter name='ack-final' value='Y'/>\r
+                                <parameter name="error-code" value="500" />\r
+                                <parameter name="error-message" value="`'No vnfc found in AAI for vnfc name ' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`" />\r
+                            </return>\r
+                        </outcome>\r
+                    </update>\r
+                </for>\r
+            </for>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-topology.vf-module-assignments.vf-module-status' value='PendingDelete' />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="vf-module"\r
    key="vf-module.vf-module-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-id\r
       AND generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<parameter name="orchestration-status" value="PendingDelete" />\r
-<outcome value='failure'>\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 updating vf-module in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\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
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <outcome value='failure'>\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 updating vf-module in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\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
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.sdnc-request-header.'\r
    value='$vf-module-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.request-information.'\r
    value='$vf-module-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.service-information.'\r
    value='$vf-module-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vnf-information.'\r
    value='$vf-module-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-information.'\r
    value='$vf-module-topology-operation-input.vf-module-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-request-input.'\r
    value='$vf-module-topology-operation-input.vf-module-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status'\r
   value='PendingDelete' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-rpc-action'\r
-  value='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.last-action'\r
-  value='`$vf-module-topology-operation-input.request-information.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 2525dce..d990722 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vf-module-topology-operation-unassign' mode='sync'>\r
-<block atomic="true"><switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteVfModuleInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'" />\r
-</return></outcome></switch><set>\r
-<parameter name='vnf-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set><break/></block></outcome></switch></for></outcome></switch><switch test='`$vnf-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><set>\r
-<parameter name='vf-module-index' value='-1' />\r
-</set><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
-</return></outcome><outcome value='Other'>\r
-<for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
-<outcome value='true'>\r
-<block>\r
-<set>\r
-<parameter name='vf-module-index' value='`$idx`' />\r
-</set><break/></block></outcome></switch></for></outcome></switch><switch test='`$vf-module-index`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-level-oper-status.order-status`'>\r
-<outcome value='Created'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Order status must not be Created" />\r
-</return></outcome><outcome value='Other'>\r
-<block atomic="true"></block></outcome></switch><set>\r
-<parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
-</set><update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
-key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" ><outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table" />\r
-</return></outcome></update><!--EIPAM plug-in needs this attribute set with this name--><set>\r
-<parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
-</set><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
-<parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
-<outcome value='failure'>\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 in EIPAM unassign IP address" />\r
-</return></outcome></execute><for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
-<for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
-<block atomic="true"><delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+<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='vf-module-topology-operation-unassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vf-module-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteVfModuleInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVfModuleInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vnf-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="There are no VNFs defined in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vf-module-topology-operation-input.vnf-information.vnf-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vnf-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VNF ID ' + $vf-module-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='vf-module-index' value='-1' />\r
+            </set>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'There are no VF modules defined in MD-SAL for VNF ' + $vf-module-topology-operation-input.vnf-information.vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                        <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx].vf-module-id == $vf-module-topology-operation-input.vf-module-information.vf-module-id`'>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='vf-module-index' value='`$idx`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </for>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$vf-module-index`'>\r
+                <outcome value='-1'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'Unable to find VF module ID ' + $vf-module-topology-operation-input.vf-module-information.vf-module-id + ' in MD-SAL'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.status' value="`'PENDING_DELETE_' + $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id`" />\r
+            </set>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-topology-identifier.vf-module-id" >\r
+                <outcome value='failure'>\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 updating EIPAM_IP_ASSIGNMENTS table" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <!--EIPAM plug-in needs this attribute set with this name-->\r
+            <set>\r
+                <parameter name='service-data.service-information.service-type' value='`$service-data.service-information.subscription-service-type`' />\r
+            </set>\r
+            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                <outcome value='failure'>\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 in EIPAM unassign IP address" />\r
+                    </return>\r
+                </outcome>\r
+            </execute>\r
+            <for silentFailure='true' index='vm-type-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for silentFailure='true' index='vm-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-count`' >\r
+                    <block atomic="true">\r
+                        <delete plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='DELETE from VIPR_CONFIGURATION WHERE vnf_id = $service-data.vnfs.vnf[$vnf-index].vnf-id\r
      AND ecomp_service_instance_id = $service-data.service-information.service-instance-id\r
-     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' ><outcome value='failure'>\r
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
-<parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
-<parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
-</record></outcome></delete></block></for></for><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
-<outcome value='1'>\r
-<set>\r
-       <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
-\r
-</set></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
-<set>\r
-       <parameter name="tmpidx" value="`$idx - 1`"/>\r
-       <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
-       \r
-</set></for><!--EIPAM plug-in needs this attribute set with this name--><set>\r
-<parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\r
-</set><set>\r
-       <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx]." value=""/>\r
-</set><set>\r
-       <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
-\r
-       \r
-</set></block></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+     AND vm_name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vm-name[$vm-index]' >\r
+                            <outcome value='failure'>\r
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
+                                    <parameter name="logger" value="message-log"/>\r
+                                    <parameter name="field1" value="__TIMESTAMP__"/>\r
+                                    <parameter name="field2" value="GENERIC-RESOURCE-API.vf-module-topology-operation-assign:REQID"/>\r
+                                    <parameter name="field3" value="`$vf-module-topology-operation-input.sdnc-request-header.svc-request-id`"/>\r
+                                    <parameter name="field4" value="Failed to insert VIPR_CONFIGURATION record"/>\r
+                                </record>\r
+                            </outcome>\r
+                        </delete>\r
+                    </block>\r
+                </for>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`'>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+  resource="instance-groups" \r
+  key="instance-group.instance-group-function = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[0].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function\r
+    AND instance-group.instance-group-type = 'L3-NETWORK'"\r
+  pfx='aai.instance-group' local-only='false' >\r
+                        <outcome value='success'>\r
+                            <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\r
+                                <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\r
+                                    <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\r
+                                        <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\r
+  == 'service-instance.service-instance-id'`">\r
+                                            <outcome value='true'>\r
+                                                <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\r
+  == $service-data.service-information.service-instance-id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                                                                <outcome value='1'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.status' value="`'PENDING_DELETE_' + $aai.instance-group.instance-group[$ig-index].id`" />\r
+                                                                        </set>\r
+                                                                        <update plugin="org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource" resource="SQL"\r
+key="UPDATE EIPAM_IP_ASSIGNMENTS set status = $tmp.status WHERE info = $aai.instance-group.instance-group[$ig-index].id" ></update>\r
+                                                                        <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="unassignIPAddress">\r
+                                                                            <parameter name="deleteEIPAM_status" value="`$tmp.status`" />\r
+                                                                        </execute>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                                                                <switch test='`$aai.instance-group.instance-group[$ig-index].id\r
+  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <for index='network-index' start='0' end='`$service-data.network-instance-groups.network-instance-group[$nig-index].networks.network_length`' >\r
+                                                                            <set>\r
+                                                                                <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].vlan-tag-id'\r
+  value='' />\r
+                                                                                <parameter name='service-data.network-instance-groups.network-instance-group[$nig-index].networks.network[$network-index].network-status'\r
+  value='unassigned' />\r
+                                                                            </set>\r
+                                                                        </for>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </for>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </for>\r
+                            </for>\r
+                        </outcome>\r
+                    </get-resource>\r
+                </outcome>\r
+            </switch>\r
+            <for silentFailure='true' index='vm-type-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                <for silentFailure='true' index='vnfc-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                    <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="vnfc"\r
+   key="vnfc.vnfc-name = $service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name"></delete>\r
+                </for>\r
+            </for>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`'>\r
+                <outcome value='1'>\r
+                    <set>\r
+                        <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules." value=""/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='idx' start='`$vf-module-index + 1`' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`' >\r
+                            <set>\r
+                                <parameter name="tmpidx" value="`$idx - 1`"/>\r
+                                <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$tmpidx]." value="$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$idx]." />\r
+                            </set>\r
+                        </for>\r
+                        <!--EIPAM plug-in needs this attribute set with this name-->\r
+                        <set>\r
+                            <parameter name='lastidx' value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length - 1`' />\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$lastidx]." value=""/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length" value="`$lastidx`"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index e117905..557afd5 100755 (executable)
@@ -1,21 +1,38 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vf-module-topology-operation' mode='sync'>\r
-<block atomic="true"><call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' >\r
-</call><switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
-<outcome value='assign'>\r
-<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' >\r
-</call></outcome><outcome value='activate'>\r
-<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' >\r
-</call></outcome><outcome value='deactivate'>\r
-<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' >\r
-</call></outcome><outcome value='unassign'>\r
-<call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' >\r
-</call></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
-</return></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<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='vf-module-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-vf-module-input' mode='sync' ></call>\r
+            <switch test='`$vf-module-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-activate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-deactivate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-unassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-operation-changeassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-activate.xml
new file mode 100755 (executable)
index 0000000..42c29a7
--- /dev/null
@@ -0,0 +1,313 @@
+<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='vf-module-topology-vlan-tagging-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource&amp;nodesOnly=true'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.aai.vnf">\r
+                <parameter name="start[0]" value="`'/network/generic-vnfs/generic-vnf/' + $vf-module-topology-operation-input.vnf-information.vnf-id `" />\r
+                <parameter name="start_length" value="1" />\r
+                <parameter name="query" value="query/cloud-region-fromVnf" />\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="Failed call to AAI custom query: cloud-region-fromVnf" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="error-message" value="No cloud region returned from AAI: cloud-region-fromVnf" />\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </save>\r
+            <for index='result-idx' start='0' end='`$tmp.aai.vnf.results_length`' >\r
+                <block atomic="true">\r
+                    <switch test='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`'>\r
+                        <outcome value=''>\r
+                            <block></block>\r
+                        </outcome>\r
+                        <outcome value='Other'>\r
+                            <set>\r
+                                <parameter name='tmp.cloud-region-id' value='`$tmp.aai.vnf.results[$result-idx].cloud-region.cloud-region-id`' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </block>\r
+            </for>\r
+            <set>\r
+                <parameter name='tmp.vlan-vnfc-instance-groups.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.`' />\r
+            </set>\r
+            <for index='vvig-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\r
+                <switch test='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`'>\r
+                    <outcome value=''>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='0'>\r
+                        <block></block>\r
+                    </outcome>\r
+                    <outcome value='Other'>\r
+                        <block atomic="true">\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`'>\r
+                                <outcome value=''>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\r
+  value='0' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='parent-port-role'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vnic-interface-role`' />\r
+                                <parameter name='vnfc-instance-group-function'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function`' />\r
+                                <parameter name='network-instance-group-function'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function`' />\r
+                            </set>\r
+                            <set>\r
+                                <parameter name='vsig-index' value='-1' />\r
+                            </set>\r
+                            <for index='idx' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' >\r
+                                <switch test='`\r
+  $parent-port-role == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].parent-port-role\r
+  and $vnfc-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].vnfc-instance-group-function\r
+  and $network-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$idx].network-instance-group-function\r
+`'>\r
+                                    <outcome value='true'>\r
+                                        <block>\r
+                                            <set>\r
+                                                <parameter name='vsig-index' value='`$idx`' />\r
+                                            </set>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                            <switch test='`$vsig-index`'>\r
+                                <outcome value='-1'>\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='vsig-index'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role'\r
+  value='`$parent-port-role`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfc-instance-group-function'\r
+  value='`$vnfc-instance-group-function`' />\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].network-instance-group-function'\r
+  value='`$network-instance-group-function`' />\r
+                                        </set>\r
+                                        <set>\r
+                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length'\r
+  value='`$vsig-index + 1`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </outcome>\r
+                            </switch>\r
+                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.aai.network">\r
+                                <parameter name="start[0]" value="`'/cloud-infrastructure/cloud-regions/cloud-region/' + $prop.cloud-region.cloud-owner + '/' + $tmp.cloud-region-id`" />\r
+                                <parameter name="start_length" value="1" />\r
+                                <parameter name="query" value="`'/query/network-name-fromNetwork-role?networkRole='  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\r
+                                <outcome value='failure'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='error-code' value='500' />\r
+                                        <parameter name='error-message' value="`'Failed to get network data for network role '\r
+  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\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 get network data for network role '\r
+  + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </save>\r
+                            <set>\r
+                                <parameter name='network-name' value='`$tmp.aai.network.results[0].l3-network.network-name`' />\r
+                            </set>\r
+                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`'>\r
+                                <outcome value=''>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\r
+  value='0' />\r
+                                    </set>\r
+                                </outcome>\r
+                            </switch>\r
+                            <set>\r
+                                <parameter name='dest-vnfc-index'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`' />\r
+                            </set>\r
+                            <for index='src-vnfc-index' start='0'\r
+  end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
+                                <block atomic="true">\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnfc-name'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`' />\r
+                                    </set>\r
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+      resource="custom-query"\r
+      key="format = 'resource'"\r
+      force="true"\r
+      local-only="false"\r
+      pfx="tmp.aai.interfaces">\r
+                                        <parameter name="start[0]" value="`'/network/vnfcs/vnfc/' + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`" />\r
+                                        <parameter name="start_length" value="1" />\r
+                                        <parameter name="query" value="`'/query/vserver-l-interfaces-fromVnfc?networkName=' + $network-name`" />\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='error-code' value='500' />\r
+                                                <parameter name='error-message' value="`'Failed to get interface data for network name '\r
+  + $network-name\r
+  + ' and vnfc '\r
+  + $tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$src-vnfc-index].vnfc-name`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <block></block>\r
+                                        </outcome>\r
+                                        <outcome value='success'>\r
+                                            <block>\r
+                                                <for silentFailure='true' index='idx1' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
+                                                    <switch test='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`'>\r
+                                                        <outcome value=''>\r
+                                                            <block></block>\r
+                                                        </outcome>\r
+                                                        <outcome value='Other'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-id'\r
+  value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-id`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vserver-name'\r
+  value='`$tmp.aai.interfaces.results[$idx1].vserver.vserver-name`' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic_length'\r
+  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' />\r
+                                                                </set>\r
+                                                                <for silentFailure='true' index='int-index' start='0'\r
+  end='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface_length`' >\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-id'\r
+  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`' />\r
+                                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].vnic-port-name'\r
+  value='`$tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-name`' />\r
+                                                                        </set>\r
+                                                                        <for silentFailure='true' index='idx2' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
+                                                                            <switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.interface-id\r
+  == $tmp.aai.interfaces.results[$idx1].vserver.l-interfaces.l-interface[$int-index].interface-id`'>\r
+                                                                                <outcome value='true'>\r
+                                                                                    <block>\r
+                                                                                        <switch test='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`'>\r
+                                                                                            <outcome value=''>\r
+                                                                                                <block></block>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='Other'>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface_length'\r
+  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' />\r
+                                                                                                </set>\r
+                                                                                            </outcome>\r
+                                                                                        </switch>\r
+                                                                                        <for silentFailure='true' index='sub-int-index' start='0'\r
+  end='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface_length`' >\r
+                                                                                            <block>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-id'\r
+  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`' />\r
+                                                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].sub-interface-port-name'\r
+  value='`$tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-name`' />\r
+                                                                                                </set>\r
+                                                                                                <for silentFailure='true' index='idx3' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
+                                                                                                    <switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.interface-id\r
+  == $tmp.aai.interfaces.results[$idx2].l-interface.l-interfaces.l-interface[$sub-int-index].interface-id`'>\r
+                                                                                                        <outcome value='true'>\r
+                                                                                                            <switch test='`$tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\r
+                                                                                                                <outcome value=''>\r
+                                                                                                                    <block></block>\r
+                                                                                                                </outcome>\r
+                                                                                                                <outcome value='Other'>\r
+                                                                                                                    <for silentFailure='true' index='idx4' start='0' end='`$tmp.aai.interfaces.results_length`' >\r
+                                                                                                                        <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-interface\r
+  == $tmp.aai.interfaces.results[$idx3].l-interface.vlans.vlan[0].vlan-interface`'>\r
+                                                                                                                            <outcome value='true'>\r
+                                                                                                                                <block>\r
+                                                                                                                                    <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`'>\r
+                                                                                                                                        <outcome value=''>\r
+                                                                                                                                            <block></block>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                        <outcome value='Other'>\r
+                                                                                                                                            <set>\r
+                                                                                                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.upper-tag-id'\r
+  value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-outer`' />\r
+                                                                                                                                            </set>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                    </switch>\r
+                                                                                                                                    <switch test='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`'>\r
+                                                                                                                                        <outcome value=''>\r
+                                                                                                                                            <block></block>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                        <outcome value='Other'>\r
+                                                                                                                                            <set>\r
+                                                                                                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$dest-vnfc-index].vnics.vnic[$int-index].sub-interfaces.sub-interface[$sub-int-index].vlan-tags.lower-tag-id'\r
+  value='`$tmp.aai.interfaces.results[$idx4].vlan.vlan-id-inner`' />\r
+                                                                                                                                            </set>\r
+                                                                                                                                        </outcome>\r
+                                                                                                                                    </switch>\r
+                                                                                                                                </block>\r
+                                                                                                                            </outcome>\r
+                                                                                                                        </switch>\r
+                                                                                                                    </for>\r
+                                                                                                                </outcome>\r
+                                                                                                            </switch>\r
+                                                                                                        </outcome>\r
+                                                                                                    </switch>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </for>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                        </for>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                                <set>\r
+                                                    <parameter name='dest-vnfc-index' value='`$dest-vnfc-index + 1`' />\r
+                                                </set>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </save>\r
+                                </block>\r
+                            </for>\r
+                            <set>\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\r
+  value='`$dest-vnfc-index`' />\r
+                            </set>\r
+                        </block>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <return status='success'>\r
+                <parameter name='' value='' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-assign.xml
new file mode 100755 (executable)
index 0000000..f451812
--- /dev/null
@@ -0,0 +1,791 @@
+<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='vf-module-topology-vlan-tagging-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select distinct vmvm.vm_type, rg.group_uuid from VF_MODULE_TO_VFC_MAPPING vmvm, VFC_MODEL vm,\r
+  RESOURCE_GROUP_TO_TARGET_NODE_MAPPING rgm, RESOURCE_GROUP rg\r
+       where vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\r
+       and vmvm.vfc_customization_uuid = vm.customization_uuid\r
+       and vmvm.vm_type = vm.vm_type\r
+       and vm.uuid = rgm.target_node_uuid\r
+       and rgm.target_type = 'CVFC'\r
+       and rgm.group_uuid = rg.group_uuid"\r
+  pfx='db.group-uuids[]'>\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status='failure'>\r
+                            <parameter name='ack-final' value='Y'/>\r
+                            <parameter name="error-code" value="500" />\r
+                            <parameter name="error-message" value="System error getting group uuids from DB" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <block atomic="true"></block>\r
+                </outcome>\r
+                <outcome value='success'>\r
+                    <block atomic="true">\r
+                        <for index='group-index' start='0' end='`$db.group-uuids_length`' >\r
+                            <block atomic="true">\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select attribute_name, attribute_value from ATTRIBUTE_VALUE_PAIR\r
+       where resource_uuid = $db.group-uuids[$group-index].group-uuid\r
+       and attribute_name in ('vfc_instance_group_function','vfc_parent_port_role','network_collection_function')"\r
+  pfx='db.parameters[]'>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="System error getting parameters from ATTRIBUTE_VALUE_PAIR table" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Unable to find parameters ATTRIBUTE_VALUE_PAIR table for group ' + $db.group-uuids[$group-index].group-uuid`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='success'>\r
+                                        <for index='parameter-index' start='0' end='`$db.parameters_length`' >\r
+                                            <switch test='`$db.parameters[$parameter-index].attribute-name`'>\r
+                                                <outcome value='vfc_parent_port_role'>\r
+                                                    <set>\r
+                                                        <parameter name='db.group-uuids[$group-index].vfc_parent_port_role' value='`$db.parameters[$parameter-index].attribute-value`' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='vfc_instance_group_function'>\r
+                                                    <block atomic="true">\r
+                                                        <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$db.parameters[$parameter-index].attribute-value`" />\r
+                                                            <parameter name="target" value="get_input=" />\r
+                                                            <outcome value='false'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'Parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name\r
+        + ' is '\r
+        + $db.parameters[$parameter-index].attribute-value\r
+        + ' but was expected to start with get_input='`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='true'>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                                    <parameter name='result' value='tmp.truncated-value' />\r
+                                                                    <parameter name='string' value='`$db.parameters[$parameter-index].attribute-value`' />\r
+                                                                    <parameter name='begin-index' value='10' />\r
+                                                                </execute>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select attribute_value from VF_MODULE_MODEL vmm, VF_MODEL vf, ATTRIBUTE_VALUE_PAIR avp\r
+       where vmm.customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\r
+       and vmm.vf_customization_uuid = vf.customization_uuid\r
+       and vf.uuid = avp.resource_uuid\r
+       and vmm.vf_customization_uuid = avp.resource_customization_uuid\r
+       and avp.attribute_name = $tmp.truncated-value"\r
+  pfx='db.mapped-value'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'System error retrieving mapped parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='not-found'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'Unable to find mapped parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name\r
+        + ' value '\r
+        + $tmp.truncated-value`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </get-resource>\r
+                                                        <set>\r
+                                                            <parameter name='db.group-uuids[$group-index].vfc-instance-group-function' value='`$db.mapped-value.attribute-value`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='network_collection_function'>\r
+                                                    <block atomic="true">\r
+                                                        <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >\r
+                                                            <parameter name="source" value="`$db.parameters[$parameter-index].attribute-value`" />\r
+                                                            <parameter name="target" value="get_input=" />\r
+                                                            <outcome value='false'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'Parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name\r
+        + ' is '\r
+        + $db.parameters[$parameter-index].attribute-value\r
+        + ' but was expected to start with get_input='`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='true'>\r
+                                                                <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='substring'>\r
+                                                                    <parameter name='result' value='tmp.truncated-value' />\r
+                                                                    <parameter name='string' value='`$db.parameters[$parameter-index].attribute-value`' />\r
+                                                                    <parameter name='begin-index' value='10' />\r
+                                                                </execute>\r
+                                                            </outcome>\r
+                                                        </execute>\r
+                                                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select attribute_value from VF_MODULE_MODEL vmm, VF_MODEL vf, ATTRIBUTE_VALUE_PAIR avp\r
+       where vmm.customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\r
+       and vmm.vf_customization_uuid = vf.customization_uuid\r
+       and vf.uuid = avp.resource_uuid\r
+       and vmm.vf_customization_uuid = avp.resource_customization_uuid\r
+       and avp.attribute_name = $tmp.truncated-value"\r
+  pfx='db.mapped-value'>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'System error retrieving mapped parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='not-found'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message"\r
+      value="`'Unable to find mapped parameter value for '\r
+        + $db.parameters[$parameter-index].attribute-name\r
+        + ' value '\r
+        + $tmp.truncated-value`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </get-resource>\r
+                                                        <set>\r
+                                                            <parameter name='db.group-uuids[$group-index].network-collection-function' value='`$db.mapped-value.attribute-value`' />\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+  resource="instance-groups" \r
+  key="instance-group.instance-group-function = $db.group-uuids[$group-index].vfc-instance-group-function\r
+    AND instance-group.instance-group-type = 'VNFC'"\r
+  pfx='aai.instance-group' local-only='false' >\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message"\r
+      value="`'Unable to find AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].vfc-instance-group-function\r
+        + ' and instance-group-type VNFC'`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message"\r
+      value="`'System error getting AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].vfc-instance-group-function\r
+        + ' and instance-group-type VNFC'`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <set>\r
+                                    <parameter name='found-instance-group' value='false' />\r
+                                </set>\r
+                                <for index='ig-index' start='0' end='`$aai.instance-group.instance-group_length`' >\r
+                                    <for index='rel-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship_length`' >\r
+                                        <for index='reldata-index' start='0' end='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data_length`' >\r
+                                            <switch test="`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-key\r
+  == 'service-instance.service-instance-id'`">\r
+                                                <outcome value='true'>\r
+                                                    <switch test='`$aai.instance-group.instance-group[$ig-index].relationship-list.relationship[$rel-index].relationship-data[$reldata-index].relationship-value\r
+  == $service-data.service-information.service-instance-id`'>\r
+                                                        <outcome value='true'>\r
+                                                            <block>\r
+                                                                <set>\r
+                                                                    <parameter name='found-instance-group' value='true' />\r
+                                                                </set>\r
+                                                                <set>\r
+                                                                    <parameter name='aai-ig-index' value='`$ig-index`' />\r
+                                                                </set>\r
+                                                                <break/>\r
+                                                            </block>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </for>\r
+                                    </for>\r
+                                </for>\r
+                                <switch test='`$found-instance-group`'>\r
+                                    <outcome value='false'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message"\r
+      value="`'Unable to find AAI instance-group for instance-group-function '\r
+        + $db.group-uuids[$group-index].vfc-instance-group-function\r
+        + ' and instance-group-type VNFC'`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`'>\r
+                                    <outcome value=''>\r
+                                        <set>\r
+                                            <parameter name='vvig-index' value='0' />\r
+                                        </set>\r
+                                    </outcome>\r
+                                    <outcome value='0'>\r
+                                        <break/>\r
+                                    </outcome>\r
+                                    <outcome value='Other'>\r
+                                        <block atomic="true">\r
+                                            <for index='vvig-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\r
+                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id\r
+ == $aai.instance-group.instance-group[$aai-ig-index].id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message"\r
+      value="`'Instance group id '\r
+        + $aai.instance-group.instance-group[$aai-ig-index].id\r
+        + ' already exists in MD-SAL under vlan-vnfc-instance-groups'`" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <set>\r
+                                                <parameter name='vvig-index' value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id'\r
+  value='`$aai.instance-group.instance-group[$aai-ig-index].id`' />\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function'\r
+  value='`$db.group-uuids[$group-index].vfc-instance-group-function`' />\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnf-id'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-id`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length'\r
+  value='`$vvig-index + 1`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vm-type'\r
+  value='`$db.group-uuids[$group-index].vm-type`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='found-vm-type' value='false' />\r
+                                </set>\r
+                                <for index='vm-type-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm_length`' >\r
+                                    <switch test='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-type\r
+  == $db.group-uuids[$group-index].vm-type`'>\r
+                                        <outcome value='true'>\r
+                                            <block atomic="true">\r
+                                                <set>\r
+                                                    <parameter name='found-vm-type' value='true' />\r
+                                                </set>\r
+                                                <break/>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                </for>\r
+                                <switch test='`$found-vm-type`'>\r
+                                    <outcome value='false'>\r
+                                        <block atomic="true">\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'TOSCA provided vm-type ' +\r
+      $db.group-uuids[$group-index].vm-type + ' but that was not found in vf-module-assignments.vms'`" />\r
+                                            </return>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' />\r
+                                </set>\r
+                                <for 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
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-name`' />\r
+                                        </set>\r
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="instance-group:relationship-list"\r
+   key="instance-group.id = $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                            <parameter name="relationship-list.relationship[0].related-to" value="vnfc" />\r
+                                            <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/network/vnfcs/vnfc/' +\r
+        $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`" />\r
+                                            <outcome value='failure'>\r
+                                                <block atomic="true">\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="System error creating instance-group relationship to vnfc" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                            <outcome value='not-found'>\r
+                                                <block atomic="true">\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Not-found error relating instance group '\r
+      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-id\r
+      + ' to vnfc '\r
+      + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`" />\r
+                                                    </return>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </save>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].data-created' value='true' />\r
+                                        </set>\r
+                                    </block>\r
+                                </for>\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select property_name from VF_MODULE_TO_VFC_MAPPING vmvm,\r
+    RESOURCE_POLICY_TO_TARGET_NODE_MAPPING rptnm, RESOURCE_POLICY rp\r
+       where vmvm.vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\r
+       AND vmvm.vm_type = $db.group-uuids[$group-index].vm-type\r
+       AND vmvm.vfc_customization_uuid = rptnm.target_node_uuid\r
+       AND rptnm.policy_uuid = rp.policy_uuid\r
+       AND rp.property_type = 'vlan_tag_policy'\r
+       AND rp.policy_type = 'ecomp.policies.External'\r
+       AND rp.property_source = 'Policy Manager'"\r
+  pfx='db.policy[]'>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failure retrieving policy for vm-type ' + $db.group-uuids[$group-index].vm-type`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Unable to find policy for vm-type ' + $db.group-uuids[$group-index].vm-type`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vnic-interface-role'\r
+  value='`$db.group-uuids[$group-index].vfc_parent_port_role`' />\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-assignment-policy-name'\r
+  value='`$db.policy[0].property-name`' />\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].network-instance-group-function'\r
+  value='`$db.group-uuids[$group-index].network-collection-function`' />\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group_length'\r
+  value='1' />\r
+                                </set>\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key="select vnrm.* from VF_MODULE_TO_VFC_MAPPING vmvm, VFC_TO_NETWORK_ROLE_MAPPING vnrm\r
+       where vmvm.vf_module_customization_uuid = $vf-module-topology-operation-input.vf-module-information.onap-model-information.model-customization-uuid\r
+       AND vmvm.vm_type = $db.group-uuids[$group-index].vm-type\r
+       AND vmvm.vfc_customization_uuid = vnrm.vfc_customization_uuid\r
+       AND vnrm.network_role_tag = $db.group-uuids[$group-index].vfc_parent_port_role"\r
+  pfx='db.vfc-to-network-role[]'>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Failure reading VFC_TO_NETWORK_ROLE_MAPPING for parent role ' + $db.group-uuids[$group-index].vfc_parent_port_role`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                    <outcome value='not-found'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='ack-final' value='Y'/>\r
+                                            <parameter name="error-code" value="500" />\r
+                                            <parameter name="error-message" value="`'Unable to find rows in VFC_TO_NETWORK_ROLE_MAPPING for parent role ' + $db.group-uuids[$group-index].vfc_parent_port_role`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <for index='vnic-index' start='0' end='`$db.vfc-to-network-role_length`' >\r
+                                    <block>\r
+                                        <set>\r
+                                            <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-id'\r
+  value='`$vnic-index`' />\r
+                                        </set>\r
+                                    </block>\r
+                                </for>\r
+                                <set>\r
+                                    <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnic-groups.vnic-group[0].vlan-vnics.vlan-vnic_length'\r
+  value='`$db.vfc-to-network-role_length`' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='get-data-from-policy-input.policy-instance-name' value='`$db.policy[0].property-name`' />\r
+                                </set>\r
+                                <call module='GENERIC-RESOURCE-API' rpc='get-data-from-policy' mode='sync' >\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'></return>\r
+                                    </outcome>\r
+                                </call>\r
+                                <switch test='`$get-data-from-policy-output.precreate-sub-intf-num &gt; 0`'>\r
+                                    <outcome value='true'>\r
+                                        <call module='GENERIC-RESOURCE-API' rpc='assign-vlan-tags' mode='sync' >\r
+                                            <outcome value='failure'>\r
+                                                <return status='failure'></return>\r
+                                            </outcome>\r
+                                        </call>\r
+                                    </outcome>\r
+                                </switch>\r
+                                <for index='vnfc-index' start='1' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
+                                    <set>\r
+                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnics-groups.'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[0].vnics-groups.`' />\r
+                                    </set>\r
+                                </for>\r
+                                <set>\r
+                                    <parameter name='counter' value='0' />\r
+                                </set>\r
+                                <set>\r
+                                    <parameter name='seq-no' value='1' />\r
+                                </set>\r
+                                <for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
+                                    <for index='vnic-group-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='tmp.vt-ip.' value='' />\r
+                                            </set>\r
+                                            <set>\r
+                                                <parameter name='tmp.vt-ip.network-instance-group-function'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\r
+                                                <parameter name='tmp.vt-ip.nf-role'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`' />\r
+                                                <parameter name='tmp.vt-ip.vm-type'\r
+  value='`$db.group-uuids[$group-index].vm-type`' />\r
+                                                <parameter name='tmp.vt-ip.vnfc-name'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name`' />\r
+                                                <parameter name='tmp.vt-ip.type'\r
+  value='FIXED' />\r
+                                                <parameter name='tmp.vt-ip.vf-module-id'\r
+  value='`$vf-module-topology-operation-input.vf-module-information.vf-module-id`' />\r
+                                            </set>\r
+                                            <for index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                                                <switch test='`$tmp.vt-ip.network-instance-group-id\r
+  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <switch test='`$get-data-from-policy-output.ip-assignment`'>\r
+                                                            <outcome value='shared'>\r
+                                                                <for silentFailure='true' index='subnet-index' start='0'\r
+  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\r
+                                                                    <block atomic="true">\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vt-ip.ip-version'\r
+  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`' />\r
+                                                                            <parameter name='tmp.vt-ip.network-instance-group-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-id`' />\r
+                                                                            <parameter name='tmp.vt-ip.sequence-number'\r
+  value='`$seq-no`' />\r
+                                                                        </set>\r
+                                                                        <set>\r
+                                                                            <parameter name='counter' value='`$counter + 1`' />\r
+                                                                        </set>\r
+                                                                        <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\r
+                                                                            <outcome value='failure'>\r
+                                                                                <return status='failure'></return>\r
+                                                                            </outcome>\r
+                                                                        </call>\r
+                                                                        <switch test='`$eipam-ip-block.plans_length`'>\r
+                                                                            <outcome value=''>\r
+                                                                                <block></block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='0'>\r
+                                                                                <block></block>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='Other'>\r
+                                                                                <for index='vnic-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\r
+                                                                                    <for index='sub-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                                                                                        <block>\r
+                                                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length`'>\r
+                                                                                                <outcome value=''>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                                                                        <parameter name='tmp.index' value='0' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='0'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                                                                        <parameter name='tmp.index' value='0' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='1'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='2' />\r
+                                                                                                        <parameter name='tmp.index' value='1' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip[0]'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip_length'\r
+  value='1' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-version'\r
+  value='`$tmp.vt-ip.ip-version`' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-count'\r
+  value='1' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].use-dhcp'\r
+  value='N' />\r
+                                                                                            </set>\r
+                                                                                            <switch test='`$tmp.vt-ip.ip-version`'>\r
+                                                                                                <outcome value='ipv4'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-common-ip-addresses.ip-addresses.ipv4-address'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='ipv6'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-common-ip-addresses.ip-addresses.ipv6-address'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                        </block>\r
+                                                                                    </for>\r
+                                                                                </for>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <set>\r
+                                                                            <parameter name='seq-no' value='`$seq-no + 1`' />\r
+                                                                        </set>\r
+                                                                        <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                                                            <parameter name='filename' value="`'/var/tmp/bgb-eipam.log' + $counter`" />\r
+                                                                        </execute>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                            <outcome value='unique'>\r
+                                                                <for silentFailure='true' index='subnet-index' start='0'\r
+  end='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets_length`' >\r
+                                                                    <for index='vnic-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.vt-ip.ip-version'\r
+  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].subnets[$subnet-index].ip-version`' />\r
+                                                                        </set>\r
+                                                                        <for index='sub-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data_length`' >\r
+                                                                            <block atomic="true">\r
+                                                                                <set>\r
+                                                                                    <parameter name='tmp.vt-ip.network-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-id`' />\r
+                                                                                    <parameter name='tmp.vt-ip.sequence-number'\r
+  value='`$seq-no`' />\r
+                                                                                </set>\r
+                                                                                <set>\r
+                                                                                    <parameter name='counter' value='`$counter + 1`' />\r
+                                                                                </set>\r
+                                                                                <call module='GENERIC-RESOURCE-API' rpc='vf-module-topology-vlan-tagging-ip-addresses' mode='sync' >\r
+                                                                                    <outcome value='failure'>\r
+                                                                                        <return status='failure'></return>\r
+                                                                                    </outcome>\r
+                                                                                </call>\r
+                                                                                <switch test='`$eipam-ip-block.plans_length`'>\r
+                                                                                    <outcome value=''>\r
+                                                                                        <block></block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='0'>\r
+                                                                                        <block></block>\r
+                                                                                    </outcome>\r
+                                                                                    <outcome value='Other'>\r
+                                                                                        <block>\r
+                                                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length`'>\r
+                                                                                                <outcome value=''>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                                                                        <parameter name='tmp.index' value='0' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='0'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='1' />\r
+                                                                                                        <parameter name='tmp.index' value='0' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                                <outcome value='1'>\r
+                                                                                                    <set>\r
+                                                                                                        <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item_length'\r
+  value='2' />\r
+                                                                                                        <parameter name='tmp.index' value='1' />\r
+                                                                                                    </set>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip[0]'\r
+  value='`$eipam-ip-block.plans[0].requests[0].ip-prefix`' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].network-ips.network-ip_length'\r
+  value='1' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-version'\r
+  value='`$tmp.vt-ip.ip-version`' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].ip-count'\r
+  value='1' />\r
+                                                                                                <parameter name='tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.sub-interface-network-data[$sub-index].network-information-items.network-information-item[$tmp.index].use-dhcp'\r
+  value='N' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                                <set>\r
+                                                                                    <parameter name='seq-no' value='`$seq-no + 1`' />\r
+                                                                                </set>\r
+                                                                            </block>\r
+                                                                        </for>\r
+                                                                    </for>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value="`'From policy: ip-assignment is '\r
+  + $get-data-from-policy-output.ip-assignment\r
+  + ' but must be unique or shared'`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                        </block>\r
+                                    </for>\r
+                                </for>\r
+                                <for index='vnfc-index' start='0' end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
+                                    <for index='vm-vnfc-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names_length`' >\r
+                                        <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name\r
+  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vm-vnfc-index].vnfc-name`'>\r
+                                            <outcome value='true'>\r
+                                                <for index='vnic-group-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\r
+                                                    <block>\r
+                                                        <set>\r
+                                                            <parameter name='vnfc-network-index' value='-1' />\r
+                                                        </set>\r
+                                                        <for index='vn-index' start='0'\r
+  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
+                                                            <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role\r
+  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-network-role`'>\r
+                                                                <outcome value='true'>\r
+                                                                    <block>\r
+                                                                        <set>\r
+                                                                            <parameter name='vnfc-network-index' value='`$vn-index`' />\r
+                                                                        </set>\r
+                                                                        <break/>\r
+                                                                    </block>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                        </for>\r
+                                                        <switch test='`$vnfc-network-index`'>\r
+                                                            <outcome value='-1'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='error-code' value='500' />\r
+                                                                    <parameter name='error-message' value="`'Cannot find vnfc-network for network role '\r
+  + $tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <block>\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[$vn-index].vnfc-network-role.vnfc-type'\r
+  value='`$db.group-uuids[$group-index].vm-type`' />\r
+                                                                    </set>\r
+                                                                    <for index='vnic-index' start='0'\r
+  end='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic_length`' >\r
+                                                                        <block>\r
+                                                                            <set>\r
+                                                                                <parameter name='vnfc-port-index' value='-1' />\r
+                                                                            </set>\r
+                                                                            <for silentFailure='true' index='v-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[$vn-index].vnfc-ports.vnfc-port_length`' >\r
+                                                                                <switch test='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-id\r
+  == $tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port[$v-index].vnfc-port-id`'>\r
+                                                                                    <outcome value='true'>\r
+                                                                                        <block>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='vnfc-port-index' value='`$v-index`' />\r
+                                                                                            </set>\r
+                                                                                            <break/>\r
+                                                                                        </block>\r
+                                                                                    </outcome>\r
+                                                                                </switch>\r
+                                                                            </for>\r
+                                                                            <switch test='`$vnfc-port-index`'>\r
+                                                                                <outcome value='-1'>\r
+                                                                                    <block>\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[$vn-index].vnfc-ports.vnfc-port_length`'>\r
+                                                                                            <outcome value=''>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='vnfc-port-index' value='0' />\r
+                                                                                                </set>\r
+                                                                                            </outcome>\r
+                                                                                            <outcome value='Other'>\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='vnfc-port-index' value='`$tmp.vf-module-topology.vf-module-assignments.vms.vm[$vm-type-index].vm-names.vnfc-names[$vnfc-index].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port_length`' />\r
+                                                                                                </set>\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].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].vnfc-port-id'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-port-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[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].common-sub-interface-role'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`' />\r
+                                                                                        </set>\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[$vn-index].vnfc-ports.vnfc-port_length'\r
+  value='`$vnfc-port-index + 1`' />\r
+                                                                                        </set>\r
+                                                                                    </block>\r
+                                                                                </outcome>\r
+                                                                                <outcome value='Other'></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].vnfc-networks.vnfc-network-data[$vn-index].vnfc-ports.vnfc-port[$vnfc-port-index].vnic-sub-interfaces.'\r
+  value='`$tmp.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vlan-vnics.vlan-vnic[$vnic-index].vnic-sub-interfaces.`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                </for>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </get-resource>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-deactivate.xml
new file mode 100755 (executable)
index 0000000..b39e116
--- /dev/null
@@ -0,0 +1,88 @@
+<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='vf-module-topology-vlan-tagging-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name='tmp.vlan-vnfc-instance-groups.'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module[$vf-module-index].vf-module-data.vf-module-topology.vf-module-assignments.vlan-vnfc-instance-groups.`' />\r
+            </set>\r
+            <for index='vvig-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group_length`' >\r
+                <for index='vnfc-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc_length`' >\r
+                    <for index='vnic-group-index' start='0' end='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group_length`' >\r
+                        <block atomic="true">\r
+                            <set>\r
+                                <parameter name='parent-port-role'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].vnic-interface-role`' />\r
+                                <parameter name='network-instance-group-function'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnic-groups.vnic-group[$vnic-group-index].network-instance-group-function`' />\r
+                                <parameter name='vnfc-instance-group-function'\r
+  value='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].instance-group-function`' />\r
+                            </set>\r
+                            <for silentFailure='true' index='vsig-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group_length`' >\r
+                                <switch test='`\r
+  $parent-port-role == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].parent-port-role\r
+  and $vnfc-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfc-instance-group-function\r
+  and $network-instance-group-function == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].network-instance-group-function\r
+`'>\r
+                                    <outcome value='true'>\r
+                                        <block atomic="true">\r
+                                            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].customer-bonding-requests.customer-bonding-request_length`'>\r
+                                                <outcome value=''>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='0'>\r
+                                                    <block></block>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='error-code' value='500' />\r
+                                                        <parameter name='error-message' value='Cannot deactivate module because customer bonding request exists' />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <for index='vnf-vnfc-index' start='0'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length`' >\r
+                                                <switch test='`$tmp.vlan-vnfc-instance-groups.vlan-vnfc-instance-group[$vvig-index].vnfcs.vnfc[$vnfc-index].vnfc-name\r
+  == $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$vnf-vnfc-index].vnfc-name`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block>\r
+                                                            <for index='$idx' start='`$vnf-vnfc-index`'\r
+  end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length - 1`' >\r
+                                                                <block>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx].'\r
+  value='' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx].'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$idx + 1].`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </for>\r
+                                                            <set>\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length'\r
+  value='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length - 1`' />\r
+                                                            </set>\r
+                                                            <set>\r
+                                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc[$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-sub-interface-groups.vnf-sub-interface-group[$vsig-index].vnfcs.vnfc_length].' value='' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                            <break/>\r
+                                        </block>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </for>\r
+                        </block>\r
+                    </for>\r
+                </for>\r
+            </for>\r
+            <return status='success'>\r
+                <parameter name='' value='' />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vf-module-topology-vlan-tagging-ip-addresses.xml
new file mode 100644 (file)
index 0000000..9a7a73b
--- /dev/null
@@ -0,0 +1,289 @@
+<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='vf-module-topology-vlan-tagging-ip-addresses' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$tmp.vt-ip.type`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='type is required' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$tmp.vt-ip.network-instance-group-function`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='network-instance-group-function is required for FIXED ip request' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$tmp.vt-ip.ip-version`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='ip-version is required' />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='ipv4'>\r
+                    <set>\r
+                        <parameter name='tmp.address-family' value='4' />\r
+                        <parameter name='tmp.sql.address-family' value='%4' />\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='ipv6'>\r
+                    <set>\r
+                        <parameter name='tmp.address-family' value='6' />\r
+                        <parameter name='tmp.sql.address-family' value='%6' />\r
+                    </set>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='eipam-ip-block.' value='' />\r
+            </set>\r
+            <switch test='`$tmp.vt-ip.type`'>\r
+                <outcome value='FIXED'>\r
+                    <block atomic='true'>\r
+                        <switch test='`$tmp.vt-ip.vnfc-name`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value='vnfc-name is required for FIXED ip request' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$tmp.vt-ip.vf-module-id`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value='vf-module-id is required' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test='`$tmp.vt-ip.sequence-number`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value='seq-num is required' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name="tmp.selected-client-key" \r
+       value="`$tmp.vt-ip.vm-type + '|' +\r
+                       $tmp.vt-ip.vnfc-name + '|' +\r
+                       $tmp.vt-ip.network-instance-group-function + '|' + \r
+                       $tmp.vt-ip.type + '|' + \r
+                       $tmp.address-family + '|' + \r
+                       $tmp.vt-ip.sequence-number`" />\r
+                            <!--       \r
+fixed-ip client-key:\r
+vm-type + VFCname + network-instance-group-function + "FIXED" + [ip-version(4/6)] + seqNo\r
+               seqNo required for unique, but not required for shared\r
+-->\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="tmp.eipam.info" value="`$tmp.vt-ip.vf-module-id`"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='VIP'>\r
+                    <block atomic='true'>\r
+                        <switch test='`$tmp.vt-ip.nf-role`'>\r
+                            <outcome value=''>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value='nf-role is required for VIP ip request' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <switch test="`$tmp.vt-ip.network-instance-group-id == '' `">\r
+                            <outcome value='true'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value='network-isntance-group-id is required for VIP' />\r
+                                </return>\r
+                            </outcome>\r
+                        </switch>\r
+                        <set>\r
+                            <parameter name="tmp.eipam.info" value="`$tmp.vt-ip.network-instance-group-id`"/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name='tmp.selected-client-key' \r
+       value="`$tmp.vt-ip.nf-role + '|' + \r
+                       $tmp.vt-ip.network-instance-group-function + '|' +\r
+                       $tmp.vt-ip.type + '|' + \r
+                       $tmp.vt-ip.ip-version`" />\r
+                            <!--       \r
+loating-ip client-key:\r
+nf-role + network-instance-group-function + "VIP" + [ip-version(4/6)]\r
+-->\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vt-ip.network-id == '' and $tmp.vt-ip.network-instance-group-id == '' `">\r
+                <outcome value='true'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='either network-id or network-isntance-group-id is required' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$tmp.vt-ip.network-id != '' `">\r
+                <outcome value='true'>\r
+                    <block atomic='true'>\r
+                        <set>\r
+                            <parameter name='tmp.sql' \r
+       value="`'SELECT * from EIPAM_IP_SUBNETS WHERE network_id = ' + \r
+       '$tmp.vt-ip.network-id AND address_family like $tmp.sql.address-family'`" />\r
+                        </set>\r
+                        <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />\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 = "`'No EIPAM_IP_SUBNETS entry found with network-id = ' + $tmp.vt-ip.network-id + ' and address_family = ' + $tmp.address-family`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </get-resource>\r
+                        <set>\r
+                            <parameter name="eipam-ip-block.plans[0].requests[0].network-id" \r
+       value="`$tmp.vt-ip.network-id`"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='false'>\r
+                    <switch test="`$tmp.vt-ip.network-instance-group-id != '' `">\r
+                        <outcome value='true'>\r
+                            <block atomic='true'>\r
+                                <set>\r
+                                    <parameter name='tmp.sql' \r
+       value="`'SELECT * from EIPAM_IP_SUBNETS WHERE network_instance_group_id = '+ \r
+               '$tmp.vt-ip.network-instance-group-id AND address_family like $tmp.sql.address-family'`" />\r
+                                </set>\r
+                                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='`$tmp.sql`' pfx='db.selected-subnet-data[]'>\r
+                                    <outcome value='failure'>\r
+                                        <return status='failure'>\r
+                                            <parameter name='error-code' value='500' />\r
+                                            <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNETS table' />\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 = "`'No EIPAM_IP_SUBNETS entry found with network-instance-group-id = ' + $tmp.vt-ip.network-instance-group-id + ' and address_family = ' + $tmp.address-family`" />\r
+                                        </return>\r
+                                    </outcome>\r
+                                </get-resource>\r
+                                <set>\r
+                                    <parameter name="eipam-ip-block.plans[0].requests[0].network-instance-group-id" \r
+       value="`$tmp.vt-ip.network-instance-group-id`"/>\r
+                                </set>\r
+                            </block>\r
+                        </outcome>\r
+                    </switch>\r
+                </outcome>\r
+            </switch>\r
+            <set>\r
+                <parameter name='tmp.level4-key-found' value='false' />\r
+            </set>\r
+            <for index='didx' start='0' end='`$db.selected-subnet-data_length`' >\r
+                <set>\r
+                    <parameter name='tmp.sql' \r
+       value="`'SELECT a.entity_id, a.key_name, a.key_value, a.level from EIPAM_IP_SUBNET_KEYS a where level = (SELECT MAX(level) from EIPAM_IP_SUBNET_KEYS b where b.entity_id = a.entity_id and entity_id = ' + ' $db.selected-subnet-data[$didx].entity-id )'`" />\r
+                </set>\r
+                <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='`$tmp.sql`' pfx='db.selected-subnet-keys'>\r
+                    <outcome value='failure'>\r
+                        <return status='failure'>\r
+                            <parameter name='error-code' value='500' />\r
+                            <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table to find MAX level by entity_id' />\r
+                        </return>\r
+                    </outcome>\r
+                    <outcome value='success'>\r
+                        <switch test="`$db.selected-subnet-keys.level == '4' `">\r
+                            <outcome value='false'>\r
+                                <block></block>\r
+                            </outcome>\r
+                            <outcome value='true'>\r
+                                <block>\r
+                                    <set>\r
+                                        <parameter name='tmp.level4-key-found' value='true' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.selected-entity-id' value='`$db.selected-subnet-keys.entity-id`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.selected-plan-name' value='`$db.selected-subnet-data[$didx].plan-name`' />\r
+                                    </set>\r
+                                    <break/>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </get-resource>\r
+            </for>\r
+            <switch test="`$tmp.level4-key-found`">\r
+                <outcome value='false'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value='No level 4 KeyName found in EIPAM_IP_SUBNET_KEYS' />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from EIPAM_IP_SUBNET_KEYS  \r
+       where entity_id = $tmp.selected-entity-id order by level'\r
+  pfx='db.eipam-subnet-keys[]'>\r
+                <outcome value='failure'>\r
+                    <return status='failure'>\r
+                        <parameter name='error-code' value='500' />\r
+                        <parameter name='error-message' value = 'Failed to read EIPAM_IP_SUBNET_KEYS table by entity_id' />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <for index='key' start='0' end='`$db.eipam-subnet-keys_length`' >\r
+                <set>\r
+                    <parameter name="eipam-ip-block.plans[0].requests[0].pools[$key].key-name" \r
+       value="`$db.eipam-subnet-keys[$key].key-name`"/>\r
+                    <parameter name="eipam-ip-block.plans[0].requests[0].pools[$key].key-value" \r
+       value="`$db.eipam-subnet-keys[$key].key-value`"/>\r
+                </set>\r
+            </for>\r
+            <set>\r
+                <parameter name='eipam-ip-block.plans[0].plan-name' value='`$tmp.selected-plan-name`' />\r
+                <parameter name='eipam-ip-block.plans[0].address-family' value="`$tmp.vt-ip.ip-version`" />\r
+                <parameter name='eipam-ip-block.plans[0].requests[0].client-key' \r
+       value="`$tmp.selected-client-key`" />\r
+                <parameter name="eipam-ip-block.plans[0].requests[0].info" \r
+       value="`$tmp.eipam.info`"/>\r
+                <parameter name="eipam-ip-block.plans[0].requests[0].pools_length" value="4"/>\r
+                <parameter name='eipam-ip-block.plans[0].requests_length' value='1' />\r
+                <parameter name="eipam-ip-block.plans_length" value="1"/>\r
+            </set>\r
+            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                <parameter name='filename' value='/var/tmp/vlan-tag-ip.log' />\r
+            </execute>\r
+            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="assignIPAddress">\r
+                <outcome value='failure'>\r
+                    <block atomic="true">\r
+                        <return status="failure">\r
+                            <parameter name="ack-final" value="Y" />\r
+                            <parameter name="error-code" value="500"/>\r
+                            <parameter name="error-message" value="`'An error occured while obtaining ip addresses from EIPAM: ' + $error-message`" />\r
+                        </return>\r
+                    </block>\r
+                </outcome>\r
+            </execute>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-get-resource-request.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-get-resource-request.xml
new file mode 100644 (file)
index 0000000..d602cc0
--- /dev/null
@@ -0,0 +1,242 @@
+<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='vnf-get-resource-request' mode='sync'>\r
+        <block atomic="true">\r
+            <set>\r
+                <parameter name="vnf-get-resource-request-output.vnf-get-resource-response-information.service-instance-id" value='`$vnf-get-resource-request-input.service-information.service-instance-id`'/>\r
+                <parameter name="vnf-get-resource-request-output.vnf-get-resource-response-information.service-instance-name" value='`$service-data.service-topology.service-topology-identifier.service-instance-name`'/>\r
+            </set>\r
+            <switch test="`$vnf-get-resource-request-input.vnf_length == ''`">\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="vnf-get-resource-request-output.vnf-get-resource-response-information.vnf_length" value='`$service-data.vnfs.vnf_length`'/>\r
+                        </set>\r
+                        <switch test="`$service-data.vnfs.vnf_length == ''`">\r
+                            <outcome value='false'>\r
+                                <for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                                    <block atomic="true">\r
+                                        <set>\r
+                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vnf-id`' value="`$service-data.vnfs.vnf[$i].vnf-id`"/>\r
+                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vnf-name`' value="`$service-data.vnfs.vnf[$i].vnf-name`"/>\r
+                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`'/>\r
+                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`'/>\r
+                                        </set>\r
+                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`">\r
+                                            <outcome value='false'>\r
+                                                <for index='j' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].name`"/>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].value`"/>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.status`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.status`"/>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.capability-name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.capability-name`"/>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key_length`' value='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' />\r
+                                                        </set>\r
+                                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length == ''`">\r
+                                                            <outcome value='false'>\r
+                                                                <for index='k' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' >\r
+                                                                    <set>\r
+                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key[$k].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].name`"/>\r
+                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].param[$j].resource-resolution-data.resource-key[$k].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].value`"/>\r
+                                                                    </set>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length == ''`">\r
+                                            <outcome value='false'>\r
+                                                <for index='l' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`' >\r
+                                                    <block atomic="true">\r
+                                                        <set>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].vf-module-id`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-id`"/>\r
+                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param_length`' value="`service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param_length`"/>\r
+                                                        </set>\r
+                                                        <for index='m' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                            <block atomic="true">\r
+                                                                <set>\r
+                                                                    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].name`"/>\r
+                                                                    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].value`"/>\r
+                                                                    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key_length`' value="`service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`"/>\r
+                                                                </set>\r
+                                                                <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length == ''`">\r
+                                                                    <outcome value='false'>\r
+                                                                        <for index='n' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`' >\r
+                                                                            <set>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key[$n].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].name`"/>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$i].vf-module[$l].param[$m].resource-resolution-data.resource-key[$n].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$l].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].value`"/>\r
+                                                                            </set>\r
+                                                                        </for>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </block>\r
+                                </for>\r
+                            </outcome>\r
+                        </switch>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value='false'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name="tmp.vnf_counter" value='0'/>\r
+                        </set>\r
+                        <for index='ll' start='0' end='`$vnf-get-resource-request-input.vnf_length`' >\r
+                            <block atomic="true">\r
+                                <set>\r
+                                    <parameter name="tmp.vnf-id" value="`$vnf-get-resource-request-input.vnf[$ll].vnf-id`"/>\r
+                                </set>\r
+                                <switch test="`$service-data.vnfs.vnf_length == ''`">\r
+                                    <outcome value='false'>\r
+                                        <for index='i' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                                            <block atomic="true">\r
+                                                <switch test='`$tmp.vnf-id == $service-data.vnfs.vnf[$i].vnf-id`'>\r
+                                                    <outcome value='true'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vnf-id`' value="`$service-data.vnfs.vnf[$i].vnf-id`"/>\r
+                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vnf-name`' value="`$service-data.vnfs.vnf[$i].vnf-name`"/>\r
+                                                                <parameter name="tmp.pnum" value='0'/>\r
+                                                            </set>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length == ''`">\r
+                                                                <outcome value='false'>\r
+                                                                    <for index='j' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param_length`' >\r
+                                                                        <block atomic="true">\r
+                                                                            <set>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].name`"/>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].value`"/>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.status`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.status`"/>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.capability-name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.capability-name`"/>\r
+                                                                                <parameter name='tmp.prnum' value='0' />\r
+                                                                            </set>\r
+                                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length == ''`">\r
+                                                                                <outcome value='false'>\r
+                                                                                    <for index='k' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key_length`' >\r
+                                                                                        <set>\r
+                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key[$tmp.prnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].name`"/>\r
+                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key[$tmp.prnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vnf-topology.vnf-parameters-data.param[$j].resource-resolution-data.resource-key[$k].value`"/>\r
+                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param[$tmp.pnum].resource-resolution-data.resource-key_length`' value='`$tmp.prnum + 1`' />\r
+                                                                                            <parameter name='tmp.prnum' value='`$tmp.prnum + 1`' />\r
+                                                                                        </set>\r
+                                                                                    </for>\r
+                                                                                </outcome>\r
+                                                                            </switch>\r
+                                                                            <set>\r
+                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].param_length`' value='`$tmp.pnum + 1`' />\r
+                                                                                <parameter name='tmp.pnum' value='`$tmp.pnum + 1`' />\r
+                                                                            </set>\r
+                                                                        </block>\r
+                                                                    </for>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length == ''`">\r
+                                                                <outcome value='false'>\r
+                                                                    <for index='ln' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module_length`' >\r
+                                                                        <switch test="`$vnf-get-resource-request-input.vnf[$ll].vf-module_length == ''`">\r
+                                                                            <outcome value='false'>\r
+                                                                                <for index='jj' start='0' end='`$vnf-get-resource-request-input.vnf[$ll].vf-module_length`' >\r
+                                                                                    <switch test='`$vnf-get-resource-request-input.vnf[$ll].vf-module[$jj].vf-module-id == $service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-id`'>\r
+                                                                                        <outcome value='true'>\r
+                                                                                            <block atomic="true">\r
+                                                                                                <set>\r
+                                                                                                    <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].vf-module-id`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-id`"/>\r
+                                                                                                    <parameter name="tmp.vfpnum" value='0'/>\r
+                                                                                                </set>\r
+                                                                                                <for index='m' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                                                                    <block atomic="true">\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].name`"/>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].value`"/>\r
+                                                                                                            <parameter name='tmp.pvnfrnum' value='0' />\r
+                                                                                                        </set>\r
+                                                                                                        <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length == ''`">\r
+                                                                                                            <outcome value='false'>\r
+                                                                                                                <for index='n' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`' >\r
+                                                                                                                    <set>\r
+                                                                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].name`"/>\r
+                                                                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].value`"/>\r
+                                                                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key_length`' value='`$tmp.pvnfrnum + 1`' />\r
+                                                                                                                        <parameter name='tmp.pvnfrnum' value='`$tmp.pvnfrnum + 1`' />\r
+                                                                                                                    </set>\r
+                                                                                                                </for>\r
+                                                                                                            </outcome>\r
+                                                                                                        </switch>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param_length`' value='`$tmp.vfpnum + 1`' />\r
+                                                                                                            <parameter name='tmp.vfpnum' value='`$tmp.vfpnum + 1`' />\r
+                                                                                                        </set>\r
+                                                                                                    </block>\r
+                                                                                                </for>\r
+                                                                                            </block>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </for>\r
+                                                                            </outcome>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block atomic="true">\r
+                                                                                    <set>\r
+                                                                                        <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].vf-module-id`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-id`"/>\r
+                                                                                        <parameter name="tmp.vfpnum" value='0'/>\r
+                                                                                    </set>\r
+                                                                                    <for index='m' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param_length`' >\r
+                                                                                        <block atomic="true">\r
+                                                                                            <set>\r
+                                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].name`"/>\r
+                                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].value`"/>\r
+                                                                                                <parameter name='tmp.pvnfrnum' value='0' />\r
+                                                                                            </set>\r
+                                                                                            <switch test="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length == ''`">\r
+                                                                                                <outcome value='false'>\r
+                                                                                                    <for index='n' start='0' end='`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key_length`' >\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].name`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].name`"/>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key[$tmp.pvnfrnum].value`' value="`$service-data.vnfs.vnf[$i].vnf-data.vf-modules.vf-module[$ln].vf-module-data.vf-module-topology.vf-module-parameters.param[$m].resource-resolution-data.resource-key[$n].value`"/>\r
+                                                                                                            <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param[$tmp.vfpnum].resource-resolution-data.resource-key_length`' value='`$tmp.pvnfrnum + 1`' />\r
+                                                                                                            <parameter name='tmp.pvnfrnum' value='`$tmp.pvnfrnum + 1`' />\r
+                                                                                                        </set>\r
+                                                                                                    </for>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                            <set>\r
+                                                                                                <parameter name='`vnf-get-resource-request-output.vnf-get-resource-response-information.vnf[$tmp.vnf_counter].vf-module[$tmp.vf_counter].param_length`' value='`$tmp.vfpnum + 1`' />\r
+                                                                                                <parameter name='tmp.vfpnum' value='`$tmp.vfpnum + 1`' />\r
+                                                                                            </set>\r
+                                                                                        </block>\r
+                                                                                    </for>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </for>\r
+                                                                </outcome>\r
+                                                            </switch>\r
+                                                            <set>\r
+                                                                <parameter name='vnf-get-resource-request-output.vnf-get-resource-response-information.vnf_length' value='`$tmp.vnf_counter + 1`' />\r
+                                                                <parameter name='tmp.vnf_counter' value='`$tmp.vnf_counter + 1`' />\r
+                                                            </set>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </for>\r
+                                    </outcome>\r
+                                </switch>\r
+                            </block>\r
+                        </for>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status="success">\r
+                <parameter name="error-code" value="200" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 2c2d73d..6d5aacd 100755 (executable)
@@ -1,70 +1,84 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vnf-topology-operation-activate' mode='sync'>\r
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVnfInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'activate' then request-action must be 'CreateVnfInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
-</return></outcome></switch><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set></outcome></switch></for><switch test='`$vnf-index`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
-</return></outcome></switch><switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'PendingCreate'`">\r
-<outcome value='false'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Order status must be PendingCreate, but is currently '\r
-      + $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status`" />\r
-</return></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+<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='vnf-topology-operation-activate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'activate' then request-action must be 'CreateVnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf"\r
    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<parameter name="prov-status" value="NVTPROV" />\r
-<outcome value='failure'>\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 updating generic-vnf in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-object-path' value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $tunnelxconn-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/service-topology/'`"/>\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
-</set><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
-<parameter name='filename' value='/var/tmp/vnf-top-act.log' />\r
-</execute><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+                <parameter name="prov-status" value="NVTPROV" />\r
+                <outcome value='failure'>\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 updating generic-vnf in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 27419ac..232d0c5 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vnf-topology-operation-assign' mode='sync'>\r
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
-<outcome value='CreateVnfInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+<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='vnf-topology-operation-assign' mode='sync'>\r
+        <block atomic="true">\r
+            <execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\r
+                <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\r
+                <parameter name='contextPrefix' value='prop' />\r
+            </execute>\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'assign' then request-action must be 'CreateVnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
   pfx='db.vf-model'>\r
-\r
-<outcome value='failure'>\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 reading VF_MODEL table" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<set>\r
-<parameter name='vnf-index' value='0' />\r
-</set></outcome><outcome value='Other'>\r
-<block>\r
-<set>\r
-<parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
-</set><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
-      + ' already exists, and has order status ' + $service-data.vnfs.vnf[$idx].vnf-data.vnf-level-oper-status.order-status`" />\r
-</return></outcome></switch></for></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
+                <outcome value='failure'>\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 reading VF_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <block atomic="true">\r
+                <set>\r
+                    <parameter name='tmp.exist.sdnc-model-name' value='false' />\r
+                    <parameter name='tmp.exist.sdnc-artifact-name' value='false' />\r
+                </set>\r
+                <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`">\r
+                    <outcome value=''>\r
+                        <set>\r
+                            <parameter name='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length' value='0' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+                <for silentFailure='true' index='p' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param_length`' >\r
+                    <switch test="`$vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.param[$p].name`">\r
+                        <outcome value='sdnc_model_name'>\r
+                            <set>\r
+                                <parameter name='tmp.exist.sdnc-model-name' value='true' />\r
+                            </set>\r
+                        </outcome>\r
+                        <outcome value='sdnc_artifact_name'>\r
+                            <set>\r
+                                <parameter name='tmp.exist.sdnc-artifact-name' value='true' />\r
+                            </set>\r
+                        </outcome>\r
+                    </switch>\r
+                </for>\r
+                <switch test="`$tmp.exist.sdnc-model-name == 'true' and $tmp.exist.sdnc-artifact-name == 'true'`">\r
+                    <outcome value='true'>\r
+                        <block atomic="true">\r
+                            <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >\r
+                                <outcome value='failure'>\r
+                                    <return status='failure'>\r
+                                        <parameter name='ack-final' value='Y'/>\r
+                                        <parameter name="error-code" value="500" />\r
+                                        <parameter name="error-message" value="`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id`" />\r
+                                    </return>\r
+                                </outcome>\r
+                            </call>\r
+                            <set>\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+                            </set>\r
+                            <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
+                            </execute>\r
+                            <return status='success'>\r
+                                <parameter name="ack-final-indicator" value="Y" />\r
+                                <parameter name="error-code" value="200" />\r
+                                <parameter name="error-message" value="`$error-message`" />\r
+                            </return>\r
+                        </block>\r
+                    </outcome>\r
+                    <outcome value='false'>\r
+                        <switch test="`$db.vf-model.sdnc-model-name != '' and $db.vf-model.sdnc-artifact-name != ''`">\r
+                            <outcome value='true'>\r
+                                <block atomic="true">\r
+                                    <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-assign' mode='sync' >\r
+                                        <outcome value='failure'>\r
+                                            <return status='failure'>\r
+                                                <parameter name='ack-final' value='Y'/>\r
+                                                <parameter name="error-code" value="500" />\r
+                                                <parameter name="error-message" value="`'Failed to create self-serve assignment for vnf with vnf-id=' + $vnf-topology-operation-input.vnf-information.vnf-id`" />\r
+                                            </return>\r
+                                        </outcome>\r
+                                    </call>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+                                    </set>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/ss-vnfend.log' />\r
+                                    </execute>\r
+                                    <return status='success'>\r
+                                        <parameter name="ack-final-indicator" value="Y" />\r
+                                        <parameter name="error-code" value="200" />\r
+                                        <parameter name="error-message" value="`$error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                            <outcome value='false'>\r
+                                <block atomic="true">\r
+                                    <switch test='`$service-data.vnfs.vnf_length`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='vnf-index' value='0' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='vnf-index' value='`$service-data.vnfs.vnf_length`' />\r
+                                                </set>\r
+                                                <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                                                    <switch test='`$vnf-topology-operation-input.vnf-information.vnf-id == $service-data.vnfs.vnf[$idx].vnf-id`'>\r
+                                                        <outcome value='true'>\r
+                                                            <return status='failure'>\r
+                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                <parameter name="error-code" value="500" />\r
+                                                                <parameter name="error-message" value="`'VNF id ' + $service-data.vnfs.vnf[$idx].vnf-id\r
+      + ' already exists'`" />\r
+                                                            </return>\r
+                                                        </outcome>\r
+                                                    </switch>\r
+                                                </for>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf_length' value='`$vnf-index + 1`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='tmp.vnf-network-collection_length' value='0' />\r
+                                    </set>\r
+                                    <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
+                                        <block atomic="true">\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="instance-group" \r
+               key="instance-group.id = $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id"\r
+        pfx='aai.instance-group' local-only='false' >\r
+                                                <outcome value='not-found'>\r
+                                                    <return status='failure'>\r
+                                                        <parameter name='ack-final' value='Y'/>\r
+                                                        <parameter name="error-code" value="500" />\r
+                                                        <parameter name="error-message" value="`'Cannot find instance group id ' +\r
+      $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
+      + ' in AAI'`" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\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 retrieving instance-group from AAI" />\r
+                                                    </return>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <for index='rel-index' start='0' end='`$aai.instance-group.relationship-list.relationship_length`' >\r
+                                                <switch test='`$aai.instance-group.relationship-list.relationship[$rel-index].related-to`'>\r
+                                                    <outcome value='collection'>\r
+                                                        <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+               resource="collection" \r
+               key="collection.collection-id = $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value"\r
+        pfx='aai.collection' local-only='false' >\r
+                                                            <outcome value='not-found'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message" value="`'Cannot find collection ' +\r
+      $aai.instance-group.relationship-list.relationship[$rel-index].relationship-data[0].relationship-value\r
+      + ' in AAI'`" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='failure'>\r
+                                                                <return status='failure'>\r
+                                                                    <parameter name='ack-final' value='Y'/>\r
+                                                                    <parameter name="error-code" value="500" />\r
+                                                                    <parameter name="error-message" value="System error retrieving collection from AAI" />\r
+                                                                </return>\r
+                                                            </outcome>\r
+                                                            <outcome value='success'>\r
+                                                                <block atomic="true">\r
+                                                                    <set>\r
+                                                                        <parameter name='found-network-instance-group' value='false' />\r
+                                                                    </set>\r
+                                                                    <for silentFailure='true' index='nig-index' start='0' end='`$service-data.network-instance-groups.network-instance-group_length`' >\r
+                                                                        <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
+  == $service-data.network-instance-groups.network-instance-group[$nig-index].network-instance-group-id`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <block>\r
+                                                                                    <set>\r
+                                                                                        <parameter name='found-network-instance-group' value='true' />\r
+                                                                                    </set>\r
+                                                                                    <break/>\r
+                                                                                </block>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </for>\r
+                                                                    <switch test='`$found-network-instance-group`'>\r
+                                                                        <outcome value='false'>\r
+                                                                            <return status='failure'>\r
+                                                                                <parameter name='ack-final' value='Y'/>\r
+                                                                                <parameter name="error-code" value="500" />\r
+                                                                                <parameter name="error-message" value="`'Could not find network instance group ' +\r
+      $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id\r
+      + ' in MD-SAL'`" />\r
+                                                                            </return>\r
+                                                                        </outcome>\r
+                                                                    </switch>\r
+                                                                    <set>\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-function'\r
+  value='`$aai.instance-group.instance-group-function`' />\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-instance-group-id'\r
+  value='`$aai.instance-group.id`' />\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-service-instance-id'\r
+  value='`$service-data.network-instance-groups.network-instance-group[$nig-index].service-instance-id`' />\r
+                                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection[$tmp.vnf-network-collection_length].network-collection-customization-uuid'\r
+  value='`$aai.collection.collection-customization-id`' />\r
+                                                                    </set>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vnf-network-collection_length' value='`$tmp.vnf-network-collection_length + 1`' />\r
+                                                                    </set>\r
+                                                                </block>\r
+                                                            </outcome>\r
+                                                        </get-resource>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </for>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-network-collections.vnf-network-collection_length'\r
+  value='`$tmp.vnf-network-collection_length`' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id'\r
  value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-type'\r
  value='`$vnf-topology-operation-input.vnf-information.vnf-type`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-type'\r
  value='`$db.vf-model.nf-type`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role'\r
  value='`$db.vf-model.nf-role`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-function'\r
  value='`$db.vf-model.nf-function`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-code'\r
  value='`$db.vf-model.nf-code`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.tenant'\r
  value='`$vnf-topology-operation-input.vnf-request-input.tenant`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-cloud-region'\r
  value='`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`' />\r
\r
-</set><switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\r
-<outcome value=''><block atomic="true"><switch test='`$db.vf-model.ecomp-generated-naming`'>\r
-<outcome value='Y'><block>\r
-</block></outcome><outcome value='N'><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
-</return></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
-</return></outcome></switch><set>\r
-<parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
-<parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
-<parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />\r
-<parameter name='generate-unique-name-input.index-length' value='2' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
-</set></outcome></call></block></outcome><outcome value='Other'>\r
-<block atomic="true"><set>\r
-<parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
-<parameter name='generate-unique-name-input.supplied-name' value='`$vnf-topology-operation-input.vnf-request-input.vnf-name`' />\r
-</set><call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
-</return></outcome><outcome value='success'>\r
-<set>\r
-<parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />\r
-</set></outcome></call></block></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
+                                    </set>\r
+                                    <switch test='`$vnf-topology-operation-input.vnf-request-input.vnf-name`'>\r
+                                        <outcome value=''>\r
+                                            <block atomic="true">\r
+                                                <switch test='`$db.vf-model.ecomp-generated-naming`'>\r
+                                                    <outcome value='Y'>\r
+                                                        <block></block>\r
+                                                    </outcome>\r
+                                                    <outcome value='N'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="No vnf-name was received but ecomp-generated-naming is not Y" />\r
+                                                        </return>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                                <switch test='`$db.vf-model.naming-policy`'>\r
+                                                    <outcome value=''>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='generate-unique-name-input.action' value='ASSIGN' />\r
+                                                                <parameter name='generate-unique-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='generate-unique-name-input.index-table-name' value='VNF_NAME_INDEX' />\r
+                                                                <parameter name='generate-unique-name-input.index-table-prefix-column' value='vnf_name_prefix' />\r
+                                                                <parameter name='generate-unique-name-input.name-table-type' value='VNF_INSTANCE' />\r
+                                                                <parameter name='generate-unique-name-input.prefix' value="`'z' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + $db.vf-model.nf-code`" />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='generate-unique-name' mode='sync' >\r
+                                                                <outcome value='failure'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='ack-final' value='Y'/>\r
+                                                                        <parameter name="error-code" value="500" />\r
+                                                                        <parameter name="error-message" value="`$generate-unique-name-output.error-message`" />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                                <outcome value='success'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vnf-name' value='`$generate-unique-name-output.generated-name`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </call>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                    <outcome value='Other'>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.policy-instance-name' value='`$db.vf-model.naming-policy`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='ASSIGN' />\r
+                                                                <parameter name='naming-policy-generate-name-input.query-parameter' value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' >\r
+                                                                <outcome value='failure'>\r
+                                                                    <return status='failure'>\r
+                                                                        <parameter name='ack-final' value='Y'/>\r
+                                                                        <parameter name="error-code" value="500" />\r
+                                                                        <parameter name="error-message" value="Unable to generate VNF name" />\r
+                                                                    </return>\r
+                                                                </outcome>\r
+                                                                <outcome value='success'>\r
+                                                                    <set>\r
+                                                                        <parameter name='tmp.vnf-name' value='`$naming-policy-generate-name-output.vnf-name`' />\r
+                                                                    </set>\r
+                                                                </outcome>\r
+                                                            </call>\r
+                                                        </block>\r
+                                                    </outcome>\r
+                                                </switch>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='tmp.vnf-name' value="`$vnf-topology-operation-input.vnf-request-input.vnf-name`" />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/bgb-vnf.log' />\r
+                                    </execute>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-id'\r
    value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name'\r
    value='`$tmp.vnf-name`' />\r
-</set><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+                                    </set>\r
+                                    <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
   value='`$db.vf-model.invariant-uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid'\r
   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-invariant-uuid`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
   value='`$db.vf-model.uuid`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid'\r
   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-uuid`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
   value='`$db.vf-model.version`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-version'\r
   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-version`' />\r
-</set></outcome></switch><switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
-<outcome value=''><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <switch test='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`'>\r
+                                        <outcome value=''>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
   value='`$db.vf-model.name`' />\r
-</set></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
+                                            </set>\r
+                                        </outcome>\r
+                                        <outcome value='Other'>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-name'\r
   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-name`' />\r
-</set></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid'\r
   value='`$vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`' />\r
-</set><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                    </set>\r
+                                    <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="cloud-region" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
+               key="cloud-region.cloud-owner = $prop.cloud-region.cloud-owner AND \r
                     cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
-                    depth='0'"\r
+                    depth='all'"\r
         pfx='aai.cloud-region' local-only='false' >\r
-\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cloud region not found in AAI" />\r
-</return></outcome><outcome value='failure'>\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 retrieving cloud region from AAI" />\r
-</return></outcome></get-resource><for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
-<switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
-<outcome value='complex'>\r
-<block atomic="true"><execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
-   <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
-   <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
-   <parameter name='regex' value='/' />\r
-</execute><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
+                                        <outcome value='not-found'>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="Cloud region not found in AAI" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\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 retrieving cloud region from AAI" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <for index='idx' start='0' end='`$aai.cloud-region.relationship-list.relationship_length`' >\r
+                                        <switch test='`$aai.cloud-region.relationship-list.relationship[$idx].related-to`'>\r
+                                            <outcome value='complex'>\r
+                                                <block atomic="true">\r
+                                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='split'>\r
+                                                        <parameter name='ctx_memory_result_key' value='aai-uid-split' />\r
+                                                        <parameter name='original_string' value='`$aai.cloud-region.relationship-list.relationship[$idx].related-link`' />\r
+                                                        <parameter name='regex' value='/' />\r
+                                                    </execute>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli'\r
   value='`$aai-uid-split[$aai-uid-split_length - 1]`' />\r
-</set><break>\r
-</break></block></outcome></switch></for><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-               resource="availability-zones" \r
-               key="cloud-region.cloud-owner = 'CloudOwner' AND \r
-                    cloud-region.cloud-region-id = $vnf-topology-operation-input.vnf-request-input.aic-cloud-region AND\r
-                    depth='0'"\r
-        pfx='aai.az' local-only='false' >\r
-\r
-<outcome value='failure'>\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 retrieving availability zones from AAI" />\r
-</return></outcome></get-resource><switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\r
-<outcome value=''><return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-</return></outcome></switch><get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+                                                    </set>\r
+                                                    <break/>\r
+                                                </block>\r
+                                            </outcome>\r
+                                        </switch>\r
+                                    </for>\r
+                                    <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.aic-clli`'>\r
+                                        <outcome value=''>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="`'Unable to find aic-clli in AAI for aic-cloud-region ' + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
   key='SELECT * from VF_TO_NETWORK_ROLE_MAPPING WHERE vf_customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
   pfx='db.vf-network-role-mapping[]'>\r
-\r
-<outcome value='failure'>\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 reading VF_TO_NETWORK_ROLE_MAPPING table" />\r
-</return></outcome><outcome value='not-found'>\r
-<set>\r
-<parameter name='db.vf-network-role-mapping_length' value='0' />\r
-</set></outcome></get-resource><set>\r
-<parameter name='network-index' value='0' />\r
-</set><for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'><block atomic="true"><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\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 reading VF_TO_NETWORK_ROLE_MAPPING table" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <set>\r
+                                                <parameter name='db.vf-network-role-mapping_length' value='0' />\r
+                                            </set>\r
+                                        </outcome>\r
+                                    </get-resource>\r
+                                    <set>\r
+                                        <parameter name='network-index' value='0' />\r
+                                    </set>\r
+                                    <for index='role-index' start='0' end='`$db.vf-network-role-mapping_length`'>\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='aai.l3-network.' value='' />\r
+                                            </set>\r
+                                            <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
                resource="l3-networks" \r
                key="l3-network.network-role = $db.vf-network-role-mapping[$role-index].network-role"\r
         pfx='aai.l3-network' local-only='false'\r
 >\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No active l3-network found in AAI with cloud_region_id '\r
+                                                <outcome value='not-found'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'No active l3-network found in AAI with cloud_region_id '\r
           + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region + ' and network_role '\r
           + $db.vf-network-role-mapping[$network-index].network-role`" />\r
-</return></outcome><outcome value='failure'>\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 retrieving l3-network from AAI" />\r
-</return></outcome></get-resource><set>\r
-<parameter name='l3-network-id' value='-1' />\r
-</set><block>\r
-<for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
-<outcome value='PendingCreate'>\r
-<block>\r
-</block></outcome><outcome value='Pending Create'>\r
-<block>\r
-</block></outcome><outcome value='PendingDelete'>\r
-<block>\r
-</block></outcome><outcome value='Pending Delete'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
-<outcome value='cloud-region'>\r
-<for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
-<outcome value='cloud-region.cloud-region-id'>\r
-<switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
-<outcome value='true'>\r
-<block atomic="true"><set>\r
-<parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
-</set><return status='failure'>\r
-</return></block></outcome></switch></outcome></switch></for></outcome></switch></for></outcome></switch></for><return status='success'>\r
-\r
-</return></block><switch test='`$l3-network-id`'>\r
-<outcome value='-1'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />\r
-</return></outcome></switch><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\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 retrieving l3-network from AAI" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </get-resource>\r
+                                            <set>\r
+                                                <parameter name='l3-network-id' value='-1' />\r
+                                            </set>\r
+                                            <block>\r
+                                                <set>\r
+                                                    <parameter name='found-network' value='false' />\r
+                                                </set>\r
+                                                <for index='db-network-index' start='0' end='`$aai.l3-network.l3-network_length`' >\r
+                                                    <block atomic="true">\r
+                                                        <switch test='`$aai.l3-network.l3-network[$db-network-index].orchestration-status`'>\r
+                                                            <outcome value='PendingCreate'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Pending Create'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='PendingDelete'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Pending Delete'>\r
+                                                                <block></block>\r
+                                                            </outcome>\r
+                                                            <outcome value='Other'>\r
+                                                                <for silentFailure='true' index='db-rel-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship_length`' >\r
+                                                                    <block atomic="true">\r
+                                                                        <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].related-to`'>\r
+                                                                            <outcome value='cloud-region'>\r
+                                                                                <for silentFailure='true' index='db-data-index' start='0' end='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data_length`' >\r
+                                                                                    <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-key`'>\r
+                                                                                        <outcome value='cloud-region.cloud-region-id'>\r
+                                                                                            <switch test='`$aai.l3-network.l3-network[$db-network-index].relationship-list.relationship[$db-rel-index].relationship-data[$db-data-index].relationship-value == $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`'>\r
+                                                                                                <outcome value='true'>\r
+                                                                                                    <block atomic="true">\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='l3-network-id' value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
+                                                                                                        </set>\r
+                                                                                                        <set>\r
+                                                                                                            <parameter name='found-network' value='true' />\r
+                                                                                                        </set>\r
+                                                                                                        <break/>\r
+                                                                                                    </block>\r
+                                                                                                </outcome>\r
+                                                                                            </switch>\r
+                                                                                        </outcome>\r
+                                                                                    </switch>\r
+                                                                                </for>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                        <switch test='`$found-network`'>\r
+                                                                            <outcome value='true'>\r
+                                                                                <break/>\r
+                                                                            </outcome>\r
+                                                                        </switch>\r
+                                                                    </block>\r
+                                                                </for>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                        <switch test='`$found-network`'>\r
+                                                            <outcome value='true'>\r
+                                                                <break/>\r
+                                                            </outcome>\r
+                                                        </switch>\r
+                                                    </block>\r
+                                                </for>\r
+                                            </block>\r
+                                            <switch test='`$l3-network-id`'>\r
+                                                <outcome value='-1'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'Unable to find l3-network in AAI for network role ' + $db.vf-network-role-mapping[$role-index].network-role`" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-role'\r
     value='`$db.vf-network-role-mapping[$role-index].network-role`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-name'\r
     value='`$aai.l3-network.l3-network[$db-network-index].network-name`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].neutron-id'\r
     value='`$aai.l3-network.l3-network[$db-network-index].neutron-network-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].network-id'\r
     value='`$aai.l3-network.l3-network[$db-network-index].network-id`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].contrail-network-fqdn'\r
     value='`$aai.l3-network.l3-network[$db-network-index].contrail-network-fqdn`' />\r
-</set><for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\r
-<set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\r
-   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\r
+                                            </set>\r
+                                            <switch test='`$aai.l3-network.l3-network[0].subnets.subnet_length`'>\r
+                                                <outcome value=''>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
+   value='0' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='0'>\r
+                                                    <set>\r
+                                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
+   value='0' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                                <outcome value='Other'>\r
+                                                    <block>\r
+                                                        <for index='subnet-index' start='0' end='`$aai.l3-network.l3-network[0].subnets.subnet_length`' >\r
+                                                            <block>\r
+                                                                <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`'>\r
+                                                                    <outcome value=''>\r
+                                                                        <set>\r
+                                                                            <parameter name='aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role' value='NONE' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].ip-version`'>\r
+                                                                    <outcome value='4'>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.ip-version' value='ipv4' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='6'>\r
+                                                                        <set>\r
+                                                                            <parameter name='tmp.ip-version' value='ipv6' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                                <set>\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].ip-version'\r
+   value='`$tmp.ip-version`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-id'\r
+   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].neutron-subnet-id`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].sdnc-subnet-id'\r
    value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-id`' />\r
-</set></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-role'\r
+   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-role`' />\r
+                                                                    <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].subnet-name'\r
+   value='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].subnet-name`' />\r
+                                                                </set>\r
+                                                                <switch test='`$aai.l3-network.l3-network[$db-network-index].subnets.subnet[$subnet-index].dhcp-enabled`'>\r
+                                                                    <outcome value='true'>\r
+                                                                        <set>\r
+                                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\r
+   value='Y' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                    <outcome value='false'>\r
+                                                                        <set>\r
+                                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data[$subnet-index].dhcp-enabled'\r
+   value='N' />\r
+                                                                        </set>\r
+                                                                    </outcome>\r
+                                                                </switch>\r
+                                                            </block>\r
+                                                        </for>\r
+                                                        <set>\r
+                                                            <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$network-index].subnets-data.subnet-data_length'\r
    value='`$aai.l3-network.l3-network[0].subnets.subnet_length`' />\r
-</set><set>\r
-<parameter name='network-index' value='`$network-index + 1`' />\r
-</set></block></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
+                                                        </set>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                            <set>\r
+                                                <parameter name='network-index' value='`$network-index + 1`' />\r
+                                            </set>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length'\r
   value='`$network-index`' />\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-parameters-data.'\r
   value='vnf-topology-operation-input.vnf-request-input.vnf-input-parameters.' />\r
-</set><switch test='`$aai.az.availability-zone_length`'>\r
-<outcome value=''><switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '\r
+                                    </set>\r
+                                    <switch test='`$aai.cloud-region.availability-zones.availability-zone_length`'>\r
+                                        <outcome value=''>\r
+                                            <switch test='`$db.vf-model.avail-zone-max-count &gt; 0`'>\r
+                                                <outcome value='true'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'No availability zones found in AAI for cloud region '\r
        + $vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-</return></outcome><outcome value='false'>\r
-<set>\r
-<parameter name='aai.az.availability-zone_length' value='0' />\r
-</set></outcome></switch></outcome></switch><for index='idx' start='0' end='`$aai.az.availability-zone_length`' >\r
-<block atomic="true"><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
-  value='`$aai.az.availability-zone[$idx].availability-zone-name`' />\r
-</set><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='false'>\r
+                                                    <set>\r
+                                                        <parameter name='aai.cloud-region.availability-zones.availability-zone_length' value='0' />\r
+                                                    </set>\r
+                                                </outcome>\r
+                                            </switch>\r
+                                        </outcome>\r
+                                    </switch>\r
+                                    <for index='idx' start='0' end='`$aai.cloud-region.availability-zones.availability-zone_length`' >\r
+                                        <block atomic="true">\r
+                                            <set>\r
+                                                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone[$idx]'\r
+  value='`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`' />\r
+                                            </set>\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf:relationship-list"\r
    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-    <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\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="CloudOwner" />\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="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.az.availability-zone[$idx].availability-zone-name`" />\r
-<outcome value='failure'>\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 updating generic-vnf in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></save></block></for><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
+                                                <parameter name="relationship-list.relationship[0].related-to" value="availability-zone" />\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="`$vnf-topology-operation-input.vnf-request-input.aic-cloud-region`" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-key" value="availability-zone.availability-zone-name" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[2].relationship-value" value="`$aai.cloud-region.availability-zones.availability-zone[$idx].availability-zone-name`" />\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\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 updating generic-vnf in AAI" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.max-count'\r
    value='`$db.vf-model.avail-zone-max-count`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
-   value='`$aai.az.availability-zone_length`' />\r
-</set><for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
-<block atomic="true"><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.availability-zones.availability-zone_length'\r
+   value='`$aai.cloud-region.availability-zones.availability-zone_length`' />\r
+                                    </set>\r
+                                    <for index='vnf-nw-index' start='0' end='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network_length`' >\r
+                                        <block atomic="true">\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf:relationship-list"\r
    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-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].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
-    <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`" />\r
-<outcome value='failure'>\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 updating generic-vnf in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></save></block></for><set>\r
-<parameter name='vnf-object-path'\r
+                                                <parameter name="relationship-list.relationship[0].related-to" value="l3-network" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-key" value="l3-network.network-id" />\r
+                                                <parameter name="relationship-list.relationship[0].relationship-data[0].relationship-value" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-resource-assignments.vnf-networks.vnf-network[$vnf-nw-index].network-id`" />\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\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 updating generic-vnf in AAI" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='vnf-object-path'\r
  value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
  + $vnf-topology-operation-input.service-information.service-instance-id\r
  + '/service-data/vnfs/vnf/'\r
  + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
  + '/vnf-data/vnf-topology'`"/>\r
-<parameter name='service-object-path'\r
- value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
- + $vnf-topology-operation-input.service-information.service-instance-id\r
- + '/service-data/vnfs/vnf/'\r
- + $service-data.vnfs.vnf[$vnf-index].vnf-id\r
- + '/vnf-data/vnf-topology'`"/></set><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+                                    </set>\r
+                                    <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf"\r
    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
-<parameter name="prov-status" value="PREPROV" />\r
-<parameter name="operational-status" value="out-of-service-path" />\r
-<parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
-<parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
-<parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
-<parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
-<parameter name="selflink" value="`$vnf-object-path`" />\r
-<outcome value='failure'>\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 updating selflink in generic-vnf in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>\r
+                                        <parameter name="vnf-name" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-name`" />\r
+                                        <parameter name="prov-status" value="PREPROV" />\r
+                                        <!-- <parameter name="operational-status" value="out-of-service-path" /> -->\r
+                                        <parameter name="equipment-role" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.nf-role`" />\r
+                                        <parameter name="model-invariant-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-invariant-uuid`" />\r
+                                        <parameter name="model-version-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-uuid`" />\r
+                                        <parameter name="model-customization-id" value="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.model-customization-uuid`" />\r
+                                        <parameter name="selflink" value="`$vnf-object-path`" />\r
+                                        <outcome value='failure'>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\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 updating selflink in generic-vnf in AAI" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                        <outcome value='not-found'>\r
+                                            <block>\r
+                                                <block atomic="true">\r
+                                                    <set>\r
+                                                        <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                        <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                        <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                    </set>\r
+                                                    <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                </block>\r
+                                                <return status='failure'>\r
+                                                    <parameter name='ack-final' value='Y'/>\r
+                                                    <parameter name="error-code" value="500" />\r
+                                                    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                                                </return>\r
+                                            </block>\r
+                                        </outcome>\r
+                                    </update>\r
+                                    <for silentFailure='true' index='inst-group-index' start='0' end='`$vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids_length`' >\r
+                                        <block atomic="true">\r
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+   resource="generic-vnf:relationship-list"\r
+   key="generic-vnf.vnf-id = $vnf-topology-operation-input.vnf-information.vnf-id"\r
+   force="true" pfx="tmp.AnAI-data">\r
+                                                <parameter name="relationship-list.relationship[0].related-to" value="instance-group" />\r
+                                                <parameter name="relationship-list.relationship[0].related-link"\r
+      value="`'/aai/v$/network/instance-groups/instance-group/'\r
+        + $vnf-topology-operation-input.vnf-request-input.vnf-network-instance-group-ids[$inst-group-index].vnf-network-instance-group-id`" />\r
+                                                <outcome value='failure'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\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 updating relationship in generic-vnf in AAI" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                                <outcome value='not-found'>\r
+                                                    <block>\r
+                                                        <block atomic="true">\r
+                                                            <set>\r
+                                                                <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                                                                <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                                                                <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                                                            </set>\r
+                                                            <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                                                        </block>\r
+                                                        <return status='failure'>\r
+                                                            <parameter name='ack-final' value='Y'/>\r
+                                                            <parameter name="error-code" value="500" />\r
+                                                            <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                                                        </return>\r
+                                                    </block>\r
+                                                </outcome>\r
+                                            </save>\r
+                                        </block>\r
+                                    </for>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+                                    </set>\r
+                                    <set>\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingCreate' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                                        <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+                                    </set>\r
+                                    <execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='printContext' >\r
+                                        <parameter name='filename' value='/var/tmp/bgb-viprend.log' />\r
+                                    </execute>\r
+                                    <return status='success'>\r
+                                        <parameter name="ack-final-indicator" value="Y" />\r
+                                        <parameter name="error-code" value="200" />\r
+                                        <parameter name="error-message" value="`$error-message`" />\r
+                                    </return>\r
+                                </block>\r
+                            </outcome>\r
+                        </switch>\r
+                    </outcome>\r
+                </switch>\r
+            </block>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
diff --git a/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml b/platform-logic/generic-resource-api/src/main/xml/GENERIC-RESOURCE-API_vnf-topology-operation-changeassign.xml
new file mode 100755 (executable)
index 0000000..5823f6b
--- /dev/null
@@ -0,0 +1,81 @@
+<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='vnf-topology-operation-changeassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='CreateVnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'changeassign' then request-action must be 'CreateVnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <get-resource plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' resource='SQL'\r
+  key='SELECT * from VF_MODEL WHERE customization_uuid = $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid'\r
+  pfx='db.vf-model'>\r
+                <outcome value='failure'>\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 reading VF_MODEL table" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No model found for VNF customization UUID ' + $vnf-topology-operation-input.vnf-information.onap-model-information.model-customization-uuid`" />\r
+                    </return>\r
+                </outcome>\r
+            </get-resource>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.onap-model-information.'\r
+  value='`$vnf-topology-operation-input.vnf-information.onap-model-information.`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='Created' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-object-path'\r
+ value="`'restconf/config/GENERIC-RESOURCE-API:services/service/'\r
+ + $service-topology-operation-input.service-information.service-instance-id\r
+ + '/service-data/service-topology/'`"/>\r
+            </set>\r
+            <return status='success'></return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 5d5bde0..7665486 100755 (executable)
@@ -1,57 +1,84 @@
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vnf-topology-operation-deactivate' mode='sync'>\r
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteVnfInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
-</return></outcome></switch><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set></outcome></switch></for><switch test='`$vnf-index`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
-</return></outcome></switch><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
+<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='vnf-topology-operation-deactivate' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteVnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`'>\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService"\r
    resource="generic-vnf"\r
    key="generic-vnf.vnf-id = $service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.vnf-topology-identifier-structure.vnf-id"\r
    force="true" pfx="tmp.AnAI-data">\r
-<parameter name="orchestration-status" value="PendingDelete" />\r
-<outcome value='failure'>\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 updating generic-vnf in AAI" />\r
-</return></outcome><outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
-</return></outcome></update><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
-\r
-</set><set>\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
-<parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
-</set><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+                <parameter name="orchestration-status" value="PendingDelete" />\r
+                <outcome value='failure'>\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 updating generic-vnf in AAI" />\r
+                    </return>\r
+                </outcome>\r
+                <outcome value='not-found'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`'No generic-vnf found in AAI for vnf ID ' + $service-data.vnfs.vnf[$vnf-index].vnf-id`" />\r
+                    </return>\r
+                </outcome>\r
+            </update>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.sdnc-request-header.' value='$vnf-topology-operation-input.sdnc-request-header.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.request-information.' value='$vnf-topology-operation-input.request-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.service-information.' value='$vnf-topology-operation-input.service-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-information.' value='$vnf-topology-operation-input.vnf-information.' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-request-input.' value='$vnf-topology-operation-input.vnf-request-input.' />\r
+            </set>\r
+            <set>\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status' value='PendingDelete' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-rpc-action' value='`$vnf-topology-operation-input.sdnc-request-header.svc-action`' />\r
+                <parameter name='service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.last-action' value='`$vnf-topology-operation-input.request-information.request-action`' />\r
+            </set>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 4cf9156..a50fa7d 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'><method rpc='vnf-topology-operation-unassign' mode='sync'>\r
-<block atomic="true"><switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
-<outcome value='DeleteVnfInstance'>\r
-<block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
-</return></outcome></switch><for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
-<switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\r
-<outcome value='true'>\r
-<set>\r
-<parameter name='vnf-index' value='`$idx`' />\r
-</set></outcome></switch></for><switch test='`$vnf-index`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="404" />\r
-    <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
-</return></outcome></switch><switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-level-oper-status.order-status == 'Created'`">\r
-<outcome value='true'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot delete a VNF in a Created state" />\r
-</return></outcome></switch><switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
-<outcome value='0'>\r
-<block>\r
-</block></outcome><outcome value=''><block>\r
-</block></outcome><outcome value='Other'>\r
-<return status='failure'>\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Cannot delete the VNF because there are VFs defined" />\r
-</return></outcome></switch><switch test='`$service-data.vnfs.vnf_length`'>\r
-<outcome value='1'>\r
-<set>\r
-       <parameter name="service-data.vnfs." value=""/>\r
-\r
-</set></outcome><outcome value='Other'>\r
-<block atomic="true"><for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
-<set>\r
-       <parameter name="$tmpidx" value="`$idx - 1`"/>\r
-       <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
-       \r
-</set></for><set>\r
-       <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
-\r
-</set><set>\r
-       <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
-\r
-       \r
-</set></block></outcome></switch><return status='success'>\r
-<parameter name="ack-final-indicator" value="Y" />\r
-<parameter name="error-code" value="200" />\r
-<parameter name="error-message" value="`$error-message`" />\r
-</return></block></method></service-logic>
+<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='vnf-topology-operation-unassign' mode='sync'>\r
+        <block atomic="true">\r
+            <switch test='`$vnf-topology-operation-input.request-information.request-action`'>\r
+                <outcome value='DeleteVnfInstance'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="If svc-action is 'deactivate' then request-action must be 'DeleteVnfInstance'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="There are no VNFs in MD-SAL" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <for index='idx' start='0' end='`$service-data.vnfs.vnf_length`' >\r
+                <switch test='`$service-data.vnfs.vnf[$idx].vnf-id == $vnf-topology-operation-input.vnf-information.vnf-id`' >\r
+                    <outcome value='true'>\r
+                        <set>\r
+                            <parameter name='vnf-index' value='`$idx`' />\r
+                        </set>\r
+                    </outcome>\r
+                </switch>\r
+            </for>\r
+            <switch test='`$vnf-index`'>\r
+                <outcome value=''>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="404" />\r
+                        <parameter name="error-message" value="'Could not find VNF ' + $vnf-topology-operation-input.vnf-information.vnf-id + ' in MD-SAL'" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test="`$service-data.vnfs.vnf[$vnf-index].vnf-data.vf-modules.vf-module_length`">\r
+                <outcome value='0'>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block></block>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="Cannot delete the VNF because there are VFs defined" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\r
+                <outcome value='true'>\r
+                    <block atomic="true">\r
+                        <call module='GENERIC-RESOURCE-API' rpc='self-serve-vnf-unassign' mode='sync' >\r
+                            <outcome value='failure'>\r
+                                <return status='failure'>\r
+                                    <parameter name='error-code' value='500' />\r
+                                    <parameter name='error-message' value="`'Encountered error while unassigning self-serve resources with error: '+ $error-message`" />\r
+                                </return>\r
+                            </outcome>\r
+                        </call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf_length`'>\r
+                <outcome value='1'>\r
+                    <set>\r
+                        <parameter name="service-data.vnfs." value=""/>\r
+                    </set>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <block atomic="true">\r
+                        <for index='idx' start='`$vnf-index + 1`' end='`$service-data.vnfs.vnf_length`' >\r
+                            <set>\r
+                                <parameter name="$tmpidx" value="`$idx - 1`"/>\r
+                                <parameter name="service-data.vnfs.vnf[$tmpidx]." value="$service-data.vnfs.vnf[$idx]." />\r
+                            </set>\r
+                        </for>\r
+                        <set>\r
+                            <parameter name="service-data.vnfs.vnf[$service-data.vnfs.vnf_length-1]." value=""/>\r
+                        </set>\r
+                        <set>\r
+                            <parameter name="service-data.vnfs.vnf_length" value="`$service-data.vnfs.vnf_length - 1`"/>\r
+                        </set>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <switch test='`$service-data.vnfs.vnf[$vnf-index].vnf-data.vnf-topology.sdnc-generated-cloud-resources`'>\r
+                <outcome value='false'>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                    </block>\r
+                </outcome>\r
+                <outcome value=''>\r
+                    <block atomic="true">\r
+                        <set>\r
+                            <parameter name='naming-policy-generate-name-input.naming-type' value='VNF' />\r
+                            <parameter name='naming-policy-generate-name-input.context-id' value='`$vnf-topology-operation-input.vnf-information.vnf-id`' />\r
+                            <parameter name='naming-policy-generate-name-input.action' value='DELETE' />\r
+                        </set>\r
+                        <call module='GENERIC-RESOURCE-API' rpc='naming-policy-generate-name' mode='sync' ></call>\r
+                    </block>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 669ed75..15b31e1 100644 (file)
@@ -1,77 +1,38 @@
-<service-logic
-    xmlns='http://www.onap.org/sdnc/svclogic'
-    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>
-    <method rpc='vnf-topology-operation' mode='sync'>
-        <block atomic="true">
-            <call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' ></call>
-            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>
-                <outcome value='assign'>
-                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' ></call>
-                </outcome>
-                <outcome value='activate'>
-                    <block atomic="true">
-                        <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-                            <outcome value='ActivateSiteInstance'>
-                                <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-activate' mode='sync' ></call>
-                            </outcome>
-                            <outcome value='Other'>
-                                <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' ></call>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='deactivate'>
-                    <block atomic="true">
-                        <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-                            <outcome value='DeActivateSiteInstance'>
-                                <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-deactivate' mode='sync' ></call>
-                            </outcome>
-                            <outcome value='Other'>
-                                <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' ></call>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='unassign'>
-                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' ></call>
-                </outcome>
-                <outcome value='create'>
-                    <block atomic="true">
-                        <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-                            <outcome value='CreateSiteInstance'>
-                                <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-create' mode='sync' ></call>
-                            </outcome>
-                            <outcome value='Other'>
-                                <block></block>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='delete'>
-                    <block atomic="true">
-                        <switch test='`$vnf-topology-operation-input.request-information.request-action`'>
-                            <outcome value='DeleteSiteInstance'>
-                                <call module='GENERIC-RESOURCE-API' rpc='sotn-vnf-topology-operation-delete' mode='sync' ></call>
-                            </outcome>
-                            <outcome value='Other'>
-                                <block></block>
-                            </outcome>
-                        </switch>
-                    </block>
-                </outcome>
-                <outcome value='Other'>
-                    <return status='failure'>
-                        <parameter name='ack-final' value='Y'/>
-                        <parameter name="error-code" value="500" />
-                        <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />
-                    </return>
-                </outcome>
-            </switch>
-            <return status='success'>
-                <parameter name="ack-final-indicator" value="Y" />
-                <parameter name="error-code" value="200" />
-                <parameter name="error-message" value="`$error-message`" />
-            </return>
-        </block>
-    </method>
-</service-logic>
+<service-logic\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='vnf-topology-operation' mode='sync'>\r
+        <block atomic="true">\r
+            <call module='GENERIC-RESOURCE-API' rpc='validate-vnf-input' mode='sync' ></call>\r
+            <switch test='`$vnf-topology-operation-input.sdnc-request-header.svc-action`'>\r
+                <outcome value='assign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-assign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='activate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-activate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='deactivate'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-deactivate' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='unassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-unassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='changeassign'>\r
+                    <call module='GENERIC-RESOURCE-API' rpc='vnf-topology-operation-changeassign' mode='sync' ></call>\r
+                </outcome>\r
+                <outcome value='Other'>\r
+                    <return status='failure'>\r
+                        <parameter name='ack-final' value='Y'/>\r
+                        <parameter name="error-code" value="500" />\r
+                        <parameter name="error-message" value="`$vnf-topology-operation-input.sdnc-request-header.svc-action + ' is not a valid svc-action'`" />\r
+                    </return>\r
+                </outcome>\r
+            </switch>\r
+            <return status='success'>\r
+                <parameter name="ack-final-indicator" value="Y" />\r
+                <parameter name="error-code" value="200" />\r
+                <parameter name="error-message" value="`$error-message`" />\r
+            </return>\r
+        </block>\r
+    </method>\r
+</service-logic>
\ No newline at end of file
index 4eff2d0..1654a83 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'><method rpc='managed-network-notification' mode='sync'>\r
-<block><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="managed-network-notification"/>\r
-<parameter name="field3" value="`$managed-network-notification-input.request-id`"/>\r
-<parameter name="field4" value="`$managed-network-notification-input.managed-network-status.status.code`"/>\r
-<parameter name="field5" value="`$managed-network-notification-input.managed-network-status.status.description`"/>\r
-<parameter name="field6" value="`$managed-network-notification-input.managed-network-status.final-notification-indicator`"/>\r
-\r
-</record><switch test="`$managed-network-notification-input.managed-network-status.status.code`">\r
-\r
-<outcome value="Success"><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">\r
-\r
-<outcome value="success"><block><save plugin="com.att.sdnctl.sli.resource.gamma.GammaResource" resource="eipam-ip-subnets"\r
-       key="entity-id = $eipam-ip-block.entity-id" force="true">\r
-        <parameter name="status" value="ACTIVE" />\r
-       \r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="ACTIVE" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ACTIVE" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="SUCCESS: eipam-ip-block.status is ACTIVE."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="SDNC_COMPLETED" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-</update> <return status="success">\r
\r
-</return></block></outcome><outcome value="Other"> \r
-\r
-<block><save plugin="com.att.sdnctl.sli.resource.gamma.GammaResource" resource="eipam-ip-subnets"\r
-       key="entity-id = $eipam-ip-block.entity-id" force="true">\r
-        <parameter name="status" value="ERROR" />\r
-       \r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="ActivateSubnet failure, need to manually activate in EIPAM."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" \r
-               key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="EIPAM_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-       </update> <return status="failure">\r
-               <parameter name="error-code" value="3000" />\r
-              <parameter name="error-message" value="ActivateSubnet failure, need to manually activate in EIPAM" />\r
-</return></block></outcome></execute></outcome><outcome value="Other"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">\r
-\r
-<outcome value="success"><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">\r
-\r
-<outcome value="success"><block><set>\r
-       <parameter name="eipam-ip-block.status" value="DELETED" /></set><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="Failure from NCS and deleted pool/subnet in EIPAM."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="SDN_C_BACKOUT_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-</update> <return status="failure">\r
-              <parameter name="error-code" value="2000" />\r
-              <parameter name="error-message" value="Failure from NCS and deleted pool/subnet in EIPAM"/>\r
\r
-</return></block></outcome><outcome value="Other"> \r
-\r
-<block><save plugin="com.att.sdnctl.sli.resource.gamma.GammaResource" resource="eipam-ip-subnets"\r
-       key="entity-id = $eipam-ip-block.entity-id" force="true">\r
-        <parameter name="status" value="DEALLOCATED" />\r
-       \r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" \r
-               key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="SDN_C_BACKOUT_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-       </update>  <return status="failure">\r
-              <parameter name="error-code" value="1000" />\r
-              <parameter name="error-message" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete." />\r
-</return></block></outcome></execute></outcome><outcome value="Other"> \r
-\r
-<block><save plugin="com.att.sdnctl.sli.resource.gamma.GammaResource" resource="eipam-ip-subnets"\r
-       key="entity-id = $eipam-ip-block.entity-id" force="true">\r
-        <parameter name="status" value="ERROR" />\r
-       \r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" \r
-               key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="SDN_C_BACKOUT_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-       </update>  <return status="failure">\r
-              <parameter name="error-code" value="1000" />\r
-              <parameter name="error-message" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete." />\r
-</return></block></outcome></execute></outcome></switch></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>
+    <method rpc='managed-network-notification' mode='sync'>
+        <block>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                <parameter name="logger" value="message-log"/>
+                <parameter name="field1" value="__TIMESTAMP__"/>
+                <parameter name="field2" value="managed-network-notification"/>
+                <parameter name="field3" value="`$managed-network-notification-input.request-id`"/>
+                <parameter name="field4" value="`$managed-network-notification-input.managed-network-status.status.code`"/>
+                <parameter name="field5" value="`$managed-network-notification-input.managed-network-status.status.description`"/>
+                <parameter name="field6" value="`$managed-network-notification-input.managed-network-status.final-notification-indicator`"/>
+            </record>
+            <switch test="`$managed-network-notification-input.managed-network-status.status.code`">
+                <outcome value="Success">
+                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">
+                        <outcome value="success">
+                            <block>
+                                <get-resource
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="SELECT * FROM VPE_POOL where vpe_name = $eipam-ip-block.ptnii-name ;"
+        pfx='tmp.vpe-pool-row'></get-resource>
+                                <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'ACTIVE' 
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                <set>
+                                    <parameter name="eipam-ip-block.status" value="ACTIVE" />
+                                </set>
+                                <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                    <parameter name="eipam-ip-block.status" value="ACTIVE" />
+                                </save>
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="generic-vnf" key="generic-vnf.vnf-id = $tmp.vpe-pool-row.vpe-id" pfx="vpe-after">
+                                    <parameter name="orchestration-status" value="Activated" />
+                                    <parameter name="prov-status" value="NVTPROV" />
+                                </update>
+                                <return status="success"></return>
+                            </block>
+                        </outcome>
+                        <outcome value="Other">
+                            <block>
+                                <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'ACTIVATE_ERROR' 
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                <set>
+                                    <parameter name="eipam-ip-block.status" value="ERROR" />
+                                </set>
+                                <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                    <parameter name="eipam-ip-block.status" value="EIPAM_ACTIVATESUBNET_ERROR" />
+                                </save>
+                                <return status="failure">
+                                    <parameter name="error-code" value="3000" />
+                                    <parameter name="error-message" value="ActivateSubnet failure, need to manually activate in EIPAM" />
+                                </return>
+                            </block>
+                        </outcome>
+                    </execute>
+                </outcome>
+                <outcome value="Other">
+                    <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->
+                    <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deallocateSubnet">
+                        <outcome value="success">
+                            <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->
+                            <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">
+                                <outcome value="success">
+                                    <block>
+                                        <set>
+                                            <parameter name="eipam-ip-block.status" value="DELETED" />
+                                        </set>
+                                        <return status="failure">
+                                            <parameter name="error-code" value="2000" />
+                                            <parameter name="error-message" value="Failure from NCS and deleted pool/subnet in EIPAM"/>
+                                        </return>
+                                    </block>
+                                </outcome>
+                                <outcome value="Other">
+                                    <block>
+                                        <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'DEALLOCATED' 
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                        <set>
+                                            <parameter name="eipam-ip-block.status" value="ERROR" />
+                                        </set>
+                                        <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                            <parameter name="eipam-ip-block.status" value="SDN_C_BACKOUT_ERROR" />
+                                        </save>
+                                        <return status="failure">
+                                            <parameter name="error-code" value="1000" />
+                                            <parameter name="error-message" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete." />
+                                        </return>
+                                    </block>
+                                </outcome>
+                            </execute>
+                        </outcome>
+                        <outcome value="Other">
+                            <block>
+                                <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'DEALLOCSUBNET_ERROR' 
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                <set>
+                                    <parameter name="eipam-ip-block.status" value="ERROR" />
+                                </set>
+                                <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                    <parameter name="eipam-ip-block.status" value="SDN_C_BACKOUT_ERROR" />
+                                </save>
+                                <return status="failure">
+                                    <parameter name="error-code" value="1000" />
+                                    <parameter name="error-message" value="Failure from NCS and deletePool failed in EIPAM, need to manually delete." />
+                                </return>
+                            </block>
+                        </outcome>
+                    </execute>
+                </outcome>
+            </switch>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file
index f5f75cf..c1ed57c 100755 (executable)
-<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'><method rpc='subnet-allocated-notification' mode='sync'>\r
-<block><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="subnet-allocated-notification"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="`$tmp.key-value`"/></record><!--Need to know which ipv version to get the plan name from the network-model.--><switch test="`$eipam-ip-block.ptnii-name`"><!--If there's ptnii-name, then it's Gamma service--><outcome value='Other'><configure adaptor="com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor" key="SNIIR" activate="true">\r
-       <parameter name="input.request-id" value="`$eipam-ip-block.request-id`" />\r
-       <parameter name="input.source" value="SDNC" />\r
-       <parameter name="input.ptnii-name" value="`$eipam-ip-block.ptnii-name`" />\r
-       <parameter name="input.ip-address" value="`$eipam-ip-block.ip-address`" />\r
-       <parameter name="input.mask" value="`$eipam-ip-block.prefix-length`" /><outcome value="success">\r
-<block><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'PENDING-ACTIVE'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" /></save> <return status="success">\r
\r
-</return></block></outcome><outcome value="Other"> \r
-\r
-<!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">\r
-\r
-<outcome value="success">\r
-<block><set>\r
-       <parameter name="eipam-ip-block.status" value="DELETED" /></set><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="IpBlockInstall failure and pool deleted in EIPAM."/>\r
-</execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-</update>  <return status="failure">\r
-              <parameter name="error-code" value="1000" />\r
-              <parameter name="error-message" value="IpBlockInstall failure and deletePool deleted in EIPAM" />\r
-</return></block></outcome><outcome value="Other"> \r
-\r
-<block><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'ERROR'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-</save><set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></save><execute plugin='org.onap.ccsdk.sli.adaptors.aai.AAIService' method='setStatusMethod' >\r
-<parameter name="key1" value="IpBlockInstall failure and pool deletion failed in EIPAM, need to manually delete."/></execute><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="vpe" key="vnf-id = $data-change-notification-input.key-data[0].key-value" pfx="vpe-after">\r
-       <parameter name="operational-state" value="NCS_IP_SUBNET_INSTALL_ERROR" />\r
-       <parameter name="summary-status" value="`$aai-summary-status-message`" />\r
-       <parameter name="prov-status" value="PREPROV" />\r
-</update>  <return status="failure">\r
-              <parameter name="error-code" value="1000" />\r
-              <parameter name="error-message" value="IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete" />\r
-</return></block></outcome></execute></outcome></configure></outcome><!--If no ptnii-name, check if VIPR or SRIOV--><outcome value=''><execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >\r
-<parameter name="source" value="`toUpperCase($eipam-ip-block.plan-name)`" />\r
-<parameter name="target" value="AIC_" />\r
-\r
-<outcome value='false'>\r
-  <return status="failure">\r
-              <parameter name="error-code" value="500" />\r
-              <parameter name="error-message" value="Unknown Address Plan - not supported!" />\r
-</return></outcome><outcome value='true'>\r
-<block atomic='true'><get-resource\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;"\r
-        pfx='tmp.eipam-pool-row'>\r
-\r
-<outcome value='failure'>\r
-<block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="subnet-allocated-notification"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="Failed to find this record in DB!"/>\r
-\r
-</record>  <return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-              <parameter name="error-code" value="500" />\r
-              <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />\r
-</return></block></outcome><outcome value="not-found"><block atomic='true'><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="subnet-allocated-notification"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="This record is not found in DB!"/></record>  <return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-               <parameter name="error-code" value="500" />\r
-              <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />\r
-</return></block></outcome></get-resource><!--initial subnet should exists--><get-resource\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; "\r
-        pfx='pfx.eipam-initial-subnet'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Initial subnet not found, cannot auto extend." />\r
-       </return></outcome></get-resource><!--check if new subnet already exists, possibly from previous attempt.--><get-resource\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; "\r
-        pfx='pfx.eipam-subnet-with-same-ip'>\r
-\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value="not-found"></outcome></get-resource><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="l3-network" \r
-               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id" \r
-               local-only="false" \r
-               pfx="aai.l3-network">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="404" />\r
-       <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'" /></return></outcome></get-resource><set>\r
-<parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-</set><save\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="INSERT EIPAM_IP_SUBNETS\r
-             SET\r
-             entity_id = $eipam-ip-block.entity-id ,\r
-             service_type = $pfx.eipam-initial-subnet.service-type ,\r
-             ip_address = $eipam-ip-block.ip-prefix ,\r
-             prefix_length = $eipam-ip-block.mask ,\r
-             plan_name = $eipam-ip-block.plan-name ,\r
-             status = 'PENDING_ACTIVE' ,\r
-             pool_id = $pfx.eipam-initial-subnet.pool-id ,\r
-             address_family = $pfx.eipam-initial-subnet.address-family ,\r
-             network_id = $pfx.eipam-initial-subnet.network-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-new-subnet'>\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNETS failed." />\r
-       </return></outcome><outcome value='success'>\r
-</outcome></save><save\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="INSERT EIPAM_IP_SUBNET_KEYS\r
-             SET\r
-             entity_id = $eipam-ip-block.entity-id ,\r
-             key_name = $tmp.level1-key-name ,\r
-             key_value = $tmp.level1-key-value ,\r
-             level = 1 ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-level1'>\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />\r
-       </return></outcome></save><save\r
-        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'\r
-        resource='SQL'\r
-        key="INSERT EIPAM_IP_SUBNET_KEYS\r
-             SET\r
-             entity_id = $eipam-ip-block.entity-id ,\r
-             key_name = $tmp.level2-key-name ,\r
-             key_value = $tmp.level2-key-value ,\r
-             level = 2 ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-level2'>\r
-<outcome value='success'>\r
-</outcome><outcome value='failure'><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />\r
-       </return></outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="`$tmp.key-value`"/></record><get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
-                       AND subnet.subnet-id = $eipam-ip-block.entity-id"\r
-               local-only="false" \r
-               pfx="tmp.aai-initial-subnet">\r
-<outcome value='not-found'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="404" />\r
-       <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'" /></return></outcome><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' from AnAI'" /></return></outcome></get-resource><switch test='`$aai.l3-network.subnets.subnet_length`'>\r
-<outcome value=''>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="404" />\r
-       <parameter name="error-message" value="'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id" /></return></outcome><outcome value='Other'>\r
-<set>\r
-<parameter name='tmp.l3-network.subnet.subnet-name' value="`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`" />\r
-</set></outcome></switch><execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">\r
-       <parameter name="ipAddress" value="`$eipam-ip-block.ip-prefix`" />\r
-       <parameter name="ipVersion" value="`tmp.version`" />\r
-       <parameter name="subnet" value="`$eipam-ip-block.prefix-length`" />\r
-       <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />\r
-       <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />\r
-       <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />\r
-\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name='ack-final' value='Y'/>\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="Failed to generate gateway addresses using IpAddressTools" /></return></outcome></execute><switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>\r
-<outcome value='Y'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />\r
-<parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />\r
-<parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />\r
-\r
-\r
-</set></block></outcome><outcome value='N'>\r
-<block atomic="true"><set>\r
-<parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />\r
-<parameter name='tmp.l3-network.subnet.dhcp-start' value='' />\r
-<parameter name='tmp.l3-network.subnet.dhcp-end' value='' />\r
-\r
-\r
-</set></block></outcome></switch><save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id \r
-                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
-<!-- Create l3-network object -->\r
-<parameter name="network-id" value="`$pfx.eipam-initial-subnet.network-id`" />\r
-<parameter name="subnet-id" value="`$eipam-ip-block.entity-id`" />\r
-<parameter name="subnet-name" value="`$tmp.l3-network.subnet.subnet-name`" />\r
-<parameter name="gateway-address" value="`$tmp.return.generate.gateway-address`" />\r
-<parameter name="network-start-address" value="`$eipam-ip-block.ip-prefix`" />\r
-<parameter name="cidr-mask" value="`$eipam-ip-block.prefix-length`" />\r
-<parameter name="ip-version" value="`$tmp.version`" />\r
-<parameter name="dhcp-start" value="`$tmp.l3-network.subnet.dhcp-start`" />\r
-<parameter name="dhcp-end" value="`$tmp.l3-network.subnet.dhcp-end`" />\r
-<parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet.dhcp-enabled`" />\r
-<parameter name="orchestration-status" value="PendingCreate" /><outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" /></return></outcome><outcome value='not-found'>\r
-</outcome></save><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="Added a subnetin AAI"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="`$tmp.key-value`"/></record><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='subnet' />\r
-<parameter name='api-action' value='add' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\r
-<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
-<parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />\r
-<parameter name='dns-server-address' value='0.0.0.0' />\r
-<parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />\r
-<parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />\r
-<parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />\r
-<parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />\r
-<parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />\r
-<outcome value='success'>\r
-<block>\r
-</block></outcome><outcome value='failure'>\r
-<block>\r
-<set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'ERROR'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
-       </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-       key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
-                               AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></save><return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
-</return></block></outcome></execute><record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="Added a subnet in Contrail"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="`$tmp.key-value`"/></record><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id \r
-                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
-       <parameter name="orchestration-status" value="Created" />\r
-               <outcome value='not-found'>\r
-</outcome><outcome value='failure'>\r
-<block>\r
-<record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">\r
-<parameter name="logger" value="message-log"/>\r
-<parameter name="field1" value="__TIMESTAMP__"/>\r
-<parameter name="field2" value="Update status to Created failed in AAI"/>\r
-<parameter name="field3" value="`$eipam-ip-block.request-id`"/>\r
-<parameter name="field4" value="`$eipam-ip-block.entity-id`"/>\r
-<parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>\r
-<parameter name="field6" value="`$eipam-ip-block.ip-address`"/>\r
-<parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>\r
-<parameter name="field8" value="`$eipam-ip-block.status`"/>\r
-<parameter name="field9" value="`$tmp.key-value`"/></record><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'ERROR'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />\r
-       </return></outcome></save><delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-       key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id\r
-                               AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete><execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >\r
-<parameter name='api-name' value='subnet' />\r
-<parameter name='api-action' value='delete' />\r
-<parameter name='resp-prefix' value='contrailResp' />\r
-<parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />\r
-<parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />\r
-<outcome value='failure'>\r
-<return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-    <parameter name="error-message" value="`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />\r
-</return></outcome></execute><set>\r
-       <parameter name="eipam-ip-block.status" value="ERROR" /></set><return status='failure'>\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500" />\r
-       <parameter name="error-message" value="'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" /></return></block></outcome></update><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'CREATED'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />\r
-       </return></outcome></save><!--subnet and subnet_keys are deleted in the EIPAMPlugin--><execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">\r
-<outcome value='failure'><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />\r
-       </return></outcome></execute><save \r
-       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' \r
-       resource='SQL'\r
-       key="UPDATE EIPAM_IP_SUBNETS\r
-             SET status = 'ACTIVE'\r
-             WHERE entity_id = $eipam-ip-block.entity-id ; "\r
-    force='true'\r
-        pfx='pfx.eipam-subnet-row'>\r
-<outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />\r
-       </return></outcome><outcome value='success'>\r
-</outcome></save><update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" \r
-       resource="subnet" \r
-               key="l3-network.network-id = $aai.l3-network.network-id \r
-                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >\r
-<parameter name="orchestration-status" value="Created" />\r
-               <outcome value='failure'>\r
-<return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />\r
-       </return></outcome><outcome value="not-found"><return status="failure">\r
-       <parameter name="error-code" value="500"/>\r
-       <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />\r
-       </return></outcome></update> <return status="success">\r
-       <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />\r
-</return></block></outcome></execute></outcome></switch></block></method></service-logic>
+<service-logic
+    xmlns='http://www.onap.org/sdnc/svclogic'
+    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='SUBNET-API' version='${project.version}'>
+    <method rpc='subnet-allocated-notification' mode='sync'>
+        <block>
+            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                <parameter name="logger" value="message-log"/>
+                <parameter name="field1" value="__TIMESTAMP__"/>
+                <parameter name="field2" value="subnet-allocated-notification"/>
+                <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
+                <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                <parameter name="field9" value="`$tmp.key-value`"/>
+            </record>
+            <!--Need to know which ipv version to get the plan name from the network-model.-->
+            <switch test="`$eipam-ip-block.ptnii-name`">
+                <!--If there's ptnii-name, then it's Gamma service-->
+                <outcome value='Other'>
+                    <block>
+                        <configure adaptor="com.att.sdnctl.sli.adaptor.ncs.ncsAdaptor" key="SNIIR" activate="true">
+                            <parameter name="input.request-id" value="`$eipam-ip-block.request-id`" />
+                            <parameter name="input.source" value="SDNC" />
+                            <parameter name="input.ptnii-name" value="`$eipam-ip-block.ptnii-name`" />
+                            <parameter name="input.ip-address" value="`$eipam-ip-block.ip-address`" />
+                            <parameter name="input.mask" value="`$eipam-ip-block.prefix-length`" />
+                            <outcome value="success">
+                                <block>
+                                    <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'PENDING-ACTIVE'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                    <set>
+                                        <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" />
+                                    </set>
+                                    <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                        <parameter name="eipam-ip-block.status" value="PENDING-ACTIVE" />
+                                    </save>
+                                    <return status="success"></return>
+                                </block>
+                            </outcome>
+                            <outcome value="Other">
+                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->
+                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="deletePool">
+                                    <outcome value="success">
+                                        <block>
+                                            <set>
+                                                <parameter name="eipam-ip-block.status" value="DELETED" />
+                                            </set>
+                                            <return status="failure">
+                                                <parameter name="error-code" value="1000" />
+                                                <parameter name="error-message" value="IpBlockInstall failure and deletePool deleted in EIPAM" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                    <outcome value="Other">
+                                        <block>
+                                            <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET 
+             status = 'ERROR',
+             dealloc_failure = 'deletePool failed in response to NCS_IP_SUBNET_INSTALL_ERROR'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'></save>
+                                            <set>
+                                                <parameter name="eipam-ip-block.status" value="NCS_IP_SUBNET_INSTALL_ERROR" />
+                                            </set>
+                                            <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" resource="generic-vnf" key="generic-vnf.vnf-id = $tmp.vpe-pool.vpe-id" pfx="vpe-after">
+                                                <parameter name="operational-status" value="NCS_IP_SUBNET_INSTALL_ERROR" />
+                                                <parameter name="summary-status" value="`$aai-summary-status-message`" />
+                                                <parameter name="prov-status" value="PREPROV" />
+                                            </update>
+                                            <return status="failure">
+                                                <parameter name="error-code" value="1000" />
+                                                <parameter name="error-message" value="IpBlockInstall failure and deletePool failed in EIPAM, need to manually delete" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                </execute>
+                            </outcome>
+                        </configure>
+                    </block>
+                </outcome>
+                <!--If no ptnii-name, check if VIPR or SRIOV-->
+                <outcome value=''>
+                    <execute plugin="org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils" method="startsWith" emitsOutcome='true' >
+                        <parameter name="source" value="`toUpperCase($eipam-ip-block.plan-name)`" />
+                        <parameter name="target" value="AIC_" />
+                        <outcome value='false'>
+                            <return status="failure">
+                                <parameter name="error-code" value="500" />
+                                <parameter name="error-message" value="Unknown Address Plan - not supported!" />
+                            </return>
+                        </outcome>
+                        <outcome value='true'>
+                            <block atomic='true'>
+                                <get-resource
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="SELECT * FROM EIPAM_IP_POOLS where plan_name = $eipam-ip-block.plan-name and level = 2 and key_value = $tmp.level2-key-value ;"
+        pfx='tmp.eipam-pool-row'>
+                                    <outcome value='failure'>
+                                        <block atomic='true'>
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                <parameter name="logger" value="message-log"/>
+                                                <parameter name="field1" value="__TIMESTAMP__"/>
+                                                <parameter name="field2" value="subnet-allocated-notification"/>
+                                                <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                                <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                                <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
+                                                <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                                <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                                <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                                <parameter name="field9" value="Failed to find this record in DB!"/>
+                                            </record>
+                                            <return status="failure">
+                                                <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                    <outcome value="not-found">
+                                        <block atomic='true'>
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                <parameter name="logger" value="message-log"/>
+                                                <parameter name="field1" value="__TIMESTAMP__"/>
+                                                <parameter name="field2" value="subnet-allocated-notification"/>
+                                                <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                                <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                                <parameter name="field5" value="`$eipam-ip-block.ptnii-name`"/>
+                                                <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                                <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                                <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                                <parameter name="field9" value="This record is not found in DB!"/>
+                                            </record>
+                                            <return status="failure">
+                                                <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="Unknown EIPAM pool - not found in DB!" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                </get-resource>
+                                <!--initial subnet should exists-->
+                                <get-resource
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="SELECT * from EIPAM_IP_SUBNETS s, EIPAM_IP_SUBNET_KEYS k WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = k.entity_id and k.level = 2 and k.key_value = $tmp.level2-key-value and s.address_family = $tmp.version ; "
+        pfx='pfx.eipam-initial-subnet'>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value="not-found">
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Initial subnet not found, cannot auto extend." />
+                                        </return>
+                                    </outcome>
+                                </get-resource>
+                                <!--check if new subnet already exists, possibly from previous attempt.-->
+                                <get-resource
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="SELECT * from EIPAM_IP_SUBNETS s WHERE s.plan_name = $eipam-ip-block.plan-name and s.entity_id = $eipam-ip-block.entity-id and s.ip_address = $eipam-ip-block.ip-address ; "
+        pfx='pfx.eipam-subnet-with-same-ip'>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Query to DB table EIPAM_IP_SUBNET_KEYS and EIPAM_IP_SUBNETS failed." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value="not-found"></outcome>
+                                </get-resource>
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="l3-network" 
+               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id" 
+               local-only="false" 
+               pfx="aai.l3-network">
+                                    <outcome value='not-found'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="404" />
+                                            <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'Not found in AnAI'" />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='failure'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + 'from AnAI'" />
+                                        </return>
+                                    </outcome>
+                                </get-resource>
+                                <set>
+                                    <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                </set>
+                                <save
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="INSERT EIPAM_IP_SUBNETS
+             SET
+             entity_id = $eipam-ip-block.entity-id ,
+             service_type = $pfx.eipam-initial-subnet.service-type ,
+             ip_address = $eipam-ip-block.ip-prefix ,
+             prefix_length = $eipam-ip-block.mask ,
+             plan_name = $eipam-ip-block.plan-name ,
+             status = 'PENDING_ACTIVE' ,
+             pool_id = $pfx.eipam-initial-subnet.pool-id ,
+             address_family = $pfx.eipam-initial-subnet.address-family ,
+             network_id = $pfx.eipam-initial-subnet.network-id ; "
+    force='true'
+        pfx='pfx.eipam-new-subnet'>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNETS failed." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='success'></outcome>
+                                </save>
+                                <save
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="INSERT EIPAM_IP_SUBNET_KEYS
+             SET
+             entity_id = $eipam-ip-block.entity-id ,
+             key_name = $tmp.level1-key-name ,
+             key_value = $tmp.level1-key-value ,
+             level = 1 ; "
+    force='true'
+        pfx='pfx.eipam-subnet-level1'>
+                                    <outcome value='success'></outcome>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />
+                                        </return>
+                                    </outcome>
+                                </save>
+                                <save
+        plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource'
+        resource='SQL'
+        key="INSERT EIPAM_IP_SUBNET_KEYS
+             SET
+             entity_id = $eipam-ip-block.entity-id ,
+             key_name = $tmp.level2-key-name ,
+             key_value = $tmp.level2-key-value ,
+             level = 2 ; "
+    force='true'
+        pfx='pfx.eipam-subnet-level2'>
+                                    <outcome value='success'></outcome>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Insert to DB table EIPAM_IP_SUBNET_KEYS failed." />
+                                        </return>
+                                    </outcome>
+                                </save>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                    <parameter name="logger" value="message-log"/>
+                                    <parameter name="field1" value="__TIMESTAMP__"/>
+                                    <parameter name="field2" value="Added an entry for subnet-allocated-notification in EIPAM_IP_SUBNETS and EIPAM_IP_SUBNET_KEYS"/>
+                                    <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                    <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                    <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
+                                    <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                    <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                    <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                    <parameter name="field9" value="`$tmp.key-value`"/>
+                                </record>
+                                <get-resource plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
+                       AND subnet.subnet-id = $eipam-ip-block.entity-id"
+               local-only="false" 
+               pfx="tmp.aai-initial-subnet">
+                                    <outcome value='not-found'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="404" />
+                                            <parameter name="error-message" value="'l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id + ' is Not found in AnAI'" />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='failure'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="'Error retrieving l3-network with network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' from AnAI'" />
+                                        </return>
+                                    </outcome>
+                                </get-resource>
+                                <switch test='`$aai.l3-network.subnets.subnet_length`'>
+                                    <outcome value=''>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="404" />
+                                            <parameter name="error-message" value="'No subnets found in AAI for network-id=' + $pfx.eipam-initial-subnet.network-id" />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='Other'>
+                                        <set>
+                                            <parameter name='tmp.l3-network.subnet.subnet-name' value="`$aai.l3-network.network-name + '_S' + $aai.l3-network.subnets.subnet_length`" />
+                                        </set>
+                                    </outcome>
+                                </switch>
+                                <execute plugin="com.att.sdnctl.sli.plugin.ipAddressTools.IpAddressTool" method="getSubnetAddresses">
+                                    <parameter name="ipAddress" value="`$eipam-ip-block.ip-prefix`" />
+                                    <parameter name="ipVersion" value="`tmp.version`" />
+                                    <parameter name="subnet" value="`$eipam-ip-block.prefix-length`" />
+                                    <parameter name="ctxGateway" value="tmp.return.generate.gateway-address" />
+                                    <parameter name="ctxDhcpStart" value="tmp.return.generate.dhcp-start-address" />
+                                    <parameter name="ctxDhcpEnd" value="tmp.return.generate.dhcp-end-address" />
+                                    <outcome value='failure'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name='ack-final' value='Y'/>
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="Failed to generate gateway addresses using IpAddressTools" />
+                                        </return>
+                                    </outcome>
+                                </execute>
+                                <switch test='`$tmp.aai-initial-subnet.dhcp-enabled`'>
+                                    <outcome value='Y'>
+                                        <block atomic="true">
+                                            <set>
+                                                <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='true' />
+                                                <parameter name='tmp.l3-network.subnet.dhcp-start' value='`$tmp.return.generate.dhcp-start-address`' />
+                                                <parameter name='tmp.l3-network.subnet.dhcp-end' value='`$tmp.return.generate.dhcp-end-address`' />
+                                            </set>
+                                        </block>
+                                    </outcome>
+                                    <outcome value='N'>
+                                        <block atomic="true">
+                                            <set>
+                                                <parameter name='tmp.l3-network.subnet.dhcp-enabled' value='false' />
+                                                <parameter name='tmp.l3-network.subnet.dhcp-start' value='' />
+                                                <parameter name='tmp.l3-network.subnet.dhcp-end' value='' />
+                                            </set>
+                                        </block>
+                                    </outcome>
+                                </switch>
+                                <save plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id 
+                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >
+                                    <!-- Create l3-network object -->
+                                    <parameter name="network-id" value="`$pfx.eipam-initial-subnet.network-id`" />
+                                    <parameter name="subnet-id" value="`$eipam-ip-block.entity-id`" />
+                                    <parameter name="subnet-name" value="`$tmp.l3-network.subnet.subnet-name`" />
+                                    <parameter name="gateway-address" value="`$tmp.return.generate.gateway-address`" />
+                                    <parameter name="network-start-address" value="`$eipam-ip-block.ip-prefix`" />
+                                    <parameter name="cidr-mask" value="`$eipam-ip-block.prefix-length`" />
+                                    <parameter name="ip-version" value="`$tmp.version`" />
+                                    <parameter name="dhcp-start" value="`$tmp.l3-network.subnet.dhcp-start`" />
+                                    <parameter name="dhcp-end" value="`$tmp.l3-network.subnet.dhcp-end`" />
+                                    <parameter name="dhcp-enabled" value="`$tmp.l3-network.subnet.dhcp-enabled`" />
+                                    <parameter name="orchestration-status" value="PendingCreate" />
+                                    <outcome value='failure'>
+                                        <return status='failure'>
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500" />
+                                            <parameter name="error-message" value="'Cannot save subnet with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='not-found'></outcome>
+                                </save>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                    <parameter name="logger" value="message-log"/>
+                                    <parameter name="field1" value="__TIMESTAMP__"/>
+                                    <parameter name="field2" value="Added a subnetin AAI"/>
+                                    <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                    <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                    <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
+                                    <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                    <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                    <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                    <parameter name="field9" value="`$tmp.key-value`"/>
+                                </record>
+                                <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                    <parameter name='api-name' value='subnet' />
+                                    <parameter name='api-action' value='add' />
+                                    <parameter name='resp-prefix' value='contrailResp' />
+                                    <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />
+                                    <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />
+                                    <parameter name='ip-prefix-len' value='`$eipam-ip-block.prefix-length`' />
+                                    <parameter name='dns-server-address' value='0.0.0.0' />
+                                    <parameter name='enable-dhcp' value='`$tmp.l3-network.subnet.dhcp-enabled`' />
+                                    <parameter name='default-gateway' value='`$tmp.return.generate.gateway-address`' />
+                                    <parameter name='subnet-name' value='`$tmp.l3-network.subnet.subnet-name`' />
+                                    <parameter name='start' value='`$tmp.l3-network.subnet.dhcp-start`' />
+                                    <parameter name='end' value='`$tmp.l3-network.subnet.dhcp-end`' />
+                                    <outcome value='success'>
+                                        <block></block>
+                                    </outcome>
+                                    <outcome value='failure'>
+                                        <block>
+                                            <set>
+                                                <parameter name="eipam-ip-block.status" value="ERROR" />
+                                            </set>
+                                            <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'ERROR'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'>
+                                                <outcome value='failure'>
+                                                    <return status="failure">
+                                                        <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                        <parameter name="error-code" value="500"/>
+                                                        <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
+                                                    </return>
+                                                </outcome>
+                                                <outcome value="not-found">
+                                                    <return status="failure">
+                                                        <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                        <parameter name="error-code" value="500"/>
+                                                        <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
+                                                    </return>
+                                                </outcome>
+                                            </save>
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+       key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
+                               AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete>
+                                            <save plugin="org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource" resource="eipam-ip-block">
+                                                <parameter name="eipam-ip-block.status" value="ERROR" />
+                                            </save>
+                                            <return status='failure'>
+                                                <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="`'Failed to create subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                </execute>
+                                <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                    <parameter name="logger" value="message-log"/>
+                                    <parameter name="field1" value="__TIMESTAMP__"/>
+                                    <parameter name="field2" value="Added a subnet in Contrail"/>
+                                    <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                    <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                    <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
+                                    <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                    <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                    <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                    <parameter name="field9" value="`$tmp.key-value`"/>
+                                </record>
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+               key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id 
+                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >
+                                    <parameter name="orchestration-status" value="Created" />
+                                    <outcome value='not-found'></outcome>
+                                    <outcome value='failure'>
+                                        <block>
+                                            <record plugin="org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder">
+                                                <parameter name="logger" value="message-log"/>
+                                                <parameter name="field1" value="__TIMESTAMP__"/>
+                                                <parameter name="field2" value="Update status to Created failed in AAI"/>
+                                                <parameter name="field3" value="`$eipam-ip-block.request-id`"/>
+                                                <parameter name="field4" value="`$eipam-ip-block.entity-id`"/>
+                                                <parameter name="field5" value="`$pfx.eipam-initial-subnet.network-id`"/>
+                                                <parameter name="field6" value="`$eipam-ip-block.ip-address`"/>
+                                                <parameter name="field7" value="`$eipam-ip-block.prefix-length`"/>
+                                                <parameter name="field8" value="`$eipam-ip-block.status`"/>
+                                                <parameter name="field9" value="`$tmp.key-value`"/>
+                                            </record>
+                                            <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'ERROR'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'>
+                                                <outcome value='failure'>
+                                                    <return status="failure">
+                                                        <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                        <parameter name="error-code" value="500"/>
+                                                        <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
+                                                    </return>
+                                                </outcome>
+                                                <outcome value="not-found">
+                                                    <return status="failure">
+                                                        <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                        <parameter name="error-code" value="500"/>
+                                                        <parameter name="error-message" value="An error occured while updating subnet to ERROR in mysql." />
+                                                    </return>
+                                                </outcome>
+                                            </save>
+                                            <delete plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+       key="l3-network.network-id = $pfx.eipam-initial-subnet.network-id
+                               AND subnet.subnet-id = $eipam-ip-block.entity-id"></delete>
+                                            <execute plugin='org.onap.ccsdk.sli.plugins.contrail.ContrailAdaptor' method='sendContrailRequest' emitsOutcome='true' >
+                                                <parameter name='api-name' value='subnet' />
+                                                <parameter name='api-action' value='delete' />
+                                                <parameter name='resp-prefix' value='contrailResp' />
+                                                <parameter name='contrail-virtual-network-id' value='`$pfx.eipam-initial-subnet.network-id`' />
+                                                <parameter name='ip-prefix' value='`$eipam-ip-block.ip-prefix`' />
+                                                <outcome value='failure'>
+                                                    <return status='failure'>
+                                                        <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                        <parameter name="error-code" value="500" />
+                                                        <parameter name="error-message" value="`'Failed to delete subnet in Contrail. '+ $contrailResp.resp-code + ':' +$contrailResp.resp-message `" />
+                                                    </return>
+                                                </outcome>
+                                            </execute>
+                                            <set>
+                                                <parameter name="eipam-ip-block.status" value="ERROR" />
+                                            </set>
+                                            <return status='failure'>
+                                                <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                                <parameter name="error-code" value="500" />
+                                                <parameter name="error-message" value="'Cannot save subnet status to Created with l3 network-id=' + $pfx.eipam-initial-subnet.network-id + ' And subnet-id=' + $eipam-ip-block.entity-id  + ' in AnAI'" />
+                                            </return>
+                                        </block>
+                                    </outcome>
+                                </update>
+                                <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'CREATED'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value="not-found">
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="An error occured while updating subnet to CREATED in mysql." />
+                                        </return>
+                                    </outcome>
+                                </save>
+                                <!--subnet and subnet_keys are deleted in the EIPAMPlugin-->
+                                <execute plugin="com.att.sdnctl.sli.plugin.eipam.EIPAMPlugin" method="activateSubnet">
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="An error occured while activating subnet in EIPAM." />
+                                        </return>
+                                    </outcome>
+                                </execute>
+                                <save 
+       plugin='org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource' 
+       resource='SQL'
+       key="UPDATE EIPAM_IP_SUBNETS
+             SET status = 'ACTIVE'
+             WHERE entity_id = $eipam-ip-block.entity-id ; "
+    force='true'
+        pfx='pfx.eipam-subnet-row'>
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value="not-found">
+                                        <return status="failure">
+                                            <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="An error occured while updating subnet to active in mysql." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value='success'></outcome>
+                                </save>
+                                <update plugin="org.onap.ccsdk.sli.adaptors.aai.AAIService" 
+       resource="subnet" 
+               key="l3-network.network-id = $aai.l3-network.network-id 
+                       AND subnet.subnet-id = $eipam-ip-block.entity-id" >
+                                    <parameter name="orchestration-status" value="Created" />
+                                    <outcome value='failure'>
+                                        <return status="failure">
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet." />
+                                        </return>
+                                    </outcome>
+                                    <outcome value="not-found">
+                                        <return status="failure">
+                                            <parameter name="error-code" value="500"/>
+                                            <parameter name="error-message" value="Failure updating orchestration-status in AAI for subnet.  Subnet not found." />
+                                        </return>
+                                    </outcome>
+                                </update>
+                                <return status="success">
+                                    <parameter name='eipam-ip-block.request-id' value="`$eipam-ip-block.entity-id + '-' + $aai.l3-network.contrail-network-fqdn`" />
+                                </return>
+                            </block>
+                        </outcome>
+                    </execute>
+                </outcome>
+            </switch>
+        </block>
+    </method>
+</service-logic>
\ No newline at end of file